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
20class BButton;
21class BCheckBox;
22class BMenuField;
23class BPopUpMenu;
24class FakeScrollBar;
25
26class LookAndFeelSettingsView : public BView {
27public:
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
40private:
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
53private:
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