]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/univ/renderer.h
moved MGL initialization to earlier stage (crashes otherwise...) and implemented...
[wxWidgets.git] / include / wx / univ / renderer.h
index 5e4325c21fc5dd8fc52e6cd2ad52029af3566cc4..cfcdccf9c8b6b80627ac7e3eb8a2228d3186a62d 100644 (file)
@@ -32,6 +32,7 @@ class WXDLLEXPORT wxDC;
 class WXDLLEXPORT wxCheckListBox;
 class WXDLLEXPORT wxListBox;
 class WXDLLEXPORT wxMenu;
 class WXDLLEXPORT wxCheckListBox;
 class WXDLLEXPORT wxListBox;
 class WXDLLEXPORT wxMenu;
+class WXDLLEXPORT wxMenuGeometryInfo;
 class WXDLLEXPORT wxScrollBar;
 class WXDLLEXPORT wxTextCtrl;
 class WXDLLEXPORT wxWindow;
 class WXDLLEXPORT wxScrollBar;
 class WXDLLEXPORT wxTextCtrl;
 class WXDLLEXPORT wxWindow;
@@ -43,10 +44,6 @@ class WXDLLEXPORT wxGauge;
 #include "wx/gdicmn.h"
 #include "wx/scrolbar.h"            // for wxScrollBar::Element
 
 #include "wx/gdicmn.h"
 #include "wx/scrolbar.h"            // for wxScrollBar::Element
 
-#ifndef WX_PRECOMP
-    #include "wx/menu.h"            // for wxMenuGeometryInfo
-#endif // WX_PRECOMP
-
 // ----------------------------------------------------------------------------
 // wxRenderer: abstract renderers interface
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 // wxRenderer: abstract renderers interface
 // ----------------------------------------------------------------------------
@@ -223,6 +220,7 @@ 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,
@@ -246,12 +244,50 @@ 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 complete frame/dialog titlebar
+    virtual void DrawFrameTitleBar(wxDC& dc,
+                                   const wxRect& rect,
+                                   const wxString& title,
+                                   const wxIcon& icon,
+                                   int flags,
+                                   int specialButton = 0,
+                                   int specialButtonFlags = 0) = 0;
+                                   
+    // draw frame borders
+    virtual void DrawFrameBorder(wxDC& dc,
+                                 const wxRect& rect,
+                                 int flags) = 0;
+
+    // draw frame titlebar background
+    virtual void DrawFrameBackground(wxDC& dc,
+                                     const wxRect& rect,
+                                     int flags) = 0;
+
+    // draw frame title
+    virtual void DrawFrameTitle(wxDC& dc,
+                                const wxRect& rect,
+                                const wxString& title,
+                                int flags) = 0;
+
+    // draw frame icon
+    virtual void DrawFrameIcon(wxDC& dc,
+                               const wxRect& rect,
+                               const wxIcon& icon,
+                               int flags) = 0;
+
+    // draw frame buttons
+    virtual void DrawFrameButton(wxDC& dc,
+                                 wxCoord x, wxCoord y,
+                                 int button,
+                                 int flags = 0) = 0;
 
     // misc functions
     // --------------
 
     // return the bitmaps to use for combobox button
     virtual void GetComboBitmaps(wxBitmap *bmpNormal,
 
     // misc functions
     // --------------
 
     // return the bitmaps to use for combobox button
     virtual void GetComboBitmaps(wxBitmap *bmpNormal,
+                                 wxBitmap *bmpFocus,
                                  wxBitmap *bmpPressed,
                                  wxBitmap *bmpDisabled) = 0;
 
                                  wxBitmap *bmpPressed,
                                  wxBitmap *bmpDisabled) = 0;
 
@@ -337,6 +373,7 @@ 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;
 
@@ -347,6 +384,19 @@ 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 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 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) const = 0;
 
     // virtual dtor for any base class
     virtual ~wxRenderer();
 
     // virtual dtor for any base class
     virtual ~wxRenderer();
@@ -549,6 +599,7 @@ 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,
@@ -570,11 +621,46 @@ 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 DrawFrameTitleBar(wxDC& dc,
+                                   const wxRect& rect,
+                                   const wxString& title,
+                                   const wxIcon& icon,
+                                   int flags,
+                                   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)
+        { m_renderer->DrawFrameBorder(dc, rect, flags); }
+    virtual void DrawFrameBackground(wxDC& dc,
+                                     const wxRect& rect,
+                                     int flags)
+        { m_renderer->DrawFrameBackground(dc, rect, flags); }
+    virtual void DrawFrameTitle(wxDC& dc,
+                                const wxRect& rect,
+                                const wxString& title,
+                                int flags)
+        { m_renderer->DrawFrameTitle(dc, rect, title, flags); }
+    virtual void DrawFrameIcon(wxDC& dc,
+                               const wxRect& rect,
+                               const wxIcon& icon,
+                               int flags)
+        { m_renderer->DrawFrameIcon(dc, rect, icon, flags); }
+    virtual void DrawFrameButton(wxDC& dc,
+                                 wxCoord x, wxCoord y,
+                                 int button,
+                                 int flags = 0)
+        { m_renderer->DrawFrameButton(dc, x, y, button, flags); }
 
     virtual void GetComboBitmaps(wxBitmap *bmpNormal,
 
     virtual void GetComboBitmaps(wxBitmap *bmpNormal,
+                                 wxBitmap *bmpFocus,
                                  wxBitmap *bmpPressed,
                                  wxBitmap *bmpPressed,
-                                 wxBitmap *bmpDisabled)
-        { m_renderer->GetComboBitmaps(bmpNormal, bmpPressed, bmpDisabled); }
+                                 wxBitmap *bmpDisabled) const
+        { m_renderer->GetComboBitmaps(bmpNormal, bmpFocus,
+                                      bmpPressed, bmpDisabled); }
 
     virtual void AdjustSize(wxSize *size, const wxWindow *window)
         { m_renderer->AdjustSize(size, window); }
 
     virtual void AdjustSize(wxSize *size, const wxWindow *window)
         { m_renderer->AdjustSize(size, window); }
@@ -631,11 +717,23 @@ 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 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); }
 
 protected:
     wxRenderer *m_renderer;
 
 protected:
     wxRenderer *m_renderer;