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