File unico-bnc813150-gtk-theming-engine-crash.patch of Package unico

=== modified file 'Makefile.am'
--- Makefile.am	2011-05-19 13:32:42 +0000
+++ Makefile.am	2012-07-25 22:49:45 +0000
@@ -1,7 +1,6 @@
 SUBDIRS = \
 	build \
-	unico \
-	tests
+	unico
 
 ACLOCAL_AMFLAGS = -I build
 

=== modified file 'configure.ac'
--- configure.ac	2012-03-29 14:25:14 +0000
+++ configure.ac	2012-07-25 22:49:45 +0000
@@ -35,7 +35,7 @@
 PKG_PROG_PKG_CONFIG
 
 AC_SUBST(glib_req, 2.26.0)
-AC_SUBST(gtk_req, 3.3.14)
+AC_SUBST(gtk_req, 3.5.2)
 AC_SUBST(cairo_req, 1.10)
 
 PKG_CHECK_MODULES(DEPS, glib-2.0 >= $glib_req gtk+-3.0 >= $gtk_req cairo >= $cairo_req)
@@ -113,7 +113,6 @@
 build/Makefile
 po/Makefile
 unico/Makefile
-tests/Makefile
 ])
 AC_OUTPUT
 

=== removed directory 'tests'
=== removed file 'tests/Makefile.am'
--- tests/Makefile.am	2011-05-18 13:41:46 +0000
+++ tests/Makefile.am	1970-01-01 00:00:00 +0000
@@ -1,17 +0,0 @@
-EXTRA_DIST = \
-	test-widgets.glade
-
-noinst_PROGRAMS = \
-	test-widgets
-
-test_widgets_CFLAGS = \
-	-I$(top_srcdir) \
-	$(UNICO_CFLAGS)
-
-test_widgets_LDADD = \
-	$(UNICO_LIBADD)
-
-test_widgets_LDFLAGS = \
-	$(UNICO_LDFLAGS)
-
-# FIXME(Cimi): Figure out what tests must be compiled and add them here.

=== removed file 'tests/test-widgets.c'
--- tests/test-widgets.c	2011-05-18 13:41:46 +0000
+++ tests/test-widgets.c	1970-01-01 00:00:00 +0000
@@ -1,45 +0,0 @@
-/* The Unico Theming Engine for Gtk+.
- * Copyright (C) 2011 Canonical Ltd
- *
- * This  library is free  software; you can  redistribute it and/or
- * modify it  under  the terms  of the  GNU Lesser  General  Public
- * License  as published  by the Free  Software  Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed  in the hope that it will be useful,
- * but  WITHOUT ANY WARRANTY; without even  the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License  along  with  this library;  if not,  write to  the Free
- * Software Foundation, Inc., 51  Franklin St, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * Authored by Andrea Cimitan <andrea.cimitan@canonical.com>
- *
- */
-
-#include <gtk/gtk.h>
-
-int
-main (int argc, char *argv[])
-{
-  GtkBuilder *builder;
-  GtkWidget  *window;
-
-  gtk_init (&argc, &argv);
-
-  builder = gtk_builder_new ();
-  gtk_builder_add_from_file (builder, "./test-widgets.glade", NULL);
-
-  window = GTK_WIDGET (gtk_builder_get_object (builder, "window"));
-  gtk_builder_connect_signals (builder, NULL);
-
-  g_object_unref (G_OBJECT (builder));
-
-  gtk_widget_show (window);
-  gtk_main ();
-
-  return 0;
-}

=== removed file 'tests/test-widgets.glade'
--- tests/test-widgets.glade	2011-05-18 13:41:46 +0000
+++ tests/test-widgets.glade	1970-01-01 00:00:00 +0000
@@ -1,1717 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<interface>
-  <!-- interface-requires gtk+ 3.0 -->
-  <object class="GtkAdjustment" id="adjustment1">
-    <property name="upper">100</property>
-    <property name="value">50</property>
-    <property name="step_increment">1</property>
-    <property name="page_increment">10</property>
-  </object>
-  <object class="GtkListStore" id="liststore1">
-    <columns>
-      <!-- column-name Cool -->
-      <column type="gboolean"/>
-      <!-- column-name Name -->
-      <column type="gchararray"/>
-      <!-- column-name Nick -->
-      <column type="gchararray"/>
-    </columns>
-    <data>
-      <row>
-        <col id="0">True</col>
-        <col id="1" translatable="yes">Andrea</col>
-        <col id="2" translatable="yes">Cimi</col>
-      </row>
-      <row>
-        <col id="0">False</col>
-        <col id="1" translatable="yes">Otto</col>
-        <col id="2" translatable="yes">chaotic</col>
-      </row>
-    </data>
-  </object>
-  <object class="GtkTextBuffer" id="textbuffer1">
-    <property name="text">Lorem ipsum dolor sit amet, consectetur adipiscing elit.
-Nullam fringilla, est ut feugiat ultrices, elit lacus ultricies nibh, id commodo tortor nisi id elit.
-Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
-Morbi vel elit erat. Maecenas dignissim, dui et pharetra rutrum, tellus lectus rutrum mi, a convallis libero nisi quis tellus.
-Nulla facilisi. Nullam eleifend lobortis nisl, in porttitor tellus malesuada vitae.
-Aenean lacus tellus, pellentesque quis molestie quis, fringilla in arcu.
-Duis elementum, tellus sed tristique semper, metus metus accumsan augue, et porttitor augue orci a libero.
-Ut sed justo ac felis placerat laoreet sed id sem. Proin mattis tincidunt odio vitae tristique.
-Morbi massa libero, congue vitae scelerisque vel, ultricies vel nisl.
-Vestibulum in tortor diam, quis aliquet quam. Praesent ut justo neque, tempus rutrum est.
-Duis eu lectus quam. Vivamus eget metus a mauris molestie venenatis pulvinar eleifend nisi.
-Nulla facilisi. Pellentesque at dolor sit amet purus dapibus pulvinar molestie quis neque.
-Suspendisse feugiat quam quis dolor accumsan cursus. </property>
-  </object>
-  <object class="GtkWindow" id="window">
-    <property name="can_focus">False</property>
-    <child>
-      <object class="GtkBox" id="box1">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="orientation">vertical</property>
-        <child>
-          <object class="GtkMenuBar" id="menubar1">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <child>
-              <object class="GtkMenuItem" id="menuitem1">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="use_action_appearance">False</property>
-                <property name="label" translatable="yes">_File</property>
-                <property name="use_underline">True</property>
-                <child type="submenu">
-                  <object class="GtkMenu" id="menu1">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <child>
-                      <object class="GtkImageMenuItem" id="imagemenuitem1">
-                        <property name="label">gtk-new</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="use_underline">True</property>
-                        <property name="use_stock">True</property>
-                      </object>
-                    </child>
-                    <child>
-                      <object class="GtkImageMenuItem" id="imagemenuitem2">
-                        <property name="label">gtk-open</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="use_underline">True</property>
-                        <property name="use_stock">True</property>
-                      </object>
-                    </child>
-                    <child>
-                      <object class="GtkImageMenuItem" id="imagemenuitem3">
-                        <property name="label">gtk-save</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="use_underline">True</property>
-                        <property name="use_stock">True</property>
-                      </object>
-                    </child>
-                    <child>
-                      <object class="GtkImageMenuItem" id="imagemenuitem4">
-                        <property name="label">gtk-save-as</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="use_underline">True</property>
-                        <property name="use_stock">True</property>
-                      </object>
-                    </child>
-                    <child>
-                      <object class="GtkSeparatorMenuItem" id="separatormenuitem1">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="use_action_appearance">False</property>
-                      </object>
-                    </child>
-                    <child>
-                      <object class="GtkImageMenuItem" id="imagemenuitem5">
-                        <property name="label">gtk-quit</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="use_underline">True</property>
-                        <property name="use_stock">True</property>
-                      </object>
-                    </child>
-                  </object>
-                </child>
-              </object>
-            </child>
-            <child>
-              <object class="GtkMenuItem" id="menuitem2">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="use_action_appearance">False</property>
-                <property name="label" translatable="yes">_Edit</property>
-                <property name="use_underline">True</property>
-                <child type="submenu">
-                  <object class="GtkMenu" id="menu2">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <child>
-                      <object class="GtkImageMenuItem" id="imagemenuitem6">
-                        <property name="label">gtk-cut</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="use_underline">True</property>
-                        <property name="use_stock">True</property>
-                      </object>
-                    </child>
-                    <child>
-                      <object class="GtkImageMenuItem" id="imagemenuitem7">
-                        <property name="label">gtk-copy</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="use_underline">True</property>
-                        <property name="use_stock">True</property>
-                      </object>
-                    </child>
-                    <child>
-                      <object class="GtkImageMenuItem" id="imagemenuitem8">
-                        <property name="label">gtk-paste</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="use_underline">True</property>
-                        <property name="use_stock">True</property>
-                      </object>
-                    </child>
-                    <child>
-                      <object class="GtkImageMenuItem" id="imagemenuitem9">
-                        <property name="label">gtk-delete</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="use_underline">True</property>
-                        <property name="use_stock">True</property>
-                      </object>
-                    </child>
-                  </object>
-                </child>
-              </object>
-            </child>
-            <child>
-              <object class="GtkMenuItem" id="menuitem3">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="use_action_appearance">False</property>
-                <property name="label" translatable="yes">_View</property>
-                <property name="use_underline">True</property>
-              </object>
-            </child>
-            <child>
-              <object class="GtkMenuItem" id="menuitem4">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="use_action_appearance">False</property>
-                <property name="label" translatable="yes">_Help</property>
-                <property name="use_underline">True</property>
-                <child type="submenu">
-                  <object class="GtkMenu" id="menu3">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <child>
-                      <object class="GtkImageMenuItem" id="imagemenuitem10">
-                        <property name="label">gtk-about</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="use_underline">True</property>
-                        <property name="use_stock">True</property>
-                      </object>
-                    </child>
-                  </object>
-                </child>
-              </object>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkToolbar" id="toolbar1">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <child>
-              <object class="GtkToolButton" id="toolbutton2">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="use_action_appearance">False</property>
-                <property name="label" translatable="yes">Save</property>
-                <property name="use_underline">True</property>
-                <property name="stock_id">gtk-save</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="homogeneous">True</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkToolButton" id="toolbutton1">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="use_action_appearance">False</property>
-                <property name="label" translatable="yes">Open</property>
-                <property name="use_underline">True</property>
-                <property name="stock_id">gtk-open</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="homogeneous">True</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkSeparatorToolItem" id="toolbutton3">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="use_action_appearance">False</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="homogeneous">True</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkToolButton" id="toolbutton4">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="use_action_appearance">False</property>
-                <property name="label" translatable="yes">Find</property>
-                <property name="use_underline">True</property>
-                <property name="stock_id">gtk-find</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="homogeneous">True</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkToolItem" id="toolbutton5">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="use_action_appearance">False</property>
-                <child>
-                  <placeholder/>
-                </child>
-              </object>
-              <packing>
-                <property name="expand">True</property>
-                <property name="homogeneous">True</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkToolItem" id="toolbutton6">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="use_action_appearance">False</property>
-                <child>
-                  <object class="GtkEntry" id="entry3">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="invisible_char">•</property>
-                    <property name="text" translatable="yes">search...</property>
-                  </object>
-                </child>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">1</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkBox" id="box2">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="spacing">6</property>
-            <child>
-              <object class="GtkBox" id="box3">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="orientation">vertical</property>
-                <property name="spacing">4</property>
-                <child>
-                  <object class="GtkComboBoxText" id="comboboxtext1">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="has_entry">True</property>
-                    <child internal-child="entry">
-                      <object class="GtkEntry" id="comboboxtext-entry">
-                        <property name="can_focus">False</property>
-                        <property name="text" translatable="yes">comboboxentry</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkComboBoxText" id="comboboxtext2">
-                    <property name="visible">True</property>
-                    <property name="sensitive">False</property>
-                    <property name="can_focus">False</property>
-                    <property name="has_entry">True</property>
-                    <child internal-child="entry">
-                      <object class="GtkEntry" id="comboboxtext-entry2">
-                        <property name="can_focus">False</property>
-                        <property name="invisible_char">•</property>
-                        <property name="text" translatable="yes">comboboxentry</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEntry" id="entry1">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="invisible_char">•</property>
-                    <property name="text" translatable="yes">entry</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">2</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEntry" id="entry2">
-                    <property name="visible">True</property>
-                    <property name="sensitive">False</property>
-                    <property name="can_focus">True</property>
-                    <property name="invisible_char">•</property>
-                    <property name="text" translatable="yes">entry</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">3</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkBox" id="box18">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="spacing">20</property>
-                    <child>
-                      <object class="GtkLabel" id="label3">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">label</property>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">True</property>
-                        <property name="position">0</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="label4">
-                        <property name="visible">True</property>
-                        <property name="sensitive">False</property>
-                        <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">label</property>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">True</property>
-                        <property name="position">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkSpinButton" id="spinbutton1">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="invisible_char">•</property>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="position">2</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkSpinButton" id="spinbutton2">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="invisible_char">•</property>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="position">3</property>
-                      </packing>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">4</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkGrid" id="grid1">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="row_homogeneous">True</property>
-                    <property name="n_rows">4</property>
-                    <property name="n_columns">2</property>
-                    <child>
-                      <object class="GtkCheckButton" id="checkbutton1">
-                        <property name="label" translatable="yes">checkbutton</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">False</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="xalign">0</property>
-                        <property name="active">True</property>
-                        <property name="draw_indicator">True</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">0</property>
-                        <property name="top_attach">0</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkCheckButton" id="checkbutton2">
-                        <property name="label" translatable="yes">checkbutton</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">False</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="xalign">0</property>
-                        <property name="draw_indicator">True</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">0</property>
-                        <property name="top_attach">1</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkCheckButton" id="checkbutton3">
-                        <property name="label" translatable="yes">checkbutton</property>
-                        <property name="visible">True</property>
-                        <property name="sensitive">False</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">False</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="xalign">0</property>
-                        <property name="active">True</property>
-                        <property name="draw_indicator">True</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">0</property>
-                        <property name="top_attach">2</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkCheckButton" id="checkbutton4">
-                        <property name="label" translatable="yes">checkbutton</property>
-                        <property name="visible">True</property>
-                        <property name="sensitive">False</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">False</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="xalign">0</property>
-                        <property name="draw_indicator">True</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">0</property>
-                        <property name="top_attach">3</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkRadioButton" id="radiobutton1">
-                        <property name="label" translatable="yes">radiobutton</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">False</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="xalign">0</property>
-                        <property name="active">True</property>
-                        <property name="draw_indicator">True</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="top_attach">0</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkRadioButton" id="radiobutton2">
-                        <property name="label" translatable="yes">radiobutton</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">False</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="xalign">0</property>
-                        <property name="active">True</property>
-                        <property name="draw_indicator">True</property>
-                        <property name="group">radiobutton1</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="top_attach">1</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkRadioButton" id="radiobutton3">
-                        <property name="label" translatable="yes">radiobutton</property>
-                        <property name="visible">True</property>
-                        <property name="sensitive">False</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">False</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="xalign">0</property>
-                        <property name="active">True</property>
-                        <property name="draw_indicator">True</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="top_attach">2</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkRadioButton" id="radiobutton4">
-                        <property name="label" translatable="yes">radiobutton</property>
-                        <property name="visible">True</property>
-                        <property name="sensitive">False</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">False</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="xalign">0</property>
-                        <property name="active">True</property>
-                        <property name="draw_indicator">True</property>
-                        <property name="group">radiobutton3</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="top_attach">3</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">5</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="padding">4</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkSeparator" id="separator1">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="orientation">vertical</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkBox" id="box19">
-                <property name="width_request">110</property>
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="orientation">vertical</property>
-                <property name="spacing">4</property>
-                <child>
-                  <object class="GtkToggleButton" id="togglebutton1">
-                    <property name="label" translatable="yes">togglebutton</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="use_action_appearance">False</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkToggleButton" id="togglebutton2">
-                    <property name="label" translatable="yes">togglebutton</property>
-                    <property name="visible">True</property>
-                    <property name="sensitive">False</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="use_action_appearance">False</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkToggleButton" id="togglebutton3">
-                    <property name="label" translatable="yes">togglebutton</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="use_action_appearance">False</property>
-                    <property name="active">True</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">2</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkToggleButton" id="togglebutton4">
-                    <property name="label" translatable="yes">togglebutton</property>
-                    <property name="visible">True</property>
-                    <property name="sensitive">False</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="use_action_appearance">False</property>
-                    <property name="active">True</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">3</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkComboBox" id="combobox1">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="model">liststore1</property>
-                    <property name="active">0</property>
-                    <child>
-                      <object class="GtkCellRendererText" id="cellrenderertext1"/>
-                      <attributes>
-                        <attribute name="text">2</attribute>
-                      </attributes>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">5</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkComboBox" id="combobox2">
-                    <property name="visible">True</property>
-                    <property name="sensitive">False</property>
-                    <property name="can_focus">False</property>
-                    <property name="model">liststore1</property>
-                    <property name="active">1</property>
-                    <child>
-                      <object class="GtkCellRendererText" id="cellrenderertext2"/>
-                      <attributes>
-                        <attribute name="text">2</attribute>
-                      </attributes>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">6</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkFontButton" id="fontbutton1">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="use_action_appearance">False</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">6</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkColorButton" id="colorbutton1">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="receives_default">True</property>
-                    <property name="use_action_appearance">False</property>
-                    <property name="color">#31316867a09f</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">8</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkFileChooserButton" id="filechooserbutton1">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">8</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">2</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkSeparator" id="separator2">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="orientation">vertical</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">3</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkBox" id="box20">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="orientation">vertical</property>
-                <property name="spacing">4</property>
-                <child>
-                  <object class="GtkBox" id="box21">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="orientation">vertical</property>
-                    <property name="spacing">8</property>
-                    <property name="homogeneous">True</property>
-                    <child>
-                      <object class="GtkProgressBar" id="progressbar1">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="fraction">0.5</property>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="position">0</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkProgressBar" id="progressbar2">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="fraction">0.5</property>
-                        <property name="inverted">True</property>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="position">1</property>
-                      </packing>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkBox" id="box27">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <child>
-                      <object class="GtkBox" id="box24">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="hexpand">True</property>
-                        <property name="orientation">vertical</property>
-                        <property name="homogeneous">True</property>
-                        <child>
-                          <object class="GtkScale" id="scale1">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="adjustment">adjustment1</property>
-                            <property name="restrict_to_fill_level">False</property>
-                            <property name="fill_level">75</property>
-                            <property name="draw_value">False</property>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">True</property>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkScale" id="scale2">
-                            <property name="visible">True</property>
-                            <property name="sensitive">False</property>
-                            <property name="can_focus">True</property>
-                            <property name="adjustment">adjustment1</property>
-                            <property name="restrict_to_fill_level">False</property>
-                            <property name="fill_level">75</property>
-                            <property name="draw_value">False</property>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">True</property>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                      </object>
-                      <packing>
-                        <property name="expand">True</property>
-                        <property name="fill">True</property>
-                        <property name="position">0</property>
-                      </packing>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">False</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkBox" id="box25">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="homogeneous">True</property>
-                    <child>
-                      <object class="GtkBox" id="box28">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="vexpand">True</property>
-                        <property name="spacing">4</property>
-                        <child>
-                          <object class="GtkProgressBar" id="progressbar5">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="orientation">vertical</property>
-                            <property name="fraction">0.5</property>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">True</property>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkProgressBar" id="progressbar6">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="orientation">vertical</property>
-                            <property name="fraction">0.5</property>
-                            <property name="inverted">True</property>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">True</property>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="position">0</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkBox" id="box23">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="vexpand">True</property>
-                        <property name="spacing">4</property>
-                        <child>
-                          <object class="GtkScale" id="scale3">
-                            <property name="height_request">100</property>
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="orientation">vertical</property>
-                            <property name="adjustment">adjustment1</property>
-                            <property name="restrict_to_fill_level">False</property>
-                            <property name="fill_level">75</property>
-                            <property name="draw_value">False</property>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">True</property>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkScale" id="scale4">
-                            <property name="height_request">100</property>
-                            <property name="visible">True</property>
-                            <property name="sensitive">False</property>
-                            <property name="can_focus">True</property>
-                            <property name="orientation">vertical</property>
-                            <property name="adjustment">adjustment1</property>
-                            <property name="restrict_to_fill_level">False</property>
-                            <property name="fill_level">75</property>
-                            <property name="draw_value">False</property>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">True</property>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="position">1</property>
-                      </packing>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">True</property>
-                    <property name="fill">True</property>
-                    <property name="position">2</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkBox" id="box22">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="orientation">vertical</property>
-                    <child>
-                      <object class="GtkHandleBox" id="handlebox1">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <child>
-                          <object class="GtkLinkButton" id="linkbutton1">
-                            <property name="label" translatable="yes">link button</property>
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="receives_default">True</property>
-                            <property name="has_tooltip">True</property>
-                            <property name="use_action_appearance">False</property>
-                            <property name="relief">none</property>
-                            <property name="uri">http://www.ubuntu.com</property>
-                          </object>
-                        </child>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">True</property>
-                        <property name="position">0</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkExpander" id="expander1">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <child>
-                          <object class="GtkScrolledWindow" id="scrolledwindow3">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="shadow_type">in</property>
-                            <child>
-                              <object class="GtkViewport" id="viewport1">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <child>
-                                  <object class="GtkLabel" id="label20">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
-                                    <property name="label" translatable="yes">Lorem ipsum dolor sit amet, consectetur adipiscing elit.
-Nullam fringilla, est ut feugiat ultrices, elit lacus ultricies nibh, id commodo tortor nisi id elit.
-Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
-Morbi vel elit erat. Maecenas dignissim, dui et pharetra rutrum, tellus lectus rutrum mi, a convallis libero nisi quis tellus.
-Nulla facilisi. Nullam eleifend lobortis nisl, in porttitor tellus malesuada vitae.
-Aenean lacus tellus, pellentesque quis molestie quis, fringilla in arcu.
-Duis elementum, tellus sed tristique semper, metus metus accumsan augue, et porttitor augue orci a libero.
-Ut sed justo ac felis placerat laoreet sed id sem. Proin mattis tincidunt odio vitae tristique.
-Morbi massa libero, congue vitae scelerisque vel, ultricies vel nisl.
-Vestibulum in tortor diam, quis aliquet quam. Praesent ut justo neque, tempus rutrum est.
-Duis eu lectus quam. Vivamus eget metus a mauris molestie venenatis pulvinar eleifend nisi.
-Nulla facilisi. Pellentesque at dolor sit amet purus dapibus pulvinar molestie quis neque.
-Suspendisse feugiat quam quis dolor accumsan cursus. </property>
-                                  </object>
-                                </child>
-                              </object>
-                            </child>
-                          </object>
-                        </child>
-                        <child type="label">
-                          <object class="GtkLabel" id="label19">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="label" translatable="yes">expander</property>
-                          </object>
-                        </child>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">True</property>
-                        <property name="position">1</property>
-                      </packing>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">3</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">4</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkSeparator" id="separator3">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="orientation">vertical</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">5</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkBox" id="box26">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="orientation">vertical</property>
-                <property name="homogeneous">True</property>
-                <child>
-                  <object class="GtkFrame" id="frame1">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="label_xalign">0</property>
-                    <property name="shadow_type">in</property>
-                    <child>
-                      <object class="GtkAlignment" id="alignment1">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="left_padding">12</property>
-                        <child>
-                          <placeholder/>
-                        </child>
-                      </object>
-                    </child>
-                    <child type="label">
-                      <object class="GtkLabel" id="label1">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">&lt;b&gt;In&lt;/b&gt;</property>
-                        <property name="use_markup">True</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">True</property>
-                    <property name="fill">True</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkFrame" id="frame2">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="label_xalign">0</property>
-                    <property name="shadow_type">out</property>
-                    <child>
-                      <object class="GtkAlignment" id="alignment2">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="left_padding">12</property>
-                        <child>
-                          <placeholder/>
-                        </child>
-                      </object>
-                    </child>
-                    <child type="label">
-                      <object class="GtkLabel" id="label2">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">&lt;b&gt;Out&lt;/b&gt;</property>
-                        <property name="use_markup">True</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">True</property>
-                    <property name="fill">True</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkFrame" id="frame3">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="label_xalign">0</property>
-                    <child>
-                      <object class="GtkAlignment" id="alignment3">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="left_padding">12</property>
-                        <child>
-                          <placeholder/>
-                        </child>
-                      </object>
-                    </child>
-                    <child type="label">
-                      <object class="GtkLabel" id="label17">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">&lt;b&gt;Etched out&lt;/b&gt;</property>
-                        <property name="use_markup">True</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">True</property>
-                    <property name="fill">True</property>
-                    <property name="position">2</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkFrame" id="frame4">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="label_xalign">0</property>
-                    <property name="shadow_type">etched-out</property>
-                    <child>
-                      <object class="GtkAlignment" id="alignment4">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="left_padding">12</property>
-                        <child>
-                          <placeholder/>
-                        </child>
-                      </object>
-                    </child>
-                    <child type="label">
-                      <object class="GtkLabel" id="label18">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">&lt;b&gt;Etched out&lt;/b&gt;</property>
-                        <property name="use_markup">True</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">True</property>
-                    <property name="fill">True</property>
-                    <property name="position">3</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="expand">True</property>
-                <property name="fill">True</property>
-                <property name="position">6</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkSeparator" id="separator4">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="orientation">vertical</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">7</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkBox" id="box4">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="orientation">vertical</property>
-                <property name="spacing">4</property>
-                <child>
-                  <object class="GtkScrolledWindow" id="scrolledwindow1">
-                    <property name="width_request">150</property>
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="vscrollbar_policy">always</property>
-                    <property name="shadow_type">in</property>
-                    <child>
-                      <object class="GtkTreeView" id="treeview1">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="model">liststore1</property>
-                        <property name="headers_clickable">False</property>
-                        <property name="search_column">0</property>
-                        <child internal-child="selection">
-                          <object class="GtkTreeSelection" id="treeview-selection"/>
-                        </child>
-                        <child>
-                          <object class="GtkTreeViewColumn" id="treeviewcolumn3">
-                            <property name="title" translatable="yes">Cool</property>
-                            <child>
-                              <object class="GtkCellRendererToggle" id="cellrenderertoggle1"/>
-                              <attributes>
-                                <attribute name="active">0</attribute>
-                              </attributes>
-                            </child>
-                          </object>
-                        </child>
-                        <child>
-                          <object class="GtkTreeViewColumn" id="treeviewcolumn1">
-                            <property name="title" translatable="yes">Name</property>
-                            <child>
-                              <object class="GtkCellRendererText" id="cellrenderertext3"/>
-                              <attributes>
-                                <attribute name="text">1</attribute>
-                              </attributes>
-                            </child>
-                          </object>
-                        </child>
-                        <child>
-                          <object class="GtkTreeViewColumn" id="treeviewcolumn2">
-                            <property name="title" translatable="yes">Nick</property>
-                            <child>
-                              <object class="GtkCellRendererText" id="cellrenderertext4"/>
-                              <attributes>
-                                <attribute name="text">2</attribute>
-                              </attributes>
-                            </child>
-                          </object>
-                        </child>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">True</property>
-                    <property name="fill">True</property>
-                    <property name="position">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkScrolledWindow" id="scrolledwindow2">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="shadow_type">in</property>
-                    <child>
-                      <object class="GtkTextView" id="textview1">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="buffer">textbuffer1</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">True</property>
-                    <property name="fill">True</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="expand">True</property>
-                <property name="fill">True</property>
-                <property name="padding">6</property>
-                <property name="position">8</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="padding">10</property>
-            <property name="position">2</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkSeparator" id="separator5">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">3</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkBox" id="box5">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="margin_left">5</property>
-            <property name="margin_right">5</property>
-            <property name="margin_bottom">5</property>
-            <property name="spacing">10</property>
-            <property name="homogeneous">True</property>
-            <child>
-              <object class="GtkNotebook" id="notebook1">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <child>
-                  <object class="GtkBox" id="box6">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="orientation">vertical</property>
-                    <child>
-                      <placeholder/>
-                    </child>
-                  </object>
-                </child>
-                <child type="tab">
-                  <object class="GtkLabel" id="label5">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="label" translatable="yes">page 1</property>
-                  </object>
-                  <packing>
-                    <property name="tab_fill">False</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkBox" id="box7">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="orientation">vertical</property>
-                    <child>
-                      <placeholder/>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child type="tab">
-                  <object class="GtkLabel" id="label6">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="label" translatable="yes">page 2</property>
-                  </object>
-                  <packing>
-                    <property name="position">1</property>
-                    <property name="tab_fill">False</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkBox" id="box8">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="orientation">vertical</property>
-                    <child>
-                      <placeholder/>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="position">2</property>
-                  </packing>
-                </child>
-                <child type="tab">
-                  <object class="GtkLabel" id="label7">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="label" translatable="yes">page 3</property>
-                  </object>
-                  <packing>
-                    <property name="position">2</property>
-                    <property name="tab_fill">False</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkNotebook" id="notebook2">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="tab_pos">right</property>
-                <child>
-                  <object class="GtkBox" id="box9">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="orientation">vertical</property>
-                    <child>
-                      <placeholder/>
-                    </child>
-                  </object>
-                </child>
-                <child type="tab">
-                  <object class="GtkLabel" id="label8">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="label" translatable="yes">page 1</property>
-                  </object>
-                  <packing>
-                    <property name="tab_fill">False</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkBox" id="box10">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="orientation">vertical</property>
-                    <child>
-                      <placeholder/>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child type="tab">
-                  <object class="GtkLabel" id="label9">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="label" translatable="yes">page 2</property>
-                  </object>
-                  <packing>
-                    <property name="position">1</property>
-                    <property name="tab_fill">False</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkBox" id="box11">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="orientation">vertical</property>
-                    <child>
-                      <placeholder/>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="position">2</property>
-                  </packing>
-                </child>
-                <child type="tab">
-                  <object class="GtkLabel" id="label10">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="label" translatable="yes">page 3</property>
-                  </object>
-                  <packing>
-                    <property name="position">2</property>
-                    <property name="tab_fill">False</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkNotebook" id="notebook3">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="tab_pos">bottom</property>
-                <child>
-                  <object class="GtkBox" id="box12">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="orientation">vertical</property>
-                    <child>
-                      <placeholder/>
-                    </child>
-                  </object>
-                </child>
-                <child type="tab">
-                  <object class="GtkLabel" id="label11">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="label" translatable="yes">page 1</property>
-                  </object>
-                  <packing>
-                    <property name="tab_fill">False</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkBox" id="box13">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="orientation">vertical</property>
-                    <child>
-                      <placeholder/>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child type="tab">
-                  <object class="GtkLabel" id="label12">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="label" translatable="yes">page 2</property>
-                  </object>
-                  <packing>
-                    <property name="position">1</property>
-                    <property name="tab_fill">False</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkBox" id="box14">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="orientation">vertical</property>
-                    <child>
-                      <placeholder/>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="position">2</property>
-                  </packing>
-                </child>
-                <child type="tab">
-                  <object class="GtkLabel" id="label13">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="label" translatable="yes">page 3</property>
-                  </object>
-                  <packing>
-                    <property name="position">2</property>
-                    <property name="tab_fill">False</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">2</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkNotebook" id="notebook4">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="tab_pos">left</property>
-                <child>
-                  <object class="GtkBox" id="box15">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="orientation">vertical</property>
-                    <child>
-                      <placeholder/>
-                    </child>
-                  </object>
-                </child>
-                <child type="tab">
-                  <object class="GtkLabel" id="label14">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="label" translatable="yes">page 1</property>
-                  </object>
-                  <packing>
-                    <property name="tab_fill">False</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkBox" id="box16">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="orientation">vertical</property>
-                    <child>
-                      <placeholder/>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child type="tab">
-                  <object class="GtkLabel" id="label15">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="label" translatable="yes">page 2</property>
-                  </object>
-                  <packing>
-                    <property name="position">1</property>
-                    <property name="tab_fill">False</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkBox" id="box17">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="orientation">vertical</property>
-                    <child>
-                      <placeholder/>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="position">2</property>
-                  </packing>
-                </child>
-                <child type="tab">
-                  <object class="GtkLabel" id="label16">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="label" translatable="yes">page 3</property>
-                  </object>
-                  <packing>
-                    <property name="position">2</property>
-                    <property name="tab_fill">False</property>
-                  </packing>
-                </child>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">3</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">True</property>
-            <property name="fill">True</property>
-            <property name="position">4</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkStatusbar" id="statusbar1">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">5</property>
-          </packing>
-        </child>
-      </object>
-    </child>
-  </object>
-</interface>

