\section{\class{wxSystemSettings}}\label{wxsystemsettings}

wxSystemSettings allows the application to ask for details about
the system. This can include settings such as standard colours, fonts,
and user interface element sizes.

\wxheading{Derived from}

\helpref{wxObject}{wxobject}

\wxheading{Include files}

<wx/settings.h>

\wxheading{See also}

\helpref{wxFont}{wxfont}, \helpref{wxColour}{wxcolour}

\latexignore{\rtfignore{\wxheading{Members}}}

\membersection{wxSystemSettings::wxSystemSettings}\label{wxsystemsettingsctor}

\func{}{wxSystemSettings}{\void}

Default constructor. You don't need to create an instance of wxSystemSettings
since all of its functions are static.

\membersection{wxSystemSettings::GetColour}\label{wxsystemsettingsgetcolour}

\func{static wxColour}{GetColour}{\param{wxSystemColour}{ index}}

Returns a system colour.

{\it index} can be one of:

\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf wxSYS\_COLOUR\_SCROLLBAR}}{The scrollbar grey area.}
\twocolitem{{\bf wxSYS\_COLOUR\_BACKGROUND}}{The desktop colour.}
\twocolitem{{\bf wxSYS\_COLOUR\_ACTIVECAPTION}}{Active window caption.}
\twocolitem{{\bf wxSYS\_COLOUR\_INACTIVECAPTION}}{Inactive window caption.}
\twocolitem{{\bf wxSYS\_COLOUR\_MENU}}{Menu background.}
\twocolitem{{\bf wxSYS\_COLOUR\_WINDOW}}{Window background.}
\twocolitem{{\bf wxSYS\_COLOUR\_WINDOWFRAME}}{Window frame.}
\twocolitem{{\bf wxSYS\_COLOUR\_MENUTEXT}}{Menu text.}
\twocolitem{{\bf wxSYS\_COLOUR\_WINDOWTEXT}}{Text in windows.}
\twocolitem{{\bf wxSYS\_COLOUR\_CAPTIONTEXT}}{Text in caption, size box and scrollbar arrow box.}
\twocolitem{{\bf wxSYS\_COLOUR\_ACTIVEBORDER}}{Active window border.}
\twocolitem{{\bf wxSYS\_COLOUR\_INACTIVEBORDER}}{Inactive window border.}
\twocolitem{{\bf wxSYS\_COLOUR\_APPWORKSPACE}}{Background colour MDI applications.}
\twocolitem{{\bf wxSYS\_COLOUR\_HIGHLIGHT}}{Item(s) selected in a control.}
\twocolitem{{\bf wxSYS\_COLOUR\_HIGHLIGHTTEXT}}{Text of item(s) selected in a control.}
\twocolitem{{\bf wxSYS\_COLOUR\_BTNFACE}}{Face shading on push buttons.}
\twocolitem{{\bf wxSYS\_COLOUR\_BTNSHADOW}}{Edge shading on push buttons.}
\twocolitem{{\bf wxSYS\_COLOUR\_GRAYTEXT}}{Greyed (disabled) text.}
\twocolitem{{\bf wxSYS\_COLOUR\_BTNTEXT}}{Text on push buttons.}
\twocolitem{{\bf wxSYS\_COLOUR\_INACTIVECAPTIONTEXT}}{Colour of text in active captions.}
\twocolitem{{\bf wxSYS\_COLOUR\_BTNHIGHLIGHT}}{Highlight colour for buttons (same as wxSYS\_COLOUR\_3DHILIGHT).}
\twocolitem{{\bf wxSYS\_COLOUR\_3DDKSHADOW}}{Dark shadow for three-dimensional display elements.}
\twocolitem{{\bf wxSYS\_COLOUR\_3DLIGHT}}{Light colour for three-dimensional display elements.}
\twocolitem{{\bf wxSYS\_COLOUR\_INFOTEXT}}{Text colour for tooltip controls.}
\twocolitem{{\bf wxSYS\_COLOUR\_INFOBK}}{Background colour for tooltip controls.}
\twocolitem{{\bf wxSYS\_COLOUR\_DESKTOP}}{Same as wxSYS\_COLOUR\_BACKGROUND.}
\twocolitem{{\bf wxSYS\_COLOUR\_3DFACE}}{Same as wxSYS\_COLOUR\_BTNFACE.}
\twocolitem{{\bf wxSYS\_COLOUR\_3DSHADOW}}{Same as wxSYS\_COLOUR\_BTNSHADOW.}
\twocolitem{{\bf wxSYS\_COLOUR\_3DHIGHLIGHT}}{Same as wxSYS\_COLOUR\_BTNHIGHLIGHT.}
\twocolitem{{\bf wxSYS\_COLOUR\_3DHILIGHT}}{Same as wxSYS\_COLOUR\_BTNHIGHLIGHT.}
\twocolitem{{\bf wxSYS\_COLOUR\_BTNHILIGHT}}{Same as wxSYS\_COLOUR\_BTNHIGHLIGHT.}
\end{twocollist}

