xref: /haiku/src/preferences/screensaver/ScreenSaverWindow.h (revision 675ffabd70492a962f8c0288a32208c22ce5de18)
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