1 /* 2 * Copyright 2001-2005, Haiku. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Axel Dörfler, axeld@pinc-software.de 7 */ 8 #ifndef DESKTOP_SETTINGS_H 9 #define DESKTOP_SETTINGS_H 10 11 12 #include <InterfaceDefs.h> 13 #include <Menu.h> 14 #include <Message.h> 15 16 class Desktop; 17 class ServerFont; 18 19 20 static const int32 kMaxWorkspaces = 32; 21 22 23 class DesktopSettings { 24 public: 25 DesktopSettings(Desktop* desktop); 26 ~DesktopSettings(); 27 28 status_t Save(); 29 30 void SetDefaultPlainFont(const ServerFont& font); 31 void GetDefaultPlainFont(ServerFont& font) const; 32 33 void SetDefaultBoldFont(const ServerFont& font); 34 void GetDefaultBoldFont(ServerFont& font) const; 35 36 void SetDefaultFixedFont(const ServerFont& font); 37 void GetDefaultFixedFont(ServerFont& font) const; 38 39 void SetScrollBarInfo(const scroll_bar_info& info); 40 void GetScrollBarInfo(scroll_bar_info& info) const; 41 42 void SetMenuInfo(const menu_info& info); 43 void GetMenuInfo(menu_info& info) const; 44 45 void SetMouseMode(mode_mouse mode); 46 mode_mouse MouseMode() const; 47 bool FocusFollowsMouse() const; 48 49 void SetWorkspacesCount(int32 number); 50 int32 WorkspacesCount() const; 51 52 void SetWorkspacesMessage(int32 index, BMessage& message); 53 const BMessage* WorkspacesMessage(int32 index) const; 54 55 private: 56 class Private; 57 friend class Desktop; 58 59 Private* fSettings; 60 }; 61 62 #endif /* DESKTOP_SETTINGS_H */ 63