xref: /haiku/src/preferences/appearance/LookAndFeelSettingsView.h (revision 7ee53ed3bd2222305c93a4959f8c587c373ed97c)
1 /*
2  *  Copyright 2010-2012 Haiku, Inc. All rights reserved.
3  *  Distributed under the terms of the MIT license.
4  *
5  *  Authors:
6  *      Alexander von Gluck, kallisti5@unixzen.com
7  *		Stephan Aßmus <superstippi@gmx.de>
8  *		Ryan Leavengood <leavengood@gmail.com>
9  */
10 #ifndef LOOK_AND_FEEL_SETTINGS_VIEW_H
11 #define LOOK_AND_FEEL_SETTINGS_VIEW_H
12 
13 
14 #include <DecorInfo.h>
15 #include <String.h>
16 #include <View.h>
17 
18 
19 class BButton;
20 class BCheckBox;
21 class BMenuField;
22 class BPopUpMenu;
23 
24 
25 class LookAndFeelSettingsView : public BView {
26 public:
27 								LookAndFeelSettingsView(const char* name);
28 	virtual						~LookAndFeelSettingsView();
29 
30 	virtual	void				AttachedToWindow();
31 	virtual	void				MessageReceived(BMessage* message);
32 
33 			void				SetDefaults();
34 			void				Revert();
35 			bool				IsDefaultable();
36 			bool				IsRevertable();
37 
38 private:
39 			void				_SetDecor(const BString& name);
40 			void				_SetDecor(BPrivate::DecorInfo* decorInfo);
41 
42 			void				_BuildDecorMenu();
43 			void				_AdoptToCurrentDecor();
44 			void				_AdoptInterfaceToCurrentDecor();
45 			bool				_GetDoubleScrollbarArrowsSetting();
46 			void				_SetDoubleScrollbarArrowsSetting(bool value);
47 
48 private:
49 			DecorInfoUtility	fDecorUtility;
50 
51 			BButton*			fDecorInfoButton;
52 			BMenuField*			fDecorMenuField;
53 			BPopUpMenu*			fDecorMenu;
54 			BCheckBox*			fDoubleScrollbarArrowsCheckBox;
55 
56 			BString				fSavedDecor;
57 			BString				fCurrentDecor;
58 			bool				fSavedDoubleArrowsValue;
59 };
60 
61 #endif // LOOK_AND_FEEL_SETTINGS_VIEW_H
62