]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/settings.h
avoid infinite recursion for richtooltops, (hopefully) fixes #15070
[wxWidgets.git] / interface / wx / settings.h
index 83fff83f18319ea64a682cad64b84f459b38d464..b2528fa8a665d26dc108fef4d088e1f46829ea87 100644 (file)
 // Purpose:     interface of wxSystemSettings
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
 // 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.
     */
     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.
     */
     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
         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
 
         @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
         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);
 
     /**
     */
     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();
     */
     static wxSystemScreenType GetScreenType();
+
+    /**
+        Returns @true if the port has certain feature.
+        See the ::wxSystemFeature enum values.
+    */
+    static bool HasFeature(wxSystemFeature index);
 };
 
 };