+    GtkWidget *tree = GetTreeWidget();
+
+    GtkStateType state;
+    if ( flags & wxCONTROL_CURRENT )
+        state = GTK_STATE_PRELIGHT;
+    else
+        state = GTK_STATE_NORMAL;
+        
+    // VZ: I don't know how to get the size of the expander so as to centre it
+    //     in the given rectangle, +2/3 below is just what looks good here...
+    gtk_paint_expander
+    (
+        tree->style,
+        GTK_PIZZA(win->m_wxwindow)->bin_window,
+        state,
+        NULL,
+        tree,
+        "treeview",
+        dc.LogicalToDeviceX(rect.x) + 2,
+        dc.LogicalToDeviceY(rect.y) + 3,
+        flags & wxCONTROL_EXPANDED ? GTK_EXPANDER_EXPANDED
+                                   : GTK_EXPANDER_COLLAPSED
+    );
+}
+
+#endif // GTK+ 2.0
+
+// ----------------------------------------------------------------------------
+// splitter sash drawing
+// ----------------------------------------------------------------------------
+
+#ifndef __WXGTK20__
+    // the full sash width (should be even)
+    static const wxCoord SASH_SIZE = 8;
+
+    // margin around the sash
+    static const wxCoord SASH_MARGIN = 2;
+#endif // GTK+ 2.x/1.x
+
+static int GetGtkSplitterFullSize()
+{
+#ifdef __WXGTK20__
+    static GtkWidget *s_paned = NULL;
+    if (s_paned == NULL)
+        s_paned = gtk_vpaned_new();
+
+    gint handle_size;
+    gtk_widget_style_get (s_paned, "handle_size", &handle_size, NULL);
+      
+    return handle_size;
+#else
+    return SASH_SIZE + SASH_MARGIN;
+#endif
+}
+
+wxSplitterRenderParams
+wxRendererGTK::GetSplitterParams(const wxWindow *WXUNUSED(win))
+{
+    // we don't draw any border, hence 0 for the second field
+    return wxSplitterRenderParams
+           (
+               GetGtkSplitterFullSize(),
+               0,
+#ifdef __WXGTK20__
+               true     // hot sensitive
+#else // GTK+ 1.x
+               false    // not
+#endif // GTK+ 2.x/1.x
+           );
+}
+
+void
+wxRendererGTK::DrawSplitterBorder(wxWindow * WXUNUSED(win),
+                                  wxDC& WXUNUSED(dc),
+                                  const wxRect& WXUNUSED(rect),
+                                  int WXUNUSED(flags))
+{
+    // nothing to do
+}
+
+void
+wxRendererGTK::DrawSplitterSash(wxWindow *win,
+                                wxDC& dc,
+                                const wxSize& size,
+                                wxCoord position,
+                                wxOrientation orient,
+                                int WXUNUSED_IN_GTK1(flags))
+{
+    if ( !win->m_wxwindow->window )
+    {
+        // window not realized yet
+        return;
+    }
+    
+    wxCoord full_size = GetGtkSplitterFullSize();