\pythonnote{This static method is implemented in Python as a
standalone function named {\tt wxSystemSettings\_GetColour}}

\membersection{wxSystemSettings::GetFont}\label{wxsystemsettingsgetfont}

\func{static wxFont}{GetFont}{\param{wxSystemFont}{ index}}

Returns a system font.

{\it index} can be one of:

\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf wxSYS\_OEM\_FIXED\_FONT}}{Original equipment manufacturer dependent fixed-pitch font.}
\twocolitem{{\bf wxSYS\_ANSI\_FIXED\_FONT}}{Windows fixed-pitch font.}
\twocolitem{{\bf wxSYS\_ANSI\_VAR\_FONT}}{Windows variable-pitch (proportional) font.}
\twocolitem{{\bf wxSYS\_SYSTEM\_FONT}}{System font.}
\twocolitem{{\bf wxSYS\_DEVICE\_DEFAULT\_FONT}}{Device-dependent font (Windows NT only).}
\twocolitem{{\bf wxSYS\_DEFAULT\_GUI\_FONT}}{Default font for user interface
objects such as menus and dialog boxes. Note that with modern GUIs nothing
guarantees that the same font is used for all GUI elements, so some controls
might use a different font by default.}
\end{twocollist}

\pythonnote{This static method is implemented in Python as a
standalone function named {\tt wxSystemSettings\_GetFont}}

\membersection{wxSystemSettings::GetMetric}\label{wxsystemsettingsgetmetric}

\func{static int}{GetMetric}{\param{wxSystemMetric}{ index}, \param{wxWindow*}{ win = NULL}}

Returns the value of a system metric, or -1 if the metric is not supported on the current system.
The value of {\it win} determines if the metric returned is a global value or
a \helpref{wxWindow}{wxwindow} based value, in which case it might determine the widget, the
display the window is on, or something similar. The window given should be as close to the
metric as possible (e.g a wxTopLevelWindow in case of the wxSYS\_CAPTION\_Y metric).

{\it index} can be one of:

