1 ///////////////////////////////////////////////////////////////////////////// 2 // Name: wx/settings.h 3 // Purpose: wxSystemSettings class 4 // Author: Julian Smart 5 // Modified by: 6 // Created: 01/02/97 7 // RCS-ID: $Id: settings.h 67017 2011-02-25 09:37:28Z JS $ 8 // Copyright: (c) Julian Smart 9 // Licence: wxWindows licence 10 ///////////////////////////////////////////////////////////////////////////// 11 12 #ifndef _WX_SETTINGS_H_BASE_ 13 #define _WX_SETTINGS_H_BASE_ 14 15 #include "wx/colour.h" 16 #include "wx/font.h" 17 18 class WXDLLIMPEXP_FWD_CORE wxWindow; 19 20 // possible values for wxSystemSettings::GetFont() parameter 21 // 22 // NB: wxMSW assumes that they have the same values as the parameters of 23 // Windows GetStockObject() API, don't change the values! 24 enum wxSystemFont 25 { 26 wxSYS_OEM_FIXED_FONT = 10, 27 wxSYS_ANSI_FIXED_FONT, 28 wxSYS_ANSI_VAR_FONT, 29 wxSYS_SYSTEM_FONT, 30 wxSYS_DEVICE_DEFAULT_FONT, 31 wxSYS_DEFAULT_PALETTE, 32 wxSYS_SYSTEM_FIXED_FONT, 33 wxSYS_DEFAULT_GUI_FONT, 34 35 // this was just a temporary aberration, do not use it any more 36 wxSYS_ICONTITLE_FONT = wxSYS_DEFAULT_GUI_FONT 37 }; 38 39 // possible values for wxSystemSettings::GetColour() parameter 40 // 41 // NB: wxMSW assumes that they have the same values as the parameters of 42 // Windows GetSysColor() API, don't change the values! 43 enum wxSystemColour 44 { 45 wxSYS_COLOUR_SCROLLBAR, 46 wxSYS_COLOUR_BACKGROUND, 47 wxSYS_COLOUR_DESKTOP = wxSYS_COLOUR_BACKGROUND, 48 wxSYS_COLOUR_ACTIVECAPTION, 49 wxSYS_COLOUR_INACTIVECAPTION, 50 wxSYS_COLOUR_MENU, 51 wxSYS_COLOUR_WINDOW, 52 wxSYS_COLOUR_WINDOWFRAME, 53 wxSYS_COLOUR_MENUTEXT, 54 wxSYS_COLOUR_WINDOWTEXT, 55 wxSYS_COLOUR_CAPTIONTEXT, 56 wxSYS_COLOUR_ACTIVEBORDER, 57 wxSYS_COLOUR_INACTIVEBORDER, 58 wxSYS_COLOUR_APPWORKSPACE, 59 wxSYS_COLOUR_HIGHLIGHT, 60 wxSYS_COLOUR_HIGHLIGHTTEXT, 61 wxSYS_COLOUR_BTNFACE, 62 wxSYS_COLOUR_3DFACE = wxSYS_COLOUR_BTNFACE, 63 wxSYS_COLOUR_BTNSHADOW, 64 wxSYS_COLOUR_3DSHADOW = wxSYS_COLOUR_BTNSHADOW, 65 wxSYS_COLOUR_GRAYTEXT, 66 wxSYS_COLOUR_BTNTEXT, 67 wxSYS_COLOUR_INACTIVECAPTIONTEXT, 68 wxSYS_COLOUR_BTNHIGHLIGHT, 69 wxSYS_COLOUR_BTNHILIGHT = wxSYS_COLOUR_BTNHIGHLIGHT, 70 wxSYS_COLOUR_3DHIGHLIGHT = wxSYS_COLOUR_BTNHIGHLIGHT, 71 wxSYS_COLOUR_3DHILIGHT = wxSYS_COLOUR_BTNHIGHLIGHT, 72 wxSYS_COLOUR_3DDKSHADOW, 73 wxSYS_COLOUR_3DLIGHT, 74 wxSYS_COLOUR_INFOTEXT, 75 wxSYS_COLOUR_INFOBK, 76 wxSYS_COLOUR_LISTBOX, 77 wxSYS_COLOUR_HOTLIGHT, 78 wxSYS_COLOUR_GRADIENTACTIVECAPTION, 79 wxSYS_COLOUR_GRADIENTINACTIVECAPTION, 80 wxSYS_COLOUR_MENUHILIGHT, 81 wxSYS_COLOUR_MENUBAR, 82 wxSYS_COLOUR_LISTBOXTEXT, 83 wxSYS_COLOUR_LISTBOXHIGHLIGHTTEXT, 84 85 wxSYS_COLOUR_MAX 86 }; 87 88 // possible values for wxSystemSettings::GetMetric() index parameter 89 // 90 // NB: update the conversion table in msw/settings.cpp if you change the values 91 // of the elements of this enum 92 enum wxSystemMetric 93 { 94 wxSYS_MOUSE_BUTTONS = 1, 95 wxSYS_BORDER_X, 96 wxSYS_BORDER_Y, 97 wxSYS_CURSOR_X, 98 wxSYS_CURSOR_Y, 99 wxSYS_DCLICK_X, 100 wxSYS_DCLICK_Y, 101 wxSYS_DRAG_X, 102 wxSYS_DRAG_Y, 103 wxSYS_EDGE_X, 104 wxSYS_EDGE_Y, 105 wxSYS_HSCROLL_ARROW_X, 106 wxSYS_HSCROLL_ARROW_Y, 107 wxSYS_HTHUMB_X, 108 wxSYS_ICON_X, 109 wxSYS_ICON_Y, 110 wxSYS_ICONSPACING_X, 111 wxSYS_ICONSPACING_Y, 112 wxSYS_WINDOWMIN_X, 113 wxSYS_WINDOWMIN_Y, 114 wxSYS_SCREEN_X, 115 wxSYS_SCREEN_Y, 116 wxSYS_FRAMESIZE_X, 117 wxSYS_FRAMESIZE_Y, 118 wxSYS_SMALLICON_X, 119 wxSYS_SMALLICON_Y, 120 wxSYS_HSCROLL_Y, 121 wxSYS_VSCROLL_X, 122 wxSYS_VSCROLL_ARROW_X, 123 wxSYS_VSCROLL_ARROW_Y, 124 wxSYS_VTHUMB_Y, 125 wxSYS_CAPTION_Y, 126 wxSYS_MENU_Y, 127 wxSYS_NETWORK_PRESENT, 128 wxSYS_PENWINDOWS_PRESENT, 129 wxSYS_SHOW_SOUNDS, 130 wxSYS_SWAP_BUTTONS 131 }; 132 133 // possible values for wxSystemSettings::HasFeature() parameter 134 enum wxSystemFeature 135 { 136 wxSYS_CAN_DRAW_FRAME_DECORATIONS = 1, 137 wxSYS_CAN_ICONIZE_FRAME, 138 wxSYS_TABLET_PRESENT 139 }; 140 141 // values for different screen designs 142 enum wxSystemScreenType 143 { 144 wxSYS_SCREEN_NONE = 0, // not yet defined 145 146 wxSYS_SCREEN_TINY, // < 147 wxSYS_SCREEN_PDA, // >= 320x240 148 wxSYS_SCREEN_SMALL, // >= 640x480 149 wxSYS_SCREEN_DESKTOP // >= 800x600 150 }; 151 152 // ---------------------------------------------------------------------------- 153 // wxSystemSettingsNative: defines the API for wxSystemSettings class 154 // ---------------------------------------------------------------------------- 155 156 // this is a namespace rather than a class: it has only non virtual static 157 // functions 158 // 159 // also note that the methods are implemented in the platform-specific source 160 // files (i.e. this is not a real base class as we can't override its virtual 161 // functions because it doesn't have any) 162 163 class WXDLLEXPORT wxSystemSettingsNative 164 { 165 public: 166 // get a standard system colour 167 static wxColour GetColour(wxSystemColour index); 168 169 // get a standard system font 170 static wxFont GetFont(wxSystemFont index); 171 172 // get a system-dependent metric 173 static int GetMetric(wxSystemMetric index, wxWindow * win = NULL); 174 175 // return true if the port has certain feature 176 static bool HasFeature(wxSystemFeature index); 177 }; 178 179 // ---------------------------------------------------------------------------- 180 // include the declaration of the real platform-dependent class 181 // ---------------------------------------------------------------------------- 182 183 class WXDLLEXPORT wxSystemSettings : public wxSystemSettingsNative 184 { 185 public: 186 #ifdef __WXUNIVERSAL__ 187 // in wxUniversal we want to use the theme standard colours instead of the 188 // system ones, otherwise wxSystemSettings is just the same as 189 // wxSystemSettingsNative 190 static wxColour GetColour(wxSystemColour index); 191 #endif // __WXUNIVERSAL__ 192 193 // Get system screen design (desktop, pda, ..) used for 194 // laying out various dialogs. 195 static wxSystemScreenType GetScreenType(); 196 197 // Override default. 198 static void SetScreenType( wxSystemScreenType screen ); 199 200 // Value 201 static wxSystemScreenType ms_screen; 202 203 #if WXWIN_COMPATIBILITY_2_4 204 // the backwards compatible versions of wxSystemSettingsNative functions, 205 // don't use these methods in the new code! 206 wxDEPRECATED(static wxColour GetSystemColour(int index)); 207 wxDEPRECATED(static wxFont GetSystemFont(int index)); 208 wxDEPRECATED(static int GetSystemMetric(int index)); 209 #endif 210 }; 211 212 #endif 213 // _WX_SETTINGS_H_BASE_ 214 215