]>
Commit | Line | Data |
---|---|---|
1 | ///////////////////////////////////////////////////////////////////////////// | |
2 | // Name: sysopt.h | |
3 | // Purpose: interface of wxSystemOptions | |
4 | // Author: wxWidgets team | |
5 | // RCS-ID: $Id$ | |
6 | // Licence: wxWindows license | |
7 | ///////////////////////////////////////////////////////////////////////////// | |
8 | ||
9 | /** | |
10 | @class wxSystemOptions | |
11 | ||
12 | wxSystemOptions stores option/value pairs that wxWidgets itself or | |
13 | applications can use to alter behaviour at run-time. It can be | |
14 | used to optimize behaviour that doesn't deserve a distinct API, | |
15 | but is still important to be able to configure. | |
16 | ||
17 | These options are currently recognised by wxWidgets: | |
18 | ||
19 | ||
20 | @section sysopt_win Windows | |
21 | ||
22 | @beginFlagTable | |
23 | @flag{no-maskblt} | |
24 | 1 to never use WIN32's MaskBlt function, 0 to allow it to be used where possible. | |
25 | Default: 0. In some circumstances the MaskBlt function can be slower than using | |
26 | the fallback code, especially if using DC cacheing. By default, MaskBlt will be | |
27 | used where it is implemented by the operating system and driver. | |
28 | @flag{msw.remap} | |
29 | If 1 (the default), wxToolBar bitmap colours will be remapped to the current | |
30 | theme's values. Set this to 0 to disable this functionality, for example if | |
31 | you're using more than 16 colours in your tool bitmaps. | |
32 | @flag{msw.window.no-clip-children} | |
33 | If 1, windows will not automatically get the WS_CLIPCHILDREN style. | |
34 | This restores the way windows are refreshed back to the method used in | |
35 | versions of wxWidgets earlier than 2.5.4, and for some complex window | |
36 | hierarchies it can reduce apparent refresh delays. | |
37 | You may still specify wxCLIP_CHILDREN for individual windows. | |
38 | @flag{msw.notebook.themed-background} | |
39 | If set to 0, globally disables themed backgrounds on notebook pages. | |
40 | Note that this won't disable the theme on the actual notebook background | |
41 | (noticeable only if there are no pages). | |
42 | @flag{msw.staticbox.optimized-paint} | |
43 | If set to 0, switches off optimized wxStaticBox painting. | |
44 | Setting this to 0 causes more flicker, but allows applications to paint | |
45 | graphics on the parent of a static box (the optimized refresh causes any | |
46 | such drawing to disappear). | |
47 | @flag{msw.display.directdraw} | |
48 | If set to 1, use DirectDraw-based implementation of wxDisplay. | |
49 | By default the standard Win32 functions are used. | |
50 | @flag{msw.font.no-proof-quality} | |
51 | If set to 1, use default fonts quality instead of proof quality when | |
52 | creating fonts. With proof quality the fonts have slightly better | |
53 | appearance but not all fonts are available in this quality, | |
54 | e.g. the Terminal font in small sizes is not and this option may be | |
55 | used if wider fonts selection is more important than higher quality. | |
56 | @flag{wince.dialog.real-ok-cancel} | |
57 | The PocketPC guidelines recommend for Ok/Cancel dialogs to use an OK button | |
58 | located inside the caption bar and implement Cancel functionality through | |
59 | Undo outside the dialog. | |
60 | wxDialog::CreateButtonSizer will follow the native behaviour on WinCE but | |
61 | it can be overridden with real wxButtons by setting the option below to 1. | |
62 | @endFlagTable | |
63 | ||
64 | ||
65 | @section sysopt_gtk GTK+ | |
66 | ||
67 | @beginFlagTable | |
68 | @flag{gtk.tlw.can-set-transparent} | |
69 | wxTopLevelWindow::CanSetTransparent() method normally tries to detect | |
70 | automatically whether transparency for top level windows is currently | |
71 | supported, however this may sometimes fail and this option allows to | |
72 | override the automatic detection. Setting it to 1 makes the transparency | |
73 | be always available (setting it can still fail, of course) and setting it | |
74 | to 0 makes it always unavailable. | |
75 | @flag{gtk.desktop} | |
76 | This option can be set to override the default desktop environment | |
77 | determination. Supported values are GNOME and KDE. | |
78 | @flag{gtk.window.force-background-colour} | |
79 | If 1, the backgrounds of windows with the wxBG_STYLE_COLOUR background | |
80 | style are cleared forcibly instead of relying on the underlying GTK+ | |
81 | window colour. This works around a display problem when running | |
82 | applications under KDE with the gtk-qt theme installed (0.6 and below). | |
83 | @endFlagTable | |
84 | ||
85 | ||
86 | @section sysopt_mac Mac | |
87 | ||
88 | @beginFlagTable | |
89 | @flag{mac.window-plain-transition} | |
90 | If 1, uses a plainer transition when showing a window. | |
91 | You can also use the symbol wxMAC_WINDOW_PLAIN_TRANSITION. | |
92 | @flag{window-default-variant} | |
93 | The default variant used by windows (cast to integer from the wxWindowVariant enum). | |
94 | Also known as wxWINDOW_DEFAULT_VARIANT. | |
95 | flag{mac.listctrl.always_use_generic} | |
96 | Tells wxListCtrl to use the generic control even when it is capable of | |
97 | using the native control instead. Also knwon as wxMAC_ALWAYS_USE_GENERIC_LISTCTRL. | |
98 | flag{mac.textcontrol-use-spell-checker} | |
99 | This option only has effect for Mac OS X 10.4 and higher. | |
100 | If 1 activates the spell checking in wxTextCtrl. | |
101 | @endFlagTable | |
102 | ||
103 | ||
104 | @section sysopt_mgl MGL | |
105 | ||
106 | @beginFlagTable | |
107 | @flag{mgl.aa-threshold} | |
108 | Set this integer option to point size below which fonts are not antialiased. Default: 10. | |
109 | @flag{mgl.screen-refresh} | |
110 | Screen refresh rate in Hz. A reasonable default is used if not specified. | |
111 | @endFlagTable | |
112 | ||
113 | ||
114 | @section sysopt_motif Motif | |
115 | ||
116 | @beginFlagTable | |
117 | @flag{motif.largebuttons} | |
118 | If 1, uses a bigger default size for wxButtons. | |
119 | @endFlagTable | |
120 | ||
121 | ||
122 | The compile-time option to include or exclude this functionality is wxUSE_SYSTEM_OPTIONS. | |
123 | ||
124 | @library{wxbase} | |
125 | @category{cfg} | |
126 | ||
127 | @see wxSystemSettings | |
128 | */ | |
129 | class wxSystemOptions : public wxObject | |
130 | { | |
131 | public: | |
132 | /** | |
133 | Default constructor. | |
134 | ||
135 | You don't need to create an instance of wxSystemOptions since all | |
136 | of its functions are static. | |
137 | */ | |
138 | wxSystemOptions(); | |
139 | ||
140 | /** | |
141 | Gets an option. The function is case-insensitive to @a name. | |
142 | Returns empty string if the option hasn't been set. | |
143 | ||
144 | @see SetOption(), GetOptionInt(), HasOption() | |
145 | */ | |
146 | static wxString GetOption(const wxString& name); | |
147 | ||
148 | /** | |
149 | Gets an option as an integer. The function is case-insensitive to @a name. | |
150 | If the option hasn't been set, this function returns 0. | |
151 | ||
152 | @see SetOption(), GetOption(), HasOption() | |
153 | */ | |
154 | static int GetOptionInt(const wxString& name); | |
155 | ||
156 | /** | |
157 | Returns @true if the given option is present. | |
158 | The function is case-insensitive to @a name. | |
159 | ||
160 | @see SetOption(), GetOption(), GetOptionInt() | |
161 | */ | |
162 | static bool HasOption(const wxString& name); | |
163 | ||
164 | /** | |
165 | Returns @true if the option with the given @a name had been set to 0 value. | |
166 | ||
167 | This is mostly useful for boolean options for which you can't use | |
168 | @c GetOptionInt(name) == 0 as this would also be @true if the option | |
169 | hadn't been set at all. | |
170 | */ | |
171 | static bool IsFalse(const wxString& name); | |
172 | ||
173 | //@{ | |
174 | /** | |
175 | Sets an option. The function is case-insensitive to @a name. | |
176 | */ | |
177 | void SetOption(const wxString& name, const wxString& value); | |
178 | void SetOption(const wxString& name, int value); | |
179 | //@} | |
180 | }; | |
181 |