]>
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 | |
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 | */ |
22 | class wxSystemSettings : public wxObject | |
23 | { | |
24 | public: | |
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 |