X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ae3c17b4013e80b99976c750c19fca47729517f6..71abf17edb285a2a028b473e723cd52f79d1fb29:/interface/wx/settings.h diff --git a/interface/wx/settings.h b/interface/wx/settings.h index 83fff83f18..b2528fa8a6 100644 --- a/interface/wx/settings.h +++ b/interface/wx/settings.h @@ -3,404 +3,299 @@ // Purpose: interface of wxSystemSettings // Author: wxWidgets team // RCS-ID: $Id$ -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -/** - @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, - and user interface element sizes. - @library{wxcore} - @category{misc} +/** + Possible values for wxSystemSettings::GetFont() parameter. - @see wxFont, wxColour + These values map 1:1 the native values supported by the Windows' @c GetStockObject + function. Note that other ports (other than wxMSW) will try to provide meaningful + fonts but they usually map the same font to various @c wxSYS_*_FONT values. */ -class wxSystemSettings : public wxObject +enum wxSystemFont { -public: - /** - 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 + /// Original equipment manufacturer dependent fixed-pitch font. + wxSYS_OEM_FIXED_FONT = 10, - Menu background. + /// Windows fixed-pitch (monospaced) font. + wxSYS_ANSI_FIXED_FONT, - @b wxSYS_COLOUR_WINDOW + /// Windows variable-pitch (proportional) font. + wxSYS_ANSI_VAR_FONT, - Window background. + /// System font. By default, the system uses the system font to draw menus, + /// dialog box controls, and text. + wxSYS_SYSTEM_FONT, - @b wxSYS_COLOUR_WINDOWFRAME + /// Device-dependent font (Windows NT and later only). + wxSYS_DEVICE_DEFAULT_FONT, - 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. + /** + 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 +}; - @b wxSYS_COLOUR_BTNFACE - Face shading on push buttons. +/** + Possible values for wxSystemSettings::GetColour() parameter. - @b wxSYS_COLOUR_BTNSHADOW + These values map 1:1 the native values supported by the Windows' @c GetSysColor + function. Note that other ports (other than wxMSW) will try to provide meaningful + colours but they usually map the same colour to various @c wxSYS_COLOUR_* values. +*/ +enum wxSystemColour +{ + wxSYS_COLOUR_SCROLLBAR, //!< The scrollbar grey area. + wxSYS_COLOUR_DESKTOP, //!< The desktop colour. + wxSYS_COLOUR_ACTIVECAPTION, //!< Active window caption colour. + wxSYS_COLOUR_INACTIVECAPTION, //!< Inactive window caption colour. + wxSYS_COLOUR_MENU, //!< Menu background colour. + wxSYS_COLOUR_WINDOW, //!< Window background colour. + wxSYS_COLOUR_WINDOWFRAME, //!< Window frame colour. + wxSYS_COLOUR_MENUTEXT, //!< Colour of the text used in the menus. + wxSYS_COLOUR_WINDOWTEXT, //!< Colour of the text used in generic windows. + wxSYS_COLOUR_CAPTIONTEXT, //!< Colour of the text used in captions, size boxes and scrollbar arrow boxes. + wxSYS_COLOUR_ACTIVEBORDER, //!< Active window border colour. + wxSYS_COLOUR_INACTIVEBORDER, //!< Inactive window border colour. + wxSYS_COLOUR_APPWORKSPACE, //!< Background colour for MDI applications. + wxSYS_COLOUR_HIGHLIGHT, //!< Colour of item(s) selected in a control. + wxSYS_COLOUR_HIGHLIGHTTEXT, //!< Colour of the text of item(s) selected in a control. + wxSYS_COLOUR_BTNFACE, //!< Face shading colour on push buttons. + wxSYS_COLOUR_BTNSHADOW, //!< Edge shading colour on push buttons. + wxSYS_COLOUR_GRAYTEXT, //!< Colour of greyed (disabled) text. + wxSYS_COLOUR_BTNTEXT, //!< Colour of the text on push buttons. + wxSYS_COLOUR_INACTIVECAPTIONTEXT, //!< Colour of the text in active captions. + wxSYS_COLOUR_BTNHIGHLIGHT, //!< Highlight colour for buttons. + wxSYS_COLOUR_3DDKSHADOW, //!< Dark shadow colour 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_LISTBOX, //!< Background colour for list-like controls. + wxSYS_COLOUR_HOTLIGHT, //!< Colour for a hyperlink or hot-tracked item. - Edge shading on push buttons. + /** + Right side colour in the color gradient of an active window's title bar. + @c wxSYS_COLOUR_ACTIVECAPTION specifies the left side color. + */ + wxSYS_COLOUR_GRADIENTACTIVECAPTION, - @b wxSYS_COLOUR_GRAYTEXT + /** + Right side colour in the color gradient of an inactive window's title bar. + @c wxSYS_COLOUR_INACTIVECAPTION specifies the left side color. + */ + wxSYS_COLOUR_GRADIENTINACTIVECAPTION, - Greyed (disabled) text. + /** + The colour used to highlight menu items when the menu appears as a flat menu. + The highlighted menu item is outlined with @c wxSYS_COLOUR_HIGHLIGHT. + */ + wxSYS_COLOUR_MENUHILIGHT, - @b wxSYS_COLOUR_BTNTEXT + /** + The background colour for the menu bar when menus appear as flat menus. + However, @c wxSYS_COLOUR_MENU continues to specify the background color of the menu popup. + */ + wxSYS_COLOUR_MENUBAR, - Text on push buttons. + /** + Text colour for list-like controls. - @b wxSYS_COLOUR_INACTIVECAPTIONTEXT + @since 2.9.0 + */ + wxSYS_COLOUR_LISTBOXTEXT, - Colour of text in active captions. + /** + Text colour for the unfocused selection of list-like controls. - @b wxSYS_COLOUR_BTNHIGHLIGHT + @since 2.9.1 + */ + wxSYS_COLOUR_LISTBOXHIGHLIGHTTEXT, - Highlight colour for buttons (same as wxSYS_COLOUR_3DHILIGHT). + wxSYS_COLOUR_MAX - @b wxSYS_COLOUR_3DDKSHADOW - Dark shadow for three-dimensional display elements. - @b wxSYS_COLOUR_3DLIGHT + // synonyms: - Light colour for three-dimensional display elements. + wxSYS_COLOUR_BACKGROUND = wxSYS_COLOUR_DESKTOP, + //!< Synonym for @c wxSYS_COLOUR_DESKTOP. + wxSYS_COLOUR_3DFACE = wxSYS_COLOUR_BTNFACE, + //!< Synonym for @c wxSYS_COLOUR_BTNFACE. + wxSYS_COLOUR_3DSHADOW = wxSYS_COLOUR_BTNSHADOW, + //!< Synonym for @c wxSYS_COLOUR_BTNSHADOW. + wxSYS_COLOUR_BTNHILIGHT = wxSYS_COLOUR_BTNHIGHLIGHT, + //!< Synonym for @c wxSYS_COLOUR_BTNHIGHLIGHT. + wxSYS_COLOUR_3DHIGHLIGHT = wxSYS_COLOUR_BTNHIGHLIGHT, + //!< Synonym for @c wxSYS_COLOUR_BTNHIGHLIGHT. + wxSYS_COLOUR_3DHILIGHT = wxSYS_COLOUR_BTNHIGHLIGHT, + //!< Synonym for @c wxSYS_COLOUR_BTNHIGHLIGHT. - @b wxSYS_COLOUR_INFOTEXT + /** + Synonym for @c wxSYS_COLOUR_BTNFACE. - Text colour for tooltip controls. + On wxMSW this colour should be used as the background colour of + wxFrames which are used as containers of controls; this is in fact the + same colour used for the borders of controls like e.g. wxNotebook or + for the background of e.g. wxPanel. - @b wxSYS_COLOUR_INFOBK + @since 2.9.0 + */ + wxSYS_COLOUR_FRAMEBK = wxSYS_COLOUR_BTNFACE +}; - Background colour for tooltip controls. +/** + 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_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 //!< Maximal time, in milliseconds, which may pass between subsequent clicks for a double click to be generated. +}; - @b wxSYS_COLOUR_DESKTOP +/** + Possible values for wxSystemSettings::HasFeature() parameter. +*/ +enum wxSystemFeature +{ + wxSYS_CAN_DRAW_FRAME_DECORATIONS = 1, + wxSYS_CAN_ICONIZE_FRAME, + wxSYS_TABLET_PRESENT +}; - Same as wxSYS_COLOUR_BACKGROUND. +/** + Values for different screen designs. See wxSystemSettings::GetScreenType(). +*/ +enum wxSystemScreenType +{ + wxSYS_SCREEN_NONE = 0, //!< Undefined screen type. - @b wxSYS_COLOUR_3DFACE + 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 +}; - Same as wxSYS_COLOUR_BTNFACE. - @b wxSYS_COLOUR_3DSHADOW +/** + @class wxSystemSettings - Same as wxSYS_COLOUR_BTNSHADOW. + wxSystemSettings allows the application to ask for details about the system. - @b wxSYS_COLOUR_3DHIGHLIGHT + This can include settings such as standard colours, fonts, and user interface + element sizes. - Same as wxSYS_COLOUR_BTNHIGHLIGHT. + @library{wxcore} + @category{cfg} - @b wxSYS_COLOUR_3DHILIGHT + @see wxFont, wxColour, wxSystemOptions +*/ +class wxSystemSettings : public wxObject +{ +public: + /** + Default constructor. - Same as wxSYS_COLOUR_BTNHIGHLIGHT. + You don't need to create an instance of wxSystemSettings + since all of its functions are static. + */ + wxSystemSettings(); - @b wxSYS_COLOUR_BTNHILIGHT + /** + Returns a system colour. - Same as wxSYS_COLOUR_BTNHIGHLIGHT. + @param index + Can be one of the ::wxSystemColour enum values. + + @return + The returned colour is always valid. */ 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. + @param index + Can be one of the ::wxSystemFont enum values. + + @return + The returned font is always valid. */ 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 - - 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 + close to the metric as possible (e.g. a wxTopLevelWindow in case of the + wxSYS_CAPTION_Y metric). - 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(); + + /** + Returns @true if the port has certain feature. + See the ::wxSystemFeature enum values. + */ + static bool HasFeature(wxSystemFeature index); };