=== modified file 'unico/Makefile.am'
--- unico/Makefile.am	2011-07-28 09:12:33 +0000
+++ unico/Makefile.am	2012-07-25 22:49:45 +0000
@@ -1,8 +1,5 @@
 source_h = \
 	$(srcdir)/unico.h \
-	$(srcdir)/exponential-blur.h \
-	$(srcdir)/gtkroundedboxprivate.h \
-	$(srcdir)/raico-blur.h \
 	$(srcdir)/unico-cairo-support.h \
 	$(srcdir)/unico-draw.h \
 	$(srcdir)/unico-engine.h \
@@ -10,9 +7,6 @@
 	$(srcdir)/unico-types.h
 
 source_c = \
-	$(srcdir)/exponential-blur.c \
-	$(srcdir)/gtkroundedbox.c \
-	$(srcdir)/raico-blur.c \
 	$(srcdir)/unico-cairo-support.c \
 	$(srcdir)/unico-draw.c \
 	$(srcdir)/unico-engine.c \

=== removed file 'unico/exponential-blur.c'
--- unico/exponential-blur.c	2011-07-13 10:21:30 +0000
+++ unico/exponential-blur.c	1970-01-01 00:00:00 +0000
@@ -1,288 +0,0 @@
-/* The Unico Theming Engine for Gtk+.
- * Copyright (C) 2009 Canonical Ltd
- *
- * This  library is free  software; you can  redistribute it and/or
- * modify it  under  the terms  of the  GNU Lesser  General  Public
- * License  as published  by the Free  Software  Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed  in the hope that it will be useful,
- * but  WITHOUT ANY WARRANTY; without even  the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License  along  with  this library;  if not,  write to  the Free
- * Software Foundation, Inc., 51  Franklin St, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * Authored by Mirco "MacSlow" Mueller <mirco.mueller@canonical.com>
- *
- * Notes:
- *   based on exponential-blur algorithm by Jani Huhtanen
- *
- */
-
-/* FIXME: not working yet, unfinished */
-
-#include <math.h>
-
-#include "exponential-blur.h"
-
-static inline void
-_blurinner (guchar* pixel,
-            gint   *zR,
-            gint   *zG,
-            gint   *zB,
-            gint   *zA,
-            gint    alpha,
-            gint    aprec,
-            gint    zprec);
-
-static inline void
-_blurrow (guchar* pixels,
-          gint    width,
-          gint    height,
-          gint    channels,
-          gint    line,
-          gint    alpha,
-          gint    aprec,
-          gint    zprec);
-
-static inline void
-_blurcol (guchar* pixels,
-          gint    width,
-          gint    height,
-          gint    channels,
-          gint    col,
-          gint    alpha,
-          gint    aprec,
-          gint    zprec);
-
-void
-_expblur (guchar* pixels,
-          gint    width,
-          gint    height,
-          gint    channels,
-          gint    radius,
-          gint    aprec,
-          gint    zprec);
-
-void
-surface_exponential_blur (cairo_surface_t* surface,
-                          guint            radius)
-{
-  guchar*        pixels;
-  guint          width;
-  guint          height;
-  cairo_format_t format;
-
-  /* sanity checks are done in raico-blur.c */
-
-  /* before we mess with the surface execute any pending drawing */
-  cairo_surface_flush (surface);
-
-  pixels = cairo_image_surface_get_data (surface);
-  width  = cairo_image_surface_get_width (surface);
-  height = cairo_image_surface_get_height (surface);
-  format = cairo_image_surface_get_format (surface);
-
-  switch (format)
-  {
-    case CAIRO_FORMAT_ARGB32:
-      _expblur (pixels, width, height, 4, radius, 16, 7);
-      break;
-    case CAIRO_FORMAT_RGB24:
-      _expblur (pixels, width, height, 3, radius, 16, 7);
-      break;
-    case CAIRO_FORMAT_A8:
-      _expblur (pixels, width, height, 1, radius, 16, 7);
-      break;
-    default:
-      break;
-  }
-
-  /* inform cairo we altered the surfaces contents */
-  cairo_surface_mark_dirty (surface);        
-}
-
-/*
- * pixels   image-data
- * width    image-width
- * height   image-height
- * channels image-channels
- *
- * in-place blur of image 'img' with kernel of approximate radius 'radius'
- *
- * blurs with two sided exponential impulse response
- *
- * aprec = precision of alpha parameter in fixed-point format 0.aprec
- *
- * zprec = precision of state parameters zR,zG,zB and zA in fp format 8.zprec
- */
-void
-_expblur (guchar* pixels,
-          gint    width,
-          gint    height,
-          gint    channels,
-          gint    radius,
-          gint    aprec,
-          gint    zprec)
-{
-  gint alpha;
-  gint row = 0;
-  gint col = 0;
-
-  if (radius < 1)
-    return;
-
-  /* calculate the alpha such that 90% of 
-   * the kernel is within the radius.
-   * (Kernel extends to infinity) */
-  alpha = (gint) ((1 << aprec) * (1.0f - expf (-2.3f / (radius + 1.f))));
-
-  for (; row < height; row++)
-    _blurrow (pixels,
-              width,
-              height,
-              channels,
-              row,
-              alpha,
-              aprec,
-              zprec);
-
-  for(; col < width; col++)
-    _blurcol (pixels,
-              width,
-              height,
-              channels,
-              col,
-              alpha,
-              aprec,
-              zprec);
-
-  return;
-}
-
-static inline void
-_blurinner (guchar* pixel,
-            gint   *zR,
-            gint   *zG,
-            gint   *zB,
-            gint   *zA,
-            gint    alpha,
-            gint    aprec,
-            gint    zprec)
-{
-  gint R;
-  gint G;
-  gint B;
-  guchar A;
-
-  R = *pixel;
-  G = *(pixel + 1);
-  B = *(pixel + 2);
-  A = *(pixel + 3);
-
-  *zR += (alpha * ((R << zprec) - *zR)) >> aprec;
-  *zG += (alpha * ((G << zprec) - *zG)) >> aprec;
-  *zB += (alpha * ((B << zprec) - *zB)) >> aprec;
-  *zA += (alpha * ((A << zprec) - *zA)) >> aprec;
-
-  *pixel       = *zR >> zprec;
-  *(pixel + 1) = *zG >> zprec;
-  *(pixel + 2) = *zB >> zprec;
-  *(pixel + 3) = *zA >> zprec;
-} 
-
-static inline void
-_blurrow (guchar* pixels,
-          gint    width,
-          gint    height,
-          gint    channels,
-          gint    line,
-          gint    alpha,
-          gint    aprec,
-          gint    zprec)
-{
-  gint    zR;
-  gint    zG;
-  gint    zB;
-  gint    zA;
-  gint    index;
-  guchar* scanline;
-
-  scanline = &(pixels[line * width * channels]);
-
-  zR = *scanline << zprec;
-  zG = *(scanline + 1) << zprec;
-  zB = *(scanline + 2) << zprec;
-  zA = *(scanline + 3) << zprec;
-
-  for (index = 0; index < width; index ++)
-    _blurinner (&scanline[index * channels],
-                &zR,
-                &zG,
-                &zB,
-                &zA,
-                alpha,
-                aprec,
-                zprec);
-
-  for (index = width - 2; index >= 0; index--)
-    _blurinner (&scanline[index * channels],
-                &zR,
-                &zG,
-                &zB,
-                &zA,
-                alpha,
-                aprec,
-                zprec);
-}
-
-static inline void
-_blurcol (guchar* pixels,
-          gint    width,
-          gint    height,
-          gint    channels,
-          gint    x,
-          gint    alpha,
-          gint    aprec,
-          gint    zprec)
-{
-  gint zR;
-  gint zG;
-  gint zB;
-  gint zA;
-  gint index;
-  guchar* ptr;
-
-  ptr = pixels;
-  
-  ptr += x * channels;
-
-  zR = *((guchar*) ptr    ) << zprec;
-  zG = *((guchar*) ptr + 1) << zprec;
-  zB = *((guchar*) ptr + 2) << zprec;
-  zA = *((guchar*) ptr + 3) << zprec;
-
-  for (index = width; index < (height - 1) * width; index += width)
-    _blurinner ((guchar*) &ptr[index * channels],
-                &zR,
-                &zG,
-                &zB,
-                &zA,
-                alpha,
-                aprec,
-                zprec);
-
-  for (index = (height - 2) * width; index >= 0; index -= width)
-    _blurinner ((guchar*) &ptr[index * channels],
-                &zR,
-                &zG,
-                &zB,
-                &zA,
-                alpha,
-                aprec,
-                zprec);
-}

=== removed file 'unico/exponential-blur.h'
--- unico/exponential-blur.h	2011-08-09 22:26:09 +0000
+++ unico/exponential-blur.h	1970-01-01 00:00:00 +0000
@@ -1,37 +0,0 @@
-/* The Unico Theming Engine for Gtk+.
- * Copyright (C) 2009 Canonical Ltd
- *
- * This  library is free  software; you can  redistribute it and/or
- * modify it  under  the terms  of the  GNU Lesser  General  Public
- * License  as published  by the Free  Software  Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed  in the hope that it will be useful,
- * but  WITHOUT ANY WARRANTY; without even  the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License  along  with  this library;  if not,  write to  the Free
- * Software Foundation, Inc., 51  Franklin St, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * Authored by Mirco "MacSlow" Mueller <mirco.mueller@canonical.com>
- *
- * Notes:
- *   based on exponential-blur algorithm by Jani Huhtanen
- *
- */
-
-#ifndef _EXPONENTIAL_BLUR_H
-#define _EXPONENTIAL_BLUR_H
-
-#include <cairo.h>
-#include <glib.h>
-
-void
-surface_exponential_blur (cairo_surface_t* surface,
-                          guint            radius);
-
-#endif // _EXPONENTIAL_BLUR_H
-

