]> git.saurik.com Git - wxWidgets.git/blame - interface/wx/sysopt.h
Use explicit wxPGPropertyFlags enum type with wxPGProperty::SetFlag() and similar...
[wxWidgets.git] / interface / wx / sysopt.h
CommitLineData
23324ae1
FM
1/////////////////////////////////////////////////////////////////////////////
2// Name: sysopt.h
e54c96f1 3// Purpose: interface of wxSystemOptions
23324ae1
FM
4// Author: wxWidgets team
5// RCS-ID: $Id$
6// Licence: wxWindows license
7/////////////////////////////////////////////////////////////////////////////
8
9/**
10 @class wxSystemOptions
7c913512 11
23324ae1
FM
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.
7c913512 16
4701dc09
FM
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.
ec5984e3
FM
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.
4701dc09
FM
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.
e0a5cfb0 95 @flag{mac.listctrl.always_use_generic}
4701dc09
FM
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.
e0a5cfb0 98 @flag{mac.textcontrol-use-spell-checker}
6a0f372c
FM
99 This option only has effect for Mac OS X 10.4 and higher.
100 If 1 activates the spell checking in wxTextCtrl.
4701dc09
FM
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.
7c913512 123
23324ae1 124 @library{wxbase}
3c99e2fd 125 @category{cfg}
7c913512 126
ec5984e3 127 @see wxSystemSettings
23324ae1
FM
128*/
129class wxSystemOptions : public wxObject
130{
131public:
132 /**
4701dc09
FM
133 Default constructor.
134
135 You don't need to create an instance of wxSystemOptions since all
136 of its functions are static.
23324ae1
FM
137 */
138 wxSystemOptions();
139
140 /**
4701dc09 141 Gets an option. The function is case-insensitive to @a name.
23324ae1 142 Returns empty string if the option hasn't been set.
3c4f71cc 143
4701dc09 144 @see SetOption(), GetOptionInt(), HasOption()
23324ae1 145 */
adaaa686 146 static wxString GetOption(const wxString& name);
23324ae1
FM
147
148 /**
4701dc09 149 Gets an option as an integer. The function is case-insensitive to @a name.
23324ae1 150 If the option hasn't been set, this function returns 0.
3c4f71cc 151
4701dc09 152 @see SetOption(), GetOption(), HasOption()
23324ae1 153 */
adaaa686 154 static int GetOptionInt(const wxString& name);
23324ae1
FM
155
156 /**
4701dc09
FM
157 Returns @true if the given option is present.
158 The function is case-insensitive to @a name.
3c4f71cc 159
4701dc09 160 @see SetOption(), GetOption(), GetOptionInt()
23324ae1 161 */
adaaa686 162 static bool HasOption(const wxString& name);
23324ae1
FM
163
164 /**
4701dc09
FM
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
23324ae1
FM
168 @c GetOptionInt(name) == 0 as this would also be @true if the option
169 hadn't been set at all.
170 */
adaaa686 171 static bool IsFalse(const wxString& name);
23324ae1
FM
172
173 //@{
174 /**
4701dc09 175 Sets an option. The function is case-insensitive to @a name.
23324ae1
FM
176 */
177 void SetOption(const wxString& name, const wxString& value);
7c913512 178 void SetOption(const wxString& name, int value);
23324ae1
FM
179 //@}
180};
e54c96f1 181