\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf wxSYS\_MOUSE\_BUTTONS}}{Number of buttons on mouse, or zero if no mouse was installed.}
\twocolitem{{\bf wxSYS\_BORDER\_X}}{Width of single border.}
\twocolitem{{\bf wxSYS\_BORDER\_Y}}{Height of single border.}
\twocolitem{{\bf wxSYS\_CURSOR\_X}}{Width of cursor.}
\twocolitem{{\bf wxSYS\_CURSOR\_Y}}{Height of cursor.}
\twocolitem{{\bf wxSYS\_DCLICK\_X}}{Width in pixels of rectangle within which two successive mouse
clicks must fall to generate a double-click.}
\twocolitem{{\bf wxSYS\_DCLICK\_Y}}{Height in pixels of rectangle within which two successive mouse
clicks must fall to generate a double-click.}
\twocolitem{{\bf wxSYS\_DRAG\_X}}{Width in pixels of a rectangle centered on a drag point
to allow for limited movement of the mouse pointer before a drag operation begins.}
\twocolitem{{\bf wxSYS\_DRAG\_Y}}{Height in pixels of a rectangle centered on a drag point
to allow for limited movement of the mouse pointer before a drag operation begins.}
\twocolitem{{\bf wxSYS\_EDGE\_X}}{Width of a 3D border, in pixels. }
\twocolitem{{\bf wxSYS\_EDGE\_Y}}{Height of a 3D border, in pixels. }
\twocolitem{{\bf wxSYS\_HSCROLL\_ARROW\_X}}{Width of arrow bitmap on horizontal scrollbar.}
\twocolitem{{\bf wxSYS\_HSCROLL\_ARROW\_Y}}{Height of arrow bitmap on horizontal scrollbar.}
\twocolitem{{\bf wxSYS\_HTHUMB\_X}}{Width of horizontal scrollbar thumb.}
\twocolitem{{\bf wxSYS\_ICON\_X}}{The default width of an icon.}
\twocolitem{{\bf wxSYS\_ICON\_Y}}{The default height of an icon.}
\twocolitem{{\bf wxSYS\_ICONSPACING\_X}}{Width of a grid cell for items in large icon view,
in pixels. Each item fits into a rectangle of this size when arranged.}
\twocolitem{{\bf wxSYS\_ICONSPACING\_Y}}{Height of a grid cell for items in large icon view,
in pixels. Each item fits into a rectangle of this size when arranged.}
\twocolitem{{\bf wxSYS\_WINDOWMIN\_X}}{Minimum width of a window.}
\twocolitem{{\bf wxSYS\_WINDOWMIN\_Y}}{Minimum height of a window.}
\twocolitem{{\bf wxSYS\_SCREEN\_X}}{Width of the screen in pixels.}
\twocolitem{{\bf wxSYS\_SCREEN\_Y}}{Height of the screen in pixels.}
\twocolitem{{\bf wxSYS\_FRAMESIZE\_X}}{Width of the window frame for a wxTHICK\_FRAME window.}
\twocolitem{{\bf wxSYS\_FRAMESIZE\_Y}}{Height of the window frame for a wxTHICK\_FRAME window.}
\twocolitem{{\bf wxSYS\_SMALLICON\_X}}{Recommended width of a small icon (in window captions, and small icon view).}
\twocolitem{{\bf wxSYS\_SMALLICON\_Y}}{Recommended height of a small icon (in window captions, and small icon view).}
\twocolitem{{\bf wxSYS\_HSCROLL\_Y}}{Height of horizontal scrollbar in pixels.}
\twocolitem{{\bf wxSYS\_VSCROLL\_X}}{Width of vertical scrollbar in pixels.}
\twocolitem{{\bf wxSYS\_VSCROLL\_ARROW\_X}}{Width of arrow bitmap on a vertical scrollbar.}
\twocolitem{{\bf wxSYS\_VSCROLL\_ARROW\_Y}}{Height of arrow bitmap on a vertical scrollbar.}
\twocolitem{{\bf wxSYS\_VTHUMB\_Y}}{Height of vertical scrollbar thumb.}
\twocolitem{{\bf wxSYS\_CAPTION\_Y}}{Height of normal caption area.}
\twocolitem{{\bf wxSYS\_MENU\_Y}}{Height of single-line menu bar.}
\twocolitem{{\bf wxSYS\_NETWORK\_PRESENT}}{1 if there is a network present, 0 otherwise.}
\twocolitem{{\bf wxSYS\_PENWINDOWS\_PRESENT}}{1 if PenWindows is installed, 0 otherwise.}
\twocolitem{{\bf wxSYS\_SHOW\_SOUNDS}}{Non-zero if the user requires an application to present information visually in situations
where it would otherwise present the information only in audible form; zero otherwise.}
\twocolitem{{\bf wxSYS\_SWAP\_BUTTONS}}{Non-zero if the meanings of the left and right mouse buttons are swapped; zero otherwise.}
\end{twocollist}

{\it win} is a pointer to the window for which the metric is requested.
Specifying the {\it win} parameter is encouraged, because some metrics on some ports are not supported without one,
or they might be capable of reporting better values if given one. If a window does not make sense for a metric,
one should still be given, as for example it might determine which displays cursor width is requested with
wxSYS\_CURSOR\_X.

\pythonnote{This static method is implemented in Python as a
standalone function named {\tt wxSystemSettings\_GetMetric}}

\membersection{wxSystemSettings::GetScreenType}\label{wxsystemsettingsgetscreentype}

\func{static wxSystemScreenType}{GetScreenType}{\void}

Returns the screen type. The return value is one of:

\twocolwidtha{7cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{{\bf wxSYS\_SCREEN\_NONE}}{Undefined screen type}
\twocolitem{{\bf wxSYS\_SCREEN\_TINY}}{Tiny screen, less than 320x240}
\twocolitem{{\bf wxSYS\_SCREEN\_PDA}}{PDA screen, 320x240 or more but less than 640x480}
\twocolitem{{\bf wxSYS\_SCREEN\_SMALL}}{Small screen, 640x480 or more but less than 800x600}
\twocolitem{{\bf wxSYS\_SCREEN\_DESKTOP}}{Desktop screen, 800x600 or more}
\end{twocollist}

