]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/renderer.cpp
Fixed [ 1556843 ] wxGTK FindFocus returns NULL when a wxListBox is focused
[wxWidgets.git] / src / gtk / renderer.cpp
index f1cd95c8564a6c3fd0d4485f7cb12286d846afbf..2c8c94ee1e4a269ad02aa70eb7ead03b8ff97330 100644 (file)
@@ -46,7 +46,9 @@ public:
     virtual void DrawHeaderButton(wxWindow *win,
                                   wxDC& dc,
                                   const wxRect& rect,
     virtual void DrawHeaderButton(wxWindow *win,
                                   wxDC& dc,
                                   const wxRect& rect,
-                                  int flags = 0);
+                                  int flags = 0,
+                                  wxHeaderSortIconType sortArrow = wxHDR_SORT_ICON_NONE,
+                                  wxHeaderButtonParams* params = NULL);
 
     // draw the expanded/collapsed icon for a tree control item
     virtual void DrawTreeItemButton(wxWindow *win,
 
     // draw the expanded/collapsed icon for a tree control item
     virtual void DrawTreeItemButton(wxWindow *win,
@@ -183,11 +185,17 @@ void
 wxRendererGTK::DrawHeaderButton(wxWindow *win,
                                 wxDC& dc,
                                 const wxRect& rect,
 wxRendererGTK::DrawHeaderButton(wxWindow *win,
                                 wxDC& dc,
                                 const wxRect& rect,
-                                int flags)
+                                int flags,
+                                wxHeaderSortIconType sortArrow,
+                                wxHeaderButtonParams* params)
 {
 
     GtkWidget *button = GetButtonWidget();
 
 {
 
     GtkWidget *button = GetButtonWidget();
 
+    int x_diff = 0;
+    if (win->GetLayoutDirection() == wxLayout_RightToLeft)
+        x_diff = rect.width;
+        
     gtk_paint_box
     (
         button->style,
     gtk_paint_box
     (
         button->style,
@@ -199,8 +207,10 @@ wxRendererGTK::DrawHeaderButton(wxWindow *win,
         NULL,
         button,
         "button",
         NULL,
         button,
         "button",
-        dc.LogicalToDeviceX(rect.x), rect.y, rect.width, rect.height
+        dc.LogicalToDeviceX(rect.x) - x_diff, rect.y, rect.width, rect.height
     );
     );
+
+    DrawHeaderButtonContents(win, dc, rect, flags, sortArrow, params);
 }
 
 // draw a ">" or "v" button
 }
 
 // draw a ">" or "v" button