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