]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/univ/renderer.h
Added support for delayed deactivation of windows (for MDI)
[wxWidgets.git] / include / wx / univ / renderer.h
index f1c705542eaa12eb7f23079b3a318da76d3c5d3d..dc05cfa61ce83ee27b41a95fc873f39eac600017 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     06.08.00
 // RCS-ID:      $Id$
 // Copyright:   (c) 2000 SciTech Software, Inc. (www.scitechsoft.com)
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 /*
@@ -69,7 +69,16 @@ public:
     virtual void DrawBackground(wxDC& dc,
                                 const wxColour& col,
                                 const wxRect& rect,
-                                int flags) = 0;
+                                int flags,
+                                wxWindow *window = NULL ) = 0;
+
+    // draw the button surface
+    virtual void DrawButtonSurface(wxDC& dc,
+                                const wxColour& col,
+                                const wxRect& rect,
+                                int flags )
+        { DrawBackground( dc, col, rect, flags ); }
+                                
 
     // draw the label inside the given rectangle with the specified alignment
     // and optionally emphasize the character with the given index
@@ -188,6 +197,15 @@ public:
                                  wxAlignment align = wxALIGN_LEFT,
                                  int indexAccel = -1) = 0;
 
+    // draw a toolbar button (label may be empty, bitmap may be invalid, if
+    // both conditions are true this function draws a separator)
+    virtual void DrawToolBarButton(wxDC& dc,
+                                   const wxString& label,
+                                   const wxBitmap& bitmap,
+                                   const wxRect& rect,
+                                   int flags = 0,
+                                   long style = 0) = 0;
+
     // draw a (part of) line in the text control
     virtual void DrawTextLine(wxDC& dc,
                               const wxString& text,
@@ -211,25 +229,29 @@ public:
     // draw the slider shaft
     virtual void DrawSliderShaft(wxDC& dc,
                                  const wxRect& rect,
+                                 int lenThumb,
                                  wxOrientation orient,
                                  int flags = 0,
+                                 long style = 0,
                                  wxRect *rectShaft = NULL) = 0;
 
     // draw the slider thumb
     virtual void DrawSliderThumb(wxDC& dc,
                                  const wxRect& rect,
                                  wxOrientation orient,
-                                 int flags = 0) = 0;
+                                 int flags = 0,
+                                 long style = 0) = 0;
 
     // draw the slider ticks
     virtual void DrawSliderTicks(wxDC& dc,
                                  const wxRect& rect,
-                                 const wxSize& sizeThumb,
+                                 int lenThumb,
                                  wxOrientation orient,
                                  int start,
                                  int end,
                                  int step = 1,
-                                 int flags = 0) = 0;
+                                 int flags = 0,
+                                 long style = 0) = 0;
 
     // draw a menu bar item
     virtual void DrawMenuBarItem(wxDC& dc,
@@ -356,15 +378,22 @@ public:
     virtual wxSize GetRadioBitmapSize() const = 0;
     virtual wxCoord GetCheckItemMargin() const = 0;
 
+    // get the standard size of a toolbar button and also return the size of
+    // a toolbar separator in the provided pointer
+    virtual wxSize GetToolBarButtonSize(wxCoord *separator) const = 0;
+
+    // get the margins between/around the toolbar buttons
+    virtual wxSize GetToolBarMargin() const = 0;
+
     // convert between text rectangle and client rectangle for text controls:
     // the former is typicall smaller to leave margins around text
     virtual wxRect GetTextTotalArea(const wxTextCtrl *text,
-                                    const wxRect& rectText) = 0;
+                                    const wxRect& rectText) const = 0;
 
     // extra space is for line indicators
     virtual wxRect GetTextClientArea(const wxTextCtrl *text,
                                      const wxRect& rectTotal,
-                                     wxCoord *extraSpaceBeyond) = 0;
+                                     wxCoord *extraSpaceBeyond) const = 0;
 
     // get the overhang of a selected tab
     virtual wxSize GetTabIndent() const = 0;
@@ -381,10 +410,13 @@ public:
 
     // get the slider shaft rect from the total slider rect
     virtual wxRect GetSliderShaftRect(const wxRect& rect,
-                                      wxOrientation orient) const = 0;
+                                      int lenThumb,
+                                      wxOrientation orient,
+                                      long style = 0) const = 0;
 
     // get the size of the slider thumb for the given total slider rect
     virtual wxSize GetSliderThumbSize(const wxRect& rect,
+                                      int lenThumb,
                                       wxOrientation orient) const = 0;
 
     // get the size of one progress bar step (in horz and vertical directions)
@@ -412,6 +444,9 @@ public:
     // 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 the minimal size of top level window
+    virtual wxSize GetFrameMinSize(int flags) const = 0;
+
     // get titlebar icon size
     virtual wxSize GetFrameIconSize() const = 0;
 
@@ -420,12 +455,6 @@ public:
                              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();
 
@@ -485,8 +514,9 @@ public:
     virtual void DrawBackground(wxDC& dc,
                                 const wxColour& col,
                                 const wxRect& rect,
-                                int flags)
-        { m_renderer->DrawBackground(dc, col, rect, flags); }
+                                int flags,
+                                wxWindow *window = NULL )
+        { m_renderer->DrawBackground(dc, col, rect, flags, window ); }
     virtual void DrawLabel(wxDC& dc,
                            const wxString& label,
                            const wxRect& rect,
@@ -588,12 +618,20 @@ public:
                                  int indexAccel = -1)
         { m_renderer->DrawRadioButton(dc, label, bitmap, rect,
                                       flags, align, indexAccel); }
+    virtual void DrawToolBarButton(wxDC& dc,
+                                   const wxString& label,
+                                   const wxBitmap& bitmap,
+                                   const wxRect& rect,
+                                   int flags = 0,
+                                   long style = 0)
+        { m_renderer->DrawToolBarButton(dc, label, bitmap, rect, flags, style); }
     virtual void DrawTextLine(wxDC& dc,
                               const wxString& text,
                               const wxRect& rect,
                               int selStart = -1,
-                              int selEnd = -1)
-        { m_renderer->DrawTextLine(dc, text, rect, selStart, selEnd); }
+                              int selEnd = -1,
+                              int flags = 0)
+        { m_renderer->DrawTextLine(dc, text, rect, selStart, selEnd, flags); }
     virtual void DrawLineWrapMark(wxDC& dc, const wxRect& rect)
         { m_renderer->DrawLineWrapMark(dc, rect); }
 
@@ -608,25 +646,29 @@ public:
 
     virtual void DrawSliderShaft(wxDC& dc,
                                  const wxRect& rect,
+                                 int lenThumb,
                                  wxOrientation orient,
                                  int flags = 0,
+                                 long style = 0,
                                  wxRect *rectShaft = NULL)
-        { m_renderer->DrawSliderShaft(dc, rect, orient, flags, rectShaft); }
+        { m_renderer->DrawSliderShaft(dc, rect, lenThumb, orient, flags, style, rectShaft); }
     virtual void DrawSliderThumb(wxDC& dc,
                                  const wxRect& rect,
                                  wxOrientation orient,
-                                 int flags = 0)
-        { m_renderer->DrawSliderThumb(dc, rect, orient, flags); }
+                                 int flags = 0,
+                                 long style = 0)
+        { m_renderer->DrawSliderThumb(dc, rect, orient, flags, style); }
     virtual void DrawSliderTicks(wxDC& dc,
                                  const wxRect& rect,
-                                 const wxSize& sizeThumb,
+                                 int lenThumb,
                                  wxOrientation orient,
                                  int start,
                                  int end,
                                  int step = 1,
-                                 int flags = 0)
-        { m_renderer->DrawSliderTicks(dc, rect, sizeThumb, orient,
-                                      start, end, start, flags); }
+                                 int flags = 0,
+                                 long style = 0)
+        { m_renderer->DrawSliderTicks(dc, rect, lenThumb, orient,
+                                      start, end, start, flags, style); }
 
     virtual void DrawMenuBarItem(wxDC& dc,
                                  const wxRect& rect,
@@ -691,7 +733,7 @@ public:
     virtual void GetComboBitmaps(wxBitmap *bmpNormal,
                                  wxBitmap *bmpFocus,
                                  wxBitmap *bmpPressed,
-                                 wxBitmap *bmpDisabled) const
+                                 wxBitmap *bmpDisabled)
         { m_renderer->GetComboBitmaps(bmpNormal, bmpFocus,
                                       bmpPressed, bmpDisabled); }
 
@@ -728,11 +770,17 @@ public:
     virtual wxCoord GetCheckItemMargin() const
         { return m_renderer->GetCheckItemMargin(); }
 
-    virtual wxRect GetTextTotalArea(const wxTextCtrl *text, const wxRect& rect)
+    virtual wxSize GetToolBarButtonSize(wxCoord *separator) const
+        { return m_renderer->GetToolBarButtonSize(separator); }
+    virtual wxSize GetToolBarMargin() const
+        { return m_renderer->GetToolBarMargin(); }
+
+    virtual wxRect GetTextTotalArea(const wxTextCtrl *text,
+                                    const wxRect& rect) const
         { return m_renderer->GetTextTotalArea(text, rect); }
     virtual wxRect GetTextClientArea(const wxTextCtrl *text,
                                      const wxRect& rect,
-                                     wxCoord *extraSpaceBeyond)
+                                     wxCoord *extraSpaceBeyond) const
         { return m_renderer->GetTextClientArea(text, rect, extraSpaceBeyond); }
 
     virtual wxSize GetTabIndent() const { return m_renderer->GetTabIndent(); }
@@ -743,11 +791,14 @@ public:
     virtual wxCoord GetSliderTickLen() const
         { return m_renderer->GetSliderTickLen(); }
     virtual wxRect GetSliderShaftRect(const wxRect& rect,
-                                      wxOrientation orient) const
-        { return GetSliderShaftRect(rect, orient); }
+                                      int lenThumb,
+                                      wxOrientation orient,
+                                      long style = 0) const
+        { return m_renderer->GetSliderShaftRect(rect, lenThumb, orient, style); }
     virtual wxSize GetSliderThumbSize(const wxRect& rect,
+                                      int lenThumb,
                                       wxOrientation orient) const
-        { return m_renderer->GetSliderThumbSize(rect, orient); }
+        { return m_renderer->GetSliderThumbSize(rect, lenThumb, orient); }
     virtual wxSize GetProgressBarStep() const
         { return m_renderer->GetProgressBarStep(); }
     virtual wxSize GetMenuBarItemSize(const wxSize& sizeText) const
@@ -761,14 +812,14 @@ public:
         { return m_renderer->GetFrameClientArea(rect, flags); }
     virtual wxSize GetFrameTotalSize(const wxSize& clientSize, int flags) const
         { return m_renderer->GetFrameTotalSize(clientSize, flags); }
+    virtual wxSize GetFrameMinSize(int flags) const
+        { return m_renderer->GetFrameMinSize(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;