]>
Commit | Line | Data |
---|---|---|
23324ae1 FM |
1 | ///////////////////////////////////////////////////////////////////////////// |
2 | // Name: settings.h | |
e54c96f1 | 3 | // Purpose: interface of wxSystemSettings |
23324ae1 FM |
4 | // Author: wxWidgets team |
5 | // RCS-ID: $Id$ | |
6 | // Licence: wxWindows license | |
7 | ///////////////////////////////////////////////////////////////////////////// | |
8 | ||
9 | /** | |
10 | @class wxSystemSettings | |
7c913512 | 11 | |
23324ae1 FM |
12 | wxSystemSettings allows the application to ask for details about |
13 | the system. This can include settings such as standard colours, fonts, | |
14 | and user interface element sizes. | |
7c913512 | 15 | |
23324ae1 FM |
16 | @library{wxcore} |
17 | @category{misc} | |
7c913512 | 18 | |
e54c96f1 | 19 | @see wxFont, wxColour |
23324ae1 FM |
20 | */ |
21 | class wxSystemSettings : public wxObject | |
22 | { | |
23 | public: | |
24 | /** | |
25 | Default constructor. You don't need to create an instance of wxSystemSettings | |
26 | since all of its functions are static. | |
27 | */ | |
28 | wxSystemSettings(); | |
29 | ||
30 | /** | |
31 | Returns a system colour. | |
4cc4bfaf | 32 | @a index can be one of: |
3c4f71cc | 33 | |
23324ae1 | 34 | @b wxSYS_COLOUR_SCROLLBAR |
3c4f71cc | 35 | |
23324ae1 | 36 | The scrollbar grey area. |
3c4f71cc | 37 | |
23324ae1 | 38 | @b wxSYS_COLOUR_BACKGROUND |
3c4f71cc | 39 | |
23324ae1 | 40 | The desktop colour. |
3c4f71cc | 41 | |
23324ae1 | 42 | @b wxSYS_COLOUR_ACTIVECAPTION |
3c4f71cc | 43 | |
23324ae1 | 44 | Active window caption. |
3c4f71cc | 45 | |
23324ae1 | 46 | @b wxSYS_COLOUR_INACTIVECAPTION |
3c4f71cc | 47 | |
23324ae1 | 48 | Inactive window caption. |
3c4f71cc | 49 | |
23324ae1 | 50 | @b wxSYS_COLOUR_MENU |
3c4f71cc | 51 | |
23324ae1 | 52 | Menu background. |
3c4f71cc | 53 | |
23324ae1 | 54 | @b wxSYS_COLOUR_WINDOW |
3c4f71cc | 55 | |
23324ae1 | 56 | Window background. |
3c4f71cc | 57 | |
23324ae1 | 58 | @b wxSYS_COLOUR_WINDOWFRAME |
3c4f71cc | 59 | |
23324ae1 | 60 | Window frame. |
3c4f71cc | 61 | |
23324ae1 | 62 | @b wxSYS_COLOUR_MENUTEXT |
3c4f71cc | 63 | |
23324ae1 | 64 | Menu text. |
3c4f71cc | 65 | |
23324ae1 | 66 | @b wxSYS_COLOUR_WINDOWTEXT |
3c4f71cc | 67 | |
23324ae1 | 68 | Text in windows. |
3c4f71cc | 69 | |
23324ae1 | 70 | @b wxSYS_COLOUR_CAPTIONTEXT |
3c4f71cc | 71 | |
23324ae1 | 72 | Text in caption, size box and scrollbar arrow box. |
3c4f71cc | 73 | |
23324ae1 | 74 | @b wxSYS_COLOUR_ACTIVEBORDER |
3c4f71cc | 75 | |
23324ae1 | 76 | Active window border. |
3c4f71cc | 77 | |
23324ae1 | 78 | @b wxSYS_COLOUR_INACTIVEBORDER |
3c4f71cc | 79 | |
23324ae1 | 80 | Inactive window border. |
3c4f71cc | 81 | |
23324ae1 | 82 | @b wxSYS_COLOUR_APPWORKSPACE |
3c4f71cc | 83 | |
23324ae1 | 84 | Background colour MDI applications. |
3c4f71cc | 85 | |
23324ae1 | 86 | @b wxSYS_COLOUR_HIGHLIGHT |
3c4f71cc | 87 | |
23324ae1 | 88 | Item(s) selected in a control. |
3c4f71cc | 89 | |
23324ae1 | 90 | @b wxSYS_COLOUR_HIGHLIGHTTEXT |
3c4f71cc | 91 | |
23324ae1 | 92 | Text of item(s) selected in a control. |
3c4f71cc | 93 | |
23324ae1 | 94 | @b wxSYS_COLOUR_BTNFACE |
3c4f71cc | 95 | |
23324ae1 | 96 | Face shading on push buttons. |
3c4f71cc | 97 | |
23324ae1 | 98 | @b wxSYS_COLOUR_BTNSHADOW |
3c4f71cc | 99 | |
23324ae1 | 100 | Edge shading on push buttons. |
3c4f71cc | 101 | |
23324ae1 | 102 | @b wxSYS_COLOUR_GRAYTEXT |
3c4f71cc | 103 | |
23324ae1 | 104 | Greyed (disabled) text. |
3c4f71cc | 105 | |
23324ae1 | 106 | @b wxSYS_COLOUR_BTNTEXT |
3c4f71cc | 107 | |
23324ae1 | 108 | Text on push buttons. |
3c4f71cc | 109 | |
23324ae1 | 110 | @b wxSYS_COLOUR_INACTIVECAPTIONTEXT |
3c4f71cc | 111 | |
23324ae1 | 112 | Colour of text in active captions. |
3c4f71cc | 113 | |
23324ae1 | 114 | @b wxSYS_COLOUR_BTNHIGHLIGHT |
3c4f71cc | 115 | |
23324ae1 | 116 | Highlight colour for buttons (same as wxSYS_COLOUR_3DHILIGHT). |
3c4f71cc | 117 | |
23324ae1 | 118 | @b wxSYS_COLOUR_3DDKSHADOW |
3c4f71cc | 119 | |
23324ae1 | 120 | Dark shadow for three-dimensional display elements. |
3c4f71cc | 121 | |
23324ae1 | 122 | @b wxSYS_COLOUR_3DLIGHT |
3c4f71cc | 123 | |
23324ae1 | 124 | Light colour for three-dimensional display elements. |
3c4f71cc | 125 | |
23324ae1 | 126 | @b wxSYS_COLOUR_INFOTEXT |
3c4f71cc | 127 | |
23324ae1 | 128 | Text colour for tooltip controls. |
3c4f71cc | 129 | |
23324ae1 | 130 | @b wxSYS_COLOUR_INFOBK |
3c4f71cc | 131 | |
23324ae1 | 132 | Background colour for tooltip controls. |
3c4f71cc | 133 | |
23324ae1 | 134 | @b wxSYS_COLOUR_DESKTOP |
3c4f71cc | 135 | |
23324ae1 | 136 | Same as wxSYS_COLOUR_BACKGROUND. |
3c4f71cc | 137 | |
23324ae1 | 138 | @b wxSYS_COLOUR_3DFACE |
3c4f71cc | 139 | |
23324ae1 | 140 | Same as wxSYS_COLOUR_BTNFACE. |
3c4f71cc | 141 | |
23324ae1 | 142 | @b wxSYS_COLOUR_3DSHADOW |
3c4f71cc | 143 | |
23324ae1 | 144 | Same as wxSYS_COLOUR_BTNSHADOW. |
3c4f71cc | 145 | |
23324ae1 | 146 | @b wxSYS_COLOUR_3DHIGHLIGHT |
3c4f71cc | 147 | |
23324ae1 | 148 | Same as wxSYS_COLOUR_BTNHIGHLIGHT. |
3c4f71cc | 149 | |
23324ae1 | 150 | @b wxSYS_COLOUR_3DHILIGHT |
3c4f71cc | 151 | |
23324ae1 | 152 | Same as wxSYS_COLOUR_BTNHIGHLIGHT. |
3c4f71cc | 153 | |
23324ae1 | 154 | @b wxSYS_COLOUR_BTNHILIGHT |
3c4f71cc | 155 | |
23324ae1 FM |
156 | Same as wxSYS_COLOUR_BTNHIGHLIGHT. |
157 | */ | |
158 | static wxColour GetColour(wxSystemColour index); | |
159 | ||
160 | /** | |
161 | Returns a system font. | |
4cc4bfaf | 162 | @a index can be one of: |
3c4f71cc | 163 | |
23324ae1 | 164 | @b wxSYS_OEM_FIXED_FONT |
3c4f71cc | 165 | |
23324ae1 | 166 | Original equipment manufacturer dependent fixed-pitch font. |
3c4f71cc | 167 | |
23324ae1 | 168 | @b wxSYS_ANSI_FIXED_FONT |
3c4f71cc | 169 | |
23324ae1 | 170 | Windows fixed-pitch font. |
3c4f71cc | 171 | |
23324ae1 | 172 | @b wxSYS_ANSI_VAR_FONT |
3c4f71cc | 173 | |
23324ae1 | 174 | Windows variable-pitch (proportional) font. |
3c4f71cc | 175 | |
23324ae1 | 176 | @b wxSYS_SYSTEM_FONT |
3c4f71cc | 177 | |
23324ae1 | 178 | System font. |
3c4f71cc | 179 | |
23324ae1 | 180 | @b wxSYS_DEVICE_DEFAULT_FONT |
3c4f71cc | 181 | |
23324ae1 | 182 | Device-dependent font (Windows NT only). |
3c4f71cc | 183 | |
23324ae1 | 184 | @b wxSYS_DEFAULT_GUI_FONT |
3c4f71cc | 185 | |
23324ae1 FM |
186 | Default font for user interface |
187 | objects such as menus and dialog boxes. Note that with modern GUIs nothing | |
188 | guarantees that the same font is used for all GUI elements, so some controls | |
189 | might use a different font by default. | |
190 | */ | |
191 | static wxFont GetFont(wxSystemFont index); | |
192 | ||
193 | /** | |
194 | Returns the value of a system metric, or -1 if the metric is not supported on | |
195 | the current system. | |
4cc4bfaf | 196 | The value of @a win determines if the metric returned is a global value or |
23324ae1 FM |
197 | a wxWindow based value, in which case it might determine the widget, the |
198 | display the window is on, or something similar. The window given should be as | |
199 | close to the | |
200 | metric as possible (e.g a wxTopLevelWindow in case of the wxSYS_CAPTION_Y | |
201 | metric). | |
4cc4bfaf | 202 | @a index can be one of: |
3c4f71cc | 203 | |
23324ae1 | 204 | @b wxSYS_MOUSE_BUTTONS |
3c4f71cc | 205 | |
23324ae1 | 206 | Number of buttons on mouse, or zero if no mouse was installed. |
3c4f71cc | 207 | |
23324ae1 | 208 | @b wxSYS_BORDER_X |
3c4f71cc | 209 | |
23324ae1 | 210 | Width of single border. |
3c4f71cc | 211 | |
23324ae1 | 212 | @b wxSYS_BORDER_Y |
3c4f71cc | 213 | |
23324ae1 | 214 | Height of single border. |
3c4f71cc | 215 | |
23324ae1 | 216 | @b wxSYS_CURSOR_X |
3c4f71cc | 217 | |
23324ae1 | 218 | Width of cursor. |
3c4f71cc | 219 | |
23324ae1 | 220 | @b wxSYS_CURSOR_Y |
3c4f71cc | 221 | |
23324ae1 | 222 | Height of cursor. |
3c4f71cc | 223 | |
23324ae1 | 224 | @b wxSYS_DCLICK_X |
3c4f71cc | 225 | |
23324ae1 FM |
226 | Width in pixels of rectangle within which two successive mouse |
227 | clicks must fall to generate a double-click. | |
3c4f71cc | 228 | |
23324ae1 | 229 | @b wxSYS_DCLICK_Y |
3c4f71cc | 230 | |
23324ae1 FM |
231 | Height in pixels of rectangle within which two successive mouse |
232 | clicks must fall to generate a double-click. | |
3c4f71cc | 233 | |
23324ae1 | 234 | @b wxSYS_DCLICK_MSEC |
3c4f71cc | 235 | |
23324ae1 FM |
236 | Maximal time, in milliseconds, which may |
237 | pass between subsequent clicks for a double click to be generated. | |
3c4f71cc | 238 | |
23324ae1 | 239 | @b wxSYS_DRAG_X |
3c4f71cc | 240 | |
23324ae1 FM |
241 | Width in pixels of a rectangle centered on a drag point |
242 | to allow for limited movement of the mouse pointer before a drag operation | |
243 | begins. | |
3c4f71cc | 244 | |
23324ae1 | 245 | @b wxSYS_DRAG_Y |
3c4f71cc | 246 | |
23324ae1 FM |
247 | Height in pixels of a rectangle centered on a drag point |
248 | to allow for limited movement of the mouse pointer before a drag operation | |
249 | begins. | |
3c4f71cc | 250 | |
23324ae1 | 251 | @b wxSYS_EDGE_X |
3c4f71cc | 252 | |
7c913512 | 253 | Width of a 3D border, in pixels. |
3c4f71cc | 254 | |
23324ae1 | 255 | @b wxSYS_EDGE_Y |
3c4f71cc | 256 | |
7c913512 | 257 | Height of a 3D border, in pixels. |
3c4f71cc | 258 | |
23324ae1 | 259 | @b wxSYS_HSCROLL_ARROW_X |
3c4f71cc | 260 | |
23324ae1 | 261 | Width of arrow bitmap on horizontal scrollbar. |
3c4f71cc | 262 | |
23324ae1 | 263 | @b wxSYS_HSCROLL_ARROW_Y |
3c4f71cc | 264 | |
23324ae1 | 265 | Height of arrow bitmap on horizontal scrollbar. |
3c4f71cc | 266 | |
23324ae1 | 267 | @b wxSYS_HTHUMB_X |
3c4f71cc | 268 | |
23324ae1 | 269 | Width of horizontal scrollbar thumb. |
3c4f71cc | 270 | |
23324ae1 | 271 | @b wxSYS_ICON_X |
3c4f71cc | 272 | |
23324ae1 | 273 | The default width of an icon. |
3c4f71cc | 274 | |
23324ae1 | 275 | @b wxSYS_ICON_Y |
3c4f71cc | 276 | |
23324ae1 | 277 | The default height of an icon. |
3c4f71cc | 278 | |
23324ae1 | 279 | @b wxSYS_ICONSPACING_X |
3c4f71cc | 280 | |
23324ae1 FM |
281 | Width of a grid cell for items in large icon view, |
282 | in pixels. Each item fits into a rectangle of this size when arranged. | |
3c4f71cc | 283 | |
23324ae1 | 284 | @b wxSYS_ICONSPACING_Y |
3c4f71cc | 285 | |
23324ae1 FM |
286 | Height of a grid cell for items in large icon view, |
287 | in pixels. Each item fits into a rectangle of this size when arranged. | |
3c4f71cc | 288 | |
23324ae1 | 289 | @b wxSYS_WINDOWMIN_X |
3c4f71cc | 290 | |
23324ae1 | 291 | Minimum width of a window. |
3c4f71cc | 292 | |
23324ae1 | 293 | @b wxSYS_WINDOWMIN_Y |
3c4f71cc | 294 | |
23324ae1 | 295 | Minimum height of a window. |
3c4f71cc | 296 | |
23324ae1 | 297 | @b wxSYS_SCREEN_X |
3c4f71cc | 298 | |
23324ae1 | 299 | Width of the screen in pixels. |
3c4f71cc | 300 | |
23324ae1 | 301 | @b wxSYS_SCREEN_Y |
3c4f71cc | 302 | |
23324ae1 | 303 | Height of the screen in pixels. |
3c4f71cc | 304 | |
23324ae1 | 305 | @b wxSYS_FRAMESIZE_X |
3c4f71cc | 306 | |
23324ae1 | 307 | Width of the window frame for a wxTHICK_FRAME window. |
3c4f71cc | 308 | |
23324ae1 | 309 | @b wxSYS_FRAMESIZE_Y |
3c4f71cc | 310 | |
23324ae1 | 311 | Height of the window frame for a wxTHICK_FRAME window. |
3c4f71cc | 312 | |
23324ae1 | 313 | @b wxSYS_SMALLICON_X |
3c4f71cc | 314 | |
23324ae1 | 315 | Recommended width of a small icon (in window captions, and small icon view). |
3c4f71cc | 316 | |
23324ae1 | 317 | @b wxSYS_SMALLICON_Y |
3c4f71cc | 318 | |
23324ae1 | 319 | Recommended height of a small icon (in window captions, and small icon view). |
3c4f71cc | 320 | |
23324ae1 | 321 | @b wxSYS_HSCROLL_Y |
3c4f71cc | 322 | |
23324ae1 | 323 | Height of horizontal scrollbar in pixels. |
3c4f71cc | 324 | |
23324ae1 | 325 | @b wxSYS_VSCROLL_X |
3c4f71cc | 326 | |
23324ae1 | 327 | Width of vertical scrollbar in pixels. |
3c4f71cc | 328 | |
23324ae1 | 329 | @b wxSYS_VSCROLL_ARROW_X |
3c4f71cc | 330 | |
23324ae1 | 331 | Width of arrow bitmap on a vertical scrollbar. |
3c4f71cc | 332 | |
23324ae1 | 333 | @b wxSYS_VSCROLL_ARROW_Y |
3c4f71cc | 334 | |
23324ae1 | 335 | Height of arrow bitmap on a vertical scrollbar. |
3c4f71cc | 336 | |
23324ae1 | 337 | @b wxSYS_VTHUMB_Y |
3c4f71cc | 338 | |
23324ae1 | 339 | Height of vertical scrollbar thumb. |
3c4f71cc | 340 | |
23324ae1 | 341 | @b wxSYS_CAPTION_Y |
3c4f71cc | 342 | |
23324ae1 | 343 | Height of normal caption area. |
3c4f71cc | 344 | |
23324ae1 | 345 | @b wxSYS_MENU_Y |
3c4f71cc | 346 | |
23324ae1 | 347 | Height of single-line menu bar. |
3c4f71cc | 348 | |
23324ae1 | 349 | @b wxSYS_NETWORK_PRESENT |
3c4f71cc | 350 | |
23324ae1 | 351 | 1 if there is a network present, 0 otherwise. |
3c4f71cc | 352 | |
23324ae1 | 353 | @b wxSYS_PENWINDOWS_PRESENT |
3c4f71cc | 354 | |
23324ae1 | 355 | 1 if PenWindows is installed, 0 otherwise. |
3c4f71cc | 356 | |
23324ae1 | 357 | @b wxSYS_SHOW_SOUNDS |
3c4f71cc | 358 | |
23324ae1 FM |
359 | Non-zero if the user requires an application to present information visually in |
360 | situations | |
361 | where it would otherwise present the information only in audible form; zero | |
362 | otherwise. | |
3c4f71cc | 363 | |
23324ae1 | 364 | @b wxSYS_SWAP_BUTTONS |
3c4f71cc | 365 | |
23324ae1 FM |
366 | Non-zero if the meanings of the left and right mouse buttons are swapped; zero |
367 | otherwise. | |
3c4f71cc | 368 | |
4cc4bfaf FM |
369 | @a win is a pointer to the window for which the metric is requested. |
370 | Specifying the @a win parameter is encouraged, because some metrics on some | |
23324ae1 FM |
371 | ports are not supported without one, |
372 | or they might be capable of reporting better values if given one. If a window | |
373 | does not make sense for a metric, | |
374 | one should still be given, as for example it might determine which displays | |
375 | cursor width is requested with | |
376 | wxSYS_CURSOR_X. | |
377 | */ | |
4cc4bfaf | 378 | static int GetMetric(wxSystemMetric index, wxWindow* win = NULL); |
23324ae1 FM |
379 | |
380 | /** | |
381 | Returns the screen type. The return value is one of: | |
3c4f71cc | 382 | |
23324ae1 | 383 | @b wxSYS_SCREEN_NONE |
3c4f71cc | 384 | |
23324ae1 | 385 | Undefined screen type |
3c4f71cc | 386 | |
23324ae1 | 387 | @b wxSYS_SCREEN_TINY |
3c4f71cc | 388 | |
23324ae1 | 389 | Tiny screen, less than 320x240 |
3c4f71cc | 390 | |
23324ae1 | 391 | @b wxSYS_SCREEN_PDA |
3c4f71cc | 392 | |
23324ae1 | 393 | PDA screen, 320x240 or more but less than 640x480 |
3c4f71cc | 394 | |
23324ae1 | 395 | @b wxSYS_SCREEN_SMALL |
3c4f71cc | 396 | |
23324ae1 | 397 | Small screen, 640x480 or more but less than 800x600 |
3c4f71cc | 398 | |
23324ae1 | 399 | @b wxSYS_SCREEN_DESKTOP |
3c4f71cc | 400 | |
23324ae1 FM |
401 | Desktop screen, 800x600 or more |
402 | */ | |
403 | static wxSystemScreenType GetScreenType(); | |
404 | }; | |
e54c96f1 | 405 |