]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/renderer.h
release the GIL before calling base version
[wxWidgets.git] / include / wx / renderer.h
index ebda812285927982cc448434867bcf5bbf26024b..82ca8ce7ce115255a607ec7cd999984921eff941 100644 (file)
@@ -29,6 +29,10 @@ class WXDLLEXPORT wxDC;
 class WXDLLEXPORT wxWindow;
 
 #include "wx/gdicmn.h" // for wxPoint
+#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__)
@@ -55,10 +59,8 @@ enum
     wxCONTROL_CHECKED    = 0x00000040,  // (check/radio button) is checked
     wxCONTROL_CHECKABLE  = 0x00000080,  // (menu) item can be checked
     wxCONTROL_UNDETERMINED = wxCONTROL_CHECKABLE, // (check) undetermined state
-    wxCONTROL_UPICON     = 0x00000100,  // header button has an up arrow icon
-    wxCONTROL_DOWNICON   = 0x00000200,  // header button has a down arrow icon
 
-    wxCONTROL_FLAGS_MASK = 0x000002ff,
+    wxCONTROL_FLAGS_MASK = 0x000000ff,
 
     // this is a pseudo flag not used directly by wxRenderer but rather by some
     // controls internally
@@ -95,7 +97,7 @@ struct WXDLLEXPORT wxHeaderButtonParams
     wxHeaderButtonParams()
         : m_labelAlignment(wxALIGN_LEFT)
     { }
-    
+
     wxColour    m_arrowColour;
     wxColour    m_selectionColour;
     wxString    m_labelText;
@@ -105,6 +107,12 @@ struct WXDLLEXPORT wxHeaderButtonParams
     int         m_labelAlignment;
 };
 
+enum wxHeaderSortIconType {
+    wxHDR_SORT_ICON_NONE,        // Header button has no sort arrow
+    wxHDR_SORT_ICON_UP,          // Header button an an up sort arrow icon
+    wxHDR_SORT_ICON_DOWN         // Header button an a down sort arrow icon
+};
+
 
 // wxRendererNative interface version
 struct WXDLLEXPORT wxRendererVersion
@@ -152,6 +160,7 @@ public:
                                   wxDC& dc,
                                   const wxRect& rect,
                                   int flags = 0,
+                                  wxHeaderSortIconType sortArrow = wxHDR_SORT_ICON_NONE,
                                   wxHeaderButtonParams* params=NULL) = 0;
 
 
@@ -161,6 +170,7 @@ public:
                                           wxDC& dc,
                                           const wxRect& rect,
                                           int flags = 0,
+                                          wxHeaderSortIconType sortArrow = wxHDR_SORT_ICON_NONE,
                                           wxHeaderButtonParams* params=NULL) = 0;
 
     // Returns the default height of a header button, either a fixed platform
@@ -224,7 +234,7 @@ public:
     // draw rectangle indicating that an item in e.g. a list control
     // has been selected or focused
     //
-    // flags may use 
+    // flags may use
     // wxCONTROL_SELECTED (item is selected, e.g. draw background)
     // wxCONTROL_CURRENT (item is the current item, e.g. dotted border)
     // wxCONTROL_FOCUSED (the whole control has focus, e.g. blue background vs. grey otherwise)
@@ -300,18 +310,18 @@ public:
                                   wxDC& dc,
                                   const wxRect& rect,
                                   int flags = 0,
+                                  wxHeaderSortIconType sortArrow = wxHDR_SORT_ICON_NONE,
                                   wxHeaderButtonParams* params = NULL)
-        { m_rendererNative.DrawHeaderButton(win, dc, rect, flags, params); }
+        { m_rendererNative.DrawHeaderButton(win, dc, rect, flags, sortArrow, params); }
 
-    
     virtual void DrawHeaderButtonContents(wxWindow *win,
                                           wxDC& dc,
                                           const wxRect& rect,
                                           int flags = 0,
+                                          wxHeaderSortIconType sortArrow = wxHDR_SORT_ICON_NONE,
                                           wxHeaderButtonParams* params = NULL)
-        { m_rendererNative.DrawHeaderButtonContents(win, dc, rect, flags, params); }
+        { m_rendererNative.DrawHeaderButtonContents(win, dc, rect, flags, sortArrow, params); }
 
-    
     virtual int GetHeaderButtonHeight(wxWindow *win)
         { return m_rendererNative.GetHeaderButtonHeight(win); }