=== removed file 'unico/gtkroundedbox.c'
--- unico/gtkroundedbox.c	2012-02-08 12:54:39 +0000
+++ unico/gtkroundedbox.c	1970-01-01 00:00:00 +0000
@@ -1,527 +0,0 @@
-/* GTK - The GIMP Toolkit
- * Copyright (C) 2011 Benjamin Otte <otte@gnome.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <string.h>
-#include <cairo.h>
-
-#include "gtkroundedboxprivate.h"
-
-double
-_gtk_css_number_get (const GtkCssNumber *number,
-                     double              one_hundred_percent)
-{
-  if (number->unit == GTK_CSS_PERCENT)
-    return number->value * one_hundred_percent * 0.01;
-  else
-    return number->value;
-}
-
-/**
- * _gtk_rounded_box_init_rect:
- * @box: box to initialize
- * @x: x coordinate of box
- * @y: y coordinate of box
- * @width: width of box
- * @height: height of box
- *
- * Initializes the given @box to represent the given rectangle.
- * The
- **/
-void
-_gtk_rounded_box_init_rect (GtkRoundedBox *box,
-                            double         x,
-                            double         y,
-                            double         width,
-                            double         height)
-{
-  memset (box, 0, sizeof (GtkRoundedBox));
-
-  box->box.x = x;
-  box->box.y = y;
-  box->box.width = width;
-  box->box.height = height;
-}
-
-/* clamp border radius, following CSS specs */
-static void
-gtk_rounded_box_clamp_border_radius (GtkRoundedBox *box)
-{
-  gdouble factor = 1.0;
-
-  /* note: division by zero leads to +INF, which is > factor, so will be ignored */
-  factor = MIN (factor, box->box.width / (box->corner[GTK_CSS_TOP_LEFT].horizontal +
-                                          box->corner[GTK_CSS_TOP_RIGHT].horizontal));
-  factor = MIN (factor, box->box.height / (box->corner[GTK_CSS_TOP_RIGHT].vertical +
-                                           box->corner[GTK_CSS_BOTTOM_RIGHT].vertical));
-  factor = MIN (factor, box->box.width / (box->corner[GTK_CSS_BOTTOM_RIGHT].horizontal +
-                                          box->corner[GTK_CSS_BOTTOM_LEFT].horizontal));
-  factor = MIN (factor, box->box.height / (box->corner[GTK_CSS_TOP_LEFT].vertical +
-                                           box->corner[GTK_CSS_BOTTOM_LEFT].vertical));
-
-  box->corner[GTK_CSS_TOP_LEFT].horizontal *= factor;
-  box->corner[GTK_CSS_TOP_LEFT].vertical *= factor;
-  box->corner[GTK_CSS_TOP_RIGHT].horizontal *= factor;
-  box->corner[GTK_CSS_TOP_RIGHT].vertical *= factor;
-  box->corner[GTK_CSS_BOTTOM_RIGHT].horizontal *= factor;
-  box->corner[GTK_CSS_BOTTOM_RIGHT].vertical *= factor;
-  box->corner[GTK_CSS_BOTTOM_LEFT].horizontal *= factor;
-  box->corner[GTK_CSS_BOTTOM_LEFT].vertical *= factor;
-}
-
-void
-_gtk_rounded_box_apply_border_radius (GtkRoundedBox    *box,
-                                      GtkThemingEngine *engine,
-                                      GtkStateFlags     state,
-                                      GtkJunctionSides  junction)
-{
-  GtkCssBorderCornerRadius *corner[4];
-  guint i;
-
-  gtk_theming_engine_get (engine, state,
-                          /* Can't use border-radius as it's an int for
-                           * backwards compat */
-                          "border-top-left-radius", &corner[GTK_CSS_TOP_LEFT],
-                          "border-top-right-radius", &corner[GTK_CSS_TOP_RIGHT],
-                          "border-bottom-right-radius", &corner[GTK_CSS_BOTTOM_RIGHT],
-                          "border-bottom-left-radius", &corner[GTK_CSS_BOTTOM_LEFT],
-                          NULL);
-
-  if (corner[GTK_CSS_TOP_LEFT] && (junction & GTK_JUNCTION_CORNER_TOPLEFT) == 0)
-    {
-      box->corner[GTK_CSS_TOP_LEFT].horizontal = _gtk_css_number_get (&corner[GTK_CSS_TOP_LEFT]->horizontal,
-                                                                      box->box.width);
-      box->corner[GTK_CSS_TOP_LEFT].vertical = _gtk_css_number_get (&corner[GTK_CSS_TOP_LEFT]->vertical,
-                                                                    box->box.height);
-    }
-  if (corner[GTK_CSS_TOP_RIGHT] && (junction & GTK_JUNCTION_CORNER_TOPRIGHT) == 0)
-    {
-      box->corner[GTK_CSS_TOP_RIGHT].horizontal = _gtk_css_number_get (&corner[GTK_CSS_TOP_RIGHT]->horizontal,
-                                                                       box->box.width);
-      box->corner[GTK_CSS_TOP_RIGHT].vertical = _gtk_css_number_get (&corner[GTK_CSS_TOP_RIGHT]->vertical,
-                                                                     box->box.height);
-    }
-  if (corner[GTK_CSS_BOTTOM_RIGHT] && (junction & GTK_JUNCTION_CORNER_BOTTOMRIGHT) == 0)
-    {
-      box->corner[GTK_CSS_BOTTOM_RIGHT].horizontal = _gtk_css_number_get (&corner[GTK_CSS_BOTTOM_RIGHT]->horizontal,
-                                                                          box->box.width);
-      box->corner[GTK_CSS_BOTTOM_RIGHT].vertical = _gtk_css_number_get (&corner[GTK_CSS_BOTTOM_RIGHT]->vertical,
-                                                                        box->box.height);
-    }
-  if (corner[GTK_CSS_BOTTOM_LEFT] && (junction & GTK_JUNCTION_CORNER_BOTTOMLEFT) == 0)
-    {
-      box->corner[GTK_CSS_BOTTOM_LEFT].horizontal = _gtk_css_number_get (&corner[GTK_CSS_BOTTOM_LEFT]->horizontal,
-                                                                         box->box.width);
-      box->corner[GTK_CSS_BOTTOM_LEFT].vertical = _gtk_css_number_get (&corner[GTK_CSS_BOTTOM_LEFT]->vertical,
-                                                                       box->box.height);
-    }
-
-  gtk_rounded_box_clamp_border_radius (box);
-
-  for (i = 0; i < 4; i++)
-    g_free (corner[i]);
-}
-
-static void
-gtk_css_border_radius_grow (GtkRoundedBoxCorner *corner,
-                            double               horizontal,
-                            double               vertical)
-{
-  corner->horizontal += horizontal;
-  corner->vertical += vertical;
-
-  if (corner->horizontal <= 0 || corner->vertical <= 0)
-    {
-      corner->horizontal = 0;
-      corner->vertical = 0;
-    }
-}
-void
-_gtk_rounded_box_grow (GtkRoundedBox *box,
-                       double         top,
-                       double         right,
-                       double         bottom,
-                       double         left)
-{
-  if (box->box.width + left + right < 0)
-    {
-      box->box.x -= left * box->box.width / (left + right);
-      box->box.width = 0;
-    }
-  else
-    {
-      box->box.x -= left;
-      box->box.width += left + right;
-    }
-
-  if (box->box.height + bottom + right < 0)
-    {
-      box->box.y -= top * box->box.height / (top + bottom);
-      box->box.height = 0;
-    }
-  else
-    {
-      box->box.y -= top;
-      box->box.height += top + bottom;
-    }
-
-  gtk_css_border_radius_grow (&box->corner[GTK_CSS_TOP_LEFT], left, top);
-  gtk_css_border_radius_grow (&box->corner[GTK_CSS_TOP_RIGHT], right, bottom);
-  gtk_css_border_radius_grow (&box->corner[GTK_CSS_BOTTOM_RIGHT], right, top);
-  gtk_css_border_radius_grow (&box->corner[GTK_CSS_BOTTOM_LEFT], left, bottom);
-}
-
-void
-_gtk_rounded_box_shrink (GtkRoundedBox *box,
-                         double         top,
-                         double         right,
-                         double         bottom,
-                         double         left)
-{
-  _gtk_rounded_box_grow (box, -top, -right, -bottom, -left);
-}
-
-void
-_gtk_rounded_box_move (GtkRoundedBox *box,
-                       double         dx,
-                       double         dy)
-{
-  box->box.x += dx;
-  box->box.y += dy;
-}
-
-static void
-_cairo_ellipsis (cairo_t *cr,
-                 double xc, double yc,
-                 double xradius, double yradius,
-                 double angle1, double angle2)
-{
-  if (xradius <= 0.0 || yradius <= 0.0)
-    {
-      cairo_line_to (cr, xc, yc);
-      return;
-    }
-
-  cairo_save (cr);
-  cairo_translate (cr, xc, yc);
-  cairo_scale (cr, xradius, yradius);
-  cairo_arc (cr, 0, 0, 1.0, angle1, angle2);
-  cairo_restore (cr);
-}
-
-static void
-_cairo_ellipsis_negative (cairo_t *cr,
-                          double xc, double yc,
-                          double xradius, double yradius,
-                          double angle1, double angle2)
-{
-  if (xradius <= 0.0 || yradius <= 0.0)
-    {
-      cairo_line_to (cr, xc, yc);
-      return;
-    }
-
-  cairo_save (cr);
-  cairo_translate (cr, xc, yc);
-  cairo_scale (cr, xradius, yradius);
-  cairo_arc_negative (cr, 0, 0, 1.0, angle1, angle2);
-  cairo_restore (cr);
-}
-
-void
-_gtk_rounded_box_path (const GtkRoundedBox *box,
-                       cairo_t             *cr)
-{
-  cairo_new_sub_path (cr);
-
-  _cairo_ellipsis (cr,
-                   box->box.x + box->corner[GTK_CSS_TOP_LEFT].horizontal,
-                   box->box.y + box->corner[GTK_CSS_TOP_LEFT].vertical,
-                   box->corner[GTK_CSS_TOP_LEFT].horizontal,
-                   box->corner[GTK_CSS_TOP_LEFT].vertical,
-                   G_PI, 3 * G_PI / 2);
-  _cairo_ellipsis (cr, 
-                   box->box.x + box->box.width - box->corner[GTK_CSS_TOP_RIGHT].horizontal,
-                   box->box.y + box->corner[GTK_CSS_TOP_RIGHT].vertical,
-                   box->corner[GTK_CSS_TOP_RIGHT].horizontal,
-                   box->corner[GTK_CSS_TOP_RIGHT].vertical,
-                   - G_PI / 2, 0);
-  _cairo_ellipsis (cr,
-                   box->box.x + box->box.width - box->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
-                   box->box.y + box->box.height - box->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
-                   box->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
-                   box->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
-                   0, G_PI / 2);
-  _cairo_ellipsis (cr,
-                   box->box.x + box->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
-                   box->box.y + box->box.height - box->corner[GTK_CSS_BOTTOM_LEFT].vertical,
-                   box->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
-                   box->corner[GTK_CSS_BOTTOM_LEFT].vertical,
-                   G_PI / 2, G_PI);
-
-  cairo_close_path (cr);
-}
-
-double
-_gtk_rounded_box_guess_length (const GtkRoundedBox *box,
-                               GtkCssSide           side)
-{
-  double length;
-  GtkCssCorner before, after;
-
-  before = side;
-  after = (side + 1) % 4;
-
-  if (side & 1)
-    length = box->box.height
-             - box->corner[before].vertical
-             - box->corner[after].vertical;
-  else
-    length = box->box.width
-             - box->corner[before].horizontal
-             - box->corner[after].horizontal;
-
-  length += G_PI * 0.125 * (box->corner[before].horizontal
-                            + box->corner[before].vertical
-                            + box->corner[after].horizontal
-                            + box->corner[after].vertical);
-
-  return length;
-}
-
-void
-_gtk_rounded_box_path_side (const GtkRoundedBox *box,
-                            cairo_t             *cr,
-                            GtkCssSide           side)
-{
-  switch (side)
-  {
-    case GTK_CSS_TOP:
-      _cairo_ellipsis (cr,
-                       box->box.x + box->corner[GTK_CSS_TOP_LEFT].horizontal,
-                       box->box.y + box->corner[GTK_CSS_TOP_LEFT].vertical,
-                       box->corner[GTK_CSS_TOP_LEFT].horizontal,
-                       box->corner[GTK_CSS_TOP_LEFT].vertical,
-                       5 * G_PI / 4, 3 * G_PI / 2);
-      _cairo_ellipsis (cr, 
-                       box->box.x + box->box.width - box->corner[GTK_CSS_TOP_RIGHT].horizontal,
-                       box->box.y + box->corner[GTK_CSS_TOP_RIGHT].vertical,
-                       box->corner[GTK_CSS_TOP_RIGHT].horizontal,
-                       box->corner[GTK_CSS_TOP_RIGHT].vertical,
-                       - G_PI / 2, -G_PI / 4);
-      break;
-    case GTK_CSS_RIGHT:
-      _cairo_ellipsis (cr, 
-                       box->box.x + box->box.width - box->corner[GTK_CSS_TOP_RIGHT].horizontal,
-                       box->box.y + box->corner[GTK_CSS_TOP_RIGHT].vertical,
-                       box->corner[GTK_CSS_TOP_RIGHT].horizontal,
-                       box->corner[GTK_CSS_TOP_RIGHT].vertical,
-                       - G_PI / 4, 0);
-      _cairo_ellipsis (cr,
-                       box->box.x + box->box.width - box->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
-                       box->box.y + box->box.height - box->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
-                       box->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
-                       box->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
-                       0, G_PI / 4);
-      break;
-    case GTK_CSS_BOTTOM:
-      _cairo_ellipsis (cr,
-                       box->box.x + box->box.width - box->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
-                       box->box.y + box->box.height - box->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
-                       box->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
-                       box->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
-                       G_PI / 4, G_PI / 2);
-      _cairo_ellipsis (cr,
-                       box->box.x + box->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
-                       box->box.y + box->box.height - box->corner[GTK_CSS_BOTTOM_LEFT].vertical,
-                       box->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
-                       box->corner[GTK_CSS_BOTTOM_LEFT].vertical,
-                       G_PI / 2, 3 * G_PI / 4);
-      break;
-    case GTK_CSS_LEFT:
-      _cairo_ellipsis (cr,
-                       box->box.x + box->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
-                       box->box.y + box->box.height - box->corner[GTK_CSS_BOTTOM_LEFT].vertical,
-                       box->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
-                       box->corner[GTK_CSS_BOTTOM_LEFT].vertical,
-                       3 * G_PI / 4, G_PI);
-      _cairo_ellipsis (cr,
-                       box->box.x + box->corner[GTK_CSS_TOP_LEFT].horizontal,
-                       box->box.y + box->corner[GTK_CSS_TOP_LEFT].vertical,
-                       box->corner[GTK_CSS_TOP_LEFT].horizontal,
-                       box->corner[GTK_CSS_TOP_LEFT].vertical,
-                       G_PI, 5 * G_PI / 4);
-      break;
-    default:
-      g_assert_not_reached ();
-      break;
-  }
-}
-
-void
-_gtk_rounded_box_path_top (const GtkRoundedBox *outer,
-                           const GtkRoundedBox *inner,
-                           cairo_t             *cr)
-{
-  cairo_new_sub_path (cr);
-
-  _cairo_ellipsis (cr,
-                   outer->box.x + outer->corner[GTK_CSS_TOP_LEFT].horizontal,
-                   outer->box.y + outer->corner[GTK_CSS_TOP_LEFT].vertical,
-                   outer->corner[GTK_CSS_TOP_LEFT].horizontal,
-                   outer->corner[GTK_CSS_TOP_LEFT].vertical,
-                   5 * G_PI / 4, 3 * G_PI / 2);
-  _cairo_ellipsis (cr, 
-                   outer->box.x + outer->box.width - outer->corner[GTK_CSS_TOP_RIGHT].horizontal,
-                   outer->box.y + outer->corner[GTK_CSS_TOP_RIGHT].vertical,
-                   outer->corner[GTK_CSS_TOP_RIGHT].horizontal,
-                   outer->corner[GTK_CSS_TOP_RIGHT].vertical,
-                   - G_PI / 2, -G_PI / 4);
-
-  _cairo_ellipsis_negative (cr, 
-                            inner->box.x + inner->box.width - inner->corner[GTK_CSS_TOP_RIGHT].horizontal,
-                            inner->box.y + inner->corner[GTK_CSS_TOP_RIGHT].vertical,
-                            inner->corner[GTK_CSS_TOP_RIGHT].horizontal,
-                            inner->corner[GTK_CSS_TOP_RIGHT].vertical,
-                            -G_PI / 4, - G_PI / 2);
-  _cairo_ellipsis_negative (cr,
-                            inner->box.x + inner->corner[GTK_CSS_TOP_LEFT].horizontal,
-                            inner->box.y + inner->corner[GTK_CSS_TOP_LEFT].vertical,
-                            inner->corner[GTK_CSS_TOP_LEFT].horizontal,
-                            inner->corner[GTK_CSS_TOP_LEFT].vertical,
-                            3 * G_PI / 2, 5 * G_PI / 4);
-
-  cairo_close_path (cr);
-}
-
-void
-_gtk_rounded_box_path_right (const GtkRoundedBox *outer,
-                             const GtkRoundedBox *inner,
-                             cairo_t             *cr)
-{
-  cairo_new_sub_path (cr);
-
-  _cairo_ellipsis (cr, 
-                   outer->box.x + outer->box.width - outer->corner[GTK_CSS_TOP_RIGHT].horizontal,
-                   outer->box.y + outer->corner[GTK_CSS_TOP_RIGHT].vertical,
-                   outer->corner[GTK_CSS_TOP_RIGHT].horizontal,
-                   outer->corner[GTK_CSS_TOP_RIGHT].vertical,
-                   - G_PI / 4, 0);
-  _cairo_ellipsis (cr,
-                   outer->box.x + outer->box.width - outer->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
-                   outer->box.y + outer->box.height - outer->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
-                   outer->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
-                   outer->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
-                   0, G_PI / 4);
-
-  _cairo_ellipsis_negative (cr,
-                            inner->box.x + inner->box.width - inner->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
-                            inner->box.y + inner->box.height - inner->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
-                            inner->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
-                            inner->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
-                            G_PI / 4, 0);
-  _cairo_ellipsis_negative (cr, 
-                            inner->box.x + inner->box.width - inner->corner[GTK_CSS_TOP_RIGHT].horizontal,
-                            inner->box.y + inner->corner[GTK_CSS_TOP_RIGHT].vertical,
-                            inner->corner[GTK_CSS_TOP_RIGHT].horizontal,
-                            inner->corner[GTK_CSS_TOP_RIGHT].vertical,
-                            0, - G_PI / 4);
-
-  cairo_close_path (cr);
-}
-
-void
-_gtk_rounded_box_path_bottom (const GtkRoundedBox *outer,
-                              const GtkRoundedBox *inner,
-                              cairo_t             *cr)
-{
-  cairo_new_sub_path (cr);
-
-  _cairo_ellipsis (cr,
-                   outer->box.x + outer->box.width - outer->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
-                   outer->box.y + outer->box.height - outer->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
-                   outer->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
-                   outer->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
-                   G_PI / 4, G_PI / 2);
-  _cairo_ellipsis (cr,
-                   outer->box.x + outer->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
-                   outer->box.y + outer->box.height - outer->corner[GTK_CSS_BOTTOM_LEFT].vertical,
-                   outer->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
-                   outer->corner[GTK_CSS_BOTTOM_LEFT].vertical,
-                   G_PI / 2, 3 * G_PI / 4);
-
-  _cairo_ellipsis_negative (cr,
-                            inner->box.x + inner->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
-                            inner->box.y + inner->box.height - inner->corner[GTK_CSS_BOTTOM_LEFT].vertical,
-                            inner->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
-                            inner->corner[GTK_CSS_BOTTOM_LEFT].vertical,
-                            3 * G_PI / 4, G_PI / 2);
-  _cairo_ellipsis_negative (cr,
-                            inner->box.x + inner->box.width - inner->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
-                            inner->box.y + inner->box.height - inner->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
-                            inner->corner[GTK_CSS_BOTTOM_RIGHT].horizontal,
-                            inner->corner[GTK_CSS_BOTTOM_RIGHT].vertical,
-                            G_PI / 2, G_PI / 4);
-
-  cairo_close_path (cr);
-}
-
-void
-_gtk_rounded_box_path_left (const GtkRoundedBox *outer,
-                            const GtkRoundedBox *inner,
-                            cairo_t             *cr)
-{
-  cairo_new_sub_path (cr);
-
-  _cairo_ellipsis (cr,
-                   outer->box.x + outer->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
-                   outer->box.y + outer->box.height - outer->corner[GTK_CSS_BOTTOM_LEFT].vertical,
-                   outer->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
-                   outer->corner[GTK_CSS_BOTTOM_LEFT].vertical,
-                   3 * G_PI / 4, G_PI);
-  _cairo_ellipsis (cr,
-                   outer->box.x + outer->corner[GTK_CSS_TOP_LEFT].horizontal,
-                   outer->box.y + outer->corner[GTK_CSS_TOP_LEFT].vertical,
-                   outer->corner[GTK_CSS_TOP_LEFT].horizontal,
-                   outer->corner[GTK_CSS_TOP_LEFT].vertical,
-                   G_PI, 5 * G_PI / 4);
-
-  _cairo_ellipsis_negative (cr,
-                            inner->box.x + inner->corner[GTK_CSS_TOP_LEFT].horizontal,
-                            inner->box.y + inner->corner[GTK_CSS_TOP_LEFT].vertical,
-                            inner->corner[GTK_CSS_TOP_LEFT].horizontal,
-                            inner->corner[GTK_CSS_TOP_LEFT].vertical,
-                            5 * G_PI / 4, G_PI);
-  _cairo_ellipsis_negative (cr,
-                            inner->box.x + inner->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
-                            inner->box.y + inner->box.height - inner->corner[GTK_CSS_BOTTOM_LEFT].vertical,
-                            inner->corner[GTK_CSS_BOTTOM_LEFT].horizontal,
-                            inner->corner[GTK_CSS_BOTTOM_LEFT].vertical,
-                            G_PI, 3 * G_PI / 4);
-
-  cairo_close_path (cr);
-}
-
-void
-_gtk_rounded_box_clip_path (const GtkRoundedBox *box,
-                            cairo_t             *cr)
-{
-  cairo_rectangle (cr,
-                   box->box.x, box->box.y,
-                   box->box.width, box->box.height);
-}

