xref: /haiku/src/preferences/appearance/LookAndFeelSettingsView.h (revision c237c4ce593ee823d9867fd997e51e4c447f5623)
1 /*
2  *  Copyright 2010-2020 Haiku, Inc. All rights reserved.
3  *  Distributed under the terms of the MIT license.
4  *
5  *	Authors:
6  *		Stephan Aßmus <superstippi@gmx.de>
7  *		Alexander von Gluck <kallisti5@unixzen.com>
8  *		Ryan Leavengood <leavengood@gmail.com>
9  *		John Scipione <jscipione@gmail.com>
10  */
11 #ifndef LOOK_AND_FEEL_SETTINGS_VIEW_H
12 #define LOOK_AND_FEEL_SETTINGS_VIEW_H
13 
14 
15 #include <DecorInfo.h>
16 #include <String.h>
17 #include <View.h>
18 
19 
20 class BButton;
21 class BCheckBox;
22 class BMenuField;
23 class BPopUpMenu;
24 class FakeScrollBar;
25 
26 class LookAndFeelSettingsView : public BView {
27 public:
28 								LookAndFeelSettingsView(const char* name);
29 	virtual						~LookAndFeelSettingsView();
30 
31 	virtual	void				AttachedToWindow();
32 	virtual	void				MessageReceived(BMessage* message);
33 
34 			bool				IsDefaultable();
35 			void				SetDefaults();
36 
37 			bool				IsRevertable();
38 			void				Revert();
39 
40 private:
41 			void				_SetDecor(const BString& name);
42 			void				_SetDecor(BPrivate::DecorInfo* decorInfo);
43 			void				_BuildDecorMenu();
44 			const char*			_DecorLabel(const BString& name);
45 
46 			void				_SetControlLook(const BString& path);
47 			void				_BuildControlLookMenu();
48 			const char*			_ControlLookLabel(const char* name);
49 
50 			bool				_DoubleScrollBarArrows();
51 			void				_SetDoubleScrollBarArrows(bool doubleArrows);
52 
53 private:
54 			DecorInfoUtility	fDecorUtility;
55 
56 			BButton*			fDecorInfoButton;
57 			BMenuField*			fDecorMenuField;
58 			BPopUpMenu*			fDecorMenu;
59 
60 			BButton*			fControlLookInfoButton;
61 			BMenuField*			fControlLookMenuField;
62 			BPopUpMenu*			fControlLookMenu;
63 
64 			FakeScrollBar*		fArrowStyleSingle;
65 			FakeScrollBar*		fArrowStyleDouble;
66 
67 			BString				fSavedDecor;
68 			BString				fCurrentDecor;
69 
70 			BString				fSavedControlLook;
71 			BString				fCurrentControlLook;
72 
73 			bool				fSavedDoubleArrowsValue : 1;
74 };
75 
76 
77 #endif // LOOK_AND_FEEL_SETTINGS_VIEW_H
78