]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/renderer.h
CoreText fixes
[wxWidgets.git] / include / wx / renderer.h
index 79e8a0c2a3a0ba2b3bf7b9415a9e50976b037d88..94119d8994dc93baa3becd5bc851134475264eb5 100644 (file)
 #ifndef _WX_RENDERER_H_
 #define _WX_RENDERER_H_
 
 #ifndef _WX_RENDERER_H_
 #define _WX_RENDERER_H_
 
-class WXDLLEXPORT wxDC;
-class WXDLLEXPORT wxWindow;
+class WXDLLIMPEXP_FWD_CORE wxDC;
+class WXDLLIMPEXP_FWD_CORE wxWindow;
 
 
-#include "wx/gdicmn.h" // for wxPoint
+#include "wx/gdicmn.h" // for wxPoint, wxSize
 #include "wx/colour.h"
 #include "wx/font.h"
 #include "wx/bitmap.h"
 #include "wx/string.h"
 
 // some platforms have their own renderers, others use the generic one
 #include "wx/colour.h"
 #include "wx/font.h"
 #include "wx/bitmap.h"
 #include "wx/string.h"
 
 // some platforms have their own renderers, others use the generic one
-#if defined(__WXMSW__) || defined(__WXMAC__) || defined(__WXGTK__)
+#if defined(__WXMSW__) || ( defined(__WXMAC__) && wxOSX_USE_COCOA_OR_CARBON ) || defined(__WXGTK__)
     #define wxHAS_NATIVE_RENDERER
 #else
     #undef wxHAS_NATIVE_RENDERER
     #define wxHAS_NATIVE_RENDERER
 #else
     #undef wxHAS_NATIVE_RENDERER
@@ -75,7 +75,7 @@ enum
 // ----------------------------------------------------------------------------
 
 // wxSplitterWindow parameters
 // ----------------------------------------------------------------------------
 
 // wxSplitterWindow parameters
-struct WXDLLEXPORT wxSplitterRenderParams
+struct WXDLLIMPEXP_CORE wxSplitterRenderParams
 {
     // the only way to initialize this struct is by using this ctor
     wxSplitterRenderParams(wxCoord widthSash_, wxCoord border_, bool isSens_)
 {
     // the only way to initialize this struct is by using this ctor
     wxSplitterRenderParams(wxCoord widthSash_, wxCoord border_, bool isSens_)
@@ -95,7 +95,7 @@ struct WXDLLEXPORT wxSplitterRenderParams
 
 
 // extra optional parameters for DrawHeaderButton
 
 
 // extra optional parameters for DrawHeaderButton
-struct WXDLLEXPORT wxHeaderButtonParams
+struct WXDLLIMPEXP_CORE wxHeaderButtonParams
 {
     wxHeaderButtonParams()
         : m_labelAlignment(wxALIGN_LEFT)
 {
     wxHeaderButtonParams()
         : m_labelAlignment(wxALIGN_LEFT)
@@ -118,7 +118,7 @@ enum wxHeaderSortIconType {
 
 
 // wxRendererNative interface version
 
 
 // wxRendererNative interface version
-struct WXDLLEXPORT wxRendererVersion
+struct WXDLLIMPEXP_CORE wxRendererVersion
 {
     wxRendererVersion(int version_, int age_) : version(version_), age(age_) { }
 
 {
     wxRendererVersion(int version_, int age_) : version(version_), age(age_) { }
 
@@ -152,7 +152,7 @@ struct WXDLLEXPORT wxRendererVersion
 // wxRendererNative: abstracts drawing methods needed by the native controls
 // ----------------------------------------------------------------------------
 
 // wxRendererNative: abstracts drawing methods needed by the native controls
 // ----------------------------------------------------------------------------
 
-class WXDLLEXPORT wxRendererNative
+class WXDLLIMPEXP_CORE wxRendererNative
 {
 public:
     // drawing functions
 {
 public:
     // drawing functions
@@ -227,6 +227,9 @@ public:
                               const wxRect& rect,
                               int flags = 0) = 0;
 
                               const wxRect& rect,
                               int flags = 0) = 0;
 
+    // Returns the default size of a check box.
+    virtual wxSize GetCheckBoxSize(wxWindow *win) = 0;
+
     // draw blank button
     //
     // flags may use wxCONTROL_PRESSED, wxCONTROL_CURRENT and wxCONTROL_ISDEFAULT
     // draw blank button
     //
     // flags may use wxCONTROL_PRESSED, wxCONTROL_CURRENT and wxCONTROL_ISDEFAULT
@@ -247,6 +250,11 @@ public:
                                        const wxRect& rect,
                                        int flags = 0) = 0;
 
                                        const wxRect& rect,
                                        int flags = 0) = 0;
 
+    // draw the focus rectangle around the label contained in the given rect
+    //
+    // only wxCONTROL_SELECTED makes sense in flags here
+    virtual void DrawFocusRect(wxWindow* win, wxDC& dc, const wxRect& rect, int flags = 0) = 0;
+
     // geometry functions
     // ------------------
 
     // geometry functions
     // ------------------
 
@@ -300,7 +308,7 @@ public:
 // wxDelegateRendererNative: allows reuse of renderers code
 // ----------------------------------------------------------------------------
 
 // wxDelegateRendererNative: allows reuse of renderers code
 // ----------------------------------------------------------------------------
 
-class WXDLLEXPORT wxDelegateRendererNative : public wxRendererNative
+class WXDLLIMPEXP_CORE wxDelegateRendererNative : public wxRendererNative
 {
 public:
     wxDelegateRendererNative()
 {
 public:
     wxDelegateRendererNative()
@@ -368,6 +376,9 @@ public:
                               int flags = 0 )
         { m_rendererNative.DrawCheckBox( win, dc, rect, flags ); }
 
                               int flags = 0 )
         { m_rendererNative.DrawCheckBox( win, dc, rect, flags ); }
 
+    virtual wxSize GetCheckBoxSize(wxWindow *win)
+        { return m_rendererNative.GetCheckBoxSize(win); }
+
     virtual void DrawPushButton(wxWindow *win,
                                 wxDC& dc,
                                 const wxRect& rect,
     virtual void DrawPushButton(wxWindow *win,
                                 wxDC& dc,
                                 const wxRect& rect,
@@ -380,6 +391,9 @@ public:
                                        int flags = 0 )
         { m_rendererNative.DrawItemSelectionRect( win, dc, rect, flags ); }
 
                                        int flags = 0 )
         { m_rendererNative.DrawItemSelectionRect( win, dc, rect, flags ); }
 
+    virtual void DrawFocusRect(wxWindow* win, wxDC& dc, const wxRect& rect, int flags = 0)
+        { m_rendererNative.DrawFocusRect( win, dc, rect, flags ); }
+
     virtual wxSplitterRenderParams GetSplitterParams(const wxWindow *win)
         { return m_rendererNative.GetSplitterParams(win); }
 
     virtual wxSplitterRenderParams GetSplitterParams(const wxWindow *win)
         { return m_rendererNative.GetSplitterParams(win); }