]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/univ/renderer.h
added inactive titlebar text colour
[wxWidgets.git] / include / wx / univ / renderer.h
index e71426e6eedd9b32b117fc3717dbc5e845b62a27..f1c705542eaa12eb7f23079b3a318da76d3c5d3d 100644 (file)
@@ -42,8 +42,19 @@ class WXDLLEXPORT wxGauge;
 
 #include "wx/string.h"
 #include "wx/gdicmn.h"
 
 #include "wx/string.h"
 #include "wx/gdicmn.h"
+#include "wx/icon.h"
 #include "wx/scrolbar.h"            // for wxScrollBar::Element
 
 #include "wx/scrolbar.h"            // for wxScrollBar::Element
 
+// helper class used by wxMenu-related functions
+class WXDLLEXPORT wxMenuGeometryInfo
+{
+public:
+    // get the total size of the menu
+    virtual wxSize GetSize() const = 0;
+
+    virtual ~wxMenuGeometryInfo();
+};
+
 // ----------------------------------------------------------------------------
 // wxRenderer: abstract renderers interface
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 // wxRenderer: abstract renderers interface
 // ----------------------------------------------------------------------------
@@ -220,7 +231,6 @@ public:
                                  int step = 1,
                                  int flags = 0) = 0;
 
                                  int step = 1,
                                  int flags = 0) = 0;
 
