+}
+
+void
+wxRendererGTK::DrawDropArrow(wxWindow *WXUNUSED(win),
+                             wxDC& dc,
+                             const wxRect& rect,
+                             int flags)
+{
+    GtkWidget *button = GetButtonWidget();
+
+    // If we give GTK_PIZZA(win->m_wxwindow)->bin_window as
+    // a window for gtk_paint_xxx function, then it won't
+    // work for wxMemoryDC. So that is why we assume wxDC
+    // is wxWindowDC (wxClientDC, wxMemoryDC and wxPaintDC
+    // are derived from it) and use its m_window.
+    GdkWindow* gdk_window = dc.GetGDKWindow();
+    wxASSERT_MSG( gdk_window,
+                  wxT("cannot use wxRendererNative on wxDC of this type") );
+
+    // draw arrow so that there is even space horizontally
+    // on both sides
+    int arrowX = rect.width/4 + 1;
+    int arrowWidth = rect.width - (arrowX*2);
+
+    // scale arrow's height accoording to the width
+    int arrowHeight = rect.width/3;
+    int arrowY = (rect.height-arrowHeight)/2 +
+                 ((rect.height-arrowHeight) & 1);
+
+    GtkStateType state;
+
+    if ( flags & wxCONTROL_PRESSED )
+        state = GTK_STATE_ACTIVE;
+    else if ( flags & wxCONTROL_DISABLED )
+        state = GTK_STATE_INSENSITIVE;
+    else if ( flags & wxCONTROL_CURRENT )
+        state = GTK_STATE_PRELIGHT;
+    else
+        state = GTK_STATE_NORMAL;
+
+    // draw arrow on button
+    gtk_paint_arrow