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