From e5f2d374dfa162a23abdaf5ff074c15e2c536775 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= Date: Sun, 20 Apr 2008 03:56:32 +0000 Subject: [PATCH] Add a desktop window to put a shelf on later... ActivityMonitor replicant ? ;) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25073 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/apps/login/LoginApp.cpp | 24 ++++++++++++++++++++++-- src/apps/login/LoginApp.h | 7 +++++++ src/apps/login/LoginView.cpp | 1 + src/apps/login/LoginView.h | 2 -- src/apps/login/LoginWindow.cpp | 5 ++++- 5 files changed, 34 insertions(+), 5 deletions(-) diff --git a/src/apps/login/LoginApp.cpp b/src/apps/login/LoginApp.cpp index fca7347c7c..d5a8d82c60 100644 --- a/src/apps/login/LoginApp.cpp +++ b/src/apps/login/LoginApp.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include #include @@ -19,6 +20,10 @@ const char *kLoginAppSig = "application/x-vnd.Haiku-Login"; +const window_feel kPrivateDesktopWindowFeel = window_feel(1024); +const window_look kPrivateDesktopWindowLook = window_look(4); + // this is a mirror of an app server private values + LoginApp::LoginApp() : BApplication(kLoginAppSig) @@ -38,8 +43,23 @@ LoginApp::ReadyToRun() BRect frame(0, 0, 400, 150); frame.OffsetBySelf(s.Frame().Width()/2 - frame.Width()/2, s.Frame().Height()/2 - frame.Height()/2); - LoginWindow *w = new LoginWindow(frame); - w->Show(); + fLoginWindow = new LoginWindow(frame); + fLoginWindow->Show(); + + BScreen screen; + fDesktopWindow = new BWindow(screen.Frame(), "Desktop", + kPrivateDesktopWindowLook, + kPrivateDesktopWindowFeel, + B_NOT_MOVABLE | B_NOT_CLOSABLE | B_NOT_ZOOMABLE + | B_NOT_MINIMIZABLE | B_NOT_RESIZABLE + | B_ASYNCHRONOUS_CONTROLS, + B_ALL_WORKSPACES); + BView *desktop = new BView(fDesktopWindow->Bounds(), "desktop", + B_FOLLOW_NONE, 0); + desktop->SetViewColor(screen.DesktopColor()); + fDesktopWindow->AddChild(desktop); + fDesktopWindow->Show(); + // TODO: add a shelf with Activity Monitor replicant :) } diff --git a/src/apps/login/LoginApp.h b/src/apps/login/LoginApp.h index d5a0f40f4c..93f25f25f1 100644 --- a/src/apps/login/LoginApp.h +++ b/src/apps/login/LoginApp.h @@ -11,6 +11,8 @@ const uint32 kSuspendAction = 'susp'; const uint32 kLoginBad = 'lgba'; const uint32 kLoginOk = 'lgok'; +class LoginWindow; + class LoginApp : public BApplication { public: LoginApp(); @@ -23,7 +25,12 @@ private: status_t ValidateLogin(const char *login, const char *password/*, bool force = false*/); status_t StartUserSession(const char *login); int getpty(char *pty, char *tty); + + BWindow* fDesktopWindow; + LoginWindow* fLoginWindow; + //TODO: + //BShelf* fDesktopShelf; }; #endif // _LOGINAPP_H_ diff --git a/src/apps/login/LoginView.cpp b/src/apps/login/LoginView.cpp index c32a8371f2..e98dbed48b 100644 --- a/src/apps/login/LoginView.cpp +++ b/src/apps/login/LoginView.cpp @@ -1,4 +1,5 @@ #include +#include #include #include diff --git a/src/apps/login/LoginView.h b/src/apps/login/LoginView.h index 6c19adf357..c389cd9dfd 100644 --- a/src/apps/login/LoginView.h +++ b/src/apps/login/LoginView.h @@ -34,7 +34,5 @@ private: BButton* fRebootButton; BButton* fLoginButton; BStringView* fInfoView; - //TODO: - //BShelf* fShelf; }; diff --git a/src/apps/login/LoginWindow.cpp b/src/apps/login/LoginWindow.cpp index d59c7125b5..801cb138bc 100644 --- a/src/apps/login/LoginWindow.cpp +++ b/src/apps/login/LoginWindow.cpp @@ -1,9 +1,12 @@ #include "LoginWindow.h" #include "LoginView.h" +#define WINDOW_FEEL B_NORMAL_WINDOW_FEEL +//#define WINDOW_FEEL B_FLOATING_ALL_WINDOW_FEEL + LoginWindow::LoginWindow(BRect frame) : BWindow(frame, "Welcome to Haiku", B_TITLED_WINDOW_LOOK, - B_NORMAL_WINDOW_FEEL/*B_FLOATING_ALL_WINDOW_FEEL*/, + WINDOW_FEEL, B_NOT_MOVABLE | B_NOT_CLOSABLE | B_NOT_ZOOMABLE | B_NOT_MINIMIZABLE | B_NOT_RESIZABLE | B_ASYNCHRONOUS_CONTROLS)