1 /* 2 * Copyright 2003-2010, Haiku. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Michael Phipps 7 * Jérôme Duval, jerome.duval@free.fr 8 * Axel Dörfler, axeld@pinc-software.de 9 */ 10 #ifndef SCREEN_SAVER_WINDOW_H 11 #define SCREEN_SAVER_WINDOW_H 12 13 14 #include "PasswordWindow.h" 15 #include "ScreenSaverSettings.h" 16 17 #include <Box.h> 18 #include <CheckBox.h> 19 #include <FilePanel.h> 20 #include <Slider.h> 21 #include <ListView.h> 22 23 24 class BButton; 25 class BTabView; 26 27 class ModulesView; 28 class ScreenCornerSelector; 29 class ScreenSaverRunner; 30 class TimeSlider; 31 32 33 class ScreenSaverWindow : public BWindow { 34 public: 35 ScreenSaverWindow(); 36 virtual ~ScreenSaverWindow(); 37 38 virtual void MessageReceived(BMessage* message); 39 virtual void ScreenChanged(BRect frame, color_space space); 40 virtual bool QuitRequested(); 41 42 void LoadSettings(); 43 void SetMinimalSizeLimit(float width, float height); 44 45 private: 46 void _SetupFadeTab(BRect frame); 47 void _UpdateTurnOffScreen(); 48 void _UpdateStatus(); 49 50 private: 51 float fMinWidth; 52 float fMinHeight; 53 ScreenSaverSettings fSettings; 54 uint32 fTurnOffScreenFlags; 55 56 BView* fFadeView; 57 ModulesView* fModulesView; 58 BTabView* fTabView; 59 60 BCheckBox* fEnableCheckBox; 61 TimeSlider* fRunSlider; 62 63 BCheckBox* fTurnOffCheckBox; 64 TimeSlider* fTurnOffSlider; 65 66 BCheckBox* fPasswordCheckBox; 67 TimeSlider* fPasswordSlider; 68 BButton* fPasswordButton; 69 PasswordWindow* fPasswordWindow; 70 71 ScreenCornerSelector* fFadeNow; 72 ScreenCornerSelector* fFadeNever; 73 }; 74 75 76 static const int32 kMsgUpdateList = 'UPDL'; 77 78 79 #endif // SCREEN_SAVER_WINDOW_H 80