-#if wxUSE_MENUS
     // draw a menu bar item
     virtual void DrawMenuBarItem(wxDC& dc,
                                  const wxRect& rect,
     // draw a menu bar item
     virtual void DrawMenuBarItem(wxDC& dc,
                                  const wxRect& rect,
@@ -244,15 +254,23 @@ public:
     virtual void DrawMenuSeparator(wxDC& dc,
                                    wxCoord y,
                                    const wxMenuGeometryInfo& geomInfo) = 0;
     virtual void DrawMenuSeparator(wxDC& dc,
                                    wxCoord y,
                                    const wxMenuGeometryInfo& geomInfo) = 0;
-#endif
+
+    // draw a status bar field: wxCONTROL_ISDEFAULT bit in the flags is
+    // interpreted specially and means "draw the status bar grip" here
+    virtual void DrawStatusField(wxDC& dc,
+                                 const wxRect& rect,
+                                 const wxString& label,
+                                 int flags = 0) = 0;
+
     // draw complete frame/dialog titlebar
     virtual void DrawFrameTitleBar(wxDC& dc,
                                    const wxRect& rect,
                                    const wxString& title,
                                    const wxIcon& icon,
                                    int flags,
     // draw complete frame/dialog titlebar
     virtual void DrawFrameTitleBar(wxDC& dc,
                                    const wxRect& rect,
                                    const wxString& title,
                                    const wxIcon& icon,
                                    int flags,
-                                   int pressedButtons = 0) = 0;
-                                   
+                                   int specialButton = 0,
+                                   int specialButtonFlags = 0) = 0;
+
     // draw frame borders
     virtual void DrawFrameBorder(wxDC& dc,
                                  const wxRect& rect,
     // draw frame borders
     virtual void DrawFrameBorder(wxDC& dc,
                                  const wxRect& rect,
@@ -372,7 +390,6 @@ public:
     // get the size of one progress bar step (in horz and vertical directions)
     virtual wxSize GetProgressBarStep() const = 0;
 
     // get the size of one progress bar step (in horz and vertical directions)
     virtual wxSize GetProgressBarStep() const = 0;
 
-#if wxUSE_MENUS
     // get the size of rectangle to use in the menubar for the given text rect
     virtual wxSize GetMenuBarItemSize(const wxSize& sizeText) const = 0;
 
     // get the size of rectangle to use in the menubar for the given text rect
     virtual wxSize GetMenuBarItemSize(const wxSize& sizeText) const = 0;
 
@@ -383,16 +400,32 @@ public:
     // the returned pointer must be deleted by the caller
     virtual wxMenuGeometryInfo *GetMenuGeometry(wxWindow *win,
                                                 const wxMenu& menu) const = 0;
     // the returned pointer must be deleted by the caller
     virtual wxMenuGeometryInfo *GetMenuGeometry(wxWindow *win,
                                                 const wxMenu& menu) const = 0;
-#endif
+
+    // get the borders around the status bar fields (x and y fields of the
+    // return value) and also, optionally, the border between the fields
+    virtual wxSize GetStatusBarBorders(wxCoord *borderBetweenFields) const = 0;
 
     // get client area rectangle of top level window (i.e. subtract
     // decorations from given rectangle)
     virtual wxRect GetFrameClientArea(const wxRect& rect, int flags) const = 0;
 
     // get client area rectangle of top level window (i.e. subtract
     // decorations from given rectangle)
     virtual wxRect GetFrameClientArea(const wxRect& rect, int flags) const = 0;
+
     // get size of whole top level window, given size of its client area size
     virtual wxSize GetFrameTotalSize(const wxSize& clientSize, int flags) const = 0;
     // get size of whole top level window, given size of its client area size
     virtual wxSize GetFrameTotalSize(const wxSize& clientSize, int flags) const = 0;
+
     // get titlebar icon size
     virtual wxSize GetFrameIconSize() const = 0;
 
     // get titlebar icon size
     virtual wxSize GetFrameIconSize() const = 0;
 
+    // returns one of wxHT_TOPLEVEL_XXX constants
+    virtual int HitTestFrame(const wxRect& rect,
+                             const wxPoint& pt,
+                             int flags = 0) const = 0;
+
+
+    // get the standard icon used by wxWin dialogs - this allows the user
+    // to customize the standard dialogs. The 'which' parameter is one of
+    // wxICON_XXX values
+    virtual wxIcon GetStdIcon(int which) const = 0;
+
     // virtual dtor for any base class
     virtual ~wxRenderer();
 
     // virtual dtor for any base class
     virtual ~wxRenderer();
 
@@ -594,7 +627,6 @@ public:
                                  int flags = 0)
         { m_renderer->DrawSliderTicks(dc, rect, sizeThumb, orient,
                                       start, end, start, flags); }
                                  int flags = 0)
         { m_renderer->DrawSliderTicks(dc, rect, sizeThumb, orient,
                                       start, end, start, flags); }
-#if wxUSE_MENUS
 
     virtual void DrawMenuBarItem(wxDC& dc,
                                  const wxRect& rect,
 
     virtual void DrawMenuBarItem(wxDC& dc,
                                  const wxRect& rect,
@@ -616,14 +648,22 @@ public:
                                    wxCoord y,
                                    const wxMenuGeometryInfo& geomInfo)
         { m_renderer->DrawMenuSeparator(dc, y, geomInfo); }
                                    wxCoord y,
                                    const wxMenuGeometryInfo& geomInfo)
         { m_renderer->DrawMenuSeparator(dc, y, geomInfo); }
-#endif
+
+    virtual void DrawStatusField(wxDC& dc,
+                                 const wxRect& rect,
+                                 const wxString& label,
+                                 int flags = 0)
+        { m_renderer->DrawStatusField(dc, rect, label, flags); }
+
     virtual void DrawFrameTitleBar(wxDC& dc,
                                    const wxRect& rect,
                                    const wxString& title,
                                    const wxIcon& icon,
                                    int flags,
     virtual void DrawFrameTitleBar(wxDC& dc,
                                    const wxRect& rect,
                                    const wxString& title,
                                    const wxIcon& icon,
                                    int flags,
-                                   int pressedButtons = 0)
-        { m_renderer->DrawFrameTitleBar(dc, rect, title, icon, flags, pressedButtons); }
+                                   int specialButton = 0,
+                                   int specialButtonFlag = 0)
+        { m_renderer->DrawFrameTitleBar(dc, rect, title, icon, flags,
+                                        specialButton, specialButtonFlag); }
     virtual void DrawFrameBorder(wxDC& dc,
                                  const wxRect& rect,
                                  int flags)
     virtual void DrawFrameBorder(wxDC& dc,
                                  const wxRect& rect,
                                  int flags)
@@ -710,19 +750,25 @@ public:
         { return m_renderer->GetSliderThumbSize(rect, orient); }
     virtual wxSize GetProgressBarStep() const
         { return m_renderer->GetProgressBarStep(); }
         { return m_renderer->GetSliderThumbSize(rect, orient); }
     virtual wxSize GetProgressBarStep() const
         { return m_renderer->GetProgressBarStep(); }
-#if wxUSE_MENUS
     virtual wxSize GetMenuBarItemSize(const wxSize& sizeText) const
         { return m_renderer->GetMenuBarItemSize(sizeText); }
     virtual wxMenuGeometryInfo *GetMenuGeometry(wxWindow *win,
                                                 const wxMenu& menu) const
         { return m_renderer->GetMenuGeometry(win, menu); }
     virtual wxSize GetMenuBarItemSize(const wxSize& sizeText) const
         { return m_renderer->GetMenuBarItemSize(sizeText); }
     virtual wxMenuGeometryInfo *GetMenuGeometry(wxWindow *win,
                                                 const wxMenu& menu) const
         { return m_renderer->GetMenuGeometry(win, menu); }
-#endif
+    virtual wxSize GetStatusBarBorders(wxCoord *borderBetweenFields) const
+        { return m_renderer->GetStatusBarBorders(borderBetweenFields); }
     virtual wxRect GetFrameClientArea(const wxRect& rect, int flags) const
         { return m_renderer->GetFrameClientArea(rect, flags); }
     virtual wxSize GetFrameTotalSize(const wxSize& clientSize, int flags) const
         { return m_renderer->GetFrameTotalSize(clientSize, flags); }
     virtual wxSize GetFrameIconSize() const
         { return m_renderer->GetFrameIconSize(); }
     virtual wxRect GetFrameClientArea(const wxRect& rect, int flags) const
         { return m_renderer->GetFrameClientArea(rect, flags); }
     virtual wxSize GetFrameTotalSize(const wxSize& clientSize, int flags) const
         { return m_renderer->GetFrameTotalSize(clientSize, flags); }
     virtual wxSize GetFrameIconSize() const
         { return m_renderer->GetFrameIconSize(); }
+    virtual int HitTestFrame(const wxRect& rect,
+                             const wxPoint& pt,
+                             int flags) const
+        { return m_renderer->HitTestFrame(rect, pt, flags); }
+    virtual wxIcon GetStdIcon(int which) const
+        { return m_renderer->GetStdIcon(which); }
 
 protected:
     wxRenderer *m_renderer;
 
 protected:
     wxRenderer *m_renderer;