X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ae3c17b4013e80b99976c750c19fca47729517f6..e48df5d353610b4b2d91c5dbb4ffdf97f1aa4253:/interface/wx/settings.h diff --git a/interface/wx/settings.h b/interface/wx/settings.h index 83fff83f18..aab3f0cfdb 100644 --- a/interface/wx/settings.h +++ b/interface/wx/settings.h @@ -6,12 +6,154 @@ // Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// + +/** + Possible values for wxSystemSettings::GetFont() parameter. +*/ +enum wxSystemFont +{ + wxSYS_OEM_FIXED_FONT = 10, //!< Original equipment manufacturer dependent fixed-pitch font. + wxSYS_ANSI_FIXED_FONT, //!< Windows fixed-pitch font. + wxSYS_ANSI_VAR_FONT, //!< Windows variable-pitch (proportional) font. + wxSYS_SYSTEM_FONT, //!< System font. + wxSYS_DEVICE_DEFAULT_FONT, //!< Device-dependent font (Windows NT only). + wxSYS_DEFAULT_PALETTE, //!< @todo docme. + wxSYS_SYSTEM_FIXED_FONT, //!< @todo docme. + + /** + 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. + */ + wxSYS_DEFAULT_GUI_FONT +}; + + +/** + Possible values for wxSystemSettings::GetColour() parameter. +*/ +enum wxSystemColour +{ + wxSYS_COLOUR_SCROLLBAR, //!< The scrollbar grey area. + wxSYS_COLOUR_BACKGROUND, //!< The desktop colour. + wxSYS_COLOUR_ACTIVECAPTION, //!< Active window caption. + wxSYS_COLOUR_INACTIVECAPTION, //!< Inactive window caption. + wxSYS_COLOUR_MENU, //!< Menu background. + wxSYS_COLOUR_WINDOW, //!< Window background. + wxSYS_COLOUR_WINDOWFRAME, //!< Window frame. + wxSYS_COLOUR_MENUTEXT, //!< Menu text. + wxSYS_COLOUR_WINDOWTEXT, //!< Text in windows. + wxSYS_COLOUR_CAPTIONTEXT, //!< Text in caption, size box and scrollbar arrow box. + wxSYS_COLOUR_ACTIVEBORDER, //!< Active window border. + wxSYS_COLOUR_INACTIVEBORDER, //!< Inactive window border. + wxSYS_COLOUR_APPWORKSPACE, //!< Background colour MDI applications. + wxSYS_COLOUR_HIGHLIGHT, //!< Item(s) selected in a control. + wxSYS_COLOUR_HIGHLIGHTTEXT, //!< Text of item(s) selected in a control. + wxSYS_COLOUR_BTNFACE, //!< Face shading on push buttons. + wxSYS_COLOUR_BTNSHADOW, //!< Edge shading on push buttons. + wxSYS_COLOUR_GRAYTEXT, //!< Greyed (disabled) text. + wxSYS_COLOUR_BTNTEXT, //!< Text on push buttons. + wxSYS_COLOUR_INACTIVECAPTIONTEXT, //!< Colour of text in active captions. + wxSYS_COLOUR_BTNHIGHLIGHT, //!< Highlight colour for buttons (same as wxSYS_COLOUR_3DHILIGHT). + wxSYS_COLOUR_3DDKSHADOW, //!< Dark shadow for three-dimensional display elements. + wxSYS_COLOUR_3DLIGHT, //!< Light colour for three-dimensional display elements. + wxSYS_COLOUR_INFOTEXT, //!< Text colour for tooltip controls. + wxSYS_COLOUR_INFOBK, //!< Background colour for tooltip controls. + + wxSYS_COLOUR_DESKTOP = wxSYS_COLOUR_BACKGROUND, + wxSYS_COLOUR_3DFACE = wxSYS_COLOUR_BTNFACE, + wxSYS_COLOUR_3DSHADOW = wxSYS_COLOUR_BTNSHADOW, + wxSYS_COLOUR_BTNHILIGHT = wxSYS_COLOUR_BTNHIGHLIGHT, + wxSYS_COLOUR_3DHIGHLIGHT = wxSYS_COLOUR_BTNHIGHLIGHT, + wxSYS_COLOUR_3DHILIGHT = wxSYS_COLOUR_BTNHIGHLIGHT, + + wxSYS_COLOUR_LISTBOX, + wxSYS_COLOUR_HOTLIGHT, + wxSYS_COLOUR_GRADIENTACTIVECAPTION, + wxSYS_COLOUR_GRADIENTINACTIVECAPTION, + wxSYS_COLOUR_MENUHILIGHT, + wxSYS_COLOUR_MENUBAR, + + wxSYS_COLOUR_MAX +}; + +/** + Possible values for wxSystemSettings::GetMetric() index parameter. +*/ +enum wxSystemMetric +{ + wxSYS_MOUSE_BUTTONS, //!< Number of buttons on mouse, or zero if no mouse was installed. + wxSYS_BORDER_X, //!< Width of single border. + wxSYS_BORDER_Y, //!< Height of single border. + wxSYS_CURSOR_X, //!< Width of cursor. + wxSYS_CURSOR_Y, //!< Height of cursor. + wxSYS_DCLICK_X, //!< Width in pixels of rectangle within which two successive mouse clicks must fall to generate a double-click. + wxSYS_DCLICK_Y, //!< Height in pixels of rectangle within which two successive mouse clicks must fall to generate a double-click. + wxSYS_DCLICK_MSEC, //!< Maximal time, in milliseconds, which may pass between subsequent clicks for a double click to be generated. + 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. + 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. + wxSYS_EDGE_X, //!< Width of a 3D border, in pixels. + wxSYS_EDGE_Y, //!< Height of a 3D border, in pixels. + wxSYS_HSCROLL_ARROW_X, //!< Width of arrow bitmap on horizontal scrollbar. + wxSYS_HSCROLL_ARROW_Y, //!< Height of arrow bitmap on horizontal scrollbar. + wxSYS_HTHUMB_X, //!< Width of horizontal scrollbar thumb. + wxSYS_ICON_X, //!< The default width of an icon. + wxSYS_ICON_Y, //!< The default height of an icon. + 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. + 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. + wxSYS_WINDOWMIN_X, //!< Minimum width of a window. + wxSYS_WINDOWMIN_Y, //!< Minimum height of a window. + wxSYS_SCREEN_X, //!< Width of the screen in pixels. + wxSYS_SCREEN_Y, //!< Height of the screen in pixels. + wxSYS_FRAMESIZE_X, //!< Width of the window frame for a wxTHICK_FRAME window. + wxSYS_FRAMESIZE_Y, //!< Height of the window frame for a wxTHICK_FRAME window. + wxSYS_SMALLICON_X, //!< Recommended width of a small icon (in window captions, and small icon view). + wxSYS_SMALLICON_Y, //!< Recommended height of a small icon (in window captions, and small icon view). + wxSYS_HSCROLL_Y, //!< Height of horizontal scrollbar in pixels. + wxSYS_VSCROLL_X, //!< Width of vertical scrollbar in pixels. + wxSYS_VSCROLL_ARROW_X, //!< Width of arrow bitmap on a vertical scrollbar. + wxSYS_VSCROLL_ARROW_Y, //!< Height of arrow bitmap on a vertical scrollbar. + wxSYS_VTHUMB_Y, //!< Height of vertical scrollbar thumb. + wxSYS_CAPTION_Y, //!< Height of normal caption area. + wxSYS_MENU_Y, //!< Height of single-line menu bar. + wxSYS_NETWORK_PRESENT, //!< 1 if there is a network present, 0 otherwise. + wxSYS_PENWINDOWS_PRESENT, //!< 1 if PenWindows is installed, 0 otherwise. + 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. + wxSYS_SWAP_BUTTONS, //!< Non-zero if the meanings of the left and right mouse buttons are swapped; zero otherwise. + wxSYS_DCLICK_MSEC +}; + +/** + Possible values for wxSystemSettings::HasFeature() parameter. +*/ +enum wxSystemFeature +{ + wxSYS_CAN_DRAW_FRAME_DECORATIONS = 1, + wxSYS_CAN_ICONIZE_FRAME, + wxSYS_TABLET_PRESENT +}; + +/** + Values for different screen designs. +*/ +enum wxSystemScreenType +{ + wxSYS_SCREEN_NONE = 0, //!< Undefined screen type. + + wxSYS_SCREEN_TINY, //!< Tiny screen, less than 320x240 + wxSYS_SCREEN_PDA, //!< PDA screen, 320x240 or more but less than 640x480 + wxSYS_SCREEN_SMALL, //!< Small screen, 640x480 or more but less than 800x600 + wxSYS_SCREEN_DESKTOP //!< Desktop screen, 800x600 or more +}; + + /** @class wxSystemSettings - @wxheader{settings.h} - wxSystemSettings allows the application to ask for details about - the system. This can include settings such as standard colours, fonts, + 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. @library{wxcore} @@ -23,383 +165,49 @@ class wxSystemSettings : public wxObject { public: /** - Default constructor. You don't need to create an instance of wxSystemSettings + Default constructor. + + You don't need to create an instance of wxSystemSettings since all of its functions are static. */ wxSystemSettings(); /** Returns a system colour. - @a index can be one of: - - @b wxSYS_COLOUR_SCROLLBAR - - The scrollbar grey area. - - @b wxSYS_COLOUR_BACKGROUND - - The desktop colour. - - @b wxSYS_COLOUR_ACTIVECAPTION - - Active window caption. - - @b wxSYS_COLOUR_INACTIVECAPTION - - Inactive window caption. - - @b wxSYS_COLOUR_MENU - - Menu background. - - @b wxSYS_COLOUR_WINDOW - - Window background. - - @b wxSYS_COLOUR_WINDOWFRAME - - Window frame. - - @b wxSYS_COLOUR_MENUTEXT - - Menu text. - - @b wxSYS_COLOUR_WINDOWTEXT - - Text in windows. - - @b wxSYS_COLOUR_CAPTIONTEXT - - Text in caption, size box and scrollbar arrow box. - - @b wxSYS_COLOUR_ACTIVEBORDER - - Active window border. - - @b wxSYS_COLOUR_INACTIVEBORDER - - Inactive window border. - - @b wxSYS_COLOUR_APPWORKSPACE - - Background colour MDI applications. - - @b wxSYS_COLOUR_HIGHLIGHT - - Item(s) selected in a control. - - @b wxSYS_COLOUR_HIGHLIGHTTEXT - - Text of item(s) selected in a control. - - @b wxSYS_COLOUR_BTNFACE - - Face shading on push buttons. - - @b wxSYS_COLOUR_BTNSHADOW - - Edge shading on push buttons. - - @b wxSYS_COLOUR_GRAYTEXT - - Greyed (disabled) text. - - @b wxSYS_COLOUR_BTNTEXT - - Text on push buttons. - - @b wxSYS_COLOUR_INACTIVECAPTIONTEXT - - Colour of text in active captions. - - @b wxSYS_COLOUR_BTNHIGHLIGHT - - Highlight colour for buttons (same as wxSYS_COLOUR_3DHILIGHT). - - @b wxSYS_COLOUR_3DDKSHADOW - - Dark shadow for three-dimensional display elements. - - @b wxSYS_COLOUR_3DLIGHT - - Light colour for three-dimensional display elements. - - @b wxSYS_COLOUR_INFOTEXT - - Text colour for tooltip controls. - - @b wxSYS_COLOUR_INFOBK - - Background colour for tooltip controls. - - @b wxSYS_COLOUR_DESKTOP - - Same as wxSYS_COLOUR_BACKGROUND. - - @b wxSYS_COLOUR_3DFACE - - Same as wxSYS_COLOUR_BTNFACE. - - @b wxSYS_COLOUR_3DSHADOW - - Same as wxSYS_COLOUR_BTNSHADOW. - - @b wxSYS_COLOUR_3DHIGHLIGHT - - Same as wxSYS_COLOUR_BTNHIGHLIGHT. - - @b wxSYS_COLOUR_3DHILIGHT - - Same as wxSYS_COLOUR_BTNHIGHLIGHT. - - @b wxSYS_COLOUR_BTNHILIGHT - - Same as wxSYS_COLOUR_BTNHIGHLIGHT. + @a index can be one of the ::wxSystemColour enum values. */ static wxColour GetColour(wxSystemColour index); /** Returns a system font. - @a index can be one of: - - @b wxSYS_OEM_FIXED_FONT - - Original equipment manufacturer dependent fixed-pitch font. - - @b wxSYS_ANSI_FIXED_FONT - - Windows fixed-pitch font. - - @b wxSYS_ANSI_VAR_FONT - - Windows variable-pitch (proportional) font. - - @b wxSYS_SYSTEM_FONT - - System font. - - @b wxSYS_DEVICE_DEFAULT_FONT - - Device-dependent font (Windows NT only). - - @b 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. + @a index can be one of the ::wxSystemFont enum values. */ static wxFont GetFont(wxSystemFont index); /** Returns the value of a system metric, or -1 if the metric is not supported on the current system. + The value of @a win determines if the metric returned is a global value or a 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). - @a index can be one of: - - @b wxSYS_MOUSE_BUTTONS - - Number of buttons on mouse, or zero if no mouse was installed. - - @b wxSYS_BORDER_X - - Width of single border. - - @b wxSYS_BORDER_Y - - Height of single border. - - @b wxSYS_CURSOR_X - - Width of cursor. - - @b wxSYS_CURSOR_Y - - Height of cursor. - - @b wxSYS_DCLICK_X - - Width in pixels of rectangle within which two successive mouse - clicks must fall to generate a double-click. - - @b wxSYS_DCLICK_Y - - Height in pixels of rectangle within which two successive mouse - clicks must fall to generate a double-click. - - @b wxSYS_DCLICK_MSEC - - Maximal time, in milliseconds, which may - pass between subsequent clicks for a double click to be generated. - - @b 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. - - @b 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. - - @b wxSYS_EDGE_X - - Width of a 3D border, in pixels. - - @b wxSYS_EDGE_Y - - Height of a 3D border, in pixels. - - @b wxSYS_HSCROLL_ARROW_X - - Width of arrow bitmap on horizontal scrollbar. - - @b wxSYS_HSCROLL_ARROW_Y - - Height of arrow bitmap on horizontal scrollbar. - - @b wxSYS_HTHUMB_X - - Width of horizontal scrollbar thumb. - - @b wxSYS_ICON_X - - The default width of an icon. - - @b wxSYS_ICON_Y - - The default height of an icon. - - @b 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. - - @b wxSYS_ICONSPACING_Y + close to the metric as possible (e.g a wxTopLevelWindow in case of the + wxSYS_CAPTION_Y metric). - Height of a grid cell for items in large icon view, - in pixels. Each item fits into a rectangle of this size when arranged. - - @b wxSYS_WINDOWMIN_X - - Minimum width of a window. - - @b wxSYS_WINDOWMIN_Y - - Minimum height of a window. - - @b wxSYS_SCREEN_X - - Width of the screen in pixels. - - @b wxSYS_SCREEN_Y - - Height of the screen in pixels. - - @b wxSYS_FRAMESIZE_X - - Width of the window frame for a wxTHICK_FRAME window. - - @b wxSYS_FRAMESIZE_Y - - Height of the window frame for a wxTHICK_FRAME window. - - @b wxSYS_SMALLICON_X - - Recommended width of a small icon (in window captions, and small icon view). - - @b wxSYS_SMALLICON_Y - - Recommended height of a small icon (in window captions, and small icon view). - - @b wxSYS_HSCROLL_Y - - Height of horizontal scrollbar in pixels. - - @b wxSYS_VSCROLL_X - - Width of vertical scrollbar in pixels. - - @b wxSYS_VSCROLL_ARROW_X - - Width of arrow bitmap on a vertical scrollbar. - - @b wxSYS_VSCROLL_ARROW_Y - - Height of arrow bitmap on a vertical scrollbar. - - @b wxSYS_VTHUMB_Y - - Height of vertical scrollbar thumb. - - @b wxSYS_CAPTION_Y - - Height of normal caption area. - - @b wxSYS_MENU_Y - - Height of single-line menu bar. - - @b wxSYS_NETWORK_PRESENT - - 1 if there is a network present, 0 otherwise. - - @b wxSYS_PENWINDOWS_PRESENT - - 1 if PenWindows is installed, 0 otherwise. - - @b 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. - - @b wxSYS_SWAP_BUTTONS - - Non-zero if the meanings of the left and right mouse buttons are swapped; zero - otherwise. + @a index can be one of the ::wxSystemMetric enum values. @a win is a pointer to the window for which the metric is requested. Specifying the @a 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, + 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. + cursor width is requested with wxSYS_CURSOR_X. */ static int GetMetric(wxSystemMetric index, wxWindow* win = NULL); /** - Returns the screen type. The return value is one of: - - @b wxSYS_SCREEN_NONE - - Undefined screen type - - @b wxSYS_SCREEN_TINY - - Tiny screen, less than 320x240 - - @b wxSYS_SCREEN_PDA - - PDA screen, 320x240 or more but less than 640x480 - - @b wxSYS_SCREEN_SMALL - - Small screen, 640x480 or more but less than 800x600 - - @b wxSYS_SCREEN_DESKTOP - - Desktop screen, 800x600 or more + Returns the screen type. + The return value is one of the ::wxSystemScreenType enum values. */ static wxSystemScreenType GetScreenType(); };