2008-03-08 08:52:38 -05:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: sysopt.h
|
2008-03-10 11:24:38 -04:00
|
|
|
// Purpose: interface of wxSystemOptions
|
2008-03-08 08:52:38 -05:00
|
|
|
// Author: wxWidgets team
|
|
|
|
// RCS-ID: $Id$
|
2010-07-13 09:29:13 -04:00
|
|
|
// Licence: wxWindows licence
|
2008-03-08 08:52:38 -05:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
/**
|
|
|
|
@class wxSystemOptions
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
wxSystemOptions stores option/value pairs that wxWidgets itself or
|
|
|
|
applications can use to alter behaviour at run-time. It can be
|
|
|
|
used to optimize behaviour that doesn't deserve a distinct API,
|
|
|
|
but is still important to be able to configure.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2010-06-20 13:43:15 -04:00
|
|
|
System options can be set by the program itself using SetOption() method
|
|
|
|
and they also can be set from the program environment by defining an
|
|
|
|
environment variable @c wx_option to set the given option for all wxWidgets
|
|
|
|
applications or @c wx_appname_option to set it just for the application
|
|
|
|
with the given name (as returned by wxApp::GetAppName()). Notice that any
|
|
|
|
characters not allowed in the environment variables names, such as periods
|
|
|
|
and dashes, should be replaced with underscores. E.g. to define a system
|
|
|
|
option "foo-bar" you need to define the environment variable "wx_foo_bar".
|
|
|
|
|
|
|
|
The program may use system options for its own needs but they are mostly
|
|
|
|
used to control the behaviour of wxWidgets library itself.
|
|
|
|
|
2008-10-07 12:57:34 -04:00
|
|
|
These options are currently recognised by wxWidgets:
|
|
|
|
|
2010-06-20 13:43:21 -04:00
|
|
|
@section sysopt_all All platforms
|
|
|
|
|
|
|
|
@beginFlagTable
|
|
|
|
@flag{exit-on-assert}
|
|
|
|
If set to non-zero value, abort the program if an assertion fails. The
|
|
|
|
default behaviour in case of assertion failure depends on the build mode
|
|
|
|
and can be changed by overriding wxApp::OnAssertFailure() but setting
|
|
|
|
this option allows to change it without modifying the program code and
|
|
|
|
also applies to asserts which may happen before the wxApp object
|
|
|
|
creation or after its destruction.
|
|
|
|
@endFlagTable
|
2008-10-07 12:57:34 -04:00
|
|
|
|
|
|
|
@section sysopt_win Windows
|
|
|
|
|
|
|
|
@beginFlagTable
|
|
|
|
@flag{no-maskblt}
|
|
|
|
1 to never use WIN32's MaskBlt function, 0 to allow it to be used where possible.
|
|
|
|
Default: 0. In some circumstances the MaskBlt function can be slower than using
|
|
|
|
the fallback code, especially if using DC cacheing. By default, MaskBlt will be
|
|
|
|
used where it is implemented by the operating system and driver.
|
|
|
|
@flag{msw.remap}
|
|
|
|
If 1 (the default), wxToolBar bitmap colours will be remapped to the current
|
|
|
|
theme's values. Set this to 0 to disable this functionality, for example if
|
|
|
|
you're using more than 16 colours in your tool bitmaps.
|
|
|
|
@flag{msw.window.no-clip-children}
|
|
|
|
If 1, windows will not automatically get the WS_CLIPCHILDREN style.
|
|
|
|
This restores the way windows are refreshed back to the method used in
|
|
|
|
versions of wxWidgets earlier than 2.5.4, and for some complex window
|
|
|
|
hierarchies it can reduce apparent refresh delays.
|
|
|
|
You may still specify wxCLIP_CHILDREN for individual windows.
|
|
|
|
@flag{msw.notebook.themed-background}
|
|
|
|
If set to 0, globally disables themed backgrounds on notebook pages.
|
|
|
|
Note that this won't disable the theme on the actual notebook background
|
|
|
|
(noticeable only if there are no pages).
|
|
|
|
@flag{msw.staticbox.optimized-paint}
|
|
|
|
If set to 0, switches off optimized wxStaticBox painting.
|
|
|
|
Setting this to 0 causes more flicker, but allows applications to paint
|
|
|
|
graphics on the parent of a static box (the optimized refresh causes any
|
|
|
|
such drawing to disappear).
|
|
|
|
@flag{msw.display.directdraw}
|
|
|
|
If set to 1, use DirectDraw-based implementation of wxDisplay.
|
|
|
|
By default the standard Win32 functions are used.
|
|
|
|
@flag{msw.font.no-proof-quality}
|
|
|
|
If set to 1, use default fonts quality instead of proof quality when
|
|
|
|
creating fonts. With proof quality the fonts have slightly better
|
|
|
|
appearance but not all fonts are available in this quality,
|
|
|
|
e.g. the Terminal font in small sizes is not and this option may be
|
|
|
|
used if wider fonts selection is more important than higher quality.
|
2008-12-29 10:50:27 -05:00
|
|
|
@flag{wince.dialog.real-ok-cancel}
|
|
|
|
The PocketPC guidelines recommend for Ok/Cancel dialogs to use an OK button
|
|
|
|
located inside the caption bar and implement Cancel functionality through
|
|
|
|
Undo outside the dialog.
|
|
|
|
wxDialog::CreateButtonSizer will follow the native behaviour on WinCE but
|
|
|
|
it can be overridden with real wxButtons by setting the option below to 1.
|
2008-10-07 12:57:34 -04:00
|
|
|
@endFlagTable
|
|
|
|
|
|
|
|
|
|
|
|
@section sysopt_gtk GTK+
|
|
|
|
|
|
|
|
@beginFlagTable
|
|
|
|
@flag{gtk.tlw.can-set-transparent}
|
|
|
|
wxTopLevelWindow::CanSetTransparent() method normally tries to detect
|
|
|
|
automatically whether transparency for top level windows is currently
|
|
|
|
supported, however this may sometimes fail and this option allows to
|
|
|
|
override the automatic detection. Setting it to 1 makes the transparency
|
|
|
|
be always available (setting it can still fail, of course) and setting it
|
|
|
|
to 0 makes it always unavailable.
|
|
|
|
@flag{gtk.desktop}
|
|
|
|
This option can be set to override the default desktop environment
|
|
|
|
determination. Supported values are GNOME and KDE.
|
|
|
|
@flag{gtk.window.force-background-colour}
|
|
|
|
If 1, the backgrounds of windows with the wxBG_STYLE_COLOUR background
|
|
|
|
style are cleared forcibly instead of relying on the underlying GTK+
|
|
|
|
window colour. This works around a display problem when running
|
|
|
|
applications under KDE with the gtk-qt theme installed (0.6 and below).
|
|
|
|
@endFlagTable
|
|
|
|
|
|
|
|
|
|
|
|
@section sysopt_mac Mac
|
|
|
|
|
|
|
|
@beginFlagTable
|
|
|
|
@flag{mac.window-plain-transition}
|
|
|
|
If 1, uses a plainer transition when showing a window.
|
|
|
|
You can also use the symbol wxMAC_WINDOW_PLAIN_TRANSITION.
|
|
|
|
@flag{window-default-variant}
|
|
|
|
The default variant used by windows (cast to integer from the wxWindowVariant enum).
|
|
|
|
Also known as wxWINDOW_DEFAULT_VARIANT.
|
2009-03-19 11:08:12 -04:00
|
|
|
@flag{mac.listctrl.always_use_generic}
|
2008-10-07 12:57:34 -04:00
|
|
|
Tells wxListCtrl to use the generic control even when it is capable of
|
|
|
|
using the native control instead. Also knwon as wxMAC_ALWAYS_USE_GENERIC_LISTCTRL.
|
2009-03-19 11:08:12 -04:00
|
|
|
@flag{mac.textcontrol-use-spell-checker}
|
2008-11-22 09:29:00 -05:00
|
|
|
This option only has effect for Mac OS X 10.4 and higher.
|
|
|
|
If 1 activates the spell checking in wxTextCtrl.
|
2008-10-07 12:57:34 -04:00
|
|
|
@endFlagTable
|
|
|
|
|
|
|
|
|
|
|
|
@section sysopt_mgl MGL
|
|
|
|
|
|
|
|
@beginFlagTable
|
|
|
|
@flag{mgl.aa-threshold}
|
|
|
|
Set this integer option to point size below which fonts are not antialiased. Default: 10.
|
|
|
|
@flag{mgl.screen-refresh}
|
|
|
|
Screen refresh rate in Hz. A reasonable default is used if not specified.
|
|
|
|
@endFlagTable
|
|
|
|
|
|
|
|
|
|
|
|
@section sysopt_motif Motif
|
|
|
|
|
|
|
|
@beginFlagTable
|
|
|
|
@flag{motif.largebuttons}
|
|
|
|
If 1, uses a bigger default size for wxButtons.
|
|
|
|
@endFlagTable
|
|
|
|
|
|
|
|
|
|
|
|
The compile-time option to include or exclude this functionality is wxUSE_SYSTEM_OPTIONS.
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-03-08 08:52:38 -05:00
|
|
|
@library{wxbase}
|
2009-02-20 06:34:52 -05:00
|
|
|
@category{cfg}
|
2008-03-08 09:43:31 -05:00
|
|
|
|
2008-12-29 10:50:27 -05:00
|
|
|
@see wxSystemSettings
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
|
|
|
class wxSystemOptions : public wxObject
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
/**
|
2008-10-07 12:57:34 -04:00
|
|
|
Default constructor.
|
|
|
|
|
|
|
|
You don't need to create an instance of wxSystemOptions since all
|
|
|
|
of its functions are static.
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
|
|
|
wxSystemOptions();
|
|
|
|
|
|
|
|
/**
|
2008-10-07 12:57:34 -04:00
|
|
|
Gets an option. The function is case-insensitive to @a name.
|
2008-03-08 08:52:38 -05:00
|
|
|
Returns empty string if the option hasn't been set.
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-10-07 12:57:34 -04:00
|
|
|
@see SetOption(), GetOptionInt(), HasOption()
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-09-27 07:21:10 -04:00
|
|
|
static wxString GetOption(const wxString& name);
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
2008-10-07 12:57:34 -04:00
|
|
|
Gets an option as an integer. The function is case-insensitive to @a name.
|
2008-03-08 08:52:38 -05:00
|
|
|
If the option hasn't been set, this function returns 0.
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-10-07 12:57:34 -04:00
|
|
|
@see SetOption(), GetOption(), HasOption()
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-09-27 07:21:10 -04:00
|
|
|
static int GetOptionInt(const wxString& name);
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
2008-10-07 12:57:34 -04:00
|
|
|
Returns @true if the given option is present.
|
|
|
|
The function is case-insensitive to @a name.
|
2008-03-20 09:45:17 -04:00
|
|
|
|
2008-10-07 12:57:34 -04:00
|
|
|
@see SetOption(), GetOption(), GetOptionInt()
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2008-09-27 07:21:10 -04:00
|
|
|
static bool HasOption(const wxString& name);
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
/**
|
2008-10-07 12:57:34 -04:00
|
|
|
Returns @true if the option with the given @a name had been set to 0 value.
|
|
|
|
|
|
|
|
This is mostly useful for boolean options for which you can't use
|
2008-03-08 08:52:38 -05:00
|
|
|
@c GetOptionInt(name) == 0 as this would also be @true if the option
|
|
|
|
hadn't been set at all.
|
|
|
|
*/
|
2008-09-27 07:21:10 -04:00
|
|
|
static bool IsFalse(const wxString& name);
|
2008-03-08 08:52:38 -05:00
|
|
|
|
|
|
|
//@{
|
|
|
|
/**
|
2008-10-07 12:57:34 -04:00
|
|
|
Sets an option. The function is case-insensitive to @a name.
|
2008-03-08 08:52:38 -05:00
|
|
|
*/
|
2010-10-18 19:43:02 -04:00
|
|
|
static void SetOption(const wxString& name, const wxString& value);
|
|
|
|
static void SetOption(const wxString& name, int value);
|
2008-03-08 08:52:38 -05:00
|
|
|
//@}
|
|
|
|
};
|
2008-03-10 11:24:38 -04:00
|
|
|
|