]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/univ/renderer.h
Added internal wxHatchStyle enum.
[wxWidgets.git] / include / wx / univ / renderer.h
index 446d11fd1edc182358808d2e017702f8ac23a305..c03a245dc31d6912c65fbaa0b9183143b5ff7221 100644 (file)
 
 #include "wx/renderer.h"
 
-class WXDLLEXPORT wxWindow;
-class WXDLLEXPORT wxDC;
-class WXDLLEXPORT wxCheckListBox;
+class WXDLLIMPEXP_FWD_CORE wxWindow;
+class WXDLLIMPEXP_FWD_CORE wxDC;
+class WXDLLIMPEXP_FWD_CORE wxCheckListBox;
 
 #if wxUSE_LISTBOX
-    class WXDLLEXPORT wxListBox;
+    class WXDLLIMPEXP_FWD_CORE wxListBox;
 #endif // wxUSE_LISTBOX
 
 #if wxUSE_MENUS
-   class WXDLLEXPORT wxMenu;
-   class WXDLLEXPORT wxMenuGeometryInfo;
+   class WXDLLIMPEXP_FWD_CORE wxMenu;
+   class WXDLLIMPEXP_FWD_CORE wxMenuGeometryInfo;
 #endif // wxUSE_MENUS
 
-class WXDLLEXPORT wxScrollBar;
+class WXDLLIMPEXP_FWD_CORE wxScrollBar;
 
 #if wxUSE_TEXTCTRL
-    class WXDLLEXPORT wxTextCtrl;
+    class WXDLLIMPEXP_FWD_CORE wxTextCtrl;
 #endif
 
 #if wxUSE_GAUGE
-    class WXDLLEXPORT wxGauge;
+    class WXDLLIMPEXP_FWD_CORE wxGauge;
 #endif // wxUSE_GAUGE
 
 #include "wx/string.h"
@@ -58,7 +58,7 @@ class WXDLLEXPORT wxScrollBar;
 #include "wx/icon.h"
 
 // helper class used by wxMenu-related functions
-class WXDLLEXPORT wxMenuGeometryInfo
+class WXDLLIMPEXP_CORE wxMenuGeometryInfo
 {
 public:
     // get the total size of the menu
@@ -71,7 +71,7 @@ public:
 // wxRenderer: abstract renderers interface
 // ----------------------------------------------------------------------------
 
-class WXDLLEXPORT wxRenderer : public wxDelegateRendererNative
+class WXDLLIMPEXP_CORE wxRenderer : public wxDelegateRendererNative
 {
 public:
     // drawing functions
@@ -90,12 +90,6 @@ public:
                                    const wxRect& rect,
                                    int flags) = 0;
 
-
-    // draw the focus rectangle around the label contained in the given rect
-    //
-    // only wxCONTROL_SELECTED makes sense in flags here
-    virtual void DrawFocusRect(wxDC& dc, const wxRect& rect, int flags = 0) = 0;
-
     // draw the label inside the given rectangle with the specified alignment
     // and optionally emphasize the character with the given index
     virtual void DrawLabel(wxDC& dc,
@@ -123,7 +117,7 @@ public:
                             wxBorder border,
                             const wxRect& rect,
                             int flags = 0,
-                            wxRect *rectIn = (wxRect *)NULL) = 0;
+                            wxRect *rectIn = NULL) = 0;
 
     // draw text control border (I hate to have a separate method for this but
     // it is needed to accommodate GTK+)
@@ -131,13 +125,13 @@ public:
                                 wxBorder border,
                                 const wxRect& rect,
                                 int flags = 0,