=== removed file 'unico/gtkroundedboxprivate.h'
--- unico/gtkroundedboxprivate.h	2012-02-08 12:54:39 +0000
+++ unico/gtkroundedboxprivate.h	1970-01-01 00:00:00 +0000
@@ -1,97 +0,0 @@
-                                /* GTK - The GIMP Toolkit
- * Copyright (C) 2011 Benjamin Otte <otte@gnome.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GTK_ROUNDED_BOX_PRIVATE_H__
-#define __GTK_ROUNDED_BOX_PRIVATE_H__
-
-#include <cairo.h>
-#include <gtk/gtk.h>
-
-#include "unico-types.h"
-
-G_BEGIN_DECLS
-
-typedef struct _GtkRoundedBox GtkRoundedBox;
-typedef struct _GtkRoundedBoxCorner GtkRoundedBoxCorner;
-
-struct _GtkRoundedBoxCorner {
-  double horizontal;
-  double vertical;
-};
-
-struct _GtkRoundedBox {
-  cairo_rectangle_t   box;
-  GtkRoundedBoxCorner corner[4];
-};
-
-double          _gtk_css_number_get                             (const GtkCssNumber  *number,
-                                                                 double               one_hundred_percent);
-
-void            _gtk_rounded_box_init_rect                      (GtkRoundedBox       *box,
-                                                                 gdouble              x,
-                                                                 gdouble              y,
-                                                                 gdouble              width,
-                                                                 gdouble              height);
-
-void            _gtk_rounded_box_apply_border_radius            (GtkRoundedBox       *box,
-                                                                 GtkThemingEngine    *engine,
-                                                                 GtkStateFlags        state,
-                                                                 GtkJunctionSides     junction);
-
-void            _gtk_rounded_box_grow                           (GtkRoundedBox       *box,
-                                                                 gdouble              top,
-                                                                 gdouble              right,
-                                                                 gdouble              bottom,
-                                                                 gdouble              left);
-
-void            _gtk_rounded_box_shrink                         (GtkRoundedBox       *box,
-                                                                 gdouble              top,
-                                                                 gdouble              right,
-                                                                 gdouble              bottom,
-                                                                 gdouble              left);
-
-void            _gtk_rounded_box_move                           (GtkRoundedBox       *box,
-                                                                 gdouble              dx,
-                                                                 gdouble              dy);
-
-void            _gtk_rounded_box_path                           (const GtkRoundedBox *box,
-                                                                 cairo_t             *cr);
-
-void            _gtk_rounded_box_path_top                       (const GtkRoundedBox *outer,
-                                                                 const GtkRoundedBox *inner,
-                                                                 cairo_t             *cr);
-
-void            _gtk_rounded_box_path_right                     (const GtkRoundedBox *outer,
-                                                                 const GtkRoundedBox *inner,
-                                                                 cairo_t             *cr);
-
-void            _gtk_rounded_box_path_bottom                    (const GtkRoundedBox *outer,
-                                                                 const GtkRoundedBox *inner,
-                                                                 cairo_t             *cr);
-
-void            _gtk_rounded_box_path_left                      (const GtkRoundedBox *outer,
-                                                                 const GtkRoundedBox *inner,
-                                                                 cairo_t             *cr);
-
-void            _gtk_rounded_box_clip_path                      (const GtkRoundedBox *box,
-                                                                 cairo_t             *cr);
-
-G_END_DECLS
-
-#endif /* __GTK_ROUNDED_BOX_PRIVATE_H__ */

=== removed file 'unico/raico-blur.c'
--- unico/raico-blur.c	2011-08-09 22:26:09 +0000
+++ unico/raico-blur.c	1970-01-01 00:00:00 +0000
@@ -1,173 +0,0 @@
-/* The Unico Theming Engine for Gtk+.
- * Copyright (C) 2009 Canonical Ltd
- *
- * This  library is free  software; you can  redistribute it and/or
- * modify it  under  the terms  of the  GNU Lesser  General  Public
- * License  as published  by the Free  Software  Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed  in the hope that it will be useful,
- * but  WITHOUT ANY WARRANTY; without even  the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License  along  with  this library;  if not,  write to  the Free
- * Software Foundation, Inc., 51  Franklin St, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * Authored by Mirco "MacSlow" Mueller <mirco.mueller@canonical.com>
- *
- */
-
-#include "exponential-blur.h"
-#include "raico-blur.h"
-
-struct _raico_blur_private_t
-{
-  raico_blur_quality_t quality; /* low, medium, high */
-  guint                radius;  /* blur-radius */
-};
-
-raico_blur_t*
-raico_blur_create (void)
-{
-  raico_blur_t*         blur = NULL;
-  raico_blur_private_t* priv = NULL;
-
-  blur = g_new0 (raico_blur_t, 1);
-  if (!blur)
-    {
-      g_debug ("raico_blur_create(): could not allocate blur struct");
-      return NULL;
-    }
-
-  priv = g_new0 (raico_blur_private_t, 1);
-  if (!priv)
-    {
-      g_debug ("raico_blur_create(): could not allocate priv struct");
-      g_free ((gpointer) blur);
-      return NULL;
-    }
-
-  priv->quality = RAICO_BLUR_QUALITY_LOW;
-
-  priv->radius  = 0;
-
-  blur->priv = priv;
-
-  return blur;
-}
-
-raico_blur_quality_t
-raico_blur_get_quality (raico_blur_t* blur)
-{
-  g_assert (blur != NULL);
-
-  return blur->priv->quality;
-}
-
-void
-raico_blur_set_quality (raico_blur_t*        blur,
-                        raico_blur_quality_t quality)
-{
-  if (!blur)
-    {
-      g_debug ("raico_blur_set_quality(): NULL blur-pointer passed");
-      return;
-    }
-
-  blur->priv->quality = quality;
-}
-
-guint
-raico_blur_get_radius (raico_blur_t* blur)
-{
-  g_assert (blur != NULL);
-
-  return blur->priv->radius;
-}
-
-void
-raico_blur_set_radius (raico_blur_t* blur,
-                       guint         radius)
-{
-  if (!blur)
-    {
-      g_debug ("raico_blur_set_radius(): NULL blur-pointer passed");
-      return;
-    }
-
-  blur->priv->radius = radius;
-}
-
-void
-raico_blur_apply (raico_blur_t*    blur,
-                  cairo_surface_t* surface)
-{
-  cairo_format_t format;
-
-  /* sanity checks */
-  if (!blur)
-    {
-      g_debug ("raico_blur_apply(): NULL blur-pointer passed");
-      return;
-    }
-
-  if (!surface)
-    {
-      g_debug ("raico_blur_apply(): NULL surface-pointer passed");
-      return;
-    }
-
-  if (cairo_surface_status (surface) != CAIRO_STATUS_SUCCESS)
-    {
-      g_debug ("raico_blur_apply(): invalid surface status");
-      return;
-    }
-
-  if (cairo_surface_get_type (surface) != CAIRO_SURFACE_TYPE_IMAGE)
-    {
-      g_debug ("raico_blur_apply(): non-image surface passed");
-      return;
-    }
-
-  format = cairo_image_surface_get_format (surface);
-  if (format != CAIRO_FORMAT_A8 &&
-      format != CAIRO_FORMAT_RGB24 &&
-      format != CAIRO_FORMAT_ARGB32)
-    {
-      g_debug ("raico_blur_apply(): unsupported image-format");
-      return;
-    }
-
-  /* stupid, but you never know */
-  if (blur->priv->radius == 0)
-    return;
-
-  /* now do the real work */
-  switch (blur->priv->quality)
-  {
-    default:
-    case RAICO_BLUR_QUALITY_HIGH:
-    case RAICO_BLUR_QUALITY_MEDIUM:
-      /* Not implemented yet */
-      //surface_gaussian_blur (surface, blur->priv->radius);
-    case RAICO_BLUR_QUALITY_LOW:
-      surface_exponential_blur (surface, blur->priv->radius);
-      break;
-  }
-}
-
-void
-raico_blur_destroy (raico_blur_t* blur)
-{
-  if (!blur)
-    {
-      g_debug ("raico_blur_destroy(): invalid blur-pointer passed");
-      return;
-    }
-
-  g_free ((gpointer) blur->priv);
-  g_free ((gpointer) blur);
-}

=== removed file 'unico/raico-blur.h'
--- unico/raico-blur.h	2011-08-09 22:26:09 +0000
+++ unico/raico-blur.h	1970-01-01 00:00:00 +0000
@@ -1,67 +0,0 @@
-/* The Unico Theming Engine for Gtk+.
- * Copyright (C) 2009 Canonical Ltd
- *
- * This  library is free  software; you can  redistribute it and/or
- * modify it  under  the terms  of the  GNU Lesser  General  Public
- * License  as published  by the Free  Software  Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed  in the hope that it will be useful,
- * but  WITHOUT ANY WARRANTY; without even  the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License  along  with  this library;  if not,  write to  the Free
- * Software Foundation, Inc., 51  Franklin St, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * Authored by Mirco "MacSlow" Mueller <mirco.mueller@canonical.com>
- *
- */
-
-#ifndef _RAICO_BLUR_H
-#define _RAICO_BLUR_H
-
-#include <cairo.h>
-#include <glib.h>
-
-typedef enum _raico_blur_quality_t
-{
-  RAICO_BLUR_QUALITY_LOW = 0, /* low quality, but fast, maybe interactive */
-  RAICO_BLUR_QUALITY_MEDIUM,  /* compromise between speed and quality */
-  RAICO_BLUR_QUALITY_HIGH     /* quality before speed */
-} raico_blur_quality_t;
-
-typedef struct _raico_blur_private_t raico_blur_private_t;
-
-typedef struct _raico_blur_t
-{
-  raico_blur_private_t* priv;
-} raico_blur_t;
-
-raico_blur_t*
-raico_blur_create (void);
-
-raico_blur_quality_t
-raico_blur_get_quality (raico_blur_t* blur);
-
-void
-raico_blur_set_quality (raico_blur_t*        blur,
-                        raico_blur_quality_t quality);
-
-guint
-raico_blur_get_radius (raico_blur_t* blur);
-
-void
-raico_blur_set_radius (raico_blur_t* blur,
-                       guint         radius);
-
-void
-raico_blur_apply (raico_blur_t*    blur,
-                  cairo_surface_t* surface);
-
-void
-raico_blur_destroy (raico_blur_t* blur);
-
-#endif /* _RAICO_BLUR_H */

=== modified file 'unico/unico-cairo-support.c'
--- unico/unico-cairo-support.c	2012-03-26 15:10:02 +0000
+++ unico/unico-cairo-support.c	2012-07-25 22:49:45 +0000
@@ -23,1220 +23,10 @@
 #include <cairo.h>
 #include <gtk/gtk.h>
 
-#include "gtkroundedboxprivate.h"
-#include "raico-blur.h"
 #include "unico-cairo-support.h"
 #include "unico-support.h"
 #include "unico-types.h"
 
