]> git.saurik.com Git - wxWidgets.git/blame - interface/wx/sysopt.h
Return NULL from wxWindow::GetCapture() when the capture is being lost.
[wxWidgets.git] / interface / wx / sysopt.h
CommitLineData
23324ae1
FM
1/////////////////////////////////////////////////////////////////////////////
2// Name: sysopt.h
e54c96f1 3// Purpose: interface of wxSystemOptions
23324ae1 4// Author: wxWidgets team
526954c5 5// Licence: wxWindows licence
23324ae1
FM
6/////////////////////////////////////////////////////////////////////////////
7
8/**
9 @class wxSystemOptions
7c913512 10
23324ae1
FM
11 wxSystemOptions stores option/value pairs that wxWidgets itself or
12 applications can use to alter behaviour at run-time. It can be
13 used to optimize behaviour that doesn't deserve a distinct API,
14 but is still important to be able to configure.
7c913512 15
aa0af8ce
VZ
16 System options can be set by the program itself using SetOption() method
17 and they also can be set from the program environment by defining an
18 environment variable @c wx_option to set the given option for all wxWidgets
19 applications or @c wx_appname_option to set it just for the application
20 with the given name (as returned by wxApp::GetAppName()). Notice that any
21 characters not allowed in the environment variables names, such as periods
22 and dashes, should be replaced with underscores. E.g. to define a system
23 option "foo-bar" you need to define the environment variable "wx_foo_bar".
24
25 The program may use system options for its own needs but they are mostly
26 used to control the behaviour of wxWidgets library itself.
27
4701dc09
FM
28 These options are currently recognised by wxWidgets:
29
4d1ea475
VZ
30 @section sysopt_all All platforms
31
32 @beginFlagTable
33 @flag{exit-on-assert}
34 If set to non-zero value, abort the program if an assertion fails. The
35 default behaviour in case of assertion failure depends on the build mode
36 and can be changed by overriding wxApp::OnAssertFailure() but setting
37 this option allows to change it without modifying the program code and
38 also applies to asserts which may happen before the wxApp object
39 creation or after its destruction.
40 @endFlagTable
4701dc09
FM
41
42 @section sysopt_win Windows
43
44 @beginFlagTable
45 @flag{no-maskblt}
46 1 to never use WIN32's MaskBlt function, 0 to allow it to be used where possible.
47 Default: 0. In some circumstances the MaskBlt function can be slower than using
d13b34d3 48 the fallback code, especially if using DC caching. By default, MaskBlt will be
4701dc09
FM
49 used where it is implemented by the operating system and driver.
50 @flag{msw.remap}
51 If 1 (the default), wxToolBar bitmap colours will be remapped to the current
52 theme's values. Set this to 0 to disable this functionality, for example if
53 you're using more than 16 colours in your tool bitmaps.
54 @flag{msw.window.no-clip-children}
55 If 1, windows will not automatically get the WS_CLIPCHILDREN style.
56 This restores the way windows are refreshed back to the method used in
57 versions of wxWidgets earlier than 2.5.4, and for some complex window
58 hierarchies it can reduce apparent refresh delays.
59 You may still specify wxCLIP_CHILDREN for individual windows.
60 @flag{msw.notebook.themed-background}
61 If set to 0, globally disables themed backgrounds on notebook pages.
62 Note that this won't disable the theme on the actual notebook background
63 (noticeable only if there are no pages).
64 @flag{msw.staticbox.optimized-paint}
65 If set to 0, switches off optimized wxStaticBox painting.
66 Setting this to 0 causes more flicker, but allows applications to paint
67 graphics on the parent of a static box (the optimized refresh causes any
68 such drawing to disappear).
69 @flag{msw.display.directdraw}
70 If set to 1, use DirectDraw-based implementation of wxDisplay.
71 By default the standard Win32 functions are used.
72 @flag{msw.font.no-proof-quality}
73 If set to 1, use default fonts quality instead of proof quality when
74 creating fonts. With proof quality the fonts have slightly better
75 appearance but not all fonts are available in this quality,
76 e.g. the Terminal font in small sizes is not and this option may be
77 used if wider fonts selection is more important than higher quality.
ec5984e3
FM
78 @flag{wince.dialog.real-ok-cancel}
79 The PocketPC guidelines recommend for Ok/Cancel dialogs to use an OK button
80 located inside the caption bar and implement Cancel functionality through
81 Undo outside the dialog.
82 wxDialog::CreateButtonSizer will follow the native behaviour on WinCE but
83 it can be overridden with real wxButtons by setting the option below to 1.
4701dc09
FM
84 @endFlagTable
85
86
87 @section sysopt_gtk GTK+
88
89 @beginFlagTable
90 @flag{gtk.tlw.can-set-transparent}
91 wxTopLevelWindow::CanSetTransparent() method normally tries to detect
92 automatically whether transparency for top level windows is currently
93 supported, however this may sometimes fail and this option allows to
94 override the automatic detection. Setting it to 1 makes the transparency
95 be always available (setting it can still fail, of course) and setting it
96 to 0 makes it always unavailable.
97 @flag{gtk.desktop}
98 This option can be set to override the default desktop environment
99 determination. Supported values are GNOME and KDE.
100 @flag{gtk.window.force-background-colour}
101 If 1, the backgrounds of windows with the wxBG_STYLE_COLOUR background
102 style are cleared forcibly instead of relying on the underlying GTK+
103 window colour. This works around a display problem when running
104 applications under KDE with the gtk-qt theme installed (0.6 and below).
105 @endFlagTable
106
107
108 @section sysopt_mac Mac
109
110 @beginFlagTable
111 @flag{mac.window-plain-transition}
112 If 1, uses a plainer transition when showing a window.
113 You can also use the symbol wxMAC_WINDOW_PLAIN_TRANSITION.
114 @flag{window-default-variant}
115 The default variant used by windows (cast to integer from the wxWindowVariant enum).
116 Also known as wxWINDOW_DEFAULT_VARIANT.
e0a5cfb0 117 @flag{mac.listctrl.always_use_generic}
4701dc09 118 Tells wxListCtrl to use the generic control even when it is capable of
d13b34d3 119 using the native control instead. Also known as wxMAC_ALWAYS_USE_GENERIC_LISTCTRL.
e0a5cfb0 120 @flag{mac.textcontrol-use-spell-checker}
6a0f372c
FM
121 This option only has effect for Mac OS X 10.4 and higher.
122 If 1 activates the spell checking in wxTextCtrl.
13390af4
SC
123 @flag{osx.openfiledialog.always-show-types}
124 Per default a wxFileDialog with wxFD_OPEN does not show a types-popup on OSX but allows
125 the selection of files from any of the supported types. Setting this to 1 shows a wxChoice
126 for selection (if there is more than one supported filetype).
4701dc09
FM
127 @endFlagTable
128
129
4701dc09
FM
130 @section sysopt_motif Motif
131
132 @beginFlagTable
133 @flag{motif.largebuttons}
134 If 1, uses a bigger default size for wxButtons.
135 @endFlagTable
136
137
138 The compile-time option to include or exclude this functionality is wxUSE_SYSTEM_OPTIONS.
7c913512 139
23324ae1 140 @library{wxbase}
3c99e2fd 141 @category{cfg}
7c913512 142
ec5984e3 143 @see wxSystemSettings
23324ae1
FM
144*/
145class wxSystemOptions : public wxObject
146{
147public:
148 /**
4701dc09
FM
149 Default constructor.
150
151 You don't need to create an instance of wxSystemOptions since all
152 of its functions are static.
23324ae1
FM
153 */
154 wxSystemOptions();
155
156 /**
4701dc09 157 Gets an option. The function is case-insensitive to @a name.
23324ae1 158 Returns empty string if the option hasn't been set.
3c4f71cc 159
4701dc09 160 @see SetOption(), GetOptionInt(), HasOption()
23324ae1 161 */
adaaa686 162 static wxString GetOption(const wxString& name);
23324ae1
FM
163
164 /**
4701dc09 165 Gets an option as an integer. The function is case-insensitive to @a name.
23324ae1 166 If the option hasn't been set, this function returns 0.
3c4f71cc 167
4701dc09 168 @see SetOption(), GetOption(), HasOption()
23324ae1 169 */
adaaa686 170 static int GetOptionInt(const wxString& name);
23324ae1
FM
171
172 /**
4701dc09
FM
173 Returns @true if the given option is present.
174 The function is case-insensitive to @a name.
3c4f71cc 175
4701dc09 176 @see SetOption(), GetOption(), GetOptionInt()
23324ae1 177 */
adaaa686 178 static bool HasOption(const wxString& name);
23324ae1
FM
179
180 /**
4701dc09
FM
181 Returns @true if the option with the given @a name had been set to 0 value.
182
183 This is mostly useful for boolean options for which you can't use
23324ae1
FM
184 @c GetOptionInt(name) == 0 as this would also be @true if the option
185 hadn't been set at all.
186 */
adaaa686 187 static bool IsFalse(const wxString& name);
23324ae1
FM
188
189 //@{
190 /**
4701dc09 191 Sets an option. The function is case-insensitive to @a name.
23324ae1 192 */
bb7cd767
VZ
193 static void SetOption(const wxString& name, const wxString& value);
194 static void SetOption(const wxString& name, int value);
23324ae1
FM
195 //@}
196};
e54c96f1 197