-                                wxRect *rectIn = (wxRect *)NULL) = 0;
+                                wxRect *rectIn = NULL) = 0;
 
     // draw push button border and return the rectangle left for the label
     virtual void DrawButtonBorder(wxDC& dc,
                                   const wxRect& rect,
                                   int flags = 0,
-                                  wxRect *rectIn = (wxRect *)NULL) = 0;
+                                  wxRect *rectIn = NULL) = 0;
 
     // draw a horizontal line
     virtual void DrawHorizontalLine(wxDC& dc,
@@ -499,7 +493,7 @@ public:
 // will be left to the original renderer
 // ----------------------------------------------------------------------------
 
-class WXDLLEXPORT wxDelegateRenderer : public wxRenderer
+class WXDLLIMPEXP_CORE wxDelegateRenderer : public wxRenderer
 {
 public:
     wxDelegateRenderer(wxRenderer *renderer) : m_renderer(renderer) { }
@@ -515,8 +509,8 @@ public:
                                    const wxRect& rect,
                                    int flags)
         { m_renderer->DrawButtonSurface(dc, col, rect, flags); }
-    virtual void DrawFocusRect(wxDC& dc, const wxRect& rect, int flags = 0)
-        { m_renderer->DrawFocusRect(dc, rect, flags); }
+    virtual void DrawFocusRect(wxWindow* win, wxDC& dc, const wxRect& rect, int flags = 0)
+        { m_renderer->DrawFocusRect(win, dc, rect, flags); }
     virtual void DrawLabel(wxDC& dc,
                            const wxString& label,
                            const wxRect& rect,
@@ -540,18 +534,18 @@ public:
                             wxBorder border,
                             const wxRect& rect,
                             int flags = 0,
-                            wxRect *rectIn = (wxRect *)NULL)
+                            wxRect *rectIn = NULL)
         { m_renderer->DrawBorder(dc, border, rect, flags, rectIn); }
     virtual void DrawTextBorder(wxDC& dc,
                                 wxBorder border,
                                 const wxRect& rect,
                                 int flags = 0,
-                                wxRect *rectIn = (wxRect *)NULL)
+                                wxRect *rectIn = NULL)
         { m_renderer->DrawTextBorder(dc, border, rect, flags, rectIn); }
     virtual void DrawButtonBorder(wxDC& dc,
                                   const wxRect& rect,
                                   int flags = 0,
-                                  wxRect *rectIn = (wxRect *)NULL)
+                                  wxRect *rectIn = NULL)
         { m_renderer->DrawButtonBorder(dc, rect, flags, rectIn); }
     virtual void DrawFrame(wxDC& dc,
                            const wxString& label,
@@ -847,13 +841,13 @@ public:
                              int flags) const
         { return m_renderer->HitTestFrame(rect, pt, flags); }
 
-    virtual void DrawHeaderButton(wxWindow *win,
+    virtual int  DrawHeaderButton(wxWindow *win,
                                   wxDC& dc,
                                   const wxRect& rect,
                                   int flags = 0,
                                   wxHeaderSortIconType sortIcon = wxHDR_SORT_ICON_NONE,
                                   wxHeaderButtonParams* params = NULL)
-        { m_renderer->DrawHeaderButton(win, dc, rect, flags, sortIcon, params); }
+        { return m_renderer->DrawHeaderButton(win, dc, rect, flags, sortIcon, params); }
     virtual void DrawTreeItemButton(wxWindow *win,
                                     wxDC& dc,
                                     const wxRect& rect,
@@ -869,15 +863,16 @@ protected:
 // OnPaint()
 // ----------------------------------------------------------------------------
 
-class WXDLLEXPORT wxControlRenderer
+class WXDLLIMPEXP_CORE wxControlRenderer
 {
 public:
     // create a renderer for this dc with this "fundamental" renderer
     wxControlRenderer(wxWindow *control, wxDC& dc, wxRenderer *renderer);
 
     // operations
-    void DrawLabel(const wxBitmap& bitmap = wxNullBitmap,
-                   wxCoord marginX = 0, wxCoord marginY = 0);
+    void DrawLabel();
+    void DrawButtonLabel(const wxBitmap& bitmap = wxNullBitmap,
+                         wxCoord marginX = 0, wxCoord marginY = 0);
 #if wxUSE_LISTBOX
     void DrawItems(const wxListBox *listbox,
                    size_t itemFirst, size_t itemLast);