-/* apply default color */
-static void
-apply_default_color (GdkRGBA *colors[4],
-                     GdkRGBA *default_color)
-{
-  gint i;
-
-  for (i = 0; i < 4; i++)
-    if (unico_gdk_rgba_is_default (colors[i]))
-      *colors[i] = *default_color;
-}
-
-/* set the border sides to 0 using hidden_side */
-static void
-hide_border_sides (GtkBorder *border,
-                   guint      hidden_side)
-{
-  if (hidden_side & SIDE_TOP)
-    border->top = 0;
-  if (hidden_side & SIDE_RIGHT)
-    border->right = 0;
-  if (hidden_side & SIDE_BOTTOM)
-    border->bottom = 0;
-  if (hidden_side & SIDE_LEFT)
-    border->left = 0;
-}
-
-/* shrink coordinate using GtkBorder */
-static void
-shrink_with_border (GtkBorder *border,
-                    gdouble   *x,
-                    gdouble   *y,
-                    gdouble   *width,
-                    gdouble   *height)
-{
-  *x += border->left;
-  *y += border->top;
-  *width -= border->left + border->right;
-  *height -= border->top + border->bottom;
-}
-
-/* draw the background */
-static void
-draw_background (GtkThemingEngine *engine,
-                 cairo_t          *cr,
-                 gdouble           x,
-                 gdouble           y,
-                 gdouble           width,
-                 gdouble           height,
-                 guint             hidden_side,
-                 GtkJunctionSides  junction)
-{
-  GdkRGBA bg_color;
-  GtkBorder border;
-  GtkRoundedBox border_box;
-  GtkStateFlags state;
-  cairo_pattern_t *bg_pat;
-  gdouble progress;
-  gboolean running;
-
-  state = gtk_theming_engine_get_state (engine);
-
-  gtk_theming_engine_get (engine, state,
-                          "background-image", &bg_pat,
-                          NULL);
-  gtk_theming_engine_get_background_color (engine, state, &bg_color);
-  gtk_theming_engine_get_border (engine, state, &border);
-
-  hide_border_sides (&border, hidden_side);
-
-  running = gtk_theming_engine_state_is_running (engine, GTK_STATE_PRELIGHT, &progress);
-
-  cairo_save (cr);
-
-  cairo_translate (cr, x, y);
-
-  /* clear cr if we can draw directly on the background */
-  if (gtk_theming_engine_has_class (engine, "background"))
-    {
-      cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.0); /* transparent */
-      cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
-      cairo_paint (cr);
-    }
-
-  if (running)
-    {
-      GdkRGBA other_bg;
-      GtkStateFlags other_state;
-      cairo_pattern_t *new_pat = NULL;
-      cairo_pattern_t *other_pat;
-
-      if (state & GTK_STATE_FLAG_PRELIGHT)
-        {
-          other_state = state & ~(GTK_STATE_FLAG_PRELIGHT);
-
-          /* useful math function to use for a pulse loop animation could be
-           * progress = 1 - MAX (1 - fabs ((progress - 0.5)*2), 0);
-           * but we need to handle the not-running case (once animation finished),
-           * otherwise the last frame will be the PRELIGHT at full opacity. */
-          progress = 1 - progress;
-        }
-      else
-        other_state = state | GTK_STATE_FLAG_PRELIGHT;
-
-      gtk_theming_engine_get (engine, other_state,
-                              "background-image", &other_pat,
-                              NULL);
-      gtk_theming_engine_get_background_color (engine, other_state, &other_bg);
-
-      if (bg_pat && other_pat)
-        {
-          /* two patterns */
-          cairo_pattern_type_t type, other_type;
-          gint n0, n1;
-
-          cairo_pattern_get_color_stop_count (bg_pat, &n0);
-          cairo_pattern_get_color_stop_count (other_pat, &n1);
-          type = cairo_pattern_get_type (bg_pat);
-          other_type = cairo_pattern_get_type (other_pat);
-
-          if (type == other_type && n0 == n1)
-            {
-              /* two similar patterns, blend them point by point */
-              gdouble offset0, red0, green0, blue0, alpha0;
-              gdouble offset1, red1, green1, blue1, alpha1;
-              gdouble x00, x01, y00, y01, x10, x11, y10, y11;
-              gdouble r00, r01, r10, r11;
-              gint i;
-
-              if (type == CAIRO_PATTERN_TYPE_LINEAR)
-                {
-                  cairo_pattern_get_linear_points (bg_pat, &x00, &y00, &x01, &y01);
-                  cairo_pattern_get_linear_points (other_pat, &x10, &y10, &x11, &y11);
-
-                  new_pat = cairo_pattern_create_linear (x00 + (x10 - x00) * progress,
-                                                         y00 + (y10 - y00) * progress,
-                                                         x01 + (x11 - x01) * progress,
-                                                         y01 + (y11 - y01) * progress);
-                }
-              else
-                {
-                  cairo_pattern_get_radial_circles (bg_pat, &x00, &y00, &r00, &x01, &y01, &r01);
-                  cairo_pattern_get_radial_circles (other_pat, &x10, &y10, &r10, &x11, &y11, &r11);
-
-                  new_pat = cairo_pattern_create_radial (x00 + (x10 - x00) * progress,
-                                                         y00 + (y10 - y00) * progress,
-                                                         r00 + (r10 - r00) * progress,
-                                                         x01 + (x11 - x01) * progress,
-                                                         y01 + (y11 - y01) * progress,
-                                                         r01 + (r11 - r01) * progress);
-                }
-
-              cairo_pattern_set_filter (new_pat, CAIRO_FILTER_FAST);
-              i = 0;
-
-              while (i < n0 && i < n1)
-                {
-                  cairo_pattern_get_color_stop_rgba (bg_pat, i,
-                                                     &offset0,
-                                                     &red0, &green0, &blue0,
-                                                     &alpha0);
-                  cairo_pattern_get_color_stop_rgba (other_pat, i,
-                                                     &offset1,
-                                                     &red1, &green1, &blue1,
-                                                     &alpha1);
-                  cairo_pattern_add_color_stop_rgba (new_pat,
-                                                     offset0 + ((offset1 - offset0) * progress),
-                                                     red0 + ((red1 - red0) * progress),
-                                                     green0 + ((green1 - green0) * progress),
-                                                     blue0 + ((blue1 - blue0) * progress),
-                                                     alpha0 + ((alpha1 - alpha0) * progress));
-                  i++;
-                }
-            }
-          else
-            {
-              /* two different patterns, paint them with alpha */
-              cairo_save (cr);
-
-              cairo_reset_clip (cr);
-              cairo_rectangle (cr, 0, 0, width, height);
-              cairo_clip (cr);
-
-              cairo_push_group (cr);
-
-              cairo_scale (cr, width, height);
-
-              cairo_set_source (cr, other_pat);
-              cairo_paint_with_alpha (cr, progress);
-
-              cairo_set_source (cr, bg_pat);
-              cairo_paint_with_alpha (cr, 1.0 - progress);
-
-              new_pat = cairo_pop_group (cr);
-
-              cairo_restore (cr);
-            }
-        }
-      else if (bg_pat || other_pat)
-        {
-          /* only one pattern, blend it with a color */
-          const GdkRGBA *c;
-          cairo_pattern_t *p;
-          gdouble x0, y0, x1, y1, r0, r1;
-          gint n, i;
-
-          if (bg_pat)
-            {
-              p = bg_pat;
-              c = &other_bg;
-              progress = 1 - progress;
-            }
-          else
-            {
-              p = other_pat;
-              c = &bg_color;
-            }
-
-          if (cairo_pattern_get_type (p) == CAIRO_PATTERN_TYPE_LINEAR)
-            {
-              cairo_pattern_get_linear_points (p, &x0, &y0, &x1, &y1);
-              new_pat = cairo_pattern_create_linear (x0, y0, x1, y1);
-            }
-          else
-            {
-              cairo_pattern_get_radial_circles (p, &x0, &y0, &r0, &x1, &y1, &r1);
-              new_pat = cairo_pattern_create_radial (x0, y0, r0, x1, y1, r1);
-            }
-
-          cairo_pattern_get_color_stop_count (p, &n);
-
-          for (i = 0; i < n; i++)
-            {
-              gdouble red1, green1, blue1, alpha1;
-              gdouble offset;
-
-              cairo_pattern_get_color_stop_rgba (p, i,
-                                                 &offset,
-                                                 &red1, &green1, &blue1,
-                                                 &alpha1);
-              cairo_pattern_add_color_stop_rgba (new_pat, offset,
-                                                 c->red + ((red1 - c->red) * progress),
-                                                 c->green + ((green1 - c->green) * progress),
-                                                 c->blue + ((blue1 - c->blue) * progress),
-                                                 c->alpha + ((alpha1 - c->alpha) * progress));
-            }
-        }
-      else
-        {
-          /* just colors, create a new pattern blending them */
-          new_pat = cairo_pattern_create_rgba (CLAMP (bg_color.red + ((other_bg.red - bg_color.red) * progress), 0, 1),
-                                               CLAMP (bg_color.green + ((other_bg.green - bg_color.green) * progress), 0, 1),
-                                               CLAMP (bg_color.blue + ((other_bg.blue - bg_color.blue) * progress), 0, 1),
-                                               CLAMP (bg_color.alpha + ((other_bg.alpha - bg_color.alpha) * progress), 0, 1));
-        }
-
-      if (new_pat)
-        {
-          /* replace pattern to use */
-          cairo_pattern_destroy (bg_pat);
-          bg_pat = new_pat;
-        }
-
-      if (other_pat)
-        cairo_pattern_destroy (other_pat);
-    }
-
-  /* create the path to fill */
-  _gtk_rounded_box_init_rect (&border_box, 0, 0, width, height);
-  _gtk_rounded_box_apply_border_radius (&border_box, engine, state, junction);
-  _gtk_rounded_box_shrink (&border_box, border.top, border.right, border.bottom, border.left);
-  _gtk_rounded_box_path (&border_box, cr);
-
-  if (bg_pat)
-    {
-      /* pattern */
-      cairo_scale (cr, width, height);
-      cairo_set_source (cr, bg_pat);
-      cairo_scale (cr, 1.0 / width, 1.0 / height);
-    }
-  else
-    /* one color */
-    gdk_cairo_set_source_rgba (cr, &bg_color);
-
-  cairo_fill (cr);
-
-  if (bg_pat)
-    cairo_pattern_destroy (bg_pat);
-
-  cairo_restore (cr);
-}
-
-/* draw the inner glow */
-static void
-draw_glow (GtkThemingEngine *engine,
-           cairo_t          *cr,
-           gdouble           x,
-           gdouble           y,
-           gdouble           width,
-           gdouble           height,
-           guint             hidden_side,
-           GtkJunctionSides  junction)
-{
-  GdkRGBA *glow_color;
-  GtkBorder border;
-  GtkRoundedBox border_box, padding_box;
-  GtkStateFlags state;
-  cairo_t *cr_surface;
-  cairo_surface_t *surface;
-  gint bradius = 0;
-  raico_blur_t* blur = NULL;
-
-  state = gtk_theming_engine_get_state (engine);
-
-  gtk_theming_engine_get (engine, state,
-                          "-unico-glow-radius", &bradius,
-                          "-unico-glow-color", &glow_color,
-                          NULL);
-
-  if (bradius <= 0)
-    goto end_draw_glow;
-
-  gtk_theming_engine_get_border (engine, state, &border);
-
-  hide_border_sides (&border, hidden_side);
-
-  cairo_save (cr);
-
-  cairo_translate (cr, x, y);
-
-  /* create the path to clip */
-  _gtk_rounded_box_init_rect (&border_box, 0, 0, width, height);
-  _gtk_rounded_box_apply_border_radius (&border_box, engine, state, junction);
-  _gtk_rounded_box_shrink (&border_box, border.top, border.right, border.bottom, border.left);
-  _gtk_rounded_box_path (&border_box, cr);
-
-  cairo_clip (cr);
-
-  /* create the surface to blur */
-  surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
-                                        width + bradius * 2,
-                                        height + bradius * 2);
-  cr_surface = cairo_create (surface); 
-
-  /* create the path on the surface to blur */
-  _gtk_rounded_box_move (&border_box, bradius, bradius);
-  padding_box = border_box;
-  _gtk_rounded_box_shrink (&padding_box, border.top * 2, border.right * 2, border.bottom * 2, border.left * 2);
-
-  cairo_set_fill_rule (cr_surface, CAIRO_FILL_RULE_EVEN_ODD);
-
-  gdk_cairo_set_source_rgba (cr_surface, glow_color);
-
-  _gtk_rounded_box_path (&border_box, cr_surface);
-  _gtk_rounded_box_path (&padding_box, cr_surface);
-  cairo_fill (cr_surface);
-
-  /* create and apply raico blur */
-  blur = raico_blur_create ();
-  raico_blur_set_radius (blur, bradius);
-  raico_blur_apply (blur, surface);
-
-  /* paint the blurred surface to cr */
-  cairo_set_source_surface (cr, surface, - bradius, - bradius); 
-  cairo_paint (cr);
-
-  cairo_restore (cr);
-
-  raico_blur_destroy(blur);
-
-  cairo_surface_destroy (surface); 
-  cairo_destroy (cr_surface);
-
-end_draw_glow:
-  gdk_rgba_free (glow_color);
-}
-
-/* draw a repeated texture */
-static void
-draw_texture (GtkThemingEngine *engine,
-              cairo_t          *cr,
-              gdouble           x,
-              gdouble           y,
-              gdouble           width,
-              gdouble           height,
-              guint             hidden_side,
-              GtkJunctionSides  junction)
-{
-  GtkStateFlags state;
-  GValue value = { 0, };
-  cairo_pattern_t *texture = NULL;
-  cairo_surface_t *surface = NULL;
-
-  state = gtk_theming_engine_get_state (engine);
-
-  gtk_theming_engine_get_property (engine, "-unico-background-texture", state, &value);
-
-  if (!G_VALUE_HOLDS_BOXED (&value))
-    return;
-
-  texture = g_value_dup_boxed (&value);
-  g_value_unset (&value);
-
-  if (texture != NULL)
-    cairo_pattern_get_surface (texture, &surface);
-
-  if (surface != NULL)
-    {
-      GtkBorder border;
-      GtkRoundedBox border_box;
-      cairo_pattern_t *pat;
-
-      gtk_theming_engine_get_border (engine, state, &border);
-
-      hide_border_sides (&border, hidden_side);
-
-      cairo_save (cr);
-
-      cairo_translate (cr, x, y);
-
-      /* create the path to fill */
-      _gtk_rounded_box_init_rect (&border_box, 0, 0, width, height);
-      _gtk_rounded_box_apply_border_radius (&border_box, engine, state, junction);
-      _gtk_rounded_box_shrink (&border_box, border.top, border.right, border.bottom, border.left);
-      _gtk_rounded_box_path (&border_box, cr);
-
-      pat = cairo_pattern_create_for_surface (surface);
-      cairo_pattern_set_extend (pat, CAIRO_EXTEND_REPEAT);
-      cairo_set_source (cr, pat);
-
-      cairo_fill (cr);
-
-      cairo_restore (cr);
-
-      cairo_pattern_destroy (pat);
-    }
-
-  if (texture != NULL)
-    cairo_pattern_destroy (texture);
-}
-
-void
-unico_cairo_draw_background (GtkThemingEngine *engine,
-                             cairo_t          *cr,
-                             gdouble           x,
-                             gdouble           y,
-                             gdouble           width,
-                             gdouble           height,
-                             guint             hidden_side,
-                             GtkJunctionSides  junction)
-{
-  GtkBorder *outer_border;
-  GtkStateFlags state;
-
-  state = gtk_theming_engine_get_state (engine);
-
-  gtk_theming_engine_get (engine, state,
-                          "-unico-outer-stroke-width", &outer_border,
-                          NULL);
-
-  hide_border_sides (outer_border, hidden_side);
-
-  shrink_with_border (outer_border, &x, &y, &width, &height);
-
-  /* first layer, background */
-  draw_background (engine, cr,
-                   x, y,
-                   width, height,
-                   hidden_side, junction);
-
-  /* second layer, glow */
-  draw_glow (engine, cr,
-             x, y,
-             width, height,
-             hidden_side, junction);
-
-  /* third layer, texture */
-  draw_texture (engine, cr,
-                x, y,
-                width, height,
-                hidden_side, junction);
-
-  gtk_border_free (outer_border);
-}
-
-/* shade a color */
-static void
-color_shade (const GdkRGBA *color,
-             gdouble        factor,
-             GdkRGBA       *color_return)
-{
-  GtkSymbolicColor *literal, *shade;
-
-  literal = gtk_symbolic_color_new_literal (color);
-  shade = gtk_symbolic_color_new_shade (literal, factor);
-  gtk_symbolic_color_unref (literal);
-
-  gtk_symbolic_color_resolve (shade, NULL, color_return);
-  gtk_symbolic_color_unref (shade);
-}
-
-/* draw the border */
-static void
-draw_border (GtkThemingEngine *engine,
-             cairo_t          *cr,
-             gdouble           x,
-             gdouble           y,
-             gdouble           width,
-             gdouble           height,
-             guint             hidden_side,
-             GtkJunctionSides  junction)
-{
-  GdkRGBA *colors[4];
-  GtkBorder border;
-  GtkBorderStyle border_style;
-  GtkRoundedBox border_box, padding_box;
-  GtkStateFlags state;
-  cairo_pattern_t *border_pat;
-  gboolean running;
-  gdouble progress;
-  static const guint current_side[4] = { SIDE_TOP, SIDE_RIGHT, SIDE_BOTTOM, SIDE_LEFT };
-  guint i, j;
-
-  state = gtk_theming_engine_get_state (engine);
-
-  gtk_theming_engine_get (engine, state,
-                          "border-style", &border_style,
-                          "border-top-color", &colors[0],
-                          "border-right-color", &colors[1],
-                          "border-bottom-color", &colors[2],
-                          "border-left-color", &colors[3],
-                          "-unico-border-gradient", &border_pat,
-                          NULL);
-  gtk_theming_engine_get_border (engine, state, &border);
-
-  hide_border_sides (&border, hidden_side);
-
-  running = gtk_theming_engine_state_is_running (engine, GTK_STATE_PRELIGHT, &progress);
-
-  cairo_save (cr);
-
-  cairo_translate (cr, x, y);
-
-  if (running)
-    {
-      GtkStateFlags other_state;
-      cairo_pattern_t *new_pat = NULL;
-      cairo_pattern_t *other_pat;
-
-      if (state & GTK_STATE_FLAG_PRELIGHT)
-        {
-          other_state = state & ~(GTK_STATE_FLAG_PRELIGHT);
-          progress = 1 - progress;
-        }
-      else
-        other_state = state | GTK_STATE_FLAG_PRELIGHT;
-
-      gtk_theming_engine_get (engine, other_state,
-                              "-unico-border-gradient", &other_pat,
-                              NULL);
-
-      if (border_pat && other_pat)
-        {
-          /* two patterns */
-          cairo_pattern_type_t type, other_type;
-          gint n0, n1;
-
-          cairo_pattern_get_color_stop_count (border_pat, &n0);
-          cairo_pattern_get_color_stop_count (other_pat, &n1);
-          type = cairo_pattern_get_type (border_pat);
-          other_type = cairo_pattern_get_type (other_pat);
-
-          if (type == other_type && n0 == n1)
-            {
-              /* two similar patterns, blend them point by point */
-              gdouble offset0, red0, green0, blue0, alpha0;
-              gdouble offset1, red1, green1, blue1, alpha1;
-              gdouble x00, x01, y00, y01, x10, x11, y10, y11;
-              gdouble r00, r01, r10, r11;
-              gint i;
-
-              if (type == CAIRO_PATTERN_TYPE_LINEAR)
-                {
-                  cairo_pattern_get_linear_points (border_pat, &x00, &y00, &x01, &y01);
-                  cairo_pattern_get_linear_points (other_pat, &x10, &y10, &x11, &y11);
-
-                  new_pat = cairo_pattern_create_linear (x00 + (x10 - x00) * progress,
-                                                         y00 + (y10 - y00) * progress,
-                                                         x01 + (x11 - x01) * progress,
-                                                         y01 + (y11 - y01) * progress);
-                }
-              else
-                {
-                  cairo_pattern_get_radial_circles (border_pat, &x00, &y00, &r00, &x01, &y01, &r01);
-                  cairo_pattern_get_radial_circles (other_pat, &x10, &y10, &r10, &x11, &y11, &r11);
-
-                  new_pat = cairo_pattern_create_radial (x00 + (x10 - x00) * progress,
-                                                         y00 + (y10 - y00) * progress,
-                                                         r00 + (r10 - r00) * progress,
-                                                         x01 + (x11 - x01) * progress,
-                                                         y01 + (y11 - y01) * progress,
-                                                         r01 + (r11 - r01) * progress);
-                }
-
-              cairo_pattern_set_filter (new_pat, CAIRO_FILTER_FAST);
-              i = 0;
-
-              while (i < n0 && i < n1)
-                {
-                  cairo_pattern_get_color_stop_rgba (border_pat, i,
-                                                     &offset0,
-                                                     &red0, &green0, &blue0,
-                                                     &alpha0);
-                  cairo_pattern_get_color_stop_rgba (other_pat, i,
-                                                     &offset1,
-                                                     &red1, &green1, &blue1,
-                                                     &alpha1);
-                  cairo_pattern_add_color_stop_rgba (new_pat,
-                                                     offset0 + ((offset1 - offset0) * progress),
-                                                     red0 + ((red1 - red0) * progress),
-                                                     green0 + ((green1 - green0) * progress),
-                                                     blue0 + ((blue1 - blue0) * progress),
-                                                     alpha0 + ((alpha1 - alpha0) * progress));
-                  i++;
-                }
-            }
-          else
-            {
-              /* two different patterns, paint them with alpha */
-              cairo_save (cr);
-
-              cairo_reset_clip (cr);
-              cairo_rectangle (cr, 0, 0, width, height);
-              cairo_clip (cr);
-
-              cairo_push_group (cr);
-
-              cairo_scale (cr, width, height);
-
-              cairo_set_source (cr, other_pat);
-              cairo_paint_with_alpha (cr, progress);
-
-              cairo_set_source (cr, border_pat);
-              cairo_paint_with_alpha (cr, 1.0 - progress);
-
-              new_pat = cairo_pop_group (cr);
-
-              cairo_restore (cr);
-            }
-        }
-      else if (border_pat || other_pat)
-        {
-          /* one pattern, blend it with a color */
-          const GdkRGBA *c;
-          cairo_pattern_t *p;
-          gdouble x0, y0, x1, y1, r0, r1;
-          gint n, i;
-
-          if (border_pat)
-            {
-              GdkRGBA other_color;
-
-              gtk_theming_engine_get_border_color (engine, other_state, &other_color);
-
-              p = border_pat;
-              c = &other_color;
-              progress = 1 - progress;
-            }
-          else
-            {
-              GdkRGBA border_color;
-
-              gtk_theming_engine_get_border_color (engine, state, &border_color);
-
-              p = other_pat;
-              c = &border_color;
-            }
-
-          if (cairo_pattern_get_type (p) == CAIRO_PATTERN_TYPE_LINEAR)
-            {
-              cairo_pattern_get_linear_points (p, &x0, &y0, &x1, &y1);
-              new_pat = cairo_pattern_create_linear (x0, y0, x1, y1);
-            }
-          else
-            {
-              cairo_pattern_get_radial_circles (p, &x0, &y0, &r0, &x1, &y1, &r1);
-              new_pat = cairo_pattern_create_radial (x0, y0, r0, x1, y1, r1);
-            }
-
-          cairo_pattern_get_color_stop_count (p, &n);
-
-          for (i = 0; i < n; i++)
-            {
-              gdouble red1, green1, blue1, alpha1;
-              gdouble offset;
-
-              cairo_pattern_get_color_stop_rgba (p, i,
-                                                 &offset,
-                                                 &red1, &green1, &blue1,
-                                                 &alpha1);
-              cairo_pattern_add_color_stop_rgba (new_pat, offset,
-                                                 c->red + ((red1 - c->red) * progress),
-                                                 c->green + ((green1 - c->green) * progress),
-                                                 c->blue + ((blue1 - c->blue) * progress),
-                                                 c->alpha + ((alpha1 - c->alpha) * progress));
-            }
-        }
-      else
-        {
-          /* just colors, create new colors blending them */
-          GdkRGBA *other_colors[4];
-
-          gtk_theming_engine_get (engine, other_state,
-                                  "border-top-color", &other_colors[0],
-                                  "border-right-color", &other_colors[1],
-                                  "border-bottom-color", &other_colors[2],
-                                  "border-left-color", &other_colors[3],
-                                  NULL);
-
-          for (i = 0; i < 4; i++)
-            {
-              colors[i]->red = CLAMP (colors[i]->red + ((other_colors[i]->red - colors[i]->red) * progress), 0, 1);
-              colors[i]->green = CLAMP (colors[i]->green + ((other_colors[i]->green - colors[i]->green) * progress), 0, 1);
-              colors[i]->blue = CLAMP (colors[i]->blue + ((other_colors[i]->blue - colors[i]->blue) * progress), 0, 1);
-              colors[i]->alpha = CLAMP (colors[i]->alpha + ((other_colors[i]->alpha - colors[i]->alpha) * progress), 0, 1);
-              gdk_rgba_free (other_colors[i]);
-            }
-        }
-
-      if (new_pat)
-        {
-          /* replace pattern to use */
-          cairo_pattern_destroy (border_pat);
-          border_pat = new_pat;
-        }
-
-      if (other_pat)
-        cairo_pattern_destroy (other_pat);
-    }
-
-  switch (border_style)
-  {
-    default:
-      g_assert_not_reached ();
-    case GTK_BORDER_STYLE_NONE:
-    case GTK_BORDER_STYLE_SOLID:
-      break;
-    case GTK_BORDER_STYLE_INSET:
-      color_shade (colors[1], 1.8, colors[1]);
-      color_shade (colors[2], 1.8, colors[2]);
-      break;
-    case GTK_BORDER_STYLE_OUTSET:
-      color_shade (colors[0], 1.8, colors[0]);
-      color_shade (colors[3], 1.8, colors[3]);
-      break;
-  }
-
-  /* create the path to fill */
-  _gtk_rounded_box_init_rect (&border_box, 0, 0, width, height);
-  _gtk_rounded_box_apply_border_radius (&border_box, engine, state, junction);
-  padding_box = border_box;
-  _gtk_rounded_box_shrink (&padding_box, border.top, border.right, border.bottom, border.left);
-
-  cairo_set_fill_rule (cr, CAIRO_FILL_RULE_EVEN_ODD);
-
-  switch (border_style)
-  {
-    default:
-      g_assert_not_reached ();
-    case GTK_BORDER_STYLE_NONE:
-      break;
-    case GTK_BORDER_STYLE_SOLID:
-    case GTK_BORDER_STYLE_INSET:
-    case GTK_BORDER_STYLE_OUTSET:
-
-      if (border_pat)
-        {
-          /* pattern */
-          cairo_scale (cr, width, height);
-          cairo_set_source (cr, border_pat);
-          cairo_scale (cr, 1.0 / width, 1.0 / height);
-
-          _gtk_rounded_box_path (&border_box, cr);
-          _gtk_rounded_box_path (&padding_box, cr);
-          cairo_fill (cr);
-        }
-      else if (gdk_rgba_equal (colors[0], colors[1]) &&
-               gdk_rgba_equal (colors[0], colors[2]) &&
-               gdk_rgba_equal (colors[0], colors[3]))
-        {
-          /* one color */
-          gdk_cairo_set_source_rgba (cr, colors[0]);
-
-          _gtk_rounded_box_path (&border_box, cr);
-          _gtk_rounded_box_path (&padding_box, cr);
-          cairo_fill (cr);
-        }
-      else
-        {
-          for (i = 0; i < 4; i++) 
-            {
-              /* different colors */
-              if (hidden_side & current_side[i])
-                continue;
-
-              for (j = 0; j < 4; j++)
-                { 
-                  if (hidden_side & current_side[j])
-                    continue;
-
-                  if (i == j || 
-                      gdk_rgba_equal (colors[i], colors[j]))
-                    {
-                      /* we were already painted when i == j */
-                      if (i > j)
-                        break;
-
-                      if (j == 0)
-                        _gtk_rounded_box_path_top (&border_box, &padding_box, cr);
-                      else if (j == 1)
-                        _gtk_rounded_box_path_right (&border_box, &padding_box, cr);
-                      else if (j == 2)
-                        _gtk_rounded_box_path_bottom (&border_box, &padding_box, cr);
-                      else if (j == 3)
-                        _gtk_rounded_box_path_left (&border_box, &padding_box, cr);
-                    }
-                }
-              /* we were already painted when i == j */
-              if (i > j)
-                continue;
-
-              gdk_cairo_set_source_rgba (cr, colors[i]);
-
-              cairo_fill (cr);
-            }
-        }
-      break;
-  }
-
-  cairo_restore (cr);
-
-  if (border_pat)
-    cairo_pattern_destroy (border_pat);
-
-  for (i = 0; i < 4; i++)
-    gdk_rgba_free (colors[i]);
-}
-
-/* draw the inner stroke */
-static void
-draw_inner_stroke (GtkThemingEngine *engine,
-                   cairo_t          *cr,
-                   gdouble           x,
-                   gdouble           y,
-                   gdouble           width,
-                   gdouble           height,
-                   guint             hidden_side,
-                   GtkJunctionSides  junction)
-{
-  GdkRGBA *colors[4];
-  GdkRGBA *inner_stroke_color;
-  GtkBorder *inner_border;
-  GtkRoundedBox border_box, padding_box;
-  GtkStateFlags state; 
-  cairo_pattern_t *inner_stroke_pat;
-  static const guint current_side[4] = { SIDE_TOP, SIDE_RIGHT, SIDE_BOTTOM, SIDE_LEFT };
-  guint i, j;
-
-  state = gtk_theming_engine_get_state (engine);
-
-  gtk_theming_engine_get (engine, state,
-                          "-unico-inner-stroke-color", &inner_stroke_color,
-                          "-unico-inner-stroke-top-color", &colors[0],
-                          "-unico-inner-stroke-right-color", &colors[1],
-                          "-unico-inner-stroke-bottom-color", &colors[2],
-                          "-unico-inner-stroke-left-color", &colors[3],
-                          "-unico-inner-stroke-gradient", &inner_stroke_pat,
-                          "-unico-inner-stroke-width", &inner_border,
-                          NULL);
-
-  hide_border_sides (inner_border, hidden_side);
-
-  if (unico_gtk_border_is_zero (inner_border))
-    goto end_draw_inner_stroke;
-
-  apply_default_color (colors, inner_stroke_color);
-
-  cairo_save (cr);
-
-  cairo_translate (cr, x, y);
-
-  /* create the path to fill */
-  _gtk_rounded_box_init_rect (&border_box, 0, 0, width, height);
-  _gtk_rounded_box_apply_border_radius (&border_box, engine, state, junction);
-  padding_box = border_box;
-  _gtk_rounded_box_shrink (&padding_box, inner_border->top,
-                                         inner_border->right,
-                                         inner_border->bottom,
-                                         inner_border->left);
-
-  cairo_set_fill_rule (cr, CAIRO_FILL_RULE_EVEN_ODD);
-
-  if (inner_stroke_pat)
-    {
-      /* pattern */
-      cairo_scale (cr, width, height);
-      cairo_set_source (cr, inner_stroke_pat);
-      cairo_scale (cr, 1.0 / width, 1.0 / height);
-
-      _gtk_rounded_box_path (&border_box, cr);
-      _gtk_rounded_box_path (&padding_box, cr);
-      cairo_fill (cr);
-    }
-  else if (gdk_rgba_equal (colors[0], colors[1]) &&
-           gdk_rgba_equal (colors[0], colors[2]) &&
-           gdk_rgba_equal (colors[0], colors[3]))
-    {
-      /* one color */
-      gdk_cairo_set_source_rgba (cr, colors[0]);
-
-      _gtk_rounded_box_path (&border_box, cr);
-      _gtk_rounded_box_path (&padding_box, cr);
-      cairo_fill (cr);
-    }
-  else
-    {
-      /* different colors */
-      for (i = 0; i < 4; i++) 
-        {
-          if (hidden_side & current_side[i])
-            continue;
-
-          for (j = 0; j < 4; j++)
-            { 
-              if (hidden_side & current_side[j])
-                continue;
-
-              if (i == j || 
-                  gdk_rgba_equal (colors[i], colors[j]))
-                {
-                  /* we were already painted when i == j */
-                  if (i > j)
-                    break;
-
-                  if (j == 0)
-                    _gtk_rounded_box_path_top (&border_box, &padding_box, cr);
-                  else if (j == 1)
-                    _gtk_rounded_box_path_right (&border_box, &padding_box, cr);
-                  else if (j == 2)
-                    _gtk_rounded_box_path_bottom (&border_box, &padding_box, cr);
-                  else if (j == 3)
-                    _gtk_rounded_box_path_left (&border_box, &padding_box, cr);
-                }
-            }
-          /* we were already painted when i == j */
-          if (i > j)
-            continue;
-
-          gdk_cairo_set_source_rgba (cr, colors[i]);
-
-          cairo_fill (cr);
-        }
-    }
-
-  cairo_restore (cr);
-
-end_draw_inner_stroke:
-  gtk_border_free (inner_border);
-
-  if (inner_stroke_pat != NULL)
-    cairo_pattern_destroy (inner_stroke_pat);
-
-  gdk_rgba_free (inner_stroke_color);
-
-  for (i = 0; i < 4; i++)
-    gdk_rgba_free (colors[i]);
-}
-
-/* draw the outer stroke */
-static void
-draw_outer_stroke (GtkThemingEngine *engine,
-                   cairo_t          *cr,
-                   gdouble           x,
-                   gdouble           y,
-                   gdouble           width,
-                   gdouble           height,
-                   guint             hidden_side,
-                   GtkJunctionSides  junction)
-{
-  GdkRGBA *outer_stroke_color;
-  GdkRGBA *colors[4];
-  GtkBorder *outer_border;
-  GtkRoundedBox border_box, padding_box;
-  GtkStateFlags state; 
-  cairo_pattern_t *outer_stroke_pat;
-  static const guint current_side[4] = { SIDE_TOP, SIDE_RIGHT, SIDE_BOTTOM, SIDE_LEFT };
-  guint i, j;
-
-  state = gtk_theming_engine_get_state (engine);
-
-  gtk_theming_engine_get (engine, state,
-                          "-unico-outer-stroke-color", &outer_stroke_color,
-                          "-unico-outer-stroke-top-color", &colors[0],
-                          "-unico-outer-stroke-right-color", &colors[1],
-                          "-unico-outer-stroke-bottom-color", &colors[2],
-                          "-unico-outer-stroke-left-color", &colors[3],
-                          "-unico-outer-stroke-gradient", &outer_stroke_pat,
-                          "-unico-outer-stroke-width", &outer_border,
-                          NULL);
-
-  hide_border_sides (outer_border, hidden_side);
-
-  if (unico_gtk_border_is_zero (outer_border))
-    goto end_draw_outer_stroke;
-
-  apply_default_color (colors, outer_stroke_color);
-
-  cairo_save (cr);
-
-  cairo_translate (cr, x, y);
-
-  /* create the path to fill */
-  _gtk_rounded_box_init_rect (&border_box, 0, 0, width, height);
-  _gtk_rounded_box_apply_border_radius (&border_box, engine, state, junction);
-  padding_box = border_box;
-  _gtk_rounded_box_shrink (&padding_box, outer_border->top,
-                                         outer_border->right,
-                                         outer_border->bottom,
-                                         outer_border->left);
-
-  cairo_set_fill_rule (cr, CAIRO_FILL_RULE_EVEN_ODD);
-
-  if (outer_stroke_pat)
-    {
-      /* pattern */
-      cairo_scale (cr, width, height);
-      cairo_set_source (cr, outer_stroke_pat);
-      cairo_scale (cr, 1.0 / width, 1.0 / height);
-
-      _gtk_rounded_box_path (&border_box, cr);
-      _gtk_rounded_box_path (&padding_box, cr);
-      cairo_fill (cr);
-    }
-  else if (gdk_rgba_equal (colors[0], colors[1]) &&
-           gdk_rgba_equal (colors[0], colors[2]) &&
-           gdk_rgba_equal (colors[0], colors[3]))
-    {
-      /* one color */
-      gdk_cairo_set_source_rgba (cr, colors[0]);
-
-      _gtk_rounded_box_path (&border_box, cr);
-      _gtk_rounded_box_path (&padding_box, cr);
-      cairo_fill (cr);
-    }
-  else
-    {
-      /* different colors */
-      for (i = 0; i < 4; i++) 
-        {
-          if (hidden_side & current_side[i])
-            continue;
-
-          for (j = 0; j < 4; j++)
-            { 
-              if (hidden_side & current_side[j])
-                continue;
-
-              if (i == j || 
-                  gdk_rgba_equal (colors[i], colors[j]))
-                {
-                  /* we were already painted when i == j */
-                  if (i > j)
-                    break;
-
-                  if (j == 0)
-                    _gtk_rounded_box_path_top (&border_box, &padding_box, cr);
-                  else if (j == 1)
-                    _gtk_rounded_box_path_right (&border_box, &padding_box, cr);
-                  else if (j == 2)
-                    _gtk_rounded_box_path_bottom (&border_box, &padding_box, cr);
-                  else if (j == 3)
-                    _gtk_rounded_box_path_left (&border_box, &padding_box, cr);
-                }
-            }
-          /* we were already painted when i == j */
-          if (i > j)
-            continue;
-
-          gdk_cairo_set_source_rgba (cr, colors[i]);
-
-          cairo_fill (cr);
-        }
-    }
-
-  cairo_restore (cr);
-
-end_draw_outer_stroke:
-  gtk_border_free (outer_border);
-
-  if (outer_stroke_pat != NULL)
-    cairo_pattern_destroy (outer_stroke_pat);
-
-  gdk_rgba_free (outer_stroke_color);
-
-  for (i = 0; i < 4; i++)
-    gdk_rgba_free (colors[i]);
-}
-
-void
-unico_cairo_draw_frame (GtkThemingEngine *engine,
-                        cairo_t          *cr,
-                        gdouble           x,
-                        gdouble           y,
-                        gdouble           width,
-                        gdouble           height,
-                        guint             hidden_side,
-                        GtkJunctionSides  junction)
-{
-  GtkBorder border;
-  GtkBorder *outer_border;
-  GtkStateFlags state;
-
-  state = gtk_theming_engine_get_state (engine);
-
-  gtk_theming_engine_get (engine, state,
-                          "-unico-outer-stroke-width", &outer_border,
-                          NULL);
-  gtk_theming_engine_get_border (engine, state, &border);
-
-  hide_border_sides (&border, hidden_side);
-  hide_border_sides (outer_border, hidden_side);
-
-  if (!unico_gtk_border_is_zero (outer_border))
-    {
-      /* first layer, outer stroke */
-      draw_outer_stroke (engine, cr,
-                         x, y,
-                         width, height,
-                         hidden_side, junction);
-
-      shrink_with_border (outer_border, &x, &y, &width, &height);
-    }
-
-  /* second layer, inner stroke */
-  if (width - (border.left + border.right) > 0 &&
-      height - (border.top + border.bottom) > 0)
-    draw_inner_stroke (engine, cr,
-                       x + border.left, y + border.top,
-                       width - (border.left + border.right), height - (border.top + border.bottom),
-                       hidden_side, junction);
-
-  /* third layer, border */
-  draw_border (engine, cr,
-               x, y,
-               width, height,
-               hidden_side, junction);
-
-  gtk_border_free (outer_border);
-}
-
-gboolean
-unico_cairo_draw_from_texture (GtkThemingEngine *engine,
-                               cairo_t          *cr,
-                               gdouble           x,
-                               gdouble           y,
-                               gdouble           width,
-                               gdouble           height)
-{
-  GtkStateFlags state;
-  GValue value = { 0, };
-  cairo_pattern_t *texture = NULL;
-  cairo_surface_t *surface = NULL;
-  gboolean retval = FALSE;
-
-  state = gtk_theming_engine_get_state (engine);
-
-  gtk_theming_engine_get_property (engine, "background-image", state, &value);
-
-  if (!G_VALUE_HOLDS_BOXED (&value))
-    return FALSE;
-
-  texture = g_value_dup_boxed (&value);
-  g_value_unset (&value);
-
-  if (texture != NULL)
-    cairo_pattern_get_surface (texture, &surface);
-
-  if (surface != NULL)
-    {
-      cairo_save (cr);
-
-      cairo_scale (cr, width / cairo_image_surface_get_width (surface),
-                       height / cairo_image_surface_get_height (surface));
-      cairo_set_source_surface (cr, surface, x, y);
-
-      cairo_paint (cr);
-
-      cairo_restore (cr);
-
-      retval = TRUE;
-    }
-
-  if (texture != NULL)
-    cairo_pattern_destroy (texture);
-
-  return retval;
-}
-
 void
 unico_cairo_round_rect (cairo_t         *cr,
                         gdouble          x,
@@ -1257,7 +47,7 @@
       else
         {
           cairo_new_sub_path (cr);
-          
+
           cairo_arc (cr, x + width - radius, y + radius, radius, - G_PI / 4, 0);
         }
 
@@ -1352,71 +142,3 @@
                           height - line_width,
                           radius, sides, junction);
 }
-
-void
-unico_cairo_set_source_border (GtkThemingEngine *engine,
-                               cairo_t          *cr,
-                               gdouble           width,
-                               gdouble           height)
-{
-  GdkRGBA border_color;
-  GtkBorderStyle border_style;
-  GtkStateFlags state;
-  cairo_pattern_t *border_pat;
-
-  state = gtk_theming_engine_get_state (engine);
-
-  gtk_theming_engine_get (engine, state,
-                          "border-style", &border_style,
-                          "-unico-border-gradient", &border_pat,
-                          NULL);
-  gtk_theming_engine_get_border_color (engine, state, &border_color);
-
-  if (border_pat)
-    {
-      /* pattern */
-      cairo_scale (cr, width, height);
-      cairo_set_source (cr, border_pat);
-      cairo_scale (cr, 1.0 / width, 1.0 / height);
-    }
-  else
-    /* one color */
-    gdk_cairo_set_source_rgba (cr, &border_color);
-
-  if (border_pat != NULL)
-    cairo_pattern_destroy (border_pat);
-}
-
-void
-unico_cairo_set_source_inner_stroke (GtkThemingEngine *engine,
-                                     cairo_t          *cr,
-                                     gdouble           width,
-                                     gdouble           height)
-{
-  GdkRGBA *inner_stroke_color;
-  GtkStateFlags state;
-  cairo_pattern_t *inner_stroke_pat;
-
-  state = gtk_theming_engine_get_state (engine);
-
-  gtk_theming_engine_get (engine, state,
-                          "-unico-inner-stroke-color", &inner_stroke_color,
-                          "-unico-inner-stroke-gradient", &inner_stroke_pat,
-                          NULL);
-
-  if (inner_stroke_pat)
-    {
-      /* pattern */
-      cairo_scale (cr, width, height);
-      cairo_set_source (cr, inner_stroke_pat);
-      cairo_scale (cr, 1.0 / width, 1.0 / height);
-    }
-  else
-    /* one color */
-    gdk_cairo_set_source_rgba (cr, inner_stroke_color);
-
-  if (inner_stroke_pat != NULL)
-    cairo_pattern_destroy (inner_stroke_pat);
-
-  gdk_rgba_free (inner_stroke_color);
-}

=== modified file 'unico/unico-cairo-support.h'
--- unico/unico-cairo-support.h	2011-08-06 15:38:52 +0000
+++ unico/unico-cairo-support.h	2012-07-25 22:49:45 +0000
@@ -27,31 +27,6 @@
 
 G_BEGIN_DECLS
 
-G_GNUC_INTERNAL void unico_cairo_draw_background (GtkThemingEngine *engine,
-                                                  cairo_t          *cr,
-                                                  gdouble           x,
-                                                  gdouble           y,
-                                                  gdouble           width,
-                                                  gdouble           height,
-                                                  guint             hidden_side,
-                                                  GtkJunctionSides  junction);
-
-G_GNUC_INTERNAL void unico_cairo_draw_frame (GtkThemingEngine *engine,
-                                             cairo_t          *cr,
-                                             gdouble           x,
-                                             gdouble           y,
-                                             gdouble           width,
-                                             gdouble           height,
-                                             guint             hidden_side,
-                                             GtkJunctionSides  junction);
-
-G_GNUC_INTERNAL gboolean unico_cairo_draw_from_texture (GtkThemingEngine *engine,
-                                                        cairo_t          *cr,
-                                                        gdouble           x,
-                                                        gdouble           y,
-                                                        gdouble           width,
-                                                        gdouble           height);
-
 G_GNUC_INTERNAL void unico_cairo_round_rect (cairo_t         *cr,
                                              gdouble          x,
                                              gdouble          y,
@@ -70,16 +45,6 @@
                                                    guint            sides,
                                                    GtkJunctionSides junction);
 
-G_GNUC_INTERNAL void unico_cairo_set_source_border (GtkThemingEngine *engine,
-                                                    cairo_t          *cr,
-                                                    gdouble           width,
-                                                    gdouble           height);
-
-G_GNUC_INTERNAL void unico_cairo_set_source_inner_stroke (GtkThemingEngine *engine,
-                                                          cairo_t          *cr,
-                                                          gdouble           width,
-                                                          gdouble           height);
-
 G_END_DECLS
 
 #endif /* UNICO_CAIRO_SUPPORT_H */

=== modified file 'unico/unico-draw.c'
--- unico/unico-draw.c	2012-03-29 14:25:06 +0000
+++ unico/unico-draw.c	2012-07-25 22:49:45 +0000
@@ -28,16 +28,14 @@
 #include "unico-draw.h"
 #include "unico-support.h"
 #include "unico-types.h"
-#include "gtkroundedboxprivate.h"
 
-/* draw a texture placed on the centroid */
 static gboolean
-draw_centroid_texture (GtkThemingEngine *engine,
-                       cairo_t          *cr,
-                       gdouble           x,
-                       gdouble           y,
-                       gdouble           width,
-                       gdouble           height)
+draw_arrow_texture (GtkThemingEngine *engine,
+                    cairo_t          *cr,
+                    gdouble           angle,
+                    gdouble           x,
+                    gdouble           y,
+                    gdouble           size)
 {
   GtkStateFlags state;
   GValue value = { 0, };
@@ -47,7 +45,7 @@
 
   state = gtk_theming_engine_get_state (engine);
 
-  gtk_theming_engine_get_property (engine, "-unico-centroid-texture", state, &value);
+  gtk_theming_engine_get_property (engine, "-unico-arrow-texture", state, &value);
 
   if (!G_VALUE_HOLDS_BOXED (&value))
     return FALSE;
@@ -62,8 +60,11 @@
     {
       cairo_save (cr);
 
-      cairo_set_source_surface (cr, surface, (gint) (x + width / 2 - cairo_image_surface_get_width (surface) / 2),
-                                             (gint) (y + height / 2 - cairo_image_surface_get_height (surface) / 2));
+      cairo_translate (cr, (gint) (x + size / 2), (gint) (y + size / 2));
+      cairo_rotate (cr, angle);
+
+      cairo_set_source_surface (cr, surface, - cairo_image_surface_get_width (surface) / 2,
+                                             - cairo_image_surface_get_height (surface) / 2);
       cairo_paint (cr);
 
       cairo_restore (cr);
@@ -78,18 +79,6 @@
 }
 
 static void
-unico_draw_activity (DRAW_ARGS)
-{
-  /* playground for effects */
-  unico_cairo_draw_background (engine, cr,
-                               x, y, width, height,
-                               0, gtk_theming_engine_get_junction_sides (engine));
-  unico_cairo_draw_frame (engine, cr,
-                          x, y, width, height,
-                          0, gtk_theming_engine_get_junction_sides (engine));
-}
-
-static void
 unico_draw_arrow (GtkThemingEngine *engine,
                   cairo_t          *cr,
                   gdouble           angle,
@@ -101,6 +90,9 @@
   GdkRGBA color;
   gdouble size_reduction = 4;
 
+  if (draw_arrow_texture (engine, cr, angle, x, y, size))
+    return;
+
   state = gtk_theming_engine_get_state (engine);
 
   gtk_theming_engine_get_color (engine, state, &color);
@@ -134,191 +126,6 @@
 }
 
 static void
-unico_draw_cell_background (DRAW_ARGS,
-                            GtkRegionFlags flags)
-{
-  GtkJunctionSides junction;
-  guint hidden_side;
-
-  junction = GTK_JUNCTION_RIGHT | GTK_JUNCTION_LEFT;
-
-  hidden_side = SIDE_RIGHT | SIDE_LEFT;
-
-  if ((flags & GTK_REGION_FIRST) != 0)
-    {
-      junction &= ~(GTK_JUNCTION_CORNER_TOPLEFT | GTK_JUNCTION_CORNER_BOTTOMLEFT);
-      hidden_side &= ~(SIDE_LEFT);
-    }
-  if ((flags & GTK_REGION_LAST) != 0)
-    {
-      junction &= ~(GTK_JUNCTION_CORNER_TOPRIGHT | GTK_JUNCTION_CORNER_BOTTOMRIGHT);
-      hidden_side &= ~(SIDE_RIGHT);
-    }
-
-  unico_cairo_draw_background (engine, cr,
-                               x, y, width, height,
-                               hidden_side, junction);
-}
-
-static void
-unico_draw_cell_frame (DRAW_ARGS,
-                       GtkRegionFlags flags)
-{
-  GtkJunctionSides junction;
-  guint hidden_side;
-
-  junction = GTK_JUNCTION_RIGHT | GTK_JUNCTION_LEFT;
-
-  hidden_side = SIDE_RIGHT | SIDE_LEFT;
-
-  if ((flags & GTK_REGION_FIRST) != 0)
-    {
-      junction &= ~(GTK_JUNCTION_CORNER_TOPLEFT | GTK_JUNCTION_CORNER_BOTTOMLEFT);
-      hidden_side &= ~(SIDE_LEFT);
-    }
-  if ((flags & GTK_REGION_LAST) != 0)
-    {
-      junction &= ~(GTK_JUNCTION_CORNER_TOPRIGHT | GTK_JUNCTION_CORNER_BOTTOMRIGHT);
-      hidden_side &= ~(SIDE_RIGHT);
-    }
-
-  unico_cairo_draw_frame (engine, cr,
-                          x, y, width, height,
-                          hidden_side, junction);
-}
-
-static void
-unico_draw_check (DRAW_ARGS)
-{
-  GtkStateFlags state;
-  gboolean in_menu;
-  gboolean draw_bullet, inconsistent;
-
-  state = gtk_theming_engine_get_state (engine);
-
-  in_menu = gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_MENUITEM);
-  inconsistent = (state & GTK_STATE_FLAG_INCONSISTENT) != 0;
-  draw_bullet = (state & GTK_STATE_FLAG_ACTIVE) != 0;
-  draw_bullet |= inconsistent;
-
-  if (!in_menu)
-    {
-      unico_cairo_draw_background (engine, cr,
-                                   x, y, width, height,
-                                   0, gtk_theming_engine_get_junction_sides (engine));
-      unico_cairo_draw_frame (engine, cr,
-                              x, y, width, height,
-                              0, gtk_theming_engine_get_junction_sides (engine));
-    }
-
-  if (draw_bullet)
-    {
-      GdkRGBA *bullet_color;
-
-      gtk_theming_engine_get (engine, state,
-                              "-unico-bullet-color", &bullet_color,
-                              NULL);
-
-      cairo_translate (cr, x, y);
-      cairo_scale (cr, width / 18.0, height / 18.0);
-
-      if (inconsistent)
-        {
-          GdkRGBA *bullet_outline_color;
-
-          gtk_theming_engine_get (engine, state,
-                                  "-unico-bullet-outline-color", &bullet_outline_color,
-                                  NULL);
-
-          /* thick's outline */
-          cairo_rectangle (cr, 3.5, 7, 11, 4);
-
-          gdk_cairo_set_source_rgba (cr, bullet_outline_color);
-          cairo_fill (cr);
-
-          cairo_rectangle (cr, 4.5, 8, 9, 2);
-
-          gdk_rgba_free (bullet_outline_color);
-        }
-      else
-        {
-          if (in_menu)
-            cairo_translate (cr, 2.0, 3.0);
-          else
-            {
-              GdkRGBA *bullet_outline_color;
-
-              gtk_theming_engine_get (engine, state,
-                                      "-unico-bullet-outline-color", &bullet_outline_color,
-                                      NULL);
-
-              /* thick's outline */
-              cairo_move_to (cr, 5.0, 5.65);
-              cairo_line_to (cr, 8.95, 9.57);
-              cairo_line_to (cr, 16.0, 2.54);
-              cairo_line_to (cr, 16.0, 8.36);
-              cairo_line_to (cr, 10.6, 15.1);
-              cairo_line_to (cr, 7.6, 15.1);
-              cairo_line_to (cr, 2.95, 10.48);
-              cairo_line_to (cr, 2.95, 7.65);
-              cairo_close_path (cr);
-
-              gdk_cairo_set_source_rgba (cr, bullet_outline_color);
-              cairo_fill (cr);
-
-              cairo_translate (cr, 4.0, 2.0);
-
-              gdk_rgba_free (bullet_outline_color);
-            }
-
-          /* thick */
-          cairo_move_to (cr, 0.0, 6.0);
-          cairo_line_to (cr, 0.0, 8.0);
-          cairo_line_to (cr, 4.0, 12.0);
-          cairo_line_to (cr, 6.0, 12.0);
-          cairo_line_to (cr, 15.0, 1.0);
-          cairo_line_to (cr, 15.0, 0.0);
-          cairo_line_to (cr, 14.0, 0.0);
-          cairo_line_to (cr, 5.0, 9.0);
-          cairo_line_to (cr, 1.0, 5.0);
-          cairo_close_path (cr);
-        }
-
-      gdk_cairo_set_source_rgba (cr, bullet_color);
-      cairo_fill (cr);
-
-      gdk_rgba_free (bullet_color);
-    }
-}
-
-static void
-unico_draw_common (DRAW_ARGS)
-{
-  unico_cairo_draw_background (engine, cr,
-                               x, y, width, height,
-                               0, gtk_theming_engine_get_junction_sides (engine));
-  unico_cairo_draw_frame (engine, cr,
-                          x, y, width, height,
-                          0, gtk_theming_engine_get_junction_sides (engine));
-}
-
-static void
-unico_draw_common_background (DRAW_ARGS)
-{
-  unico_cairo_draw_background (engine, cr,
-                               x, y, width, height,
-                               0, gtk_theming_engine_get_junction_sides (engine));
-}
-
-static void
-unico_draw_common_frame (DRAW_ARGS)
-{
-  unico_cairo_draw_frame (engine, cr,
-                          x, y, width, height,
-                          0, gtk_theming_engine_get_junction_sides (engine));
-}
-
-static void
 unico_draw_expander (DRAW_ARGS)
 {
   GtkStateFlags state;
@@ -359,113 +166,6 @@
 }
 
 static void
-unico_draw_extension (DRAW_ARGS,
-                      GtkPositionType gap_side)
-{
-  GtkBorder border;
-  GtkBorder *outer_border;
-  GtkJunctionSides junction = 0;
-  GtkStateFlags state;
-  gboolean has_outer_stroke = FALSE;
-  gdouble bg_offset = 0;
-  guint hidden_side = 0;
-
-  state = gtk_theming_engine_get_state (engine); 
-
-  gtk_theming_engine_get (engine, state,
-                          "-unico-outer-stroke-width", &outer_border,
-                          NULL);
-  gtk_theming_engine_get_border (engine, state, &border);
-
-  if (!unico_gtk_border_is_zero (outer_border))
-    has_outer_stroke = TRUE;
-
-  cairo_save (cr);
-
-  /* FIXME doesn't work properly with not homogenuos border-width,
-   * especially between tab and notebook.
-   * I guess the issue comes from the fact draw_background
-   * is looking at border dimensions while we're not,
-   * or we're doing it wrong.
-   * draw_background is looking at SIDE_BOTTOM and
-   * sets border to 0 for this side */
-  switch (gap_side)
-  {
-    case GTK_POS_TOP:
-      junction = GTK_JUNCTION_TOP;
-      hidden_side = SIDE_TOP;
-
-      if (has_outer_stroke)
-        {
-          y -= outer_border->bottom;
-          height += outer_border->bottom;
-        }
-
-      if ((state & GTK_STATE_FLAG_ACTIVE) != 0)
-        bg_offset = border.bottom;
-
-      cairo_translate (cr, x + width, y + height);
-      cairo_rotate (cr, G_PI);
-      break;
-    default:
-    case GTK_POS_BOTTOM:
-      junction = GTK_JUNCTION_BOTTOM;
-      hidden_side = SIDE_BOTTOM;
-
-      if (has_outer_stroke)
-        height += outer_border->top;
-
-      if ((state & GTK_STATE_FLAG_ACTIVE) != 0)
-        bg_offset = border.top;
-
-      cairo_translate (cr, x, y);
-      break;
-    case GTK_POS_LEFT:
-      junction = GTK_JUNCTION_LEFT;
-      hidden_side = SIDE_LEFT;
-
-      if (has_outer_stroke)
-        {
-          x -= outer_border->right;
-          width += outer_border->right;
-        }
-
-      if ((state & GTK_STATE_FLAG_ACTIVE) != 0)
-        bg_offset = border.right;
-
-      cairo_translate (cr, x + width, y);
-      cairo_rotate (cr, G_PI / 2);
-      break;
-    case GTK_POS_RIGHT:
-      junction = GTK_JUNCTION_RIGHT;
-      hidden_side = SIDE_RIGHT;
-
-      if (has_outer_stroke)
-        width += outer_border->left;
-
-      if ((state & GTK_STATE_FLAG_ACTIVE) != 0)
-        bg_offset = border.left;
-
-      cairo_translate (cr, x, y + height);
-      cairo_rotate (cr, - G_PI / 2);
-      break;
-  }
-
-  if (gap_side == GTK_POS_TOP ||
-      gap_side == GTK_POS_BOTTOM)
-    unico_cairo_draw_background (engine, cr, 0, 0, width, height + bg_offset, SIDE_BOTTOM, GTK_JUNCTION_BOTTOM);
-  else
-    unico_cairo_draw_background (engine, cr, 0, 0, height, width + bg_offset, SIDE_BOTTOM, GTK_JUNCTION_BOTTOM);
-  cairo_restore (cr);
-
-  /* FIXME the frame on bottom bar has the wrong gradient,
-   * while should be reflected */
-  unico_cairo_draw_frame (engine, cr, x, y, width, height, hidden_side, junction);
-
-  gtk_border_free (outer_border);
-}
-
-static void
 unico_draw_focus (DRAW_ARGS)
 {
   GdkRGBA *fill_color, *border_color, *outer_stroke_color;
@@ -523,548 +223,11 @@
   gdk_rgba_free (outer_stroke_color);
 }
 
-static void
-unico_draw_frame_gap (DRAW_ARGS,
-                      GtkPositionType gap_side,
-                      gdouble         xy0_gap,
-                      gdouble         xy1_gap)
-{
-  GtkBorder border;
-  GtkBorder *outer_border;
-  GtkCssBorderCornerRadius *top_left_radius, *top_right_radius;
-  GtkCssBorderCornerRadius *bottom_left_radius, *bottom_right_radius;
-  GtkJunctionSides junction;
-  GtkStateFlags state;
-  gboolean has_outer_stroke = FALSE;
-  gdouble x0, y0, x1, y1, xc, yc, wc, hc;
-
-  xc = yc = wc = hc = 0;
-
-  junction = gtk_theming_engine_get_junction_sides (engine);
-
-  state = gtk_theming_engine_get_state (engine);
-
-  gtk_theming_engine_get (engine, state,
-                          /* Can't use border-radius as it's an int for
-                           * backwards compat */
-                          "border-top-left-radius", &top_left_radius,
-                          "border-top-right-radius", &top_right_radius,
-                          "border-bottom-right-radius", &bottom_right_radius,
-                          "border-bottom-left-radius", &bottom_left_radius,
-                          "-unico-outer-stroke-width", &outer_border,
-                          NULL);
-  gtk_theming_engine_get_border (engine, state, &border);
-
-  if (!unico_gtk_border_is_zero (outer_border))
-    has_outer_stroke = TRUE;
-
-  cairo_save (cr);
-
-  switch (gap_side)
-  {
-    case GTK_POS_TOP:
-      xc = x + xy0_gap + border.left;
-      yc = y;
-      wc = MAX (xy1_gap - xy0_gap - (border.left + border.right), 0);
-      hc = border.top * 2;
-
-      if (has_outer_stroke)
-        {
-          xc += outer_border->left;
-          wc = MAX (xy1_gap - xy0_gap - (outer_border->left + outer_border->right) - (border.left + border.right), 0);
-          hc += outer_border->top;
-        }
-
-      if (xy0_gap < _gtk_css_number_get (&top_left_radius->horizontal, width))
-        junction |= GTK_JUNCTION_CORNER_TOPLEFT;
-
-      if (xy1_gap > width - _gtk_css_number_get (&top_right_radius->horizontal, width))
-        junction |= GTK_JUNCTION_CORNER_TOPRIGHT;
-
-      break;
-    default:
-    case GTK_POS_BOTTOM:
-      xc = x + xy0_gap + border.left;
-      yc = y + height - border.bottom * 2;
-      wc = MAX (xy1_gap - xy0_gap - (border.left + border.right), 0);
-      hc = border.bottom * 2;
-
-      if (has_outer_stroke)
-        {
-          xc += outer_border->left;
-          yc -= outer_border->bottom;
-          wc = MAX (xy1_gap - xy0_gap - (outer_border->left + outer_border->right) - (border.left + border.right), 0);
-          hc += outer_border->bottom;
-        }
-
-      if (xy0_gap < _gtk_css_number_get (&bottom_left_radius->horizontal, width))
-        junction |= GTK_JUNCTION_CORNER_BOTTOMLEFT;
-
-      if (xy1_gap > width - _gtk_css_number_get (&bottom_right_radius->horizontal, width))
-        junction |= GTK_JUNCTION_CORNER_BOTTOMRIGHT;
-
-      break;
-    case GTK_POS_LEFT:
-      xc = x;
-      yc = y + xy0_gap + border.top;
-      wc = border.left * 2;
-      hc = MAX (xy1_gap - xy0_gap - (border.top + border.bottom), 0);
-
-      if (has_outer_stroke)
-        {
-          yc += outer_border->top;
-          wc += outer_border->left;
-          hc = MAX (xy1_gap - xy0_gap - (outer_border->top + outer_border->bottom) - (border.top + border.bottom), 0);
-        }
-
-      if (xy0_gap < _gtk_css_number_get (&top_left_radius->vertical, height))
-        junction |= GTK_JUNCTION_CORNER_TOPLEFT;
-
-      if (xy1_gap > height - _gtk_css_number_get (&bottom_left_radius->vertical, height))
-        junction |= GTK_JUNCTION_CORNER_BOTTOMLEFT;
-
-      break;
-    case GTK_POS_RIGHT:
-      xc = x + width - border.right * 2;
-      yc = y + xy0_gap + border.top;
-      wc = border.right * 2;
-      hc = MAX (xy1_gap - xy0_gap - (border.top + border.bottom), 0);
-
-      if (has_outer_stroke)
-        {
-          xc -= outer_border->right;
-          yc += outer_border->top;
-          wc += outer_border->right;
-          hc = MAX (xy1_gap - xy0_gap - (outer_border->top + outer_border->bottom) - (border.top + border.bottom), 0);
-        }
-
-      if (xy0_gap < _gtk_css_number_get (&top_right_radius->vertical, height))
-        junction |= GTK_JUNCTION_CORNER_TOPRIGHT;
-
-      if (xy1_gap > height - _gtk_css_number_get (&bottom_right_radius->vertical, height))
-        junction |= GTK_JUNCTION_CORNER_BOTTOMRIGHT;
-
-      break;
-  }
-
-  /* clip the gap */
-  cairo_clip_extents (cr, &x0, &y0, &x1, &y1);
-  cairo_rectangle (cr, x0, y0, x1 - x0, yc - y0);
-  cairo_rectangle (cr, x0, yc, xc - x0, hc);
-  cairo_rectangle (cr, xc + wc, yc, x1 - (xc + wc), hc);
-  cairo_rectangle (cr, x0, yc + hc, x1 - x0, y1 - (yc + hc));
-  cairo_clip (cr);
-
-  /* draw the frame, gap area will not be drawn */
-  unico_cairo_draw_frame (engine, cr, x, y, width, height, 0, junction);
-
-  cairo_restore (cr);
-
-  g_free (top_left_radius);
-  g_free (top_right_radius);
-  g_free (bottom_right_radius);
-  g_free (bottom_left_radius);
-  gtk_border_free (outer_border);
-}
-
-static void
-unico_draw_grip (DRAW_ARGS)
-{
-  GdkRGBA border_color;
-  GdkRGBA *inner_stroke_color;
-  GtkStateFlags state;
-  gint lx, ly;
-
-  if (draw_centroid_texture (engine, cr, x, y, width, height))
-    return;
-
-  state = gtk_theming_engine_get_state (engine);
-
-  gtk_theming_engine_get (engine, state,
-                          "-unico-inner-stroke-color", &inner_stroke_color,
-                          NULL);
-  gtk_theming_engine_get_border_color (engine, state, &border_color);
-
-  for (ly = 0; ly < 4; ly++)
-    {
-      /* vertically, four rows of dots */
-      for (lx = 0; lx <= ly; lx++)
-        {
-          /* horizontally */
-          int ny = (3.5 - ly) * 3;
-          int nx = lx * 3;
-
-          gdk_cairo_set_source_rgba (cr, inner_stroke_color);
-          cairo_rectangle (cr, x + width - nx - 1, y + height - ny - 1, 2, 2);
-          cairo_fill (cr);
-
-          gdk_cairo_set_source_rgba (cr, &border_color);
-          cairo_rectangle (cr, x + width - nx - 1, y + height - ny - 1, 1, 1);
-          cairo_fill (cr);
-        }
-    }
-
-  gdk_rgba_free (inner_stroke_color);
-}
-
-static void
-unico_draw_handle (DRAW_ARGS)
-{
-  GtkBorder border;
-  GtkStateFlags state;
-  gdouble line_width;
-  gint i, bar_y, num_bars, bar_spacing, bar_width, bar_height;
-
-  state = gtk_theming_engine_get_state (engine);
-  gtk_theming_engine_get_border (engine, state, &border);
-
-  unico_cairo_draw_background (engine, cr,
-                               x - border.left, y - border.top,
-                               width + border.left + border.right, height + border.top + border.bottom,
-                               0, GTK_JUNCTION_NONE);
-
-  if (draw_centroid_texture (engine, cr, x, y, width, height))
-    return;
-
-  unico_get_line_width (engine, &line_width);
-
-  if (line_width < 1)
-    return;
-
-  bar_y = 1;
-  num_bars = 3;
-  bar_spacing = 3;
-  bar_width = 3;
-  bar_height = num_bars * bar_spacing * line_width;
-
-  cairo_save (cr);
-
-  cairo_translate (cr, x + (gint) (width / 2), y + (gint) (height / 2));
-
-  if (height > width)
-    cairo_translate (cr, - bar_width / 2 - 0.5, - bar_height / 2 + 0.5);
-  else
-    {
-      cairo_translate (cr, - bar_height / 2 + 0.5, bar_width / 2 + 0.5);
-      cairo_rotate (cr, - G_PI / 2);
-    }
-
-  for (i = 0; i < num_bars; i++)
-    {
-      /* draw bars */
-      cairo_move_to (cr, 0, bar_y);
-      cairo_line_to (cr, bar_width, bar_y);
-      unico_cairo_set_source_border (engine, cr, bar_width, line_width);
-      cairo_stroke (cr);
-
-      cairo_move_to (cr, 0, bar_y + line_width);
-      cairo_line_to (cr, bar_width, bar_y + line_width);
-      unico_cairo_set_source_inner_stroke (engine, cr, bar_width, line_width);
-      cairo_stroke (cr);
-
-      bar_y += bar_spacing;
-    }
-
-  cairo_restore (cr);
-}
-
-static void
-unico_draw_line (GtkThemingEngine *engine,
-                 cairo_t          *cr,
-                 gdouble           x0,
-                 gdouble           y0,
-                 gdouble           x1,
-                 gdouble           y1)
-{
-  /* line endings */
-  if (y0 == y1)
-    {
-      y0 += 0.5;
-      y1 += 0.5;
-      x0 += 0.5;
-      x1 -= 0.5;
-    }
-  else if (x0 == x1)
-    {
-      x0 += 0.5;
-      x1 += 0.5;
-      y0 += 0.5;
-      y1 -= 0.5;
-    }
-
-  cairo_move_to (cr, x0, y0);
-  cairo_line_to (cr, x1, y1);
-  unico_cairo_set_source_border (engine, cr, MAX (x1 - x0, 1), MAX (y1 - y0, 1));
-  cairo_stroke (cr);
-}
-
-static void
-unico_draw_notebook (DRAW_ARGS,
-                     GtkPositionType gap_side,
-                     gdouble         xy0_gap,
-                     gdouble         xy1_gap)
-{
-  unico_cairo_draw_background (engine, cr,
-                               x, y, width, height,
-                               0, gtk_theming_engine_get_junction_sides (engine));
-  unico_draw_frame_gap (engine, cr,
-                        x, y, width, height,
-                        gap_side, xy0_gap, xy1_gap);
-}
-
-static void
-unico_draw_radio (DRAW_ARGS)
-{
-  GtkStateFlags state;
-  gboolean in_menu;
-  gboolean draw_bullet, inconsistent;
-
-  state = gtk_theming_engine_get_state (engine);
-
-  in_menu = gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_MENUITEM);
-  inconsistent = (state & GTK_STATE_FLAG_INCONSISTENT) != 0;
-  draw_bullet = (state & GTK_STATE_FLAG_ACTIVE) != 0;
-  draw_bullet |= inconsistent;
-
-  if (!in_menu)
-    {
-      unico_cairo_draw_background (engine, cr,
-                                   x, y, width, height,
-                                   0, gtk_theming_engine_get_junction_sides (engine));
-      unico_cairo_draw_frame (engine, cr,
-                              x, y, width, height,
-                              0, gtk_theming_engine_get_junction_sides (engine));
-    }
-
-  if (draw_bullet)
-    {
-      GdkRGBA *bullet_color;
-
-      gtk_theming_engine_get (engine, state,
-                              "-unico-bullet-color", &bullet_color,
-                              NULL);
-
-      if (inconsistent)
-        {
-          GdkRGBA *bullet_outline_color;
-
-          gtk_theming_engine_get (engine, state,
-                                  "-unico-bullet-outline-color", &bullet_outline_color,
-                                  NULL);
-
-          /* bullet's outline */
-          cairo_rectangle (cr, x + width / 2.0 - (width + height) / 4.0 + 3, y + height / 2.0 - 2,
-                               (width + height) / 4.0 + 2, 4);
-
-          gdk_cairo_set_source_rgba (cr, bullet_outline_color);
-          cairo_fill (cr);
-
-          cairo_rectangle (cr, x + width / 2.0 - (width + height) / 4.0 + 4, y + height / 2.0 - 1,
-                               (width + height) / 4.0, 2);
-
-          gdk_rgba_free (bullet_outline_color);
-        }
-      else
-        {
-          if (in_menu)
-            cairo_arc (cr, x + width / 2.0, y + height / 2.0,
-                           (width + height) / 4.0 - 4, 0, G_PI * 2);
-          else
-            {
-              GdkRGBA *bullet_outline_color;
-
-              gtk_theming_engine_get (engine, state,
-                                      "-unico-bullet-outline-color", &bullet_outline_color,
-                                      NULL);
-
-              /* bullet's outline */
-              cairo_arc (cr, x + width / 2.0, y + height / 2.0,
-                             (width + height) / 4.0 - 4, 0, G_PI * 2);
-              gdk_cairo_set_source_rgba (cr, bullet_outline_color);
-              cairo_fill (cr);
-
-              cairo_arc (cr, x + width / 2.0, y + height / 2.0,
-                             (width + height) / 4.0 - 5, 0, G_PI * 2);
-
-              gdk_rgba_free (bullet_outline_color);
-            }
-        }
-
-      /* bullet */
-      gdk_cairo_set_source_rgba (cr, bullet_color);
-      cairo_fill (cr);
-
-      gdk_rgba_free (bullet_color);
-    }
-}
-
-static void
-unico_draw_separator (DRAW_ARGS)
-{
-  gdouble line_width;
-
-  unico_get_line_width (engine, &line_width);
-
-  if (line_width == 0)
-    return;
-
-  /* FIXME right code should be
-   * if (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_VERTICAL))
-   * but doesn't work for separator tool item. */
-  if (width > height)
-    {
-      cairo_move_to (cr, x, y + (gint) (height / 2) + line_width / 2);
-      cairo_line_to (cr, x + width, y + (gint) (height / 2) + line_width / 2);
-      unico_cairo_set_source_inner_stroke (engine, cr, width, line_width);
-      cairo_stroke (cr);
-
-      cairo_move_to (cr, x, y + (gint) (height / 2) - line_width / 2);
-      cairo_line_to (cr, x + width, y + (gint) (height / 2) - line_width / 2);
-      unico_cairo_set_source_border (engine, cr, width, line_width);
-      cairo_stroke (cr);
-    }
-  else
-    {
-      cairo_move_to (cr, x + (gint) (width / 2) + line_width / 2, y);
-      cairo_line_to (cr, x + (gint) (width / 2) + line_width / 2, y + height);
-      unico_cairo_set_source_inner_stroke (engine, cr, line_width, height);
-      cairo_stroke (cr);
-
-      cairo_move_to (cr, x + (gint) (width / 2) - line_width / 2, y);
-      cairo_line_to (cr, x + (gint) (width / 2) - line_width / 2, y + height);
-      unico_cairo_set_source_border (engine, cr, line_width, height);
-      cairo_stroke (cr);
-    }
-}
-
-static void
-unico_draw_slider (DRAW_ARGS,
-                   GtkOrientation orientation)
-{
-  /* use orientation, if needed */
-  unico_cairo_draw_background (engine, cr,
-                               x, y, width, height,
-                               0, gtk_theming_engine_get_junction_sides (engine));
-
-  draw_centroid_texture (engine, cr, x, y, width, height);
-
-  unico_cairo_draw_frame (engine, cr,
-                          x, y, width, height,
-                          0, gtk_theming_engine_get_junction_sides (engine));
-}
-
-static void
-unico_draw_spinbutton_background (DRAW_ARGS)
-{
-  GtkBorder border, *outer_border;
-  GtkJunctionSides junction;
-  GtkStateFlags state;
-
-  junction = gtk_theming_engine_get_junction_sides (engine);
-
-  state = gtk_theming_engine_get_state (engine);
-
-  gtk_theming_engine_get (engine, state,
-                          "-unico-outer-stroke-width", &outer_border,
-                          NULL);
-  gtk_theming_engine_get_border (engine, state, &border);
-
-  cairo_save (cr);
-
-  cairo_rectangle (cr, x, y, width, height);
-  cairo_clip (cr);
-
-  if (!(junction & GTK_JUNCTION_CORNER_TOPRIGHT))
-    {
-      y = ceil (y);
-      height = floor (height);
-      height += border.bottom + outer_border->bottom;
-    }
-  else
-    {
-      y = floor (y);
-      height = ceil (height);
-      y -= outer_border->top;
-      height += outer_border->bottom;
-    }
-
-  unico_cairo_draw_background (engine, cr,
-                               x, y, width, height,
-                               0, junction);
-
-  cairo_restore (cr);
-
-  gtk_border_free (outer_border);
-}
-
-static void
-unico_draw_spinbutton_frame (DRAW_ARGS)
-{
-  GtkBorder border, *outer_border;
-  GtkJunctionSides junction;
-  GtkStateFlags state;
-
-  junction = gtk_theming_engine_get_junction_sides (engine);
-
-  state = gtk_theming_engine_get_state (engine);
-
-  gtk_theming_engine_get (engine, state,
-                          "-unico-outer-stroke-width", &outer_border,
-                          NULL);
-  gtk_theming_engine_get_border (engine, state, &border);
-
-  cairo_save (cr);
-
-  cairo_rectangle (cr, x, y, width, height);
-  cairo_clip (cr);
-
-  if (!(junction & GTK_JUNCTION_CORNER_TOPRIGHT))
-    {
-      y = ceil (y);
-      height = floor (height);
-      height += border.bottom + outer_border->bottom;
-    }
-  else
-    {
-      y = floor (y);
-      height = ceil (height);
-      y -= outer_border->top;
-      height += outer_border->bottom;
-    }
-
-  unico_cairo_draw_frame (engine, cr,
-                          x, y, width, height,
-                          0, junction);
-
-  cairo_restore (cr);
-
-  gtk_border_free (outer_border);
-}
-
 void
 unico_register_style_default (UnicoStyleFunctions *functions)
 {
   g_assert (functions);
 
-  functions->draw_activity                      = unico_draw_activity;
   functions->draw_arrow                         = unico_draw_arrow;
-  functions->draw_cell_background               = unico_draw_cell_background;
-  functions->draw_cell_frame                    = unico_draw_cell_frame;
-  functions->draw_check                         = unico_draw_check;
-  functions->draw_common                        = unico_draw_common;
-  functions->draw_common_background             = unico_draw_common_background;
-  functions->draw_common_frame                  = unico_draw_common_frame;
   functions->draw_expander                      = unico_draw_expander;
-  functions->draw_extension                     = unico_draw_extension;
-  functions->draw_focus                         = unico_draw_focus;
-  functions->draw_frame_gap                     = unico_draw_frame_gap;
-  functions->draw_grip                          = unico_draw_grip;
-  functions->draw_handle                        = unico_draw_handle;
-  functions->draw_line                          = unico_draw_line;
-  functions->draw_notebook                      = unico_draw_notebook;
-  functions->draw_radio                         = unico_draw_radio;
-  functions->draw_separator                     = unico_draw_separator;
-  functions->draw_slider                        = unico_draw_slider;
-  functions->draw_spinbutton_background         = unico_draw_spinbutton_background;
-  functions->draw_spinbutton_frame              = unico_draw_spinbutton_frame;
 }

=== modified file 'unico/unico-engine.c'
--- unico/unico-engine.c	2011-07-28 09:12:33 +0000
+++ unico/unico-engine.c	2012-07-25 22:49:45 +0000
@@ -41,31 +41,6 @@
 G_DEFINE_DYNAMIC_TYPE (UnicoEngine, unico_engine, GTK_TYPE_THEMING_ENGINE)
 
 static void
-unico_engine_render_activity (GtkThemingEngine *engine,
-                              cairo_t          *cr,
-                              gdouble           x,
-                              gdouble           y,
-                              gdouble           width,
-                              gdouble           height)
-{
-  UnicoStyleFunctions *style_functions;
-  const GtkWidgetPath *path;
-
-  UNICO_CAIRO_INIT
-
-  unico_lookup_functions (UNICO_ENGINE (engine), &style_functions);
-  path = gtk_theming_engine_get_path (engine);
-
-  if (gtk_widget_path_is_type (path, GTK_TYPE_SCALE))
-    unico_trim_scale_allocation (engine, &x, &y, &width, &height);
-
-  if (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_SPINNER))
-    GTK_THEMING_ENGINE_CLASS (unico_engine_parent_class)->render_activity (engine, cr, x, y, width, height);
-  else
-    style_functions->draw_activity (engine, cr, x, y, width, height);
-}
-
-static void
 unico_engine_render_arrow (GtkThemingEngine *engine,
                            cairo_t          *cr,
                            gdouble           angle,
@@ -83,61 +58,6 @@
 }
 
 static void
-unico_engine_render_background (GtkThemingEngine *engine,
-                                cairo_t          *cr,
-                                gdouble           x,
-                                gdouble           y,
-                                gdouble           width,
-                                gdouble           height)
-{
-  UnicoStyleFunctions *style_functions;
-  const GtkWidgetPath *path;
-  GtkRegionFlags flags;
-
-  UNICO_CAIRO_INIT
-
-  unico_lookup_functions (UNICO_ENGINE (engine), &style_functions);
-  path = gtk_theming_engine_get_path (engine);
-
-  if (gtk_widget_path_is_type (path, GTK_TYPE_SCALE) &&
-      gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_TROUGH))
-    unico_trim_scale_allocation (engine, &x, &y, &width, &height);
-
-  if (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_BUTTON) &&
-      gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_SPINBUTTON))
-    style_functions->draw_spinbutton_background (engine, cr, x, y, width, height);
-  else if (!gtk_widget_path_is_type (path, GTK_TYPE_ICON_VIEW) &&
-           gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_VIEW) &&
-           gtk_theming_engine_has_region (engine, GTK_STYLE_REGION_COLUMN, &flags))
-    style_functions->draw_cell_background (engine, cr, x, y, width, height, flags);
-  else
-    style_functions->draw_common_background (engine, cr, x, y, width, height);
-}
-
-static void
-unico_engine_render_check (GtkThemingEngine *engine,
-                           cairo_t          *cr,
-                           gdouble           x,
-                           gdouble           y,
-                           gdouble           width,
-                           gdouble           height)
-{
-  UnicoStyleFunctions *style_functions;
-
-  UNICO_CAIRO_INIT
-
-  unico_lookup_functions (UNICO_ENGINE (engine), &style_functions);
-
-  if (!gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_MENUITEM))
-    {
-      if (unico_cairo_draw_from_texture (engine, cr, x, y, width, height))
-        return;
-    }
-
-  style_functions->draw_check (engine, cr, x, y, width, height);
-}
-
-static void
 unico_engine_render_expander (GtkThemingEngine *engine,
                               cairo_t          *cr,
                               gdouble           x,
@@ -154,182 +74,6 @@
   style_functions->draw_expander (engine, cr, x, y, width, height);
 }
 
-static void
-unico_engine_render_extension (GtkThemingEngine *engine,
-                               cairo_t          *cr,
-                               gdouble           x,
-                               gdouble           y,
-                               gdouble           width,
-                               gdouble           height,
-                               GtkPositionType   gap_side)
-{
-  UnicoStyleFunctions *style_functions;
-
-  UNICO_CAIRO_INIT
-
-  unico_lookup_functions (UNICO_ENGINE (engine), &style_functions);
-
-  style_functions->draw_extension (engine, cr, x, y, width, height, gap_side);
-}
-
-static void
-unico_engine_render_focus (GtkThemingEngine *engine,
-                           cairo_t          *cr,
-                           gdouble           x,
-                           gdouble           y,
-                           gdouble           width,
-                           gdouble           height)
-{
-  UnicoStyleFunctions *style_functions;
-
-  UNICO_CAIRO_INIT
-
-  unico_lookup_functions (UNICO_ENGINE (engine), &style_functions);
-
-  style_functions->draw_focus (engine, cr, x, y, width, height);
-}
-
-static void
-unico_engine_render_frame (GtkThemingEngine *engine,
-                           cairo_t          *cr,
-                           gdouble           x,
-                           gdouble           y,
-                           gdouble           width,
-                           gdouble           height)
-{
-  UnicoStyleFunctions *style_functions;
-  const GtkWidgetPath *path;
-  GtkRegionFlags flags;
-
-  UNICO_CAIRO_INIT
-
-  unico_lookup_functions (UNICO_ENGINE (engine), &style_functions);
-  path = gtk_theming_engine_get_path (engine);
-
-  if (gtk_widget_path_is_type (path, GTK_TYPE_SCALE) &&
-      gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_TROUGH))
-    unico_trim_scale_allocation (engine, &x, &y, &width, &height);
-
-  if (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_SEPARATOR))
-    style_functions->draw_separator (engine, cr, x, y, width, height);
-  else if (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_BUTTON) &&
-           gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_SPINBUTTON))
-    style_functions->draw_spinbutton_frame (engine, cr, x, y, width, height);
-  else if (!gtk_widget_path_is_type (path, GTK_TYPE_ICON_VIEW) &&
-           gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_VIEW) &&
-           gtk_theming_engine_has_region (engine, GTK_STYLE_REGION_COLUMN, &flags))
-    style_functions->draw_cell_frame (engine, cr, x, y, width, height, flags);
-  else
-    style_functions->draw_common_frame (engine, cr, x, y, width, height);
-}
-
-static void
-unico_engine_render_frame_gap (GtkThemingEngine *engine,
-                               cairo_t          *cr,
-                               gdouble           x,
-                               gdouble           y,
-                               gdouble           width,
-                               gdouble           height,
-                               GtkPositionType   gap_side,
-                               gdouble           xy0_gap,
-                               gdouble           xy1_gap)
-{
-  UnicoStyleFunctions *style_functions;
-
-  UNICO_CAIRO_INIT
-
-  unico_lookup_functions (UNICO_ENGINE (engine), &style_functions);
-
-  if (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_NOTEBOOK))
-    style_functions->draw_notebook (engine, cr, x, y, width, height, gap_side, xy0_gap, xy1_gap);
-  else
-    style_functions->draw_frame_gap (engine, cr, x, y, width, height, gap_side, xy0_gap, xy1_gap);
-}
-
-static void
-unico_engine_render_handle (GtkThemingEngine *engine,
-                            cairo_t          *cr,
-                            gdouble           x,
-                            gdouble           y,
-                            gdouble           width,
-                            gdouble           height)
-{
-  UnicoStyleFunctions *style_functions;
-
-  UNICO_CAIRO_INIT
-
-  unico_lookup_functions (UNICO_ENGINE (engine), &style_functions);
-
-  if (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_GRIP))
-    style_functions->draw_grip (engine, cr, x, y, width, height);
-  else
-    style_functions->draw_handle (engine, cr, x, y, width, height);
-}
-
-static void
-unico_engine_render_line (GtkThemingEngine *engine,
-                          cairo_t          *cr,
-                          gdouble           x0,
-                          gdouble           y0,
-                          gdouble           x1,
-                          gdouble           y1)
-{
-  UnicoStyleFunctions *style_functions;
-
-  UNICO_CAIRO_INIT
-
-  unico_lookup_functions (UNICO_ENGINE (engine), &style_functions);
-
-  style_functions->draw_line (engine, cr, x0, y0, x1, y1);
-}
-
-static void
-unico_engine_render_option (GtkThemingEngine *engine,
-                            cairo_t          *cr,
-                            gdouble           x,
-                            gdouble           y,
-                            gdouble           width,
-                            gdouble           height)
-{
-  UnicoStyleFunctions *style_functions;
-
-  UNICO_CAIRO_INIT
-
-  unico_lookup_functions (UNICO_ENGINE (engine), &style_functions);
-
-  if (!gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_MENUITEM))
-    {
-      if (unico_cairo_draw_from_texture (engine, cr, x, y, width, height))
-        return;
-    }
-
-  style_functions->draw_radio (engine, cr, x, y, width, height);
-}
-
-static void
-unico_engine_render_slider (GtkThemingEngine *engine,
-                            cairo_t          *cr,
-                            gdouble           x,
-                            gdouble           y,
-                            gdouble           width,
-                            gdouble           height,
-                            GtkOrientation    orientation)
-{
-  UnicoStyleFunctions *style_functions;
-
-  UNICO_CAIRO_INIT
-
-  unico_lookup_functions (UNICO_ENGINE (engine), &style_functions);
-
-  if (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_SCALE))
-    {
-      if (unico_cairo_draw_from_texture (engine, cr, x, y, width, height))
-        return;
-    }
-
-  style_functions->draw_slider (engine, cr, x, y, width, height, orientation);
-}
-
 void
 unico_engine_register_types (GTypeModule *module)
 {
@@ -347,176 +91,14 @@
 {
   GtkThemingEngineClass *engine_class = GTK_THEMING_ENGINE_CLASS (klass);
 
-  engine_class->render_activity    = unico_engine_render_activity;
   engine_class->render_arrow       = unico_engine_render_arrow;
-  engine_class->render_background  = unico_engine_render_background;
-  engine_class->render_check       = unico_engine_render_check;
   engine_class->render_expander    = unico_engine_render_expander;
-  engine_class->render_extension   = unico_engine_render_extension;
-  engine_class->render_focus       = unico_engine_render_focus;
-  engine_class->render_frame       = unico_engine_render_frame;
-  engine_class->render_frame_gap   = unico_engine_render_frame_gap;
-  engine_class->render_handle      = unico_engine_render_handle;
-  engine_class->render_line        = unico_engine_render_line;
-  engine_class->render_option      = unico_engine_render_option;
-  engine_class->render_slider      = unico_engine_render_slider;
-
-  gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
-                                        g_param_spec_boxed ("background-texture",
-                                                            "Background texture",
-                                                            "Background texture",
-                                                            CAIRO_GOBJECT_TYPE_PATTERN, 0));
-
-  gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
-                                        g_param_spec_boxed ("border-gradient",
-                                                            "Border gradient",
-                                                            "Border gradient",
-                                                            CAIRO_GOBJECT_TYPE_PATTERN, 0));
-
-  gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
-                                        g_param_spec_boxed ("bullet-color",
-                                                            "Bullet color",
-                                                            "Bullet color",
-                                                            GDK_TYPE_RGBA, 0));
-
-  gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
-                                        g_param_spec_boxed ("bullet-outline-color",
-                                                            "Bullet outline color",
-                                                            "Bullet outline color",
-                                                            GDK_TYPE_RGBA, 0));
-
-  gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
-                                        g_param_spec_boxed ("centroid-texture",
-                                                            "Centroid texture",
-                                                            "Centroid texture",
-                                                            CAIRO_GOBJECT_TYPE_PATTERN, 0));
-
-
-  gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
-                                        g_param_spec_boxed ("focus-border-color",
-                                                            "Focus border color",
-                                                            "Focus border color",
-                                                            GDK_TYPE_RGBA, 0));
-
-  gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
-                                        g_param_spec_int ("focus-border-radius",
-                                                          "Focus border radius",
-                                                          "Focus border radius",
-                                                          0, G_MAXINT, 0, 0));
-
-  gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
-                                        g_param_spec_boxed ("focus-fill-color",
-                                                            "Focus fill color",
-                                                            "Focus fill color",
-                                                            GDK_TYPE_RGBA, 0));
-
-  gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
-                                        g_param_spec_boxed ("focus-outer-stroke-color",
-                                                            "Focus outer stroke color",
-                                                            "Focus outer stroke color",
-                                                            GDK_TYPE_RGBA, 0));
-
-  gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
-                                        g_param_spec_int ("glow-radius",
-                                                          "Glow radius",
-                                                          "Glow radius",
-                                                          0, G_MAXINT, 0, 0));
-
-  gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
-                                        g_param_spec_boxed ("glow-color",
-                                                            "Glow color",
-                                                            "Glow color",
-                                                            GDK_TYPE_RGBA, 0));
-
-  gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
-                                        g_param_spec_boxed ("inner-stroke-color",
-                                                            "Inner stroke color",
-                                                            "Inner stroke color",
-                                                            GDK_TYPE_RGBA, 0));
-
-  gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
-                                        g_param_spec_boxed ("inner-stroke-top-color",
-                                                            "Inner stroke top color",
-                                                            "Inner stroke top color",
-                                                            GDK_TYPE_RGBA, 0));
-
-  gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
-                                        g_param_spec_boxed ("inner-stroke-right-color",
-                                                            "Inner stroke right color",
-                                                            "Inner stroke right color",
-                                                            GDK_TYPE_RGBA, 0));
-
-  gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
-                                        g_param_spec_boxed ("inner-stroke-bottom-color",
-                                                            "Inner stroke bottom color",
-                                                            "Inner stroke bottom color",
-                                                            GDK_TYPE_RGBA, 0));
-
-  gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
-                                        g_param_spec_boxed ("inner-stroke-left-color",
-                                                            "Inner stroke left color",
-                                                            "Inner stroke left color",
-                                                            GDK_TYPE_RGBA, 0));
-
-  gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
-                                        g_param_spec_boxed ("inner-stroke-gradient",
-                                                            "Inner stroke gradient",
-                                                            "Inner stroke gradient",
-                                                            CAIRO_GOBJECT_TYPE_PATTERN, 0));
-
-  gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
-                                        g_param_spec_boxed ("inner-stroke-width",
-                                                            "Inner stroke width",
-                                                            "Inner stroke width",
-                                                            GTK_TYPE_BORDER, 0));
-
-  gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
-                                        g_param_spec_boxed ("outer-stroke-color",
-                                                            "Outer stroke color",
-                                                            "Outer stroke color",
-                                                            GDK_TYPE_RGBA, 0));
-
-  gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
-                                        g_param_spec_boxed ("outer-stroke-top-color",
-                                                            "Outer stroke top color",
-                                                            "Outer stroke top color",
-                                                            GDK_TYPE_RGBA, 0));
-
-  gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
-                                        g_param_spec_boxed ("outer-stroke-right-color",
-                                                            "Outer stroke right color",
-                                                            "Outer stroke right color",
-                                                            GDK_TYPE_RGBA, 0));
-
-  gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
-                                        g_param_spec_boxed ("outer-stroke-bottom-color",
-                                                            "Outer stroke bottom color",
-                                                            "Outer stroke bottom color",
-                                                            GDK_TYPE_RGBA, 0));
-
-  gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
-                                        g_param_spec_boxed ("outer-stroke-left-color",
-                                                            "Outer stroke left color",
-                                                            "Outer stroke left color",
-                                                            GDK_TYPE_RGBA, 0));
-
-  gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
-                                        g_param_spec_boxed ("outer-stroke-gradient",
-                                                            "Outer stroke gradient",
-                                                            "Outer stroke gradient",
-                                                            CAIRO_GOBJECT_TYPE_PATTERN, 0));
-
-  gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
-                                        g_param_spec_boxed ("outer-stroke-width",
-                                                            "Outer stroke width",
-                                                            "Outer stroke width",
-                                                            GTK_TYPE_BORDER, 0));
-
-  gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
-                                        g_param_spec_boxed ("text-shadow-color",
-                                                            "Text shadow color",
-                                                            "Text shadow color",
-                                                            GDK_TYPE_RGBA, 0));
+
+  gtk_theming_engine_register_property (UNICO_NAMESPACE, NULL,
+                                        g_param_spec_boxed ("arrow-texture",
+                                                            "Arrow texture",
+                                                            "Arrow texture",
+                                                            CAIRO_GOBJECT_TYPE_PATTERN, 0));
 }
 
 static void

=== modified file 'unico/unico-types.h'
--- unico/unico-types.h	2012-02-08 12:54:39 +0000
+++ unico/unico-types.h	2012-07-25 22:49:45 +0000
@@ -32,63 +32,6 @@
 
 G_BEGIN_DECLS
 
-/* for the order in arrays */
-typedef enum /*< skip >*/ {
-  GTK_CSS_TOP,
-  GTK_CSS_RIGHT,
-  GTK_CSS_BOTTOM,
-  GTK_CSS_LEFT
-} GtkCssSide;
-
-typedef enum /*< skip >*/ {
-  GTK_CSS_TOP_LEFT,
-  GTK_CSS_TOP_RIGHT,
-  GTK_CSS_BOTTOM_RIGHT,
-  GTK_CSS_BOTTOM_LEFT
-} GtkCssCorner;
-
-typedef enum /*< skip >*/ {
-  /* CSS term: <number> */
-  GTK_CSS_NUMBER,
-  /* CSS term: <percentage> */
-  GTK_CSS_PERCENT,
-  /* CSS term: <length> */
-  GTK_CSS_PX,
-  GTK_CSS_PT,
-  GTK_CSS_EM,
-  GTK_CSS_EX,
-  GTK_CSS_PC,
-  GTK_CSS_IN,
-  GTK_CSS_CM,
-  GTK_CSS_MM,
-  /* CSS term: <angle> */
-  GTK_CSS_RAD,
-  GTK_CSS_DEG,
-  GTK_CSS_GRAD,
-  GTK_CSS_TURN
-} GtkCssUnit;
-
-typedef struct _GtkCssNumber GtkCssNumber;
-typedef struct _GtkCssBorderCornerRadius GtkCssBorderCornerRadius;
-typedef struct _GtkCssBorderRadius GtkCssBorderRadius;
-
-struct _GtkCssNumber {
-  gdouble        value;
-  GtkCssUnit     unit;
-};
-
-struct _GtkCssBorderCornerRadius {
-  GtkCssNumber horizontal;
-  GtkCssNumber vertical;
-};
-
-struct _GtkCssBorderRadius {
-  GtkCssBorderCornerRadius top_left;
-  GtkCssBorderCornerRadius top_right;
-  GtkCssBorderCornerRadius bottom_right;
-  GtkCssBorderCornerRadius bottom_left;
-};
-
 enum {
   SIDE_LEFT   = 1,
   SIDE_BOTTOM = 1 << 1,
@@ -107,8 +50,6 @@
 
 struct _UnicoStyleFunctions
 {
-  void (*draw_activity) (DRAW_ARGS);
-
   void (*draw_arrow) (GtkThemingEngine *engine,
                       cairo_t          *cr,
                       gdouble           angle,
@@ -116,58 +57,7 @@
                       gdouble           y,
                       gdouble           size);
 
-  void (*draw_cell_background) (DRAW_ARGS,
-                                GtkRegionFlags flags);
-
-  void (*draw_cell_frame) (DRAW_ARGS,
-                           GtkRegionFlags flags);
-
-  void (*draw_check) (DRAW_ARGS);
-
-  void (*draw_common) (DRAW_ARGS);
-
-  void (*draw_common_background) (DRAW_ARGS);
-
-  void (*draw_common_frame) (DRAW_ARGS);
-
   void (*draw_expander) (DRAW_ARGS);
-
-  void (*draw_extension) (DRAW_ARGS,
-                          GtkPositionType gap_side);
-
-  void (*draw_focus) (DRAW_ARGS);
-
-  void (*draw_frame_gap) (DRAW_ARGS,
-                          GtkPositionType gap_side,
-                          gdouble         xy0_gap,
-                          gdouble         xy1_gap);
-
-  void (*draw_grip) (DRAW_ARGS);
-
-  void (*draw_handle) (DRAW_ARGS);
-
-  void (*draw_line) (GtkThemingEngine *engine,
-                     cairo_t          *cr,
-                     gdouble           x0,
-                     gdouble           y0,
-                     gdouble           x1,
-                     gdouble           y1);
-
-  void (*draw_notebook) (DRAW_ARGS,
-                         GtkPositionType gap_side,
-                         gdouble         xy0_gap,
-                         gdouble         xy1_gap);
-
-  void (*draw_radio) (DRAW_ARGS);
-
-  void (*draw_separator) (DRAW_ARGS);
-
-  void (*draw_slider) (DRAW_ARGS,
-                       GtkOrientation orientation);
-
-  void (*draw_spinbutton_background) (DRAW_ARGS);
-
-  void (*draw_spinbutton_frame) (DRAW_ARGS);
 };
 
 G_END_DECLS

openSUSE Build Service is sponsored by