[beast/devel: 6/7] GXK: compile all gxk sources as C++



commit 952adc241202d7a45a8a3cffd04037c99262dea8
Author: Tim Janik <timj gnu org>
Date:   Tue Dec 18 20:20:37 2012 +0100

    GXK: compile all gxk sources as C++

 beast-gtk/gxk/Makefile.am                          |   42 ++--
 beast-gtk/gxk/glewidgets.c                         |   32 +-
 beast-gtk/gxk/{gxkaction.c => gxkaction.cc}        |  136 ++++----
 .../gxk/{gxkassortment.c => gxkassortment.cc}      |  132 ++++----
 .../gxk/{gxkauxwidgets.c => gxkauxwidgets.cc}      |   84 +++---
 beast-gtk/gxk/{gxkcanvas.c => gxkcanvas.cc}        |    2 +-
 ...cellrendererpopup.c => gxkcellrendererpopup.cc} |   50 ++--
 beast-gtk/gxk/{gxkdialog.c => gxkdialog.cc}        |  102 +++---
 beast-gtk/gxk/{gxkglobals.c => gxkglobals.cc}      |    4 +-
 .../gxk/{gxkimagecache.c => gxkimagecache.cc}      |    8 +-
 beast-gtk/gxk/{gxkled.c => gxkled.cc}              |   14 +-
 .../gxk/{gxklistwrapper.c => gxklistwrapper.cc}    |   65 ++--
 .../{gxklogadjustment.c => gxklogadjustment.cc}    |   30 +-
 .../gxk/{gxkmenubutton.c => gxkmenubutton.cc}      |  108 +++---
 beast-gtk/gxk/{gxknotebook.c => gxknotebook.cc}    |   36 +-
 .../gxk/{gxkparam-entry.c => gxkparam-entry.cc}    |   10 +-
 .../gxk/{gxkparam-label.c => gxkparam-label.cc}    |   30 +-
 .../gxk/{gxkparam-scale.c => gxkparam-scale.cc}    |   12 +-
 .../{gxkparam-spinner.c => gxkparam-spinner.cc}    |   14 +-
 .../gxk/{gxkparam-toggle.c => gxkparam-toggle.cc}  |    2 +-
 beast-gtk/gxk/{gxkparam.c => gxkparam.cc}          |   97 +++---
 beast-gtk/gxk/{gxkpolygon.c => gxkpolygon.cc}      |   18 +-
 .../gxk/{gxkrackcovers.c => gxkrackcovers.cc}      |   22 +-
 .../gxk/{gxkrackeditor.c => gxkrackeditor.cc}      |    2 +-
 beast-gtk/gxk/{gxkrackitem.c => gxkrackitem.cc}    |   16 +-
 beast-gtk/gxk/{gxkracktable.c => gxkracktable.cc}  |   53 ++--
 beast-gtk/gxk/{gxkradget.c => gxkradget.cc}        |  140 ++++----
 .../{gxkradgetfactory.c => gxkradgetfactory.cc}    |   40 ++--
 .../gxk/{gxkscrollcanvas.c => gxkscrollcanvas.cc}  |  348 ++++++++++----------
 .../gxk/{gxksimplelabel.c => gxksimplelabel.cc}    |   22 +-
 beast-gtk/gxk/{gxkspline.c => gxkspline.cc}        |   16 +-
 beast-gtk/gxk/{gxkstatusbar.c => gxkstatusbar.cc}  |   82 +++---
 beast-gtk/gxk/{gxkstock.c => gxkstock.cc}          |   38 +-
 beast-gtk/gxk/{gxktest.c => gxktest.cc}            |  219 ++++++------
 beast-gtk/gxk/{gxktexttools.c => gxktexttools.cc}  |  188 ++++++------
 beast-gtk/gxk/{gxkutils.c => gxkutils.cc}          |  281 ++++++++--------
 beast-gtk/gxk/{splinetest.c => splinetest.cc}      |    0
 po/POTSCAN                                         |   14 +-
 38 files changed, 1246 insertions(+), 1263 deletions(-)
---
diff --git a/beast-gtk/gxk/Makefile.am b/beast-gtk/gxk/Makefile.am
index 854a35b..1eb789f 100644
--- a/beast-gtk/gxk/Makefile.am
+++ b/beast-gtk/gxk/Makefile.am
@@ -28,19 +28,19 @@ gxk_headers = $(strip \
 	gxk.h \
 )
 gxk_c_sources = $(strip \
-	gxkled.c	gxkcanvas.c		gxkdialog.c	gxkauxwidgets.c \
-	gxkstatusbar.c	gxkstock.c		gxktexttools.c	gxklistwrapper.c \
-	gxkrackeditor.c	gxkutils.c		gxkpolygon.c	gxkcellrendererpopup.c \
-	gxkradget.c	gxkaction.c		gxkglobals.c	gxkradgetfactory.c \
-	glewidgets.c	gxkracktable.c		gxkrackitem.c	gxksimplelabel.c \
-	gxkparam.c	gxkscrollcanvas.c	gxkimagecache.c	gxklogadjustment.c \
-	gxkmenubutton.c	gxkspline.c		gxkassortment.c gxknotebook.c \
+	gxkled.cc	gxkcanvas.cc		gxkdialog.cc	gxkauxwidgets.cc \
+	gxkstatusbar.cc	gxkstock.cc		gxktexttools.cc	gxklistwrapper.cc \
+	gxkrackeditor.cc	gxkutils.cc		gxkpolygon.cc	gxkcellrendererpopup.cc \
+	gxkradget.cc	gxkaction.cc		gxkglobals.cc	gxkradgetfactory.cc \
+	glewidgets.c	gxkracktable.cc		gxkrackitem.cc	gxksimplelabel.cc \
+	gxkparam.cc	gxkscrollcanvas.cc	gxkimagecache.cc	gxklogadjustment.cc \
+	gxkmenubutton.cc	gxkspline.cc		gxkassortment.cc gxknotebook.cc \
 )
 gxk_extra_sources = $(strip \
-	gxkparam-entry.c	gxkparam-label.c	\
-	gxkparam-scale.c	gxkparam-spinner.c	\
-	gxkparam-toggle.c	\
-	gxkrackcovers.c		\
+	gxkparam-entry.cc	gxkparam-label.cc	\
+	gxkparam-scale.cc	gxkparam-spinner.cc	\
+	gxkparam-toggle.cc	\
+	gxkrackcovers.cc		\
 	gxkmarshal.list		\
 )
 
@@ -72,10 +72,10 @@ stamp-gxkgentypes.h: @PERLRULE@ $(gxk_headers)
 	&& (cmp -s xgen-$(@F) $(srcdir)/gxkgentypes.h || cp xgen-$(@F) $(srcdir)/gxkgentypes.h) \
 	&& rm -f xgen-$(@F) \
 	&& echo timestamp > $(@F)
-# gxkgentypes.c
-GENERATED_CLEANFILES += gxkgentypes.c
-$(libgxk_a_OBJECTS): gxkgentypes.c
-gxkgentypes.c: $(gxk_headers)
+# gxkgentypes.cc
+GENERATED_CLEANFILES += gxkgentypes.cc
+$(libgxk_a_OBJECTS): gxkgentypes.cc
+gxkgentypes.cc: $(gxk_headers)
 	( \
 	  cd $(srcdir) \
 	  && $(GLIB_MKENUMS) \
@@ -104,10 +104,10 @@ gxkmarshal.h: gxkmarshal.list
 	) > xgen-$(@F) \
 	&& cp xgen-$(@F) $@ \
 	&& rm -f xgen-$(@F)
-# gxkmarshal.c
-GENERATED_CLEANFILES += gxkmarshal.c
-$(libgxk_a_OBJECTS): gxkmarshal.c
-gxkmarshal.c: gxkmarshal.list
+# gxkmarshal.cc
+GENERATED_CLEANFILES += gxkmarshal.cc
+$(libgxk_a_OBJECTS): gxkmarshal.cc
+gxkmarshal.cc: gxkmarshal.list
 	( \
 	  cd $(srcdir) \
 	  && glib-genmarshal --prefix=gxk_marshal gxkmarshal.list --body \
@@ -126,11 +126,11 @@ progs_LDADD     = $(strip					\
 
 
 noinst_PROGRAMS += gxktest
-gxktest_SOURCES  = gxktest.c dummy.cc
+gxktest_SOURCES  = gxktest.cc
 gxktest_LDADD    = $(progs_LDADD)
 
 noinst_PROGRAMS   += splinetest
-splinetest_SOURCES = splinetest.c dummy.cc
+splinetest_SOURCES = splinetest.cc
 splinetest_LDADD   = $(progs_LDADD)
 
 
diff --git a/beast-gtk/gxk/glewidgets.c b/beast-gtk/gxk/glewidgets.c
index 3a73498..8bb6262 100644
--- a/beast-gtk/gxk/glewidgets.c
+++ b/beast-gtk/gxk/glewidgets.c
@@ -117,17 +117,17 @@ gtk_wrap_box_get_type (void)
 }
 
 static void
-gtk_wrap_box_class_init (GtkWrapBoxClass *class)
+gtk_wrap_box_class_init (GtkWrapBoxClass *klass)
 {
   GtkObjectClass *object_class;
   GtkWidgetClass *widget_class;
   GtkContainerClass *container_class;
   
-  object_class = GTK_OBJECT_CLASS (class);
-  widget_class = GTK_WIDGET_CLASS (class);
-  container_class = GTK_CONTAINER_CLASS (class);
+  object_class = GTK_OBJECT_CLASS (klass);
+  widget_class = GTK_WIDGET_CLASS (klass);
+  container_class = GTK_CONTAINER_CLASS (klass);
   
-  parent_gtkwrapbox_class = g_type_class_peek_parent (class);
+  parent_gtkwrapbox_class = g_type_class_peek_parent (klass);
   
   object_class->set_arg = gtk_wrap_box_set_arg;
   object_class->get_arg = gtk_wrap_box_get_arg;
@@ -143,7 +143,7 @@ gtk_wrap_box_class_init (GtkWrapBoxClass *class)
   container_class->set_child_property = gtk_wrap_box_set_child_property;
   container_class->get_child_property = gtk_wrap_box_get_child_property;
 
-  class->rlist_line_children = NULL;
+  klass->rlist_line_children = NULL;
   
   gtk_object_add_arg_type ("GtkWrapBox::homogeneous",
 			   GTK_TYPE_BOOL, GTK_ARG_READWRITE, ARG__gtkwrapbox_HOMOGENEOUS);
@@ -875,17 +875,17 @@ gtk_hwrap_box_get_type (void)
 }
 
 static void
-gtk_hwrap_box_class_init (GtkHWrapBoxClass *class)
+gtk_hwrap_box_class_init (GtkHWrapBoxClass *klass)
 {
   GtkObjectClass *object_class;
   GtkWidgetClass *widget_class;
   GtkContainerClass *container_class;
   GtkWrapBoxClass *wrap_box_class;
   
-  object_class = GTK_OBJECT_CLASS (class);
-  widget_class = GTK_WIDGET_CLASS (class);
-  container_class = GTK_CONTAINER_CLASS (class);
-  wrap_box_class = GTK_WRAP_BOX_CLASS (class);
+  object_class = GTK_OBJECT_CLASS (klass);
+  widget_class = GTK_WIDGET_CLASS (klass);
+  container_class = GTK_CONTAINER_CLASS (klass);
+  wrap_box_class = GTK_WRAP_BOX_CLASS (klass);
   
   parent_gtkhwrapbox_class = gtk_type_class (GTK_TYPE_WRAP_BOX);
   
@@ -1530,17 +1530,17 @@ gtk_vwrap_box_get_type (void)
 }
 
 static void
-gtk_vwrap_box_class_init (GtkVWrapBoxClass *class)
+gtk_vwrap_box_class_init (GtkVWrapBoxClass *klass)
 {
   GtkObjectClass *object_class;
   GtkWidgetClass *widget_class;
   GtkContainerClass *container_class;
   GtkWrapBoxClass *wrap_box_class;
   
-  object_class = GTK_OBJECT_CLASS (class);
-  widget_class = GTK_WIDGET_CLASS (class);
-  container_class = GTK_CONTAINER_CLASS (class);
-  wrap_box_class = GTK_WRAP_BOX_CLASS (class);
+  object_class = GTK_OBJECT_CLASS (klass);
+  widget_class = GTK_WIDGET_CLASS (klass);
+  container_class = GTK_CONTAINER_CLASS (klass);
+  wrap_box_class = GTK_WRAP_BOX_CLASS (klass);
   
   parent_gtkvwrapbox_class = gtk_type_class (GTK_TYPE_WRAP_BOX);
   
diff --git a/beast-gtk/gxk/gxkaction.c b/beast-gtk/gxk/gxkaction.cc
similarity index 84%
rename from beast-gtk/gxk/gxkaction.c
rename to beast-gtk/gxk/gxkaction.cc
index d238bb0..521ec0e 100644
--- a/beast-gtk/gxk/gxkaction.c
+++ b/beast-gtk/gxk/gxkaction.cc
@@ -64,8 +64,8 @@ static gboolean
 action_class_equals (gconstpointer v1,
                      gconstpointer v2)
 {
-  const ActionClass *c1 = v1;
-  const ActionClass *c2 = v2;
+  const ActionClass *c1 = (const ActionClass*) v1;
+  const ActionClass *c2 = (const ActionClass*) v2;
   return (c1->acheck      == c2->acheck &&
           c1->aexec       == c2->aexec &&
           c1->user_data   == c2->user_data &&
@@ -76,7 +76,7 @@ action_class_equals (gconstpointer v1,
 static guint
 action_class_hash (gconstpointer v)
 {
-  const ActionClass *c = v;
+  const ActionClass *c = (const ActionClass*) v;
   return (G_HASH_POINTER (c->acheck) ^
           G_HASH_POINTER (c->aexec) ^
           G_HASH_POINTER (c->user_data) ^
@@ -97,12 +97,12 @@ action_class_ref_new (GxkActionCheck  acheck,
   key.user_data = user_data;
   key.agroup = agroup;
   key.class_flags = class_flags;
-  c = g_hash_table_lookup (action_class_ht, &key);
+  c = (ActionClass*) g_hash_table_lookup (action_class_ht, &key);
   if (!c)
     {
-      key.agroup = agroup ? g_object_ref (agroup) : NULL;
+      key.agroup = agroup ? (GxkActionGroup*) g_object_ref (agroup) : NULL;
       key.ref_count = 1;
-      c = g_memdup (&key, sizeof (key));
+      c = (ActionClass*) g_memdup (&key, sizeof (key));
       g_hash_table_insert (action_class_ht, c, c);
     }
   else
@@ -175,8 +175,8 @@ action_entry_free (ActionEntry *entry)
 {
   while (entry->widgets)
     {
-      GtkWidget *widget = g_slist_pop_head (&entry->widgets);
-      g_object_set_qdata (widget, quark_action_entry, NULL);
+      GtkWidget *widget = (GtkWidget*) g_slist_pop_head (&entry->widgets);
+      g_object_set_qdata ((GObject*) widget, quark_action_entry, NULL);
       g_object_unref (widget);
     }
   action_class_unref (entry->klass);
@@ -186,7 +186,7 @@ action_entry_free (ActionEntry *entry)
 static ActionEntry*
 action_entry_copy (const ActionEntry *source)
 {
-  ActionEntry *entry = g_memdup (source, sizeof (source[0]));
+  ActionEntry *entry = (ActionEntry*) g_memdup (source, sizeof (source[0]));
   action_class_ref (entry->klass);
   entry->widgets = NULL;
   return entry;
@@ -202,7 +202,7 @@ GxkActionList*
 gxk_action_list_create_grouped (GxkActionGroup *agroup)
 {
   GxkActionList *alist = g_new0 (GxkActionList, 1);
-  alist->agroup = agroup ? g_object_ref (agroup) : NULL;
+  alist->agroup = agroup ? (GxkActionGroup*) g_object_ref (agroup) : NULL;
   return alist;
 }
 
@@ -257,8 +257,8 @@ action_entries_compare (gconstpointer v1,
                         gconstpointer v2,
                         gpointer      user_data)
 {
-  const ActionEntry *const*p1 = v1, *e1 = *p1;
-  const ActionEntry *const*p2 = v2, *e2 = *p2;
+  const ActionEntry *const*p1 = (const ActionEntry*const*) v1, *e1 = *p1;
+  const ActionEntry *const*p2 = (const ActionEntry*const*) v2, *e2 = *p2;
   return strcmp (e1->action.name, e2->action.name);
 }
 
@@ -328,7 +328,7 @@ static void
 widget_set_active (GxkActionGroup *agroup,
                    GtkWidget      *widget)
 {
-  ActionEntry *e = g_object_get_qdata (widget, quark_action_entry);
+  ActionEntry *e = (ActionEntry*) g_object_get_qdata ((GObject*) widget, quark_action_entry);
   if (e)
     {
       gxk_action_group_lock (agroup);
@@ -348,15 +348,15 @@ gxk_action_list_regulate_widget (GxkActionList          *alist,
   g_return_if_fail (nth < alist->n_entries);
   e = alist->entries[nth];
   e->widgets = g_slist_prepend (e->widgets, g_object_ref (widget));
-  g_object_set_qdata (widget, quark_action_entry, e);
+  g_object_set_qdata ((GObject*) widget, quark_action_entry, e);
   if (e->klass->agroup && gxk_widget_regulate_uses_active (widget))
-    g_signal_connect_object (e->klass->agroup, "changed", G_CALLBACK (widget_set_active), widget, 0);
+    g_signal_connect_object (e->klass->agroup, "changed", G_CALLBACK (widget_set_active), widget, GConnectFlags (0));
 }
 
 void
 gxk_action_list_force_regulate (GtkWidget *widget)
 {
-  ActionEntry *e = g_object_get_qdata (widget, quark_action_entry);
+  ActionEntry *e = (ActionEntry*) g_object_get_qdata ((GObject*) widget, quark_action_entry);
   if (e)
     {
       gboolean sensitive = ACTION_CHECK (e->klass->acheck, e->klass->user_data, e->action.action_id);
@@ -384,7 +384,7 @@ gxk_action_list_free (GxkActionList *alist)
 void
 gxk_action_activate_callback (gconstpointer action_data)
 {
-  const ActionEntry *e = action_data;
+  const ActionEntry *e = (const ActionEntry*) action_data;
   g_return_if_fail (e && e->klass && e->klass->ref_count > 0);
   if (!e->klass->agroup || e->klass->agroup->lock_count == 0)
     {
@@ -403,7 +403,7 @@ gxk_action_activate_callback (gconstpointer action_data)
           if (e->klass->agroup)
             gxk_action_group_lock (e->klass->agroup);
           for (wnode = e->widgets; wnode; wnode = wnode->next)
-            gxk_widget_regulate (wnode->data, sensitive, active);
+            gxk_widget_regulate ((GtkWidget*) wnode->data, sensitive, active);
           if (e->klass->agroup)
             gxk_action_group_unlock (e->klass->agroup);
         }
@@ -446,7 +446,7 @@ action_link_unref (ActionLink *alink)
 static void
 window_destroy_action_links (gpointer data)
 {
-  ActionLink *anode = data;
+  ActionLink *anode = (ActionLink*) data;
   while (anode)
     {
       ActionLink *alink = anode;
@@ -463,14 +463,14 @@ window_add_action_link (GtkWidget *window,
 {
   g_return_if_fail (GTK_IS_WIDGET (alink->widget));
   g_return_if_fail (alink->toplevel == NULL);
-  alink->next = g_object_steal_qdata (window, quark_action_links);
+  alink->next = (ActionLink*) g_object_steal_qdata ((GObject*) window, quark_action_links);
   alink->toplevel = window;
   alink->ref_count++;
-  g_object_set_qdata_full (window, quark_action_links, alink, window_destroy_action_links);
-  GSList *slist = g_object_get_qdata (window, quark_action_clients);
+  g_object_set_qdata_full ((GObject*) window, quark_action_links, alink, window_destroy_action_links);
+  GSList *slist = (GSList*) g_object_get_qdata ((GObject*) window, quark_action_clients);
   while (slist)
     {
-      ActionClient *aclient = slist->data;
+      ActionClient *aclient = (ActionClient*) slist->data;
       slist = slist->next;
       if (aclient->added_func)
         aclient->added_func (aclient->client_data, (GtkWindow*) window, alink->prefix, alink->alist, alink->widget);
@@ -483,7 +483,7 @@ window_remove_action_link (ActionLink *alink)
   GtkWidget *window = alink->toplevel;
   g_return_if_fail (GTK_IS_WIDGET (alink->toplevel));
   
-  ActionLink *last = NULL, *anode = g_object_get_qdata (window, quark_action_links);
+  ActionLink *last = NULL, *anode = (ActionLink*) g_object_get_qdata ((GObject*) window, quark_action_links);
   for (; anode; last = anode, anode = last->next)
     if (anode == alink)
       {
@@ -491,8 +491,8 @@ window_remove_action_link (ActionLink *alink)
           last->next = anode->next;
         else
           {
-            g_object_steal_qdata (window, quark_action_links);
-            g_object_set_qdata_full (window, quark_action_links, anode->next, window_destroy_action_links);
+            g_object_steal_qdata ((GObject*) window, quark_action_links);
+            g_object_set_qdata_full ((GObject*) window, quark_action_links, anode->next, window_destroy_action_links);
           }
         alink->toplevel = NULL;
         alink->next = NULL;
@@ -508,10 +508,10 @@ static GQuark  quark_widgets_downwards = 0;
 static void
 free_widget_slist (gpointer data)
 {
-  GSList *slist = data;
+  GSList *slist = (GSList*) data;
   while (slist)
     {
-      GtkWidget *widget = g_slist_pop_head (&slist);
+      GtkWidget *widget = (GtkWidget*) g_slist_pop_head (&slist);
       g_object_unref (widget);
     }
 }
@@ -536,10 +536,10 @@ gxk_action_timer_update_window (gpointer data)
   gxk_action_inc_cache_stamp();
   while (window_queue)
     {
-      GtkWidget *window = g_slist_pop_head (&window_queue);
-      ActionLink *anode = g_object_get_qdata (window, quark_action_links);
-      GSList *upwards = g_object_steal_qdata (window, quark_widgets_upwards);
-      GSList *downwards = g_object_steal_qdata (window, quark_widgets_downwards);
+      GtkWidget *window = (GtkWidget*) g_slist_pop_head (&window_queue);
+      ActionLink *anode = (ActionLink*) g_object_get_qdata ((GObject*) window, quark_action_links);
+      GSList *upwards = (GSList*) g_object_steal_qdata ((GObject*) window, quark_widgets_upwards);
+      GSList *downwards = (GSList*) g_object_steal_qdata ((GObject*) window, quark_widgets_downwards);
       GtkWidget *last = NULL;
       gboolean needs_update = FALSE;
       for (; anode; anode = anode->next)
@@ -555,13 +555,13 @@ gxk_action_timer_update_window (gpointer data)
               last = alink->widget;
               needs_update = FALSE;
               for (wnode = upwards; wnode; wnode = wnode->next)
-                if (check_ancestor (wnode->data, alink->widget))
+                if (check_ancestor ((GtkWidget*) wnode->data, alink->widget))
                   {
                     needs_update = TRUE;
                     break;
                   }
               for (wnode = needs_update ? NULL : downwards; wnode; wnode = wnode->next)
-                if (check_ancestor (alink->widget, wnode->data))
+                if (check_ancestor (alink->widget, (GtkWidget*) wnode->data))
                   {
                     needs_update = TRUE;
                     break;
@@ -579,7 +579,7 @@ gxk_action_timer_update_window (gpointer data)
               if (e->klass->agroup)
                 gxk_action_group_lock (e->klass->agroup);
               for (wnode = e->widgets; wnode; wnode = wnode->next)
-                gxk_widget_regulate (wnode->data, sensitive, active);
+                gxk_widget_regulate ((GtkWidget*) wnode->data, sensitive, active);
               if (e->klass->agroup)
                 gxk_action_group_unlock (e->klass->agroup);
             }
@@ -600,11 +600,11 @@ window_queue_action_updates (GtkWidget *window,
   gboolean need_timer = FALSE;
   if (((GObject*) window)->ref_count && upwards && ((GObject*) upwards)->ref_count)
     {
-      GSList *slist = g_object_get_qdata (window, quark_widgets_upwards);
+      GSList *slist = (GSList*) g_object_get_qdata ((GObject*) window, quark_widgets_upwards);
       if (!g_slist_find (slist, upwards))
         {
           if (!slist)
-            g_object_set_qdata_full (window, quark_widgets_upwards,
+            g_object_set_qdata_full ((GObject*) window, quark_widgets_upwards,
                                      g_slist_prepend (NULL, g_object_ref (upwards)),
                                      free_widget_slist);
           else
@@ -614,11 +614,11 @@ window_queue_action_updates (GtkWidget *window,
     }
   if (((GObject*) window)->ref_count && downwards && ((GObject*) downwards)->ref_count)
     {
-      GSList *slist = g_object_get_qdata (window, quark_widgets_downwards);
+      GSList *slist = (GSList*) g_object_get_qdata ((GObject*) window, quark_widgets_downwards);
       if (!g_slist_find (slist, downwards))
         {
           if (!slist)
-            g_object_set_qdata_full (window, quark_widgets_downwards,
+            g_object_set_qdata_full ((GObject*) window, quark_widgets_downwards,
                                      g_slist_prepend (NULL, g_object_ref (downwards)),
                                      free_widget_slist);
           else
@@ -639,28 +639,28 @@ window_queue_action_updates (GtkWidget *window,
 void
 gxk_widget_update_actions_upwards (gpointer widget)
 {
-  GtkWidget *toplevel = gtk_widget_get_toplevel (widget);
+  GtkWidget *toplevel = gtk_widget_get_toplevel ((GtkWidget*) widget);
   g_return_if_fail (GTK_IS_WIDGET (widget));
   if (GTK_IS_WINDOW (toplevel))
-    window_queue_action_updates (toplevel, widget, NULL);
+    window_queue_action_updates (toplevel, (GtkWidget*) widget, NULL);
 }
 
 void
 gxk_widget_update_actions_downwards (gpointer widget)
 {
-  GtkWidget *toplevel = gtk_widget_get_toplevel (widget);
+  GtkWidget *toplevel = gtk_widget_get_toplevel ((GtkWidget*) widget);
   g_return_if_fail (GTK_IS_WIDGET (widget));
   if (GTK_IS_WINDOW (toplevel))
-    window_queue_action_updates (toplevel, NULL, widget);
+    window_queue_action_updates (toplevel, NULL, (GtkWidget*) widget);
 }
 
 void
 gxk_widget_update_actions (gpointer widget)
 {
-  GtkWidget *toplevel = gtk_widget_get_toplevel (widget);
+  GtkWidget *toplevel = gtk_widget_get_toplevel ((GtkWidget*) widget);
   g_return_if_fail (GTK_IS_WIDGET (widget));
   if (GTK_IS_WINDOW (toplevel))
-    window_queue_action_updates (toplevel, widget, widget);
+    window_queue_action_updates (toplevel, (GtkWidget*) widget, (GtkWidget*) widget);
 }
 
 
@@ -674,12 +674,12 @@ action_idle_publisher (gpointer data)
   GDK_THREADS_ENTER ();
   while (publisher_list)
     {
-      GtkWidget *widget = g_slist_pop_head (&publisher_list);
+      GtkWidget *widget = (GtkWidget*) g_slist_pop_head (&publisher_list);
       GtkWidget *toplevel = gtk_widget_get_toplevel (widget);
-      GSList *slist = g_object_get_qdata (widget, quark_widget_actions);
+      GSList *slist = (GSList*) g_object_get_qdata ((GObject*) widget, quark_widget_actions);
       while (slist)
         {
-          ActionLink *alink = slist->data;
+          ActionLink *alink = (ActionLink*) slist->data;
           if (alink->toplevel != toplevel)
             {
               if (alink->toplevel)
@@ -709,10 +709,10 @@ publisher_update_actions (GtkWidget *widget)
 static void
 publisher_destroy_action_links (gpointer data)
 {
-  GSList *slist = data;
+  GSList *slist = (GSList*) data;
   while (slist)
     {
-      ActionLink *alink = g_slist_pop_head (&slist);
+      ActionLink *alink = (ActionLink*) g_slist_pop_head (&slist);
       if (alink->toplevel)
         window_remove_action_link (alink);
       action_link_unref (alink);
@@ -727,15 +727,15 @@ gxk_widget_publish_action_list (gpointer       widget,
   ActionLink *alink = g_new0 (ActionLink, 1);
   g_return_if_fail (GTK_IS_WIDGET (widget));
   alink->ref_count = 1;
-  alink->widget = widget;
+  alink->widget = (GtkWidget*) widget;
   alink->prefix = g_strdup (prefix);
   alink->alist = alist;
-  g_object_set_qdata_full (widget, quark_widget_actions,
-                           g_slist_prepend (g_object_steal_qdata (widget, quark_widget_actions), alink),
+  g_object_set_qdata_full ((GObject*) widget, quark_widget_actions,
+                           g_slist_prepend ((GSList*) g_object_steal_qdata ((GObject*) widget, quark_widget_actions), alink),
                            publisher_destroy_action_links);
   if (!gxk_signal_handler_exists (widget, "hierarchy_changed", G_CALLBACK (publisher_update_actions), NULL))
     g_object_connect (widget, "signal_after::hierarchy-changed", publisher_update_actions, NULL, NULL);
-  publisher_update_actions (widget);
+  publisher_update_actions ((GtkWidget*) widget);
   if (!gxk_signal_handler_exists (widget, "realize", G_CALLBACK (gxk_widget_update_actions), NULL))
     g_object_connect (widget, "signal_after::realize", gxk_widget_update_actions, NULL, NULL);
   gxk_widget_update_actions (widget);
@@ -746,10 +746,10 @@ gxk_widget_peek_action_widgets (gpointer                widget,
                                 const gchar            *prefix,
                                 gulong                  action_id)
 {
-  GSList *alinklist = g_object_get_qdata (widget, quark_widget_actions);
+  GSList *alinklist = (GSList*) g_object_get_qdata ((GObject*) widget, quark_widget_actions);
   for (; alinklist; alinklist = alinklist->next)
     {
-      ActionLink *alink = alinklist->data;
+      ActionLink *alink = (ActionLink*) alinklist->data;
       if (strcmp (alink->prefix, prefix) == 0)
         {
           guint i;
@@ -767,10 +767,10 @@ gxk_widget_republish_actions (gpointer                widget,
                               const gchar            *prefix,
                               gpointer                source_widget)
 {
-  GSList *slist, *alinks = g_object_get_qdata (source_widget, quark_widget_actions);
+  GSList *slist, *alinks = (GSList*) g_object_get_qdata ((GObject*) source_widget, quark_widget_actions);
   for (slist = alinks; slist; slist = slist->next)
     {
-      ActionLink *alink = slist->data;
+      ActionLink *alink = (ActionLink*) slist->data;
       if (strcmp (alink->prefix, prefix) == 0)
         {
           gxk_widget_publish_action_list (widget, prefix, gxk_action_list_copy (alink->alist));
@@ -855,10 +855,10 @@ gxk_window_add_action_client (GtkWindow              *window,
   ActionClient *aclient = g_new0 (ActionClient, 1);
   aclient->client_data = client_data;
   aclient->added_func = added_func;
-  GSList *slist = g_object_get_qdata (window, quark_action_clients);
-  g_object_set_qdata (window, quark_action_clients, g_slist_prepend (slist, aclient));
+  GSList *slist = (GSList*) g_object_get_qdata ((GObject*) window, quark_action_clients);
+  g_object_set_qdata ((GObject*) window, quark_action_clients, g_slist_prepend (slist, aclient));
   ActionLink *alink;
-  for (alink = g_object_get_qdata (window, quark_action_links); alink; alink = alink->next)
+  for (alink = (ActionLink*) g_object_get_qdata ((GObject*) window, quark_action_links); alink; alink = alink->next)
     aclient->added_func (aclient->client_data, window, alink->prefix, alink->alist, alink->widget);
 }
 
@@ -868,16 +868,16 @@ gxk_window_remove_action_client (GtkWindow              *window,
 {
   g_return_if_fail (GTK_IS_WINDOW (window));
   g_return_if_fail (client_data != NULL);
-  GSList *last = NULL, *slist = g_object_get_qdata (window, quark_action_clients);
+  GSList *last = NULL, *slist = (GSList*) g_object_get_qdata ((GObject*) window, quark_action_clients);
   while (slist)
     {
-      ActionClient *aclient = slist->data;
+      ActionClient *aclient = (ActionClient*) slist->data;
       if (aclient->client_data == client_data)
         {
           if (last)
             last->next = slist->next;
           else
-            g_object_set_qdata (window, quark_action_clients, slist->next);
+            g_object_set_qdata ((GObject*) window, quark_action_clients, slist->next);
           g_free (aclient);
           return;
         }
@@ -891,9 +891,9 @@ gxk_window_remove_action_client (GtkWindow              *window,
 static gulong action_group_signal_changed = 0;
 
 static void
-gxk_action_group_class_init (GxkActionGroupClass *class)
+gxk_action_group_class_init (GxkActionGroupClass *klass)
 {
-  action_group_signal_changed = g_signal_new ("changed", G_OBJECT_CLASS_TYPE (class),
+  action_group_signal_changed = g_signal_new ("changed", G_OBJECT_CLASS_TYPE (klass),
                                               G_SIGNAL_RUN_LAST,
                                               G_STRUCT_OFFSET (GxkActionGroupClass, changed),
                                               NULL, NULL, gtk_signal_default_marshaller,
@@ -917,7 +917,7 @@ gxk_action_group_get_type (void)
         0,      /* n_preallocs */
         (GInstanceInitFunc) NULL,
       };
-      type = g_type_register_static (G_TYPE_OBJECT, "GxkActionGroup", &type_info, 0);
+      type = g_type_register_static (G_TYPE_OBJECT, "GxkActionGroup", &type_info, GTypeFlags (0));
     }
   return type;
 }
@@ -933,7 +933,7 @@ gxk_action_toggle_new (void)
 GxkActionGroup*
 gxk_action_group_new (void)
 {
-  return g_object_new (GXK_TYPE_ACTION_GROUP, NULL);
+  return (GxkActionGroup*) g_object_new (GXK_TYPE_ACTION_GROUP, NULL);
 }
 
 void
diff --git a/beast-gtk/gxk/gxkassortment.c b/beast-gtk/gxk/gxkassortment.cc
similarity index 78%
rename from beast-gtk/gxk/gxkassortment.c
rename to beast-gtk/gxk/gxkassortment.cc
index 6a5c00c..9e405a8 100644
--- a/beast-gtk/gxk/gxkassortment.c
+++ b/beast-gtk/gxk/gxkassortment.cc
@@ -24,7 +24,7 @@
 static gpointer
 assortment_entry_copy (gpointer boxed)
 {
-  GxkAssortmentEntry *entry = boxed;
+  GxkAssortmentEntry *entry = (GxkAssortmentEntry*) boxed;
   entry->ref_count += 1;
   return entry;
 }
@@ -50,7 +50,7 @@ assortment_entry_free (GxkAssortmentEntry *aentry)
 static void
 assortment_entry_free_boxed (gpointer boxed)
 {
-  GxkAssortmentEntry *aentry = boxed;
+  GxkAssortmentEntry *aentry = (GxkAssortmentEntry*) boxed;
   assortment_entry_free (aentry);
 }
 
@@ -77,7 +77,7 @@ gxk_assortment_init (GxkAssortment *self)
 GxkAssortment*
 gxk_assortment_new (void)
 {
-  return g_object_new (GXK_TYPE_ASSORTMENT, NULL);
+  return (GxkAssortment*) g_object_new (GXK_TYPE_ASSORTMENT, NULL);
 }
 
 void
@@ -130,7 +130,7 @@ gxk_assortment_find_data (GxkAssortment          *self,
   GSList *slist;
   for (slist = self->entries; slist; slist = slist->next)
     {
-      GxkAssortmentEntry *entry = slist->data;
+      GxkAssortmentEntry *entry = (GxkAssortmentEntry*) slist->data;
       if (entry->user_data == entry_user_data)
         return entry;
     }
@@ -155,7 +155,7 @@ gxk_assortment_insert (GxkAssortment          *self,
   aentry->stock_icon = g_strdup (stock_icon);
   aentry->tooltip = g_strdup (tooltip);
   aentry->user_data = user_data;
-  aentry->object = object ? g_object_ref (object) : NULL;
+  aentry->object = object ? (GObject*) g_object_ref (object) : NULL;
   aentry->owner = owner;
   aentry->free_func = free_func;
   aentry->ref_count = 1;
@@ -190,9 +190,9 @@ gxk_assortment_remove (GxkAssortment          *self,
   if (self->selected == entry)
     {
       if (slist->next)
-        self->selected = slist->next->data;
+        self->selected = (GxkAssortmentEntry*) slist->next->data;
       else if (last)
-        self->selected = last->data;
+        self->selected = (GxkAssortmentEntry*) last->data;
       else
         self->selected = NULL;
       selection_changed = TRUE;
@@ -222,7 +222,7 @@ assortment_dispose (GObject *object)
   self->selected = NULL;
   while (self->entries)
     {
-      assortment_entry_free (g_slist_pop_head (&self->entries));
+      assortment_entry_free ((GxkAssortmentEntry*) g_slist_pop_head (&self->entries));
       was_selected |= self->selected != NULL;
       self->selected = NULL;
     }
@@ -239,7 +239,7 @@ assortment_finalize (GObject *object)
   self->selected = NULL;
   while (self->entries)
     {
-      assortment_entry_free (g_slist_pop_head (&self->entries));
+      assortment_entry_free ((GxkAssortmentEntry*) g_slist_pop_head (&self->entries));
       self->selected = NULL;
     }
   g_free (self->publishing_name);
@@ -248,29 +248,29 @@ assortment_finalize (GObject *object)
 }
 
 void
-gxk_assortment_class_init (GxkAssortmentClass *class)
+gxk_assortment_class_init (GxkAssortmentClass *klass)
 {
-  GObjectClass *gobject_class = G_OBJECT_CLASS (class);
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
 
   gobject_class->dispose = assortment_dispose;
   gobject_class->finalize = assortment_finalize;
 
-  signal_entry_added = g_signal_new ("entry-added", G_OBJECT_CLASS_TYPE (class),
+  signal_entry_added = g_signal_new ("entry-added", G_OBJECT_CLASS_TYPE (klass),
                                      G_SIGNAL_RUN_LAST,
                                      G_STRUCT_OFFSET (GxkAssortmentClass, entry_added),
                                      NULL, NULL,
                                      gxk_marshal_VOID__BOXED, G_TYPE_NONE, 1, GXK_TYPE_ASSORTMENT_ENTRY);
-  signal_entry_changed = g_signal_new ("entry-changed", G_OBJECT_CLASS_TYPE (class),
+  signal_entry_changed = g_signal_new ("entry-changed", G_OBJECT_CLASS_TYPE (klass),
                                        G_SIGNAL_RUN_LAST,
                                        G_STRUCT_OFFSET (GxkAssortmentClass, entry_changed),
                                        NULL, NULL,
                                        gxk_marshal_VOID__BOXED, G_TYPE_NONE, 1, GXK_TYPE_ASSORTMENT_ENTRY);
-  signal_entry_remove = g_signal_new ("entry-remove", G_OBJECT_CLASS_TYPE (class),
+  signal_entry_remove = g_signal_new ("entry-remove", G_OBJECT_CLASS_TYPE (klass),
                                       G_SIGNAL_RUN_LAST,
                                       G_STRUCT_OFFSET (GxkAssortmentClass, entry_remove),
                                       NULL, NULL,
                                       gxk_marshal_VOID__BOXED, G_TYPE_NONE, 1, GXK_TYPE_ASSORTMENT_ENTRY);
-  signal_selection_changed = g_signal_new ("selection-changed", G_OBJECT_CLASS_TYPE (class),
+  signal_selection_changed = g_signal_new ("selection-changed", G_OBJECT_CLASS_TYPE (klass),
                                            G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE,
                                            G_STRUCT_OFFSET (GxkAssortmentClass, selection_changed),
                                            NULL, NULL, gtk_signal_default_marshaller, G_TYPE_NONE, 0);
@@ -313,7 +313,7 @@ assortment_link_unref (AssortmentLink *alink)
 static void
 window_destroy_assortments (gpointer data)
 {
-  AssortmentLink *anode = data;
+  AssortmentLink *anode = (AssortmentLink*) data;
   while (anode)
     {
       AssortmentLink *alink = anode;
@@ -338,14 +338,14 @@ window_add_assortment_link (GtkWidget      *window,
   g_return_if_fail (GTK_IS_WIDGET (alink->widget));
   g_return_if_fail (alink->toplevel == NULL);
   g_return_if_fail (alink->next == NULL);
-  alink->next = g_object_steal_qdata (window, quark_window_assortments);
+  alink->next = (AssortmentLink*) g_object_steal_qdata ((GObject*) window, quark_window_assortments);
   alink->toplevel = window;
   alink->ref_count++;
-  g_object_set_qdata_full (window, quark_window_assortments, alink, window_destroy_assortments);
-  GSList *slist = g_object_get_qdata (window, quark_assortment_clients);
+  g_object_set_qdata_full ((GObject*) window, quark_window_assortments, alink, window_destroy_assortments);
+  GSList *slist = (GSList*) g_object_get_qdata ((GObject*) window, quark_assortment_clients);
   while (slist)
     {
-      AssortmentClient *aclient = slist->data;
+      AssortmentClient *aclient = (AssortmentClient*) slist->data;
       slist = slist->next;
       if (aclient->added_func)
         aclient->added_func (aclient->client_data, (GtkWindow*) window, alink->assortment, alink->widget);
@@ -358,7 +358,7 @@ window_remove_assortment_link (AssortmentLink *alink)
   GtkWidget *window = alink->toplevel;
   g_return_if_fail (GTK_IS_WINDOW (window));
 
-  AssortmentLink *last = NULL, *anode = g_object_get_qdata (window, quark_window_assortments);
+  AssortmentLink *last = NULL, *anode = (AssortmentLink*) g_object_get_qdata ((GObject*) window, quark_window_assortments);
   for (; anode; last = anode, anode = last->next)
     if (anode == alink)
       {
@@ -366,15 +366,15 @@ window_remove_assortment_link (AssortmentLink *alink)
           last->next = alink->next;
         else
           {
-            g_object_steal_qdata (window, quark_window_assortments);
-            g_object_set_qdata_full (window, quark_window_assortments, alink->next, window_destroy_assortments);
+            g_object_steal_qdata ((GObject*) window, quark_window_assortments);
+            g_object_set_qdata_full ((GObject*) window, quark_window_assortments, alink->next, window_destroy_assortments);
           }
         alink->toplevel = NULL;
         alink->next = NULL;
-        GSList *slist = g_object_get_qdata (window, quark_assortment_clients);
+        GSList *slist = (GSList*) g_object_get_qdata ((GObject*) window, quark_assortment_clients);
         while (slist)
           {
-            AssortmentClient *aclient = slist->data;
+            AssortmentClient *aclient = (AssortmentClient*) slist->data;
             slist = slist->next;
             if (aclient->removed_func)
               aclient->removed_func (aclient->client_data, (GtkWindow*) window, alink->assortment, alink->widget);
@@ -391,12 +391,12 @@ assortment_idle_publisher (gpointer data)
   GDK_THREADS_ENTER ();
   while (publisher_list)
     {
-      GtkWidget *widget = g_slist_pop_head (&publisher_list);
+      GtkWidget *widget = (GtkWidget*) g_slist_pop_head (&publisher_list);
       GtkWidget *toplevel = gtk_widget_get_toplevel (widget);
-      GSList *slist = g_object_get_qdata (widget, quark_widget_assortments);
+      GSList *slist = (GSList*) g_object_get_qdata ((GObject*) widget, quark_widget_assortments);
       while (slist)
         {
-          AssortmentLink *alink = slist->data;
+          AssortmentLink *alink = (AssortmentLink*) slist->data;
           if (alink->toplevel != toplevel)
             {
               if (alink->toplevel)
@@ -426,10 +426,10 @@ publisher_update_assortments (GtkWidget *widget)
 static void
 delete_assortment_link_list (gpointer data)
 {
-  GSList *slist = data;
+  GSList *slist = (GSList*) data;
   while (slist)
     {
-      AssortmentLink *alink = g_slist_pop_head (&slist);
+      AssortmentLink *alink = (AssortmentLink*) g_slist_pop_head (&slist);
       if (alink->toplevel)
         window_remove_assortment_link (alink);
       assortment_link_unref (alink);
@@ -446,15 +446,15 @@ gxk_widget_publish_assortment (gpointer       widget,
   g_return_if_fail (GXK_IS_ASSORTMENT (assortment));
   g_return_if_fail (assortment->publishing_name == NULL);
   assortment->publishing_name = g_strdup (publishing_name);
-  alink->assortment = g_object_ref (assortment);
+  alink->assortment = (GxkAssortment*) g_object_ref (assortment);
   alink->ref_count = 1;
-  alink->widget = widget;
-  GSList *alink_list = g_object_steal_qdata (widget, quark_widget_assortments);
+  alink->widget = (GtkWidget*) widget;
+  GSList *alink_list = (GSList*) g_object_steal_qdata ((GObject*) widget, quark_widget_assortments);
   alink_list = g_slist_prepend (alink_list, alink);
-  g_object_set_qdata_full (widget, quark_widget_assortments, alink_list, delete_assortment_link_list);
+  g_object_set_qdata_full ((GObject*) widget, quark_widget_assortments, alink_list, delete_assortment_link_list);
   if (!gxk_signal_handler_exists (widget, "hierarchy_changed", G_CALLBACK (publisher_update_assortments), NULL))
     g_object_connect (widget, "signal_after::hierarchy-changed", publisher_update_assortments, NULL, NULL);
-  publisher_update_assortments (widget);
+  publisher_update_assortments ((GtkWidget*) widget);
 }
 
 void
@@ -469,10 +469,10 @@ gxk_window_add_assortment_client (GtkWindow              *window,
   aclient->client_data = client_data;
   aclient->added_func = added_func;
   aclient->removed_func = removed_func;
-  GSList *slist = g_object_get_qdata (window, quark_assortment_clients);
-  g_object_set_qdata (window, quark_assortment_clients, g_slist_prepend (slist, aclient));
+  GSList *slist = (GSList*) g_object_get_qdata ((GObject*) window, quark_assortment_clients);
+  g_object_set_qdata ((GObject*) window, quark_assortment_clients, g_slist_prepend (slist, aclient));
   AssortmentLink *alink;
-  for (alink = g_object_get_qdata (window, quark_window_assortments); alink; alink = alink->next)
+  for (alink = (AssortmentLink*) g_object_get_qdata ((GObject*) window, quark_window_assortments); alink; alink = alink->next)
     if (aclient->added_func)
       aclient->added_func (aclient->client_data, window, alink->assortment, alink->widget);
 }
@@ -483,16 +483,16 @@ gxk_window_remove_assortment_client (GtkWindow *window,
 {
   g_return_if_fail (GTK_IS_WINDOW (window));
   g_return_if_fail (client_data != NULL);
-  GSList *last = NULL, *slist = g_object_get_qdata (window, quark_assortment_clients);
+  GSList *last = NULL, *slist = (GSList*) g_object_get_qdata ((GObject*) window, quark_assortment_clients);
   while (slist)
     {
-      AssortmentClient *aclient = slist->data;
+      AssortmentClient *aclient = (AssortmentClient*) slist->data;
       if (aclient->client_data == client_data)
         {
           if (last)
             last->next = slist->next;
           else
-            g_object_set_qdata (window, quark_assortment_clients, slist->next);
+            g_object_set_qdata ((GObject*) window, quark_assortment_clients, slist->next);
           g_free (aclient);
           return;
         }
@@ -513,20 +513,20 @@ assortment_menu_entry_added (GxkAssortment          *self,
                              GtkMenu                *menu)
 {
   gxk_assortment_block_selection (self);
-  GtkWidget *menu_item = g_object_new (GTK_TYPE_IMAGE_MENU_ITEM,
-                                       "visible", TRUE,
-                                       "user-data", entry->user_data,
-                                       NULL);
-  GtkWidget *image = g_object_new (GTK_TYPE_IMAGE, "visible", 1, NULL);
+  GtkWidget *menu_item = (GtkWidget*) g_object_new (GTK_TYPE_IMAGE_MENU_ITEM,
+                                                    "visible", TRUE,
+                                                    "user-data", entry->user_data,
+                                                    NULL);
+  GtkWidget *image = (GtkWidget*) g_object_new (GTK_TYPE_IMAGE, "visible", 1, NULL);
   gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image);
-  GtkWidget *label = g_object_new (GTK_TYPE_ACCEL_LABEL,
-                                   "visible", entry->label != NULL,
-                                   "parent", menu_item,
-                                   "accel-widget", menu_item,
-                                   "xalign", 0.0,
-                                   NULL);
-  g_object_set_data_full (menu_item, "gxk-assortment-label", g_object_ref (label), g_object_unref);
-  g_object_set_data_full (menu_item, "gxk-assortment-image", g_object_ref (image), g_object_unref);
+  GtkWidget *label = (GtkWidget*) g_object_new (GTK_TYPE_ACCEL_LABEL,
+                                                "visible", entry->label != NULL,
+                                                "parent", menu_item,
+                                                "accel-widget", menu_item,
+                                                "xalign", 0.0,
+                                                NULL);
+  g_object_set_data_full ((GObject*) menu_item, "gxk-assortment-label", g_object_ref (label), g_object_unref);
+  g_object_set_data_full ((GObject*) menu_item, "gxk-assortment-image", g_object_ref (image), g_object_unref);
   gtk_menu_shell_insert (GTK_MENU_SHELL (menu), menu_item, g_slist_index (self->entries, entry));
   gxk_assortment_unblock_selection (self);
   assortment_menu_entry_changed (self, entry, menu);
@@ -547,10 +547,10 @@ assortment_menu_entry_changed (GxkAssortment          *self,
     }
   if (list)
     {
-      GtkWidget *menu_item = list->data;
+      GtkWidget *menu_item = (GtkWidget*) list->data;
       /* using qdata to retrieve label and image because they might have been reparented (GxkMenuButton) */
-      GtkWidget *label = g_object_get_data (menu_item, "gxk-assortment-label");
-      GtkWidget *image = g_object_get_data (menu_item, "gxk-assortment-image");
+      GtkWidget *label = (GtkWidget*) g_object_get_data ((GObject*) menu_item, "gxk-assortment-label");
+      GtkWidget *image = (GtkWidget*) g_object_get_data ((GObject*) menu_item, "gxk-assortment-image");
       if (GTK_IS_LABEL (label))
         {
           if (entry->label && strcmp (gtk_label_get_text (GTK_LABEL (label)), entry->label) != 0)
@@ -563,7 +563,7 @@ assortment_menu_entry_changed (GxkAssortment          *self,
       if (GTK_IS_IMAGE (image))
         {
           gchar *ostock = NULL;
-          GtkIconSize isize = 0;
+          GtkIconSize isize = GtkIconSize (0);
           gtk_image_get_stock (GTK_IMAGE (image), &ostock, &isize);
           if (entry->stock_icon && (!ostock || strcmp (ostock, entry->stock_icon) != 0 || isize != GXK_ICON_SIZE_MENU))
             gtk_image_set_from_stock (GTK_IMAGE (image), entry->stock_icon, GXK_ICON_SIZE_MENU);
@@ -592,7 +592,7 @@ assortment_menu_entry_remove (GxkAssortment          *self,
         break;
     }
   if (list)
-    gtk_widget_destroy (list->data);
+    gtk_widget_destroy ((GtkWidget*) list->data);
 }
 
 static void
@@ -610,7 +610,7 @@ assortment_menu_selection_changed (GxkAssortment          *self,
             break;
         }
       if (list)
-        gxk_menu_set_active (menu, list->data);
+        gxk_menu_set_active (menu, (GtkWidget*) list->data);
     }
 }
 
@@ -633,14 +633,14 @@ gxk_assortment_manage_menu (GxkAssortment          *self,
   g_return_if_fail (GXK_IS_ASSORTMENT (self));
   g_return_if_fail (GTK_IS_MENU (menu));
 
-  g_signal_connect_object (self, "entry-added", G_CALLBACK (assortment_menu_entry_added), menu, 0);
-  g_signal_connect_object (self, "entry-changed", G_CALLBACK (assortment_menu_entry_changed), menu, 0);
-  g_signal_connect_object (self, "entry-remove", G_CALLBACK (assortment_menu_entry_remove), menu, 0);
-  g_signal_connect_object (self, "selection-changed", G_CALLBACK (assortment_menu_selection_changed), menu, 0);
-  g_signal_connect_object (menu, "selection-done", G_CALLBACK (assortment_menu_selection_done), self, 0);
+  g_signal_connect_object (self, "entry-added", G_CALLBACK (assortment_menu_entry_added), menu, GConnectFlags (0));
+  g_signal_connect_object (self, "entry-changed", G_CALLBACK (assortment_menu_entry_changed), menu, GConnectFlags (0));
+  g_signal_connect_object (self, "entry-remove", G_CALLBACK (assortment_menu_entry_remove), menu, GConnectFlags (0));
+  g_signal_connect_object (self, "selection-changed", G_CALLBACK (assortment_menu_selection_changed), menu, GConnectFlags (0));
+  g_signal_connect_object (menu, "selection-done", G_CALLBACK (assortment_menu_selection_done), self, GConnectFlags (0));
 
   GSList *slist;
   for (slist = self->entries; slist; slist = slist->next)
-    assortment_menu_entry_added (self, slist->data, menu);
+    assortment_menu_entry_added (self, (GxkAssortmentEntry*) slist->data, menu);
   assortment_menu_selection_changed (self, menu);
 }
diff --git a/beast-gtk/gxk/gxkauxwidgets.c b/beast-gtk/gxk/gxkauxwidgets.cc
similarity index 92%
rename from beast-gtk/gxk/gxkauxwidgets.c
rename to beast-gtk/gxk/gxkauxwidgets.cc
index 53c2d3b..9913548 100644
--- a/beast-gtk/gxk/gxkauxwidgets.c
+++ b/beast-gtk/gxk/gxkauxwidgets.cc
@@ -30,7 +30,7 @@ enum {
   MENU_ITEM_PROP_RIGHT_JUSTIFY
 };
 
-static void     gxk_menu_item_class_init           (GxkMenuItemClass    *class);
+static void     gxk_menu_item_class_init           (GxkMenuItemClass    *klass);
 static void     gxk_menu_item_set_property         (GObject             *object,
                                                     guint                param_id,
                                                     const GValue        *value,
@@ -58,8 +58,8 @@ gxk_menu_item_set_property (GObject      *object,
   GtkBin *bin = GTK_BIN (self);
   switch (param_id)
     {
-      const gchar *string, *path;
-      gchar *accel;
+      const char *string, *path;
+      char *accel;
       gboolean vbool;
     case MENU_ITEM_PROP_ULINE_LABEL:
       if (bin->child)
@@ -67,14 +67,14 @@ gxk_menu_item_set_property (GObject      *object,
       string = g_value_get_string (value);
       if (string)
         {
-          GtkWidget *label = g_object_new (GTK_TYPE_ACCEL_LABEL,
-                                           "visible", TRUE,
-                                           "label", string,
-                                           "use-underline", TRUE,
-                                           "xalign", 0.0,
-                                           "accel-widget", self,
-                                           "parent", self,
-                                           NULL);
+          GtkWidget *label = (GtkWidget*) g_object_new (GTK_TYPE_ACCEL_LABEL,
+                                                        "visible", TRUE,
+                                                        "label", string,
+                                                        "use-underline", TRUE,
+                                                        "xalign", 0.0,
+                                                        "accel-widget", self,
+                                                        "parent", self,
+                                                        NULL);
           if (g_object_get_long (self, "gxk-title-style"))
             gxk_widget_modify_as_title (label);
         }
@@ -111,16 +111,16 @@ gxk_menu_item_set_property (GObject      *object,
     case MENU_ITEM_PROP_ACCEL_PATH:
       path = g_value_get_string (value);
       gtk_menu_item_set_accel_path (mitem, path);
-      accel = g_object_get_data (self, "gxk-menu-item-accel");
+      accel = (char*) g_object_get_data ((GObject*) self, "gxk-menu-item-accel");
       goto setup_accel;
     case MENU_ITEM_PROP_ACCEL:
       accel = g_value_dup_string (value);
-      g_object_set_data_full (self, "gxk-menu-item-accel", accel, g_free);
+      g_object_set_data_full ((GObject*) self, "gxk-menu-item-accel", accel, g_free);
       path = mitem->accel_path;
     setup_accel:
       if (accel && path)
         {
-          GdkModifierType mods = 0;
+          GdkModifierType mods = GdkModifierType (0);
           guint keyval = 0;
           if (accel)
             gtk_accelerator_parse (accel, &keyval, &mods);
@@ -157,9 +157,9 @@ gxk_menu_item_init (GxkMenuItem *self)
 }
 
 static void
-gxk_menu_item_class_init (GxkMenuItemClass *class)
+gxk_menu_item_class_init (GxkMenuItemClass *klass)
 {
-  GObjectClass *gobject_class = G_OBJECT_CLASS (class);
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->set_property = gxk_menu_item_set_property;
   gobject_class->get_property = gxk_menu_item_get_property;
   g_object_class_install_property (gobject_class, MENU_ITEM_PROP_ULINE_LABEL,
@@ -195,7 +195,7 @@ gxk_menu_item_get_type (void)
         0,      /* n_preallocs */
         (GInstanceInitFunc) gxk_menu_item_init,
       };
-      type = g_type_register_static (GTK_TYPE_IMAGE_MENU_ITEM, "GxkMenuItem", &type_info, 0);
+      type = g_type_register_static (GTK_TYPE_IMAGE_MENU_ITEM, "GxkMenuItem", &type_info, GTypeFlags (0));
     }
   return type;
 }
@@ -234,21 +234,21 @@ gxk_scrolled_window_set_property (GObject      *object,
 }
 
 static void
-gxk_scrolled_window_class_init (GxkScrolledWindowClass *class)
+gxk_scrolled_window_class_init (GxkScrolledWindowClass *klass)
 {
-  GObjectClass *gobject_class = G_OBJECT_CLASS (class);
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->set_property = gxk_scrolled_window_set_property;
   g_object_class_install_property (gobject_class, SCROLLED_WINDOW_PROP_SPARE_SPACE,
                                    g_param_spec_boolean ("spare-space", NULL, NULL, FALSE, G_PARAM_WRITABLE));
-  GTK_SCROLLED_WINDOW_CLASS (class)->scrollbar_spacing = 1;
+  GTK_SCROLLED_WINDOW_CLASS (klass)->scrollbar_spacing = 1;
 }
 
 /* --- GxkFreeRadioButton --- */
 static void
-gxk_free_radio_button_class_init (GxkFreeRadioButtonClass *class)
+gxk_free_radio_button_class_init (GxkFreeRadioButtonClass *klass)
 {
-  GtkCheckButtonClass *gtk_check_button_class = g_type_class_ref (GTK_TYPE_CHECK_BUTTON);
-  GtkButtonClass *button_class = GTK_BUTTON_CLASS (class);
+  GtkCheckButtonClass *gtk_check_button_class = (GtkCheckButtonClass*) g_type_class_ref (GTK_TYPE_CHECK_BUTTON);
+  GtkButtonClass *button_class = GTK_BUTTON_CLASS (klass);
   button_class->clicked = GTK_BUTTON_CLASS (gtk_check_button_class)->clicked;
   g_type_class_unref (gtk_check_button_class);
 }
@@ -270,7 +270,7 @@ gxk_free_radio_button_get_type (void)
         0,      /* n_preallocs */
         (GInstanceInitFunc) NULL,
       };
-      type = g_type_register_static (GTK_TYPE_RADIO_BUTTON, "GxkFreeRadioButton", &type_info, 0);
+      type = g_type_register_static (GTK_TYPE_RADIO_BUTTON, "GxkFreeRadioButton", &type_info, GTypeFlags (0));
     }
   return type;
 }
@@ -281,7 +281,7 @@ enum {
   IMAGE_PROP_0,
   IMAGE_PROP_STOCK_SIZE
 };
-static void     gxk_image_class_init           (GxkImageClass       *class);
+static void     gxk_image_class_init           (GxkImageClass       *klass);
 static void     gxk_image_set_property         (GObject             *object,
                                                 guint                param_id,
                                                 const GValue        *value,
@@ -309,9 +309,9 @@ gxk_image_set_property (GObject      *object,
 }
 
 static void
-gxk_image_class_init (GxkImageClass *class)
+gxk_image_class_init (GxkImageClass *klass)
 {
-  GObjectClass *gobject_class = G_OBJECT_CLASS (class);
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->set_property = gxk_image_set_property;
   g_object_class_install_property (gobject_class, IMAGE_PROP_STOCK_SIZE,
                                    g_param_spec_string ("stock-size", NULL, NULL, NULL, G_PARAM_WRITABLE));
@@ -334,14 +334,14 @@ gxk_image_get_type (void)
         0,      /* n_preallocs */
         (GInstanceInitFunc) NULL,
       };
-      type = g_type_register_static (GTK_TYPE_IMAGE, "GxkImage", &type_info, 0);
+      type = g_type_register_static (GTK_TYPE_IMAGE, "GxkImage", &type_info, GTypeFlags (0));
     }
   return type;
 }
 
 
 /* --- GxkWidgetPatcher --- */
-static void   gxk_widget_patcher_class_init     (GxkWidgetPatcherClass  *class);
+static void   gxk_widget_patcher_class_init     (GxkWidgetPatcherClass  *klass);
 static void   gxk_widget_patcher_set_property   (GObject                *object,
                                                  guint                   param_id,
                                                  const GValue           *value,
@@ -441,10 +441,10 @@ gxk_widget_patcher_finalize (GObject *object)
   G_OBJECT_CLASS (widget_patcher_parent_class)->finalize (object);
 }
 static void
-gxk_widget_patcher_class_init (GxkWidgetPatcherClass *class)
+gxk_widget_patcher_class_init (GxkWidgetPatcherClass *klass)
 {
-  GObjectClass *gobject_class = G_OBJECT_CLASS (class);
-  widget_patcher_parent_class = g_type_class_peek_parent (class);
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  widget_patcher_parent_class = g_type_class_peek_parent (klass);
   gobject_class->set_property = gxk_widget_patcher_set_property;
   gobject_class->finalize = gxk_widget_patcher_finalize;
   g_object_class_install_property (gobject_class, PATCHER_PROP_TOOLTIP,
@@ -522,9 +522,9 @@ widget_lower_windows (GtkWidget *widget)
   for (; list; list = list->next)
     {
       gpointer user_data;
-      gdk_window_get_user_data (list->data, &user_data);
+      gdk_window_get_user_data ((GdkWindow*) list->data, &user_data);
       if (user_data == (gpointer) widget)
-        gdk_window_lower (list->data);
+        gdk_window_lower ((GdkWindow*) list->data);
     }
 }
 static void
@@ -565,7 +565,7 @@ widget_patcher_adopt (GxkRadget          *radget,
   GxkWidgetPatcher *self = GXK_WIDGET_PATCHER (radget);
   if (self->tooltip)
     {
-      gxk_widget_set_latent_tooltip (parent, self->tooltip);
+      gxk_widget_set_latent_tooltip ((GtkWidget*) parent, self->tooltip);
       if (self->tooltip_visible)
         gxk_widget_set_tooltip (parent, self->tooltip);
     }
@@ -573,13 +573,13 @@ widget_patcher_adopt (GxkRadget          *radget,
       !gxk_signal_handler_exists (parent, "event", G_CALLBACK (widget_mute_events), NULL))
     g_object_connect (parent, "signal::event", widget_mute_events, NULL, NULL);
   if (self->modify_normal_bg_as_base)
-    gxk_widget_modify_normal_bg_as_base (parent);
+    gxk_widget_modify_normal_bg_as_base ((GtkWidget*) parent);
   if (self->modify_bg_as_active)
-    gxk_widget_modify_bg_as_active (parent);
+    gxk_widget_modify_bg_as_active ((GtkWidget*) parent);
   if (self->modify_bg_as_base)
-    gxk_widget_modify_bg_as_base (parent);
+    gxk_widget_modify_bg_as_base ((GtkWidget*) parent);
   if (self->modify_base_as_bg)
-    gxk_widget_modify_base_as_bg (parent);
+    gxk_widget_modify_base_as_bg ((GtkWidget*) parent);
   if (self->lower_windows &&
       !gxk_signal_handler_exists (parent, "map", G_CALLBACK (widget_lower_windows), NULL))
     g_object_connect (parent, "signal_after::map", widget_lower_windows, NULL, NULL);
@@ -622,7 +622,7 @@ gxk_widget_patcher_get_type (void)
         0,      /* n_preallocs */
         (GInstanceInitFunc) NULL,
       };
-      type = g_type_register_static (G_TYPE_OBJECT, "GxkWidgetPatcher", &type_info, 0);
+      type = g_type_register_static (G_TYPE_OBJECT, "GxkWidgetPatcher", &type_info, GTypeFlags (0));
     }
   return type;
 }
@@ -812,8 +812,8 @@ gxk_back_shade_init (GxkBackShade *self)
 }
 
 static void
-gxk_back_shade_class_init (GxkBackShadeClass *class)
+gxk_back_shade_class_init (GxkBackShadeClass *klass)
 {
-  GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class);
+  GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
   widget_class->expose_event = back_shade_expose_event;
 }
diff --git a/beast-gtk/gxk/gxkcanvas.c b/beast-gtk/gxk/gxkcanvas.cc
similarity index 99%
rename from beast-gtk/gxk/gxkcanvas.c
rename to beast-gtk/gxk/gxkcanvas.cc
index 7af8557..4a0a5d1 100644
--- a/beast-gtk/gxk/gxkcanvas.c
+++ b/beast-gtk/gxk/gxkcanvas.cc
@@ -197,7 +197,7 @@ canvas_adjust_text_zoom (GnomeCanvasGroup *group,
   GList *list;
   for (list = group->item_list; list; list = list->next)
     {
-      GnomeCanvasItem *item = list->data;
+      GnomeCanvasItem *item = (GnomeCanvasItem*) list->data;
       if (GNOME_IS_CANVAS_TEXT (item))
 	{
 	  gdouble zoom_size = g_object_get_double (item, "zoom_size");
diff --git a/beast-gtk/gxk/gxkcellrendererpopup.c b/beast-gtk/gxk/gxkcellrendererpopup.cc
similarity index 90%
rename from beast-gtk/gxk/gxkcellrendererpopup.c
rename to beast-gtk/gxk/gxkcellrendererpopup.cc
index e855db6..cbd0a84 100644
--- a/beast-gtk/gxk/gxkcellrendererpopup.c
+++ b/beast-gtk/gxk/gxkcellrendererpopup.cc
@@ -35,7 +35,7 @@ enum {
 
 /* --- prototypes --- */
 static void	gxk_cell_renderer_popup_init		(GxkCellRendererPopup	   *self);
-static void	gxk_cell_renderer_popup_class_init	(GxkCellRendererPopupClass *class);
+static void	gxk_cell_renderer_popup_class_init	(GxkCellRendererPopupClass *klass);
 static void	gxk_cell_renderer_popup_get_property	(GObject		*object,
 							 guint			 param_id,
 							 GValue			*value,
@@ -100,18 +100,18 @@ gxk_cell_renderer_popup_get_type (void)
       
       type = g_type_register_static (GTK_TYPE_CELL_RENDERER_TEXT,
 				     "GxkCellRendererPopup",
-				     &type_info, 0);
+				     &type_info, GTypeFlags (0));
     }
   return type;
 }
 
 static void
-gxk_cell_renderer_popup_class_init (GxkCellRendererPopupClass *class)
+gxk_cell_renderer_popup_class_init (GxkCellRendererPopupClass *klass)
 {
-  GObjectClass *object_class = G_OBJECT_CLASS (class);
-  GtkCellRendererClass *cell_class = GTK_CELL_RENDERER_CLASS (class);
+  GObjectClass *object_class = G_OBJECT_CLASS (klass);
+  GtkCellRendererClass *cell_class = GTK_CELL_RENDERER_CLASS (klass);
 
-  parent_class = g_type_class_peek_parent (class);
+  parent_class = g_type_class_peek_parent (klass);
 
   object_class->get_property = gxk_cell_renderer_popup_get_property;
   object_class->set_property = gxk_cell_renderer_popup_set_property;
@@ -295,7 +295,7 @@ static void
 gxk_cell_renderer_popup_editing_done (GxkCellRendererPopup *self,
 				      GtkEntry             *entry)
 {
-  const gchar *path = g_object_get_data (self, "gxk-cell-edit-path");
+  const char *path = (const char*) g_object_get_data ((GObject*) self, "gxk-cell-edit-path");
   if (entry->editing_canceled)
     return;
   g_signal_emit_by_name (self, "edited", path, gtk_entry_get_text (entry));
@@ -325,7 +325,7 @@ gxk_cell_renderer_popup_change (GxkCellRendererPopup   *self,
 static gboolean
 gxk_cell_renderer_popup_clicked (GxkCellRendererPopup *self)
 {
-  const gchar *path = g_object_get_data (self, "gxk-cell-edit-path");
+  const char *path = (const char*) g_object_get_data ((GObject*) self, "gxk-cell-edit-path");
   if (self->dialog && GTK_WIDGET_VISIBLE (self->dialog))
     gxk_cell_renderer_popup_dialog (self, NULL);
   else
@@ -362,7 +362,7 @@ gxk_cell_renderer_popup_start_editing (GtkCellRenderer      *cell,
   GxkProxyEditable *eproxy = NULL;
   if (tcell->editable && self->text_editing)
     {
-      GtkWidget *entry = g_object_new (GTK_TYPE_ENTRY,
+      GtkWidget *entry = (GtkWidget*) g_object_new (GTK_TYPE_ENTRY,
                                        "has_frame", FALSE,
                                        "visible", TRUE,
                                        NULL);
@@ -376,27 +376,27 @@ gxk_cell_renderer_popup_start_editing (GtkCellRenderer      *cell,
         gtk_entry_set_text (GTK_ENTRY (entry), tcell->text);
       GtkCellEditable *ecell = GTK_CELL_EDITABLE (entry);
       gtk_editable_select_region (GTK_EDITABLE (entry), 0, -1);
-      eproxy = g_object_new (GXK_TYPE_PROXY_EDITABLE,
-                             "visible", TRUE,
-                             "events", GDK_BUTTON_PRESS_MASK,
-                             NULL);
-      GtkWidget *hbox = g_object_new (GTK_TYPE_HBOX,
-                                      "visible", TRUE,
-                                      "parent", eproxy,
-                                      "child", entry,
-                                      NULL);
-      GtkWidget *popup_area = g_object_new (GTK_TYPE_FRAME, "visible", self->popup_editing,
-                                            "width_request", ARROW_WIDTH, "shadow_type", GTK_SHADOW_OUT,
-                                            "child", g_object_new (GTK_TYPE_LABEL, "visible", TRUE,
-                                                                   "label", "...", NULL),
-                                            NULL);
+      eproxy = (GxkProxyEditable*) g_object_new (GXK_TYPE_PROXY_EDITABLE,
+                                                 "visible", TRUE,
+                                                 "events", GDK_BUTTON_PRESS_MASK,
+                                                 NULL);
+      GtkWidget *hbox = (GtkWidget*) g_object_new (GTK_TYPE_HBOX,
+                                                   "visible", TRUE,
+                                                   "parent", eproxy,
+                                                   "child", entry,
+                                                   NULL);
+      GtkWidget *popup_area = (GtkWidget*) g_object_new (GTK_TYPE_FRAME, "visible", self->popup_editing,
+                                                         "width_request", ARROW_WIDTH, "shadow_type", GTK_SHADOW_OUT,
+                                                         "child", g_object_new (GTK_TYPE_LABEL, "visible", TRUE,
+                                                                                "label", "...", NULL),
+                                                         NULL);
       g_object_connect (eproxy, "swapped_signal::button_press_event", gxk_cell_renderer_popup_clicked, cell, NULL);
       if (!g_signal_has_handler_pending (self, signal_popup, 0, FALSE))
         gtk_widget_set_sensitive (popup_area, FALSE);
       gtk_box_pack_start (GTK_BOX (hbox), popup_area, FALSE, FALSE, 0);
       gxk_proxy_editable_set_cell_editable (eproxy, ecell);
     }
-  g_object_set_data_full (cell, "gxk-cell-edit-path", g_strdup (path), g_free);
+  g_object_set_data_full ((GObject*) cell, "gxk-cell-edit-path", g_strdup (path), g_free);
   if (self->popup_editing && (self->auto_popup || !self->text_editing))
     g_idle_add_full (G_PRIORITY_LOW + 100,
                      gxk_cell_renderer_idle_popup,
@@ -535,7 +535,7 @@ gxk_proxy_editable_get_type (void)
       };
       type = g_type_register_static (GTK_TYPE_EVENT_BOX,
 				     "GxkProxyEditable",
-				     &type_info, 0);
+				     &type_info, GTypeFlags (0));
       g_type_add_interface_static (type,
 				   GTK_TYPE_CELL_EDITABLE,
 				   &iface_info);
diff --git a/beast-gtk/gxk/gxkdialog.c b/beast-gtk/gxk/gxkdialog.cc
similarity index 86%
rename from beast-gtk/gxk/gxkdialog.c
rename to beast-gtk/gxk/gxkdialog.cc
index b86fa9f..00a28c6 100644
--- a/beast-gtk/gxk/gxkdialog.c
+++ b/beast-gtk/gxk/gxkdialog.cc
@@ -49,28 +49,28 @@ gxk_dialog_init (GxkDialog *self)
 {
   GtkWindow *window = GTK_WINDOW (self);
   
-  self->flags = 0;
+  self->flags = GxkDialogFlags (0);
   self->pointer_loc = NULL;
   self->alive_object = NULL;
   gtk_window_set_role (window, G_OBJECT_TYPE_NAME (self));
   gxk_dialog_set_title (self, DEFAULT_TITLE);
   
   /* main box */
-  self->mbox = g_object_new (GTK_TYPE_VBOX,
-                             "visible", TRUE,
-                             "homogeneous", FALSE,
-                             "spacing", 0,
-                             "parent", window,
-                             NULL);
+  self->mbox = (GtkWidget*) g_object_new (GTK_TYPE_VBOX,
+                                          "visible", TRUE,
+                                          "homogeneous", FALSE,
+                                          "spacing", 0,
+                                          "parent", window,
+                                          NULL);
   gxk_nullify_in_object (self, &self->mbox);
-  
+
   /* user vbox */
-  self->vbox = g_object_new (GTK_TYPE_VBOX,
-                             "visible", TRUE,
-                             "homogeneous", FALSE,
-                             "spacing", 0,
-                             "parent", self->mbox,
-                             NULL);
+  self->vbox = (GtkWidget*) g_object_new (GTK_TYPE_VBOX,
+                                          "visible", TRUE,
+                                          "homogeneous", FALSE,
+                                          "spacing", 0,
+                                          "parent", self->mbox,
+                                          NULL);
   gxk_nullify_in_object (self, &self->vbox);
   
   /* status bar */
@@ -79,19 +79,19 @@ gxk_dialog_init (GxkDialog *self)
   gtk_box_pack_end (GTK_BOX (self->mbox), self->status_bar, FALSE, FALSE, 0);
   
   /* button box */
-  self->hbox = g_object_new (GTK_TYPE_HBOX,
-                             "visible", FALSE,
-                             "homogeneous", TRUE,
-                             "spacing", GXK_BUTTON_PADDING,
-                             "border_width", GXK_OUTER_BORDER,
-                             NULL);
+  self->hbox = (GtkWidget*) g_object_new (GTK_TYPE_HBOX,
+                                          "visible", FALSE,
+                                          "homogeneous", TRUE,
+                                          "spacing", GXK_BUTTON_PADDING,
+                                          "border_width", GXK_OUTER_BORDER,
+                                          NULL);
   gxk_nullify_in_object (self, &self->hbox);
   gtk_box_pack_end (GTK_BOX (self->mbox), self->hbox, FALSE, TRUE, 0);
   
   /* separator */
-  self->sep = g_object_new (GTK_TYPE_HSEPARATOR,
-                            "visible", FALSE,
-                            NULL);
+  self->sep = (GtkWidget*) g_object_new (GTK_TYPE_HSEPARATOR,
+                                         "visible", FALSE,
+                                         NULL);
   gxk_nullify_in_object (self, &self->sep);
   gtk_box_pack_end (GTK_BOX (self->mbox), self->sep, FALSE, FALSE, 0);
 }
@@ -112,15 +112,15 @@ gxk_dialog_set_property (GObject      *object,
       guint old_flags, added_flags, removed_flags;
     case PROP_ALIVE_OBJECT:
       if (self->alive_object)
-	g_signal_handlers_disconnect_by_func (self->alive_object, gtk_widget_destroy, self);
-      self->alive_object = g_value_get_object (value);
+	g_signal_handlers_disconnect_by_func (self->alive_object, (void*) gtk_widget_destroy, self);
+      self->alive_object = (GtkObject*) g_value_get_object (value);
       if (self->alive_object && G_OBJECT (self->alive_object)->ref_count)
 	g_signal_connect_swapped (self->alive_object, "destroy", G_CALLBACK (gtk_widget_destroy), self);
       else
 	self->alive_object = NULL;
       break;
     case PROP_POINTER:
-      self->pointer_loc = g_value_get_pointer (value);
+      self->pointer_loc = (void**) g_value_get_pointer (value);
       break;
     case PROP_TITLE:
       cstring = g_value_get_string (value);
@@ -133,7 +133,7 @@ gxk_dialog_set_property (GObject      *object,
       break;
     case PROP_FLAGS:
       old_flags = self->flags;
-      self->flags = g_value_get_flags (value);
+      self->flags = (GxkDialogFlags) g_value_get_flags (value);
       added_flags = self->flags & ~old_flags;
       removed_flags = old_flags & ~self->flags;
       window = GTK_WINDOW (self);
@@ -166,7 +166,7 @@ gxk_dialog_set_property (GObject      *object,
 	  /* we synthesize a delete event instead of hiding/destroying
 	   * directly, because derived classes may override delete_event
 	   */
-	  gxk_dialog_default_action (self, GTK_STOCK_CLOSE, gxk_toplevel_delete, NULL);
+	  gxk_dialog_default_action (self, GTK_STOCK_CLOSE, (void*) gxk_toplevel_delete, NULL);
 	}
       else if (removed_flags & GXK_DIALOG_DELETE_BUTTON)
 	self->flags |= GXK_DIALOG_DELETE_BUTTON;        /* some flags can't be unset */
@@ -264,12 +264,12 @@ gxk_dialog_new (gpointer       pointer_loc,
 {
   GxkDialog *dialog;
 
-  dialog = g_object_new (GXK_TYPE_DIALOG,
-			 "pointer", pointer_loc,
-			 "alive_object", alive_object,
-			 "flags", flags,
-			 "title", title ? title : DEFAULT_TITLE,
-			 NULL);
+  dialog = (GxkDialog*) g_object_new (GXK_TYPE_DIALOG,
+                                      "pointer", pointer_loc,
+                                      "alive_object", alive_object,
+                                      "flags", flags,
+                                      "title", title ? title : DEFAULT_TITLE,
+                                      NULL);
   gxk_dialog_set_title (dialog, title);
   gxk_dialog_set_child (dialog, child);
 
@@ -286,7 +286,7 @@ gxk_dialog_new_radget (gpointer        pointer_loc,
 {
   GxkRadget *radget = gxk_radget_create (domain_name, radget_name, NULL);
   if (radget)
-    return gxk_dialog_new (pointer_loc, alive_object, flags, title, radget);
+    return gxk_dialog_new (pointer_loc, alive_object, flags, title, (GtkWidget*) radget);
   else
     return NULL;
 }
@@ -446,7 +446,7 @@ gxk_dialog_set_focus (GxkDialog *self,
   g_return_if_fail (GXK_IS_DIALOG (self));
 
   if (self->focus_widget)
-    g_signal_handlers_disconnect_by_func (self->focus_widget, g_nullify_pointer, &self->focus_widget);
+    g_signal_handlers_disconnect_by_func (self->focus_widget, (void*) g_nullify_pointer, &self->focus_widget);
   self->focus_widget = focus_widget;
   g_signal_connect_swapped (self->focus_widget, "destroy", G_CALLBACK (g_nullify_pointer), &self->focus_widget);
 }
@@ -466,7 +466,7 @@ gxk_dialog_set_default (GxkDialog *self,
   g_return_if_fail (GXK_IS_DIALOG (self));
 
   if (self->default_widget)
-    g_signal_handlers_disconnect_by_func (self->default_widget, g_nullify_pointer, &self->default_widget);
+    g_signal_handlers_disconnect_by_func (self->default_widget, (void*) g_nullify_pointer, &self->default_widget);
   self->default_widget = default_widget;
   g_signal_connect_swapped (self->default_widget, "destroy", G_CALLBACK (g_nullify_pointer), &self->default_widget);
   if (!self->focus_widget && default_widget)
@@ -660,14 +660,14 @@ gxk_dialog_action_multi (GxkDialog          *self,
         self->flags |= GXK_DIALOG_DELETE_BUTTON;
 
       /* setup button */
-      button = g_object_new (GTK_TYPE_BUTTON,
-			     "can_default", TRUE,
-			     "parent", self->hbox,
-			     NULL);
+      button = (GtkWidget*) g_object_new (GTK_TYPE_BUTTON,
+                                          "can_default", TRUE,
+                                          "parent", self->hbox,
+                                          NULL);
       if (callback)
 	g_signal_connect_data (button, "clicked",
-			       callback, data, NULL,
-			       (multi_mode & GXK_DIALOG_MULTI_SWAPPED) ? G_CONNECT_SWAPPED : 0);
+			       GCallback (callback), data, NULL,
+			       GConnectFlags ((multi_mode & GXK_DIALOG_MULTI_SWAPPED) ? G_CONNECT_SWAPPED : 0));
 
       /* setup button contents */
       alignment = gtk_alignment_new (0.5, 0.5, 0.1, 0.1);
@@ -677,10 +677,10 @@ gxk_dialog_action_multi (GxkDialog          *self,
       if (image)
 	gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, TRUE, 0);
       gtk_box_pack_start (GTK_BOX (hbox),
-			  g_object_new (GTK_TYPE_LABEL,
-					"label", gxk_stock_item (action),
-					"use_underline", TRUE,
-					NULL),
+			  (GtkWidget*) g_object_new (GTK_TYPE_LABEL,
+                                                     "label", gxk_stock_item (action),
+                                                     "use_underline", TRUE,
+                                                     NULL),
 			  FALSE, TRUE, 0);
       gtk_widget_show_all (button);
 
@@ -693,11 +693,11 @@ gxk_dialog_action_multi (GxkDialog          *self,
 }
 
 static void
-gxk_dialog_class_init (GxkDialogClass *class)
+gxk_dialog_class_init (GxkDialogClass *klass)
 {
-  GObjectClass *gobject_class = G_OBJECT_CLASS (class);
-  GtkObjectClass *object_class = GTK_OBJECT_CLASS (class);
-  GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class);
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  GtkObjectClass *object_class = GTK_OBJECT_CLASS (klass);
+  GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
 
   gobject_class->finalize = gxk_dialog_finalize;
   gobject_class->set_property = gxk_dialog_set_property;
diff --git a/beast-gtk/gxk/gxkglobals.c b/beast-gtk/gxk/gxkglobals.cc
similarity index 94%
rename from beast-gtk/gxk/gxkglobals.c
rename to beast-gtk/gxk/gxkglobals.cc
index 4c3fe09..2a21a16 100644
--- a/beast-gtk/gxk/gxkglobals.c
+++ b/beast-gtk/gxk/gxkglobals.cc
@@ -47,13 +47,13 @@ gulong
 gxk_nullify_in_object (gpointer object,
                        gpointer _location)
 {
-  GObject **location = _location;
+  GObject **location = (GObject**) _location;
   GClosure *closure;
   g_return_val_if_fail (object != NULL, 0);
   g_return_val_if_fail (location != NULL, 0);
   g_return_val_if_fail (G_IS_OBJECT (object), 0);
   g_return_val_if_fail (GTK_IS_OBJECT (*location), 0);
   closure = g_cclosure_new_swap (G_CALLBACK (g_nullify_pointer), location, NULL);
-  g_object_watch_closure (object, closure);
+  g_object_watch_closure ((GObject*) object, closure);
   return g_signal_connect_closure (*location, "destroy", closure, 0);
 }
diff --git a/beast-gtk/gxk/gxkimagecache.c b/beast-gtk/gxk/gxkimagecache.cc
similarity index 95%
rename from beast-gtk/gxk/gxkimagecache.c
rename to beast-gtk/gxk/gxkimagecache.cc
index 272a0cf..c6c4de3 100644
--- a/beast-gtk/gxk/gxkimagecache.c
+++ b/beast-gtk/gxk/gxkimagecache.cc
@@ -89,7 +89,7 @@ image_cache_create_item (const gchar    *file_name,
   citem->file_name = g_strdup (file_name);
   citem->tint = tint;
   citem->saturation = saturation;
-  citem->colormap = g_object_ref (colormap);
+  citem->colormap = (GdkColormap*) g_object_ref (colormap);
   w = gdk_pixbuf_get_width (pixbuf);
   h = gdk_pixbuf_get_height (pixbuf);
   rs = gdk_pixbuf_get_rowstride (pixbuf);
@@ -119,7 +119,7 @@ image_cache_item_unuse (GxkImageCacheItem *citem)
       GSList *slist, *last = NULL;
       for (slist = image_cache; slist; last = slist, slist = last->next)
         {
-          GxkImageCacheItem *citem = slist->data;
+          GxkImageCacheItem *citem = (GxkImageCacheItem*) slist->data;
           if (citem->use_count == 0)
             {
               /* remove from list */
@@ -148,7 +148,7 @@ image_cache_find_item (const gchar    *file_name,
   GSList *slist;
   for (slist = image_cache; slist; slist = slist->next)
     {
-      GxkImageCacheItem *citem = slist->data;
+      GxkImageCacheItem *citem = (GxkImageCacheItem*) slist->data;
       if (citem->colormap == colormap &&
           strcmp (file_name, citem->file_name) == 0 &&
           tint.red >> 8 == citem->tint.red >> 8 &&
@@ -188,7 +188,7 @@ gxk_image_cache_unuse_pixmap (GdkPixmap *pixmap)
     return;
   for (slist = image_cache; slist; slist = slist->next)
     {
-      GxkImageCacheItem *citem = slist->data;
+      GxkImageCacheItem *citem = (GxkImageCacheItem*) slist->data;
       if (citem->pixmap == pixmap)
         {
           image_cache_item_unuse (citem);
diff --git a/beast-gtk/gxk/gxkled.c b/beast-gtk/gxk/gxkled.cc
similarity index 96%
rename from beast-gtk/gxk/gxkled.c
rename to beast-gtk/gxk/gxkled.cc
index 185acca..e07581d 100644
--- a/beast-gtk/gxk/gxkled.c
+++ b/beast-gtk/gxk/gxkled.cc
@@ -22,7 +22,7 @@
 
 
 /* --- prototypes --- */
-static void	gxk_led_class_init		(GxkLedClass	*class);
+static void	gxk_led_class_init		(GxkLedClass	*klass);
 static void	gxk_led_init			(GxkLed		*self);
 static void	gxk_led_finalize		(GObject	*object);
 static void	gxk_led_size_request		(GtkWidget	*widget,
@@ -64,18 +64,18 @@ gxk_led_get_type (void)
       
       type = g_type_register_static (GTK_TYPE_WIDGET,
 				     "GxkLed",
-				     &type_info, 0);
+				     &type_info, GTypeFlags (0));
     }
   return type;
 }
 
 static void
-gxk_led_class_init (GxkLedClass *class)
+gxk_led_class_init (GxkLedClass *klass)
 {
-  GObjectClass *gobject_class = G_OBJECT_CLASS (class);
-  GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class);
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
   
-  parent_class = g_type_class_peek_parent (class);
+  parent_class = g_type_class_peek_parent (klass);
   
   gobject_class->finalize = gxk_led_finalize;
   
@@ -116,7 +116,7 @@ gxk_led_finalize (GObject *object)
 gpointer
 gxk_led_new (guint color)
 {
-  GxkLed *self = g_object_new (GXK_TYPE_LED, NULL);
+  GxkLed *self = (GxkLed*) g_object_new (GXK_TYPE_LED, NULL);
   gxk_led_set_color (self, color);
   return self;
 }
diff --git a/beast-gtk/gxk/gxklistwrapper.c b/beast-gtk/gxk/gxklistwrapper.cc
similarity index 87%
rename from beast-gtk/gxk/gxklistwrapper.c
rename to beast-gtk/gxk/gxklistwrapper.cc
index 1eea563..f68bfae 100644
--- a/beast-gtk/gxk/gxklistwrapper.c
+++ b/beast-gtk/gxk/gxklistwrapper.cc
@@ -32,7 +32,7 @@ enum {
 
 
 /* --- prototypes --- */
-static void	gxk_list_wrapper_class_init		(GxkListWrapperClass	*class);
+static void	gxk_list_wrapper_class_init		(GxkListWrapperClass	*klass);
 static void	gxk_list_wrapper_init			(GxkListWrapper		*self);
 static void	gxk_list_wrapper_finalize		(GObject		*object);
 static void	gxk_list_wrapper_set_property		(GObject		*object,
@@ -77,18 +77,18 @@ gxk_list_wrapper_get_type (void)
 	NULL,	/* interface_data */
       };
       
-      type = g_type_register_static (G_TYPE_OBJECT, "GxkListWrapper", &type_info, 0);
+      type = g_type_register_static (G_TYPE_OBJECT, "GxkListWrapper", &type_info, GTypeFlags (0));
       g_type_add_interface_static (type, GTK_TYPE_TREE_MODEL, &iface_info);
     }
   return type;
 }
 
 static void
-gxk_list_wrapper_class_init (GxkListWrapperClass *class)
+gxk_list_wrapper_class_init (GxkListWrapperClass *klass)
 {
-  GObjectClass *object_class = G_OBJECT_CLASS (class);
+  GObjectClass *object_class = G_OBJECT_CLASS (klass);
   
-  parent_class = g_type_class_peek_parent (class);
+  parent_class = g_type_class_peek_parent (klass);
   
   object_class->set_property = gxk_list_wrapper_set_property;
   object_class->get_property = gxk_list_wrapper_get_property;
@@ -97,15 +97,15 @@ gxk_list_wrapper_class_init (GxkListWrapperClass *class)
   g_object_class_install_property (object_class,
 				   PROP_N_COLS,
 				   g_param_spec_uint ("n_cols", _("Number of Columns"), NULL,
-						      1, G_MAXINT, 1, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+						      1, G_MAXINT, 1, GParamFlags (G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)));
   g_object_class_install_property (object_class,
 				   PROP_COLUMN_TYPES,
 				   g_param_spec_pointer ("column_types", _("Array of column types"), NULL,
-							 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+							 GParamFlags (G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)));
   g_object_class_install_property (object_class,
 				   PROP_N_ROWS,
 				   g_param_spec_uint ("n_rows", _("Number of Rows"), NULL,
-						      0, G_MAXINT, 0, G_PARAM_READWRITE));
+						      0, G_MAXINT, 0, GParamFlags (G_PARAM_READWRITE)));
   
   signal_fill_value = g_signal_new ("fill-value",
 				    G_OBJECT_CLASS_TYPE (object_class),
@@ -150,7 +150,7 @@ gxk_list_wrapper_set_property (GObject      *object,
       break;
     case PROP_COLUMN_TYPES:
       self->column_types = g_new0 (GType, self->n_cols);
-      ctypes = g_value_get_pointer (value);
+      ctypes = (GType*) g_value_get_pointer (value);
       g_return_if_fail (ctypes != NULL);
       for (i = 0; i < self->n_cols; i++)
 	self->column_types[i] = ctypes[i];
@@ -212,10 +212,10 @@ gxk_list_wrapper_newv (guint  n_cols,
   g_return_val_if_fail (n_cols > 0, NULL);
   g_return_val_if_fail (column_types != NULL, NULL);
 
-  self = g_object_new (GXK_TYPE_LIST_WRAPPER,
-		       "n_cols", n_cols,
-		       "column_types", column_types,
-		       NULL);
+  self = (GxkListWrapper*) g_object_new (GXK_TYPE_LIST_WRAPPER,
+                                         "n_cols", n_cols,
+                                         "column_types", column_types,
+                                         NULL);
 
   return self;
 }
@@ -240,10 +240,10 @@ gxk_list_wrapper_new (guint  n_cols,
     ctypes[i] = va_arg (var_args, GType);
   va_end (var_args);
 
-  self = g_object_new (GXK_TYPE_LIST_WRAPPER,
-		       "n_cols", n_cols,
-		       "column_types", ctypes,
-		       NULL);
+  self = (GxkListWrapper*) g_object_new (GXK_TYPE_LIST_WRAPPER,
+                                         "n_cols", n_cols,
+                                         "column_types", ctypes,
+                                         NULL);
   g_free (ctypes);
 
   return self;
@@ -252,7 +252,7 @@ gxk_list_wrapper_new (guint  n_cols,
 static GtkTreeModelFlags
 gxk_list_wrapper_get_flags (GtkTreeModel *tree_model)
 {
-  return 0;
+  return GtkTreeModelFlags (0);
 }
 
 static gint
@@ -269,7 +269,7 @@ gxk_list_wrapper_get_column_type (GtkTreeModel *tree_model,
 {
   GxkListWrapper *self = GXK_LIST_WRAPPER (tree_model);
 
-  g_return_val_if_fail (index >= 0 && index < self->n_cols, G_TYPE_INVALID);
+  g_return_val_if_fail (index >= 0 && index < int (self->n_cols), G_TYPE_INVALID);
 
   return self->column_types[index];
 }
@@ -285,7 +285,7 @@ gxk_list_wrapper_get_iter (GtkTreeModel *tree_model,
   g_return_val_if_fail (gtk_tree_path_get_depth (path) > 0, FALSE);
 
   ind = gtk_tree_path_get_indices (path);
-  if (ind[0] < 0 || ind[0] >= self->n_rows)
+  if (ind[0] < 0 || ind[0] >= int (self->n_rows))
     return FALSE;		/* only happens on stamp aliasing and empty lists */
 
   iter->stamp = self->stamp;
@@ -300,11 +300,10 @@ gxk_list_wrapper_get_path (GtkTreeModel *tree_model,
 {
   GxkListWrapper *self = GXK_LIST_WRAPPER (tree_model);
   GtkTreePath *path;
-  gint i;
 
-  g_return_val_if_fail (iter->stamp == self->stamp, NULL);
+  g_return_val_if_fail (iter->stamp == int (self->stamp), NULL);
 
-  i = P2I (iter->user_data);
+  uint i = P2I (iter->user_data);
   if (i < 0 || i >= self->n_rows)
     return FALSE;		/* only happens on stamp aliasing */
 
@@ -321,14 +320,13 @@ gxk_list_wrapper_get_value (GtkTreeModel *tree_model,
 			    GValue       *value)
 {
   GxkListWrapper *self = GXK_LIST_WRAPPER (tree_model);
-  gint i;
 
-  g_return_if_fail (iter->stamp == self->stamp);
-  g_return_if_fail (column >= 0 && column < self->n_cols);
+  g_return_if_fail (iter->stamp == int (self->stamp));
+  g_return_if_fail (column >= 0 && uint (column) < self->n_cols);
 
   g_value_init (value, self->column_types[column]);
 
-  i = P2I (iter->user_data);
+  uint i = P2I (iter->user_data);
   if (i < 0 || i >= self->n_rows)
     return;			/* only happens on stamp aliasing */
 
@@ -340,11 +338,10 @@ gxk_list_wrapper_iter_next (GtkTreeModel *tree_model,
 			    GtkTreeIter  *iter)
 {
   GxkListWrapper *self = GXK_LIST_WRAPPER (tree_model);
-  gint i;
 
-  g_return_val_if_fail (iter->stamp == self->stamp, FALSE);
+  g_return_val_if_fail (iter->stamp == int (self->stamp), FALSE);
 
-  i = P2I (iter->user_data);
+  uint i = P2I (iter->user_data);
   if (i < 0 || i >= self->n_rows)
     return FALSE;		/* only happens on stamp aliasing */
 
@@ -384,7 +381,7 @@ gxk_list_wrapper_iter_nth_child (GtkTreeModel *tree_model,
   if (parent)	/* nodes of a list don't have a parent */
     return FALSE;
 
-  g_return_val_if_fail (n >= 0 && n < self->n_rows, FALSE);
+  g_return_val_if_fail (n >= 0 && uint (n) < self->n_rows, FALSE);
 
   iter->stamp = self->stamp;
   iter->user_data = I2P (n);
@@ -401,8 +398,8 @@ gxk_list_wrapper_init_tree_model_iface (GtkTreeModelIface *iface)
   iface->get_path = gxk_list_wrapper_get_path;
   iface->get_value = gxk_list_wrapper_get_value;
   iface->iter_next = gxk_list_wrapper_iter_next;
-  iface->iter_children = (gpointer) gtk_false;
-  iface->iter_parent = (gpointer) gtk_false;
+  iface->iter_children = (gboolean (*) (GtkTreeModel*, GtkTreeIter*, GtkTreeIter*)) gtk_false;
+  iface->iter_parent = (gboolean (*) (GtkTreeModel*, GtkTreeIter*, GtkTreeIter*)) gtk_false;
   iface->iter_has_child = gxk_list_wrapper_iter_has_child;
   iface->iter_n_children = gxk_list_wrapper_iter_n_children;
   iface->iter_nth_child = gxk_list_wrapper_iter_nth_child;
@@ -538,7 +535,7 @@ gxk_list_wrapper_get_index (GxkListWrapper *self,
 {
   g_return_val_if_fail (GXK_IS_LIST_WRAPPER (self), G_MAXUINT);
   g_return_val_if_fail (iter != NULL, G_MAXUINT);
-  g_return_val_if_fail (iter->stamp == self->stamp, G_MAXUINT);
+  g_return_val_if_fail (iter->stamp == int (self->stamp), G_MAXUINT);
 
   return P2I (iter->user_data);
 }
diff --git a/beast-gtk/gxk/gxklogadjustment.c b/beast-gtk/gxk/gxklogadjustment.cc
similarity index 92%
rename from beast-gtk/gxk/gxklogadjustment.c
rename to beast-gtk/gxk/gxklogadjustment.cc
index deef11e..809a083 100644
--- a/beast-gtk/gxk/gxklogadjustment.c
+++ b/beast-gtk/gxk/gxklogadjustment.cc
@@ -53,7 +53,7 @@ gxk_adapter_adjustment_from_adj (GtkAdjustment           *client,
 {
   g_return_val_if_fail (GTK_IS_ADJUSTMENT (client), NULL);
   g_return_val_if_fail (conv_func != NULL, NULL);
-  GxkAdapterAdjustment *self = g_object_new (GXK_TYPE_ADAPTER_ADJUSTMENT, NULL);
+  GxkAdapterAdjustment *self = (GxkAdapterAdjustment*) g_object_new (GXK_TYPE_ADAPTER_ADJUSTMENT, NULL);
   gxk_adapter_adjustment_set_client (self, client);
   gxk_adapter_adjustment_setup (self, conv_func, data, destroy);
   return GTK_ADJUSTMENT (self);
@@ -175,8 +175,8 @@ gxk_adapter_adjustment_set_client (GxkAdapterAdjustment *self,
   
   if (self->client)
     {
-      g_signal_handlers_disconnect_by_func (self->client, adapter_adjustment_adjust_ranges, self);
-      g_signal_handlers_disconnect_by_func (self->client, adapter_adjustment_client_value_changed, self);
+      g_signal_handlers_disconnect_by_func (self->client, (void*) adapter_adjustment_adjust_ranges, self);
+      g_signal_handlers_disconnect_by_func (self->client, (void*) adapter_adjustment_client_value_changed, self);
       g_object_unref (G_OBJECT (self->client));
     }
   self->client = client;
@@ -215,11 +215,11 @@ gxk_adapter_adjustment_setup (GxkAdapterAdjustment    *self,
 }
 
 static void
-gxk_adapter_adjustment_class_init (GxkAdapterAdjustmentClass *class)
+gxk_adapter_adjustment_class_init (GxkAdapterAdjustmentClass *klass)
 {
-  GObjectClass *gobject_class = G_OBJECT_CLASS (class);
-  GtkObjectClass *object_class = GTK_OBJECT_CLASS (class);
-  GtkAdjustmentClass *adjustment_class = GTK_ADJUSTMENT_CLASS (class);
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  GtkObjectClass *object_class = GTK_OBJECT_CLASS (klass);
+  GtkAdjustmentClass *adjustment_class = GTK_ADJUSTMENT_CLASS (klass);
   
   gobject_class->finalize = adapter_adjustment_finalize;
   
@@ -259,18 +259,18 @@ gxk_log_adjustment_get_type (void)
 	0,      /* n_preallocs */
 	(GInstanceInitFunc) log_adjustment_init,
       };
-      type = g_type_register_static (GTK_TYPE_ADJUSTMENT, "GxkLogAdjustment", &type_info, 0);
+      type = g_type_register_static (GTK_TYPE_ADJUSTMENT, "GxkLogAdjustment", &type_info, GTypeFlags (0));
     }
   return type;
 }
 
 static void
-log_adjustment_class_init (GxkLogAdjustmentClass *class)
+log_adjustment_class_init (GxkLogAdjustmentClass *klass)
 {
-  GtkObjectClass *object_class = GTK_OBJECT_CLASS (class);
-  GtkAdjustmentClass *adjustment_class = GTK_ADJUSTMENT_CLASS (class);
+  GtkObjectClass *object_class = GTK_OBJECT_CLASS (klass);
+  GtkAdjustmentClass *adjustment_class = GTK_ADJUSTMENT_CLASS (klass);
   
-  ladj_parent_class = g_type_class_peek_parent (class);
+  ladj_parent_class = g_type_class_peek_parent (klass);
   
   object_class->destroy = log_adjustment_destroy;
   
@@ -318,7 +318,7 @@ gxk_log_adjustment_from_adj (GtkAdjustment *client)
   
   g_return_val_if_fail (GTK_IS_ADJUSTMENT (client), NULL);
   
-  self = g_object_new (GXK_TYPE_LOG_ADJUSTMENT, NULL);
+  self = (GxkLogAdjustment*) g_object_new (GXK_TYPE_LOG_ADJUSTMENT, NULL);
   gxk_log_adjustment_set_client (self, client);
   
   return GTK_ADJUSTMENT (self);
@@ -335,8 +335,8 @@ gxk_log_adjustment_set_client (GxkLogAdjustment *self,
   g_object_ref (self);
   if (self->client)
     {
-      g_signal_handlers_disconnect_by_func (self->client, log_adjustment_adjust_ranges, self);
-      g_signal_handlers_disconnect_by_func (self->client, log_adjustment_client_value_changed, self);
+      g_signal_handlers_disconnect_by_func (self->client, (void*) log_adjustment_adjust_ranges, self);
+      g_signal_handlers_disconnect_by_func (self->client, (void*) log_adjustment_client_value_changed, self);
       g_object_unref (G_OBJECT (self->client));
     }
   self->client = client;
diff --git a/beast-gtk/gxk/gxkmenubutton.c b/beast-gtk/gxk/gxkmenubutton.cc
similarity index 88%
rename from beast-gtk/gxk/gxkmenubutton.c
rename to beast-gtk/gxk/gxkmenubutton.cc
index 74da87e..a7034a4 100644
--- a/beast-gtk/gxk/gxkmenubutton.c
+++ b/beast-gtk/gxk/gxkmenubutton.cc
@@ -58,7 +58,7 @@ menu_button_save_snapshot (GxkMenuButton *self)
     }
   if (!self->cslot || !GTK_WIDGET_DRAWABLE (self))
     return;
-  gdk_window_get_user_data (self->cslot->parent->window, (void*) &widget);
+  gdk_window_get_user_data (self->cslot->parent->window, (void**) &widget);
   gdk_drawable_get_size (widget->window, &width, &height);
   if (!self->bwindow)
     {
@@ -187,7 +187,7 @@ menu_find_sibling (GtkMenu *menu,
     return NULL;        /* failed to find old child */
   for (list = previous ? list->prev : list->next; list; list = previous ? list->prev : list->next)
     {
-      GtkWidget *child = list->data;
+      GtkWidget *child = (GtkWidget*) list->data;
       if (GTK_BIN (child)->child && GTK_WIDGET_IS_SENSITIVE (child))
         return child;
     }
@@ -252,7 +252,7 @@ menu_button_max_size (GxkMenuButton *self)
       guint width = 0, height = 0;
       for (list = children; list; list = list->next)
         {
-          GtkWidget *mitem = list->data;
+          GtkWidget *mitem = (GtkWidget*) list->data;
           if (GTK_WIDGET_VISIBLE (mitem))
             {
               GtkWidget *child = GTK_BIN (mitem)->child;
@@ -284,7 +284,7 @@ menu_button_remove_contents (GxkMenuButton *self)
     {
       if (self->child)
         {
-          g_signal_handlers_disconnect_by_func (self->child, menu_button_max_size, self);
+          g_signal_handlers_disconnect_by_func (self->child, (void*) menu_button_max_size, self);
           gtk_widget_set_sensitive (self->child, TRUE);
           gtk_widget_reparent (self->child, self->menu_item);
           self->child = NULL;
@@ -298,7 +298,7 @@ menu_button_remove_contents (GxkMenuButton *self)
           g_object_unref (self->image);
         }
       self->image = NULL;
-      g_signal_handlers_disconnect_by_func (self->menu_item, menu_button_proxy_state, self);
+      g_signal_handlers_disconnect_by_func (self->menu_item, (void*) menu_button_proxy_state, self);
       g_object_unref (self->menu_item);
       self->menu_item = NULL;
       gxk_widget_set_tooltip (GTK_WIDGET (self), NULL);
@@ -369,10 +369,10 @@ menu_button_detacher (GtkWidget *widget,
   GxkMenuButton *self = GXK_MENU_BUTTON (widget);
   menu_button_restore_backing (self);
   menu_button_remove_contents (self);
-  g_signal_handlers_disconnect_by_func (self->menu, gxk_menu_button_update, self);
-  g_signal_handlers_disconnect_by_func (self->menu, menu_button_max_size, self);
+  g_signal_handlers_disconnect_by_func (self->menu, (void*) gxk_menu_button_update, self);
+  g_signal_handlers_disconnect_by_func (self->menu, (void*) menu_button_max_size, self);
   self->menu = NULL;
-  g_object_notify (self, "menu");
+  g_object_notify ((GObject*) self, "menu");
 }
 
 static void
@@ -385,7 +385,7 @@ menu_button_assortment_added (gpointer                client_data,
   if (self->assortment_name && assortment->publishing_name &&
       strcmp (self->assortment_name, assortment->publishing_name) == 0)
     {
-      GtkMenu *menu = g_object_new (GTK_TYPE_MENU, NULL);
+      GtkMenu *menu = (GtkMenu*) g_object_new (GTK_TYPE_MENU, NULL);
       gxk_assortment_manage_menu (assortment, menu);
       g_object_set (self, "menu", menu, NULL);
     }
@@ -419,7 +419,7 @@ gxk_menu_button_set_property (GObject      *object,
   switch (param_id)
     {
       const gchar *cstr;
-      guint mode;
+      GxkMenuButtonMode mode;
     case MENU_BUTTON_PROP_CAN_FOCUS:
       if (self->mode == GXK_MENU_BUTTON_COMBO_MODE)
         {
@@ -435,7 +435,7 @@ gxk_menu_button_set_property (GObject      *object,
         g_object_set (self->button, "can-focus", g_value_get_boolean (value), NULL);
       break;
     case MENU_BUTTON_PROP_MODE:
-      mode = g_value_get_enum (value);
+      mode = (GxkMenuButtonMode) g_value_get_enum (value);
       if (self->mode != mode)
         {
           self->mode = mode;
@@ -443,14 +443,14 @@ gxk_menu_button_set_property (GObject      *object,
         }
       break;
     case MENU_BUTTON_PROP_RELIEF:
-      self->relief = g_value_get_enum (value);
+      self->relief = (GtkReliefStyle) g_value_get_enum (value);
       if (self->button)
         gtk_button_set_relief (GTK_BUTTON (self->button), self->relief);
       break;
     case MENU_BUTTON_PROP_MENU:
       if (self->menu)
         gtk_menu_detach (self->menu);
-      self->menu = g_value_get_object (value);
+      self->menu = (GtkMenu*) g_value_get_object (value);
       if (self->menu)
         {
           gxk_menu_attach_as_popup_with_func (self->menu, GTK_WIDGET (self), menu_button_detacher);
@@ -561,12 +561,12 @@ menu_button_create_button (GxkMenuButton *self,
                            gpointer       child)
 {
   g_return_val_if_fail (self->button == NULL, NULL);
-  self->button = g_object_new (GTK_TYPE_BUTTON,
-                               "relief", self->relief,
-                               "child", child ? gtk_widget_get_toplevel (child) : NULL,
-                               /* MENU_BUTTON_PROP_CAN_FOCUS */
-                               "can-focus", GTK_WIDGET_CAN_FOCUS (self) && self->mode != GXK_MENU_BUTTON_COMBO_MODE,
-                               NULL);
+  self->button = (GtkWidget*) g_object_new (GTK_TYPE_BUTTON,
+                                            "relief", self->relief,
+                                            "child", child ? gtk_widget_get_toplevel ((GtkWidget*) child) : NULL,
+                                            /* MENU_BUTTON_PROP_CAN_FOCUS */
+                                            "can-focus", GTK_WIDGET_CAN_FOCUS (self) && self->mode != GXK_MENU_BUTTON_COMBO_MODE,
+                                            NULL);
   gxk_nullify_in_object (self, &self->button);
   g_signal_connect_swapped (self->button, "button-press-event", G_CALLBACK (menu_button_button_press), self);
   g_signal_connect_swapped (self->button, "key-press-event", G_CALLBACK (menu_button_key_press), self);
@@ -583,7 +583,7 @@ focus_frame_expose_event (GtkWidget      *widget,
   gint width = frame->child_allocation.width + 2 * widget->style->xthickness;
   gint height =  frame->child_allocation.height + 2 * widget->style->ythickness;
   if (frame->shadow_type != GTK_SHADOW_NONE)
-    gtk_paint_focus (widget->style, widget->window, GTK_WIDGET_STATE (widget),
+    gtk_paint_focus (widget->style, widget->window, GtkStateType (GTK_WIDGET_STATE (widget)),
                      &event->area, widget, "button", x, y, width, height);
   /* have to expose our child directly */
   GtkWidget *child = GTK_BIN (frame)->child;
@@ -597,7 +597,7 @@ menu_button_layout (GxkMenuButton *self)
 {
   GtkWidget *arrow = NULL;
   GxkMenuButtonMode mode = self->mode;
-  GtkTable *table = g_object_new (GTK_TYPE_TABLE, NULL);
+  GtkTable *table = (GtkTable*) g_object_new (GTK_TYPE_TABLE, NULL);
   /* remove old contents */
   menu_button_restore_backing (self);
   menu_button_remove_contents (self);
@@ -639,36 +639,36 @@ menu_button_layout (GxkMenuButton *self)
   switch (mode)
     {
     case GXK_MENU_BUTTON_TOOL_MODE:
-      arrow = g_object_new (GTK_TYPE_ARROW,
-                            "arrow-type", GTK_ARROW_DOWN,
-                            "yalign", 0.5,
-                            NULL);
+      arrow = (GtkWidget*) g_object_new (GTK_TYPE_ARROW,
+                                         "arrow-type", GTK_ARROW_DOWN,
+                                         "yalign", 0.5,
+                                         NULL);
       break;
     case GXK_MENU_BUTTON_OPTION_MODE:
-      arrow = g_object_new (GTK_TYPE_VBOX,
-                            "child", g_object_new (GTK_TYPE_ARROW,
-                                                   "arrow-type", GTK_ARROW_UP,
-                                                   "yalign", 1.0,
-                                                   NULL),
-                            "child", g_object_new (GTK_TYPE_ARROW,
-                                                   "arrow-type", GTK_ARROW_DOWN,
-                                                   "yalign", 0.0,
-                                                   NULL),
-                            NULL);
+      arrow = (GtkWidget*) g_object_new (GTK_TYPE_VBOX,
+                                         "child", g_object_new (GTK_TYPE_ARROW,
+                                                                "arrow-type", GTK_ARROW_UP,
+                                                                "yalign", 1.0,
+                                                                NULL),
+                                         "child", g_object_new (GTK_TYPE_ARROW,
+                                                                "arrow-type", GTK_ARROW_DOWN,
+                                                                "yalign", 0.0,
+                                                                NULL),
+                                         NULL);
       break;
     case GXK_MENU_BUTTON_COMBO_MODE:
-      arrow = g_object_new (GTK_TYPE_ARROW,
-                            "arrow-type", GTK_ARROW_DOWN,
-                            "yalign", 0.5,
-                            NULL);
+      arrow = (GtkWidget*) g_object_new (GTK_TYPE_ARROW,
+                                         "arrow-type", GTK_ARROW_DOWN,
+                                         "yalign", 0.5,
+                                         NULL);
       arrow = menu_button_create_button (self, arrow);
       break;
     case GXK_MENU_BUTTON_POPUP_MODE:
-      arrow = g_object_new (GTK_TYPE_ARROW,
-                            "arrow-type", GTK_ARROW_RIGHT,
-                            "xalign", 0.5,
-                            "yalign", 0.5,
-                            NULL);
+      arrow = (GtkWidget*) g_object_new (GTK_TYPE_ARROW,
+                                         "arrow-type", GTK_ARROW_RIGHT,
+                                         "xalign", 0.5,
+                                         "yalign", 0.5,
+                                         NULL);
       break;
     }
   /* setup slots */
@@ -697,20 +697,20 @@ menu_button_layout (GxkMenuButton *self)
       break;
     case GXK_MENU_BUTTON_COMBO_MODE:            /* [image] label---    | down arrow */
       /* pack islot and cslot */
-      hbox = g_object_new (GTK_TYPE_HBOX, "spacing", 3, NULL);
+      hbox = (GtkWidget*) g_object_new (GTK_TYPE_HBOX, "spacing", 3, NULL);
       gtk_box_pack_start (GTK_BOX (hbox), self->islot, FALSE, TRUE, 0);
       gtk_box_pack_start (GTK_BOX (hbox), gtk_widget_get_toplevel (self->cslot), TRUE, TRUE, 0);
       /* setup focus frame */
-      self->fframe = g_object_new (GTK_TYPE_FRAME, "border-width", 1, "child", gtk_widget_get_toplevel (hbox), NULL);
+      self->fframe = (GtkWidget*) g_object_new (GTK_TYPE_FRAME, "border-width", 1, "child", gtk_widget_get_toplevel (hbox), NULL);
       g_signal_connect (self->fframe, "expose-event", G_CALLBACK (focus_frame_expose_event), NULL);
       gxk_nullify_in_object (self, &self->fframe);
       /* setup slots */
-      ebox = g_object_new (GTK_TYPE_EVENT_BOX, "child", gtk_widget_get_toplevel (hbox), NULL);
+      ebox = (GtkWidget*) g_object_new (GTK_TYPE_EVENT_BOX, "child", gtk_widget_get_toplevel (hbox), NULL);
       gxk_widget_modify_bg_as_base (ebox);
-      hbox = g_object_new (GTK_TYPE_HBOX, NULL);
+      hbox = (GtkWidget*) g_object_new (GTK_TYPE_HBOX, NULL);
       gtk_box_pack_start (GTK_BOX (hbox), ebox, TRUE, TRUE, 0);
       gtk_box_pack_end (GTK_BOX (hbox), arrow, FALSE, TRUE, 0);
-      frame = g_object_new (GTK_TYPE_FRAME, "child", hbox, "shadow-type", GTK_SHADOW_IN, NULL);
+      frame = (GtkWidget*) g_object_new (GTK_TYPE_FRAME, "child", hbox, "shadow-type", GTK_SHADOW_IN, NULL);
       gtk_table_attach (table, frame,
                         0, 2,                   /* left, right */
                         0, 1,                   /* top, bottom */
@@ -719,7 +719,7 @@ menu_button_layout (GxkMenuButton *self)
                         0, 0);
       break;
     case GXK_MENU_BUTTON_OPTION_MODE:           /* ---(image,label)--- | double arrow (push-in) */
-      hbox = g_object_new (GTK_TYPE_HBOX, NULL);
+      hbox = (GtkWidget*) g_object_new (GTK_TYPE_HBOX, NULL);
       gtk_box_pack_start (GTK_BOX (hbox), self->islot, FALSE, TRUE, 0);
       gtk_box_pack_start (GTK_BOX (hbox), self->cslot, FALSE, TRUE, 0);
       gtk_table_attach (table, hbox,
@@ -757,10 +757,10 @@ gxk_menu_button_init (GxkMenuButton *self)
 }
 
 static void
-gxk_menu_button_class_init (GxkMenuButtonClass *class)
+gxk_menu_button_class_init (GxkMenuButtonClass *klass)
 {
-  GObjectClass *gobject_class = G_OBJECT_CLASS (class);
-  GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class);
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
   gobject_class->set_property = gxk_menu_button_set_property;
   gobject_class->get_property = gxk_menu_button_get_property;
   gobject_class->dispose = menu_button_dispose;
@@ -784,7 +784,7 @@ gxk_menu_button_class_init (GxkMenuButtonClass *class)
   widget_class->key_press_event = menu_button_key_press;
   widget_class->mnemonic_activate = menu_button_mnemonic_activate;
   widget_class->hierarchy_changed = menu_button_hierarchy_changed;
-  menu_button_signal_changed = g_signal_new ("changed", G_OBJECT_CLASS_TYPE (class),
+  menu_button_signal_changed = g_signal_new ("changed", G_OBJECT_CLASS_TYPE (klass),
                                              G_SIGNAL_RUN_FIRST, 0, NULL, NULL,
                                              gtk_signal_default_marshaller, G_TYPE_NONE, 0);
 }
diff --git a/beast-gtk/gxk/gxknotebook.c b/beast-gtk/gxk/gxknotebook.cc
similarity index 86%
rename from beast-gtk/gxk/gxknotebook.c
rename to beast-gtk/gxk/gxknotebook.cc
index da30974..75d5ca0 100644
--- a/beast-gtk/gxk/gxknotebook.c
+++ b/beast-gtk/gxk/gxknotebook.cc
@@ -138,7 +138,7 @@ notebook_assortment_entry_added (GxkAssortment      *assortment,
         {
           GtkNotebook *notebook = GTK_NOTEBOOK (self);
           GtkWidget *tab = gxk_notebook_create_tabulator (entry->label, entry->stock_icon, entry->tooltip);
-          g_object_set_qdata (child, quark_page_data, entry->user_data);
+          g_object_set_qdata ((GObject*) child, quark_page_data, entry->user_data);
           gtk_notebook_insert_page (notebook, child, tab, g_slist_index (assortment->entries, entry));
         }
     }
@@ -153,9 +153,9 @@ notebook_assortment_entry_changed (GxkAssortment      *assortment,
   GtkNotebook *notebook = GTK_NOTEBOOK (self);
   GList *list, *children = gtk_container_get_children (GTK_CONTAINER (self));
   for (list = children; list; list = list->next)
-    if (g_object_get_qdata (list->data, quark_page_data) == entry->user_data)
+    if (g_object_get_qdata ((GObject*) list->data, quark_page_data) == entry->user_data)
       {
-        GtkWidget *tab = gtk_notebook_get_tab_label (notebook, list->data);
+        GtkWidget *tab = gtk_notebook_get_tab_label (notebook, (GtkWidget*)  list->data);
         gxk_notebook_change_tabulator (tab, entry->label, entry->stock_icon, entry->tooltip);
         break;
       }
@@ -169,10 +169,10 @@ notebook_assortment_entry_remove (GxkAssortment      *assortment,
 {
   GList *list, *children = gtk_container_get_children (GTK_CONTAINER (self));
   for (list = children; list; list = list->next)
-    if (g_object_get_qdata (list->data, quark_page_data) == entry->user_data)
+    if (g_object_get_qdata ((GObject*) list->data, quark_page_data) == entry->user_data)
       {
         GtkContainer *container = GTK_CONTAINER (self);
-        gtk_container_remove (container, list->data);
+        gtk_container_remove (container, (GtkWidget*) list->data);
         break;
       }
   g_list_free (children);
@@ -187,9 +187,9 @@ notebook_assortment_selection_changed (GxkAssortment *assortment,
     {
       GList *list, *children = gtk_container_get_children (GTK_CONTAINER (self));
       for (list = children; list; list = list->next)
-        if (g_object_get_qdata (list->data, quark_page_data) == assortment->selected->user_data)
+        if (g_object_get_qdata ((GObject*) list->data, quark_page_data) == assortment->selected->user_data)
           {
-            gxk_notebook_set_current_page_widget (notebook, list->data);
+            gxk_notebook_set_current_page_widget (notebook, (GtkWidget*) list->data);
             break;
           }
       g_list_free (children);
@@ -207,10 +207,10 @@ gxk_notebook_set_assortment (GxkNotebook    *self,
   if (self->assortment)
     {
       GtkContainer *container = GTK_CONTAINER (self);
-      g_signal_handlers_disconnect_by_func (self->assortment, notebook_assortment_entry_added, self);
-      g_signal_handlers_disconnect_by_func (self->assortment, notebook_assortment_entry_changed, self);
-      g_signal_handlers_disconnect_by_func (self->assortment, notebook_assortment_entry_remove, self);
-      g_signal_handlers_disconnect_by_func (self->assortment, notebook_assortment_selection_changed, self);
+      g_signal_handlers_disconnect_by_func (self->assortment, (void*) notebook_assortment_entry_added, self);
+      g_signal_handlers_disconnect_by_func (self->assortment, (void*) notebook_assortment_entry_changed, self);
+      g_signal_handlers_disconnect_by_func (self->assortment, (void*) notebook_assortment_entry_remove, self);
+      g_signal_handlers_disconnect_by_func (self->assortment, (void*) notebook_assortment_selection_changed, self);
       g_object_unref (self->assortment);
       GtkWidget *child = gtk_notebook_current_widget (notebook);
       while (child)
@@ -231,7 +231,7 @@ gxk_notebook_set_assortment (GxkNotebook    *self,
                         NULL);
       GSList *slist;
       for (slist = self->assortment->entries; slist; slist = slist->next)
-        notebook_assortment_entry_added (self->assortment, slist->data, self);
+        notebook_assortment_entry_added (self->assortment, (GxkAssortmentEntry*) slist->data, self);
       notebook_assortment_selection_changed (self->assortment, self);
     }
 }
@@ -248,7 +248,7 @@ gxk_notebook_switch_page (GtkNotebook     *notebook,
     {
       GtkWidget *child = gtk_notebook_current_widget (notebook);
       if (child)
-        gxk_assortment_select_data (self->assortment, g_object_get_qdata (child, quark_page_data));
+        gxk_assortment_select_data (self->assortment, g_object_get_qdata ((GObject*) child, quark_page_data));
     }
 }
 
@@ -273,12 +273,12 @@ gxk_notebook_finalize (GObject *object)
 }
 
 static void
-gxk_notebook_class_init (GxkNotebookClass *class)
+gxk_notebook_class_init (GxkNotebookClass *klass)
 {
-  GObjectClass *gobject_class = G_OBJECT_CLASS (class);
-  GtkObjectClass *object_class = GTK_OBJECT_CLASS (class);
-  GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class);
-  GtkNotebookClass *notebook_class = GTK_NOTEBOOK_CLASS (class);
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  GtkObjectClass *object_class = GTK_OBJECT_CLASS (klass);
+  GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+  GtkNotebookClass *notebook_class = GTK_NOTEBOOK_CLASS (klass);
   
   quark_page_data = g_quark_from_static_string ("gxk-notebook-page-data");
 
diff --git a/beast-gtk/gxk/gxkparam-entry.c b/beast-gtk/gxk/gxkparam-entry.cc
similarity index 86%
rename from beast-gtk/gxk/gxkparam-entry.c
rename to beast-gtk/gxk/gxkparam-entry.cc
index 1a969f5..771bcdd 100644
--- a/beast-gtk/gxk/gxkparam-entry.c
+++ b/beast-gtk/gxk/gxkparam-entry.cc
@@ -38,11 +38,11 @@ param_entry_create (GxkParam    *param,
                     const gchar *tooltip,
                     guint        variant)
 {
-  GtkWidget *widget = g_object_new (GTK_TYPE_ENTRY,
-                                    "visible", TRUE,
-                                    "activates_default", TRUE,
-                                    "width_chars", 0,
-                                    NULL);
+  GtkWidget *widget = (GtkWidget*) g_object_new (GTK_TYPE_ENTRY,
+                                                 "visible", TRUE,
+                                                 "activates_default", TRUE,
+                                                 "width_chars", 0,
+                                                 NULL);
   const GxkParamEditorSizes *esizes = gxk_param_get_editor_sizes (param);
   gxk_widget_add_font_requisition (widget, esizes->string_chars, esizes->string_digits);
   gxk_param_entry_connect_handlers (param, widget, param_entry_changed);
diff --git a/beast-gtk/gxk/gxkparam-label.c b/beast-gtk/gxk/gxkparam-label.cc
similarity index 69%
rename from beast-gtk/gxk/gxkparam-label.c
rename to beast-gtk/gxk/gxkparam-label.cc
index b95a732..1e3f162 100644
--- a/beast-gtk/gxk/gxkparam-label.c
+++ b/beast-gtk/gxk/gxkparam-label.cc
@@ -27,25 +27,25 @@ param_label_create (GxkParam    *param,
                     const gchar *tooltip,
                     guint        variant)
 {
-  GtkWidget *widget, *parent = g_object_new (GTK_TYPE_ALIGNMENT,
-                                             "visible", TRUE,
-                                             "xalign", 0.5,
-                                             "yalign", 0.5,
-                                             "xscale", 0.0,
-                                             "yscale", 0.0,
-                                             NULL);
+  GtkWidget *widget, *parent = (GtkWidget*) g_object_new (GTK_TYPE_ALIGNMENT,
+                                                          "visible", TRUE,
+                                                          "xalign", 0.5,
+                                                          "yalign", 0.5,
+                                                          "xscale", 0.0,
+                                                          "yscale", 0.0,
+                                                          NULL);
   if (tooltip)
     {
-      parent = g_object_new (GTK_TYPE_EVENT_BOX,
-                             "visible", TRUE,
-                             "parent", parent,
-                             NULL);
+      parent = (GtkWidget*) g_object_new (GTK_TYPE_EVENT_BOX,
+                                          "visible", TRUE,
+                                          "parent", parent,
+                                          NULL);
       gxk_widget_set_tooltip (parent, tooltip);
     }
-  widget = g_object_new (GTK_TYPE_LABEL,
-                         "visible", TRUE,
-                         "parent", parent,
-                         NULL);
+  widget = (GtkWidget*) g_object_new (GTK_TYPE_LABEL,
+                                      "visible", TRUE,
+                                      "parent", parent,
+                                      NULL);
   if (variant == PARAM_LABEL_IDENT)
     gtk_label_set_text (GTK_LABEL (widget), g_param_spec_get_name (param->pspec));
   if (variant == PARAM_LABEL_NAME)
diff --git a/beast-gtk/gxk/gxkparam-scale.c b/beast-gtk/gxk/gxkparam-scale.cc
similarity index 91%
rename from beast-gtk/gxk/gxkparam-scale.c
rename to beast-gtk/gxk/gxkparam-scale.cc
index 19629a1..002dbd0 100644
--- a/beast-gtk/gxk/gxkparam-scale.c
+++ b/beast-gtk/gxk/gxkparam-scale.cc
@@ -63,12 +63,12 @@ param_scale_create (GxkParam    *param,
     adjustment = gxk_param_get_decibel_adjustment (param);
   if (!adjustment)
     adjustment = gxk_param_get_adjustment (param);
-  widget = g_object_new (variant >= PARAM_SCALE_VERTICAL ? GTK_TYPE_VSCALE : GTK_TYPE_HSCALE,
-                         "adjustment", adjustment,
-                         "draw_value", FALSE,
-                         "visible", TRUE,
-                         "can_focus", FALSE,
-                         NULL);
+  widget = (GtkWidget*) g_object_new (variant >= PARAM_SCALE_VERTICAL ? GTK_TYPE_VSCALE : GTK_TYPE_HSCALE,
+                                      "adjustment", adjustment,
+                                      "draw_value", FALSE,
+                                      "visible", TRUE,
+                                      "can_focus", FALSE,
+                                      NULL);
   g_object_connect (widget,
                     "signal_after::size_request",
                     variant >= PARAM_SCALE_VERTICAL ? param_scale_vscale_size_request : param_scale_hscale_size_request,
diff --git a/beast-gtk/gxk/gxkparam-spinner.c b/beast-gtk/gxk/gxkparam-spinner.cc
similarity index 90%
rename from beast-gtk/gxk/gxkparam-spinner.c
rename to beast-gtk/gxk/gxkparam-spinner.cc
index 8661591..cff5b80 100644
--- a/beast-gtk/gxk/gxkparam-spinner.c
+++ b/beast-gtk/gxk/gxkparam-spinner.cc
@@ -71,13 +71,13 @@ param_spinner_create (GxkParam    *param,
       digits = MIN (digits, vdigits);
     }
   /* creation & setup */
-  GtkWidget *widget = g_object_new (GTK_TYPE_SPIN_BUTTON,
-                                    "visible", TRUE,
-                                    "activates_default", TRUE,
-                                    "adjustment", adjustment,
-                                    "digits", fracts,
-                                    "width_chars", 0,
-                                    NULL);
+  GtkWidget *widget = (GtkWidget*) g_object_new (GTK_TYPE_SPIN_BUTTON,
+                                                 "visible", TRUE,
+                                                 "activates_default", TRUE,
+                                                 "adjustment", adjustment,
+                                                 "digits", fracts,
+                                                 "width_chars", 0,
+                                                 NULL);
   gxk_param_add_grab_widget (param, widget);
   gxk_widget_add_font_requisition (widget, chars, digits + (esize->request_fractions ? fracts : 0));
   gxk_param_entry_connect_handlers (param, widget, NULL);
diff --git a/beast-gtk/gxk/gxkparam-toggle.c b/beast-gtk/gxk/gxkparam-toggle.cc
similarity index 97%
rename from beast-gtk/gxk/gxkparam-toggle.c
rename to beast-gtk/gxk/gxkparam-toggle.cc
index d909f31..8a131c2 100644
--- a/beast-gtk/gxk/gxkparam-toggle.c
+++ b/beast-gtk/gxk/gxkparam-toggle.cc
@@ -46,7 +46,7 @@ param_toggle_create (GxkParam    *param,
     type = GTK_TYPE_TOGGLE_BUTTON;
   else if (g_param_spec_check_option (param->pspec, "radio"))
     type = GXK_TYPE_FREE_RADIO_BUTTON;
-  widget = g_object_new (type, "visible", TRUE, NULL);
+  widget = (GtkWidget*) g_object_new (type, "visible", TRUE, NULL);
   g_object_connect (widget,
 		    "signal::clicked", param_toggle_change_value, param,
 		    NULL);
diff --git a/beast-gtk/gxk/gxkparam.c b/beast-gtk/gxk/gxkparam.cc
similarity index 92%
rename from beast-gtk/gxk/gxkparam.c
rename to beast-gtk/gxk/gxkparam.cc
index affa3d9..e0f5ee8 100644
--- a/beast-gtk/gxk/gxkparam.c
+++ b/beast-gtk/gxk/gxkparam.cc
@@ -36,7 +36,7 @@ param_update_flags (GxkParam *param)
   if (was_sensitive != param->sensitive)
     for (slist = param->objects; slist; slist = slist->next)
       if (GTK_IS_WIDGET (slist->data))
-        gtk_widget_set_sensitive (slist->data, param->sensitive);
+        gtk_widget_set_sensitive ((GtkWidget*) slist->data, param->sensitive);
 }
 
 static GxkParam*
@@ -45,7 +45,7 @@ param_new (GParamSpec      *pspec,
            GxkParamBinding *binding,
            gpointer         user_data)
 {
-  GxkParam *param = g_malloc0 (sizeof (GxkParam) + sizeof (param->bdata[0]) * (MAX (binding->n_data_fields, 1) - 1));
+  GxkParam *param = (GxkParam*) g_malloc0 (sizeof (GxkParam) + sizeof (param->bdata[0]) * (MAX (binding->n_data_fields, 1) - 1));
   param->pspec = g_param_spec_ref (pspec);
   g_param_spec_sink (pspec);
   g_value_init (&param->value, G_PARAM_SPEC_VALUE_TYPE (pspec));
@@ -91,13 +91,13 @@ static void
 param_call_update (GxkParam *param,
                    gpointer object)
 {
-  GxkParamUpdateFunc ufunc = g_object_get_data (object, "GxkParamUpdateFunc");
+  GxkParamUpdateFunc ufunc = (GxkParamUpdateFunc) g_object_get_data ((GObject*) object, "GxkParamUpdateFunc");
   if (ufunc)
     {
       gboolean updating = param->updating;
       param->updating = TRUE;   /* protect value from change-notifications during setup */
       gboolean was_greadonly = param->greadonly;
-      ufunc (param, object);
+      ufunc (param, (GtkObject*) object);
       if (was_greadonly != param->greadonly)
         param_update_flags (param);     /* update() may change greadonly */
       param->updating = updating;
@@ -110,7 +110,7 @@ gxk_object_set_param_callback (GtkObject          *object,
 {
   /* sets the callback to apply param->value to object (update GUI) */
   g_return_if_fail (GTK_IS_OBJECT (object));
-  g_object_set_data (object, "GxkParamUpdateFunc", ufunc);
+  g_object_set_data ((GObject*) object, "GxkParamUpdateFunc", (void*) ufunc);
 }
 
 void
@@ -129,7 +129,7 @@ gxk_param_update (GxkParam *param)
   slist = param->objects;
   while (slist)
     {
-      GObject *object = slist->data;
+      GObject *object = (GObject*) slist->data;
       slist = slist->next;
       param_call_update (param, object);
     }
@@ -253,7 +253,7 @@ gxk_param_set_editable (GxkParam *param,
       slist = param->objects;
       while (slist)
         {
-          GObject *object = slist->data;
+          GObject *object = (GObject*) slist->data;
           slist = slist->next;
           param_call_update (param, object);
         }
@@ -325,7 +325,7 @@ gxk_param_destroy (GxkParam *param)
   
   while (param->objects)
     {
-      GObject *object = param->objects->data;
+      GObject *object = (GObject*) param->objects->data;
       if (GTK_IS_OBJECT (object))
         gtk_object_destroy (GTK_OBJECT (object));
       else
@@ -353,7 +353,7 @@ static void
 param_value_binding_set_value (GxkParam     *param,
                                const GValue *value)
 {
-  GxkParamValueNotify notify = param->bdata[0].v_pointer;
+  GxkParamValueNotify notify = (GxkParamValueNotify) param->bdata[0].v_pointer;
   g_value_copy (value, &param->value);
   if (notify)
     notify (param->bdata[1].v_pointer, param);
@@ -390,7 +390,7 @@ gxk_param_new_value (GParamSpec          *pspec,
                      gpointer             notify_data)
 {
   GxkParam *param = gxk_param_new (pspec, &_param_value_binding, (gpointer) FALSE);
-  param->bdata[0].v_pointer = notify;
+  param->bdata[0].v_pointer = (void*) notify;
   param->bdata[1].v_pointer = notify_data;
   return param;
 }
@@ -401,7 +401,7 @@ gxk_param_new_constant_value (GParamSpec          *pspec,
                               gpointer             notify_data)
 {
   GxkParam *param = gxk_param_new (pspec, &_param_value_binding, (gpointer) TRUE);
-  param->bdata[0].v_pointer = notify;
+  param->bdata[0].v_pointer = (void*) notify;
   param->bdata[1].v_pointer = notify_data;
   return param;
 }
@@ -412,7 +412,7 @@ static void
 object_binding_set_value (GxkParam     *param,
                           const GValue *value)
 {
-  GObject *object = param->bdata[0].v_pointer;
+  GObject *object = (GObject*) param->bdata[0].v_pointer;
   if (object)
     g_object_set_property (object, param->pspec->name, value);
 }
@@ -421,7 +421,7 @@ static void
 object_binding_get_value (GxkParam *param,
                           GValue   *value)
 {
-  GObject *object = param->bdata[0].v_pointer;
+  GObject *object = (GObject*) param->bdata[0].v_pointer;
   if (object)
     {
       GValue tmpv = { 0, };
@@ -438,7 +438,7 @@ static void
 object_binding_weakref (gpointer data,
                         GObject *junk)
 {
-  GxkParam *param = data;
+  GxkParam *param = (GxkParam*) data;
   param->bdata[0].v_pointer = NULL;
   param->bdata[1].v_long = 0;   /* already disconnected */
 }
@@ -446,7 +446,7 @@ object_binding_weakref (gpointer data,
 static void
 object_binding_destroy (GxkParam *param)
 {
-  GObject *object = param->bdata[0].v_pointer;
+  GObject *object = (GObject*) param->bdata[0].v_pointer;
   if (object)
     {
       g_signal_handler_disconnect (object, param->bdata[1].v_long);
@@ -459,7 +459,7 @@ object_binding_destroy (GxkParam *param)
 static gboolean
 object_binding_check_writable (GxkParam *param)
 {
-  GObject *object = param->bdata[0].v_pointer;
+  GObject *object = (GObject*) param->bdata[0].v_pointer;
   if (object)
     return TRUE;        /* could check via method */
   else
@@ -467,11 +467,14 @@ object_binding_check_writable (GxkParam *param)
 }
 
 static GxkParamBinding g_object_binding = {
-  .n_data_fields        = 2,
-  .set_value            = object_binding_set_value,
-  .get_value            = object_binding_get_value,
-  .destroy              = object_binding_destroy,
-  .check_writable       = object_binding_check_writable,
+  2, // n_data_fields
+  NULL, // setup
+  object_binding_set_value,
+  object_binding_get_value,
+  object_binding_destroy,
+  object_binding_check_writable,
+  NULL, // start_grouping
+  NULL, // stop_grouping
 };
 
 GxkParam*
@@ -509,7 +512,7 @@ gxk_param_get_object (GxkParam *param)
   g_return_val_if_fail (GXK_IS_PARAM (param), NULL);
 
   if (param->binding == &g_object_binding)
-    return param->bdata[0].v_pointer;
+    return (GObject*) param->bdata[0].v_pointer;
   return 0;
 }
 
@@ -529,7 +532,7 @@ params_register_editor_dup_typed (GxkParamEditor *editor,
                                   const gchar    *i18n_domain,
                                   GType           new_type)
 {
-  GxkParamEditor *ed = g_memdup (editor, sizeof (editor[0]));
+  GxkParamEditor *ed = (GxkParamEditor*) g_memdup (editor, sizeof (editor[0]));
   ed->type_match.type = new_type;
   param_register_editor (ed, GXK_I18N_DOMAIN);
 }
@@ -571,7 +574,7 @@ gxk_param_list_editors (void)
   GSList *slist = _param_editor_list;
   for (i = 0; slist; slist = slist->next)
     {
-      GxkParamEditor *editor = slist->data;
+      GxkParamEditor *editor = (GxkParamEditor*) slist->data;
       for (j = 0; j < i; j++)   /* find dups */
         if (strcmp (names[j], editor->ident.name) == 0)
           break;
@@ -699,7 +702,7 @@ param_lookup_editor (const gchar *editor_name,
   GSList *slist;
   for (slist = _param_editor_list; slist; slist = slist->next)
     {
-      GxkParamEditor *editor = slist->data;
+      GxkParamEditor *editor = (GxkParamEditor*) slist->data;
       if (param_editor_name_match (editor_name, editor))
         {
           guint r = param_score_editor (editor, pspec, FALSE);
@@ -727,7 +730,7 @@ gxk_param_editor_score (const gchar *editor_name,
   g_return_val_if_fail (editor_name != NULL, 0);
   for (slist = _param_editor_list; slist; slist = slist->next)
     {
-      GxkParamEditor *editor = slist->data;
+      GxkParamEditor *editor = (GxkParamEditor*) slist->data;
       if (param_editor_name_match (editor_name, editor))
         {
           guint r = param_score_editor (editor, pspec, FALSE);
@@ -752,7 +755,7 @@ gxk_param_editor_debug_score (GParamSpec *pspec)
               g_param_spec_get_nick (pspec), g_param_spec_get_blurb (pspec));
   for (slist = _param_editor_list; slist; slist = slist->next)
     {
-      GxkParamEditor *editor = slist->data;
+      GxkParamEditor *editor = (GxkParamEditor*) slist->data;
       guint r = param_score_editor (editor, pspec, TRUE);
       rating = MAX (r, rating);
     }
@@ -781,7 +784,7 @@ gxk_param_create_editor (GxkParam               *param,
   widget = editor->create_widget (param, tooltip, editor->variant);
   param->updating = updating;
   g_free (tooltip);
-  gxk_object_set_param_callback (GTK_OBJECT (widget), (gpointer) editor->update);
+  gxk_object_set_param_callback (GTK_OBJECT (widget), (GxkParamUpdateFunc) editor->update);
   gxk_param_add_object (param, GTK_OBJECT (widget));
   toplevel = gtk_widget_get_toplevel (widget);
   if (toplevel != widget)
@@ -862,11 +865,11 @@ gxk_param_get_digits (gdouble                    value,
 
 
 /* --- param editor widgets --- */
-#include "gxkparam-entry.c"
-#include "gxkparam-label.c"
-#include "gxkparam-scale.c"
-#include "gxkparam-spinner.c"
-#include "gxkparam-toggle.c"
+#include "gxkparam-entry.cc"
+#include "gxkparam-label.cc"
+#include "gxkparam-scale.cc"
+#include "gxkparam-spinner.cc"
+#include "gxkparam-toggle.cc"
 
 void
 gxk_init_params (void)
@@ -939,10 +942,10 @@ gxk_entry_changed_marshaller (GClosure       *closure,
                               gpointer        marshal_data)
 {
   GCClosure *cclosure = (GCClosure*) closure;
-  void (*changed) (GtkWidget*, GxkParam*) = cclosure->callback;
-  GxkParam *param = closure->data;
+  void (*changed) (GtkWidget*, GxkParam*) = (void (*) (GtkWidget*, GxkParam*)) cclosure->callback;
+  GxkParam *param = (GxkParam*) closure->data;
   if (!param->updating)
-    changed (g_value_get_object (param_values + 0), param);
+    changed ((GtkWidget*) g_value_get_object (param_values + 0), param);
 }
 
 void
@@ -951,7 +954,7 @@ gxk_param_entry_connect_handlers (GxkParam    *param,
                                   void       (*changed) (GtkWidget*,
                                                          GxkParam*))
 {
-  g_signal_connect_data (entry, "key-press-event", G_CALLBACK (gxk_param_entry_key_press), NULL, NULL, 0);
+  g_signal_connect_data (entry, "key-press-event", G_CALLBACK (gxk_param_entry_key_press), NULL, NULL, GConnectFlags (0));
   if (changed)
     {
       GClosure *closure = g_cclosure_new (G_CALLBACK (changed), param, NULL);
@@ -1005,8 +1008,8 @@ gxk_param_get_adjustment_with_stepping (GxkParam  *param,
   GSList *slist;
   for (slist = param->objects; slist; slist = slist->next)
     if (GTK_IS_ADJUSTMENT (slist->data) &&
-        g_object_get_data (slist->data, "gxk-param-func") == gxk_param_get_adjustment_with_stepping)
-      return slist->data;
+        g_object_get_data ((GObject*) slist->data, "gxk-param-func") == gxk_param_get_adjustment_with_stepping)
+      return (GtkAdjustment*) slist->data;
   
 #define EXTRACT_FIELDS(p,T,mi,ma,df) { T *t = (T*) p; mi = t->minimum; ma = t->maximum; df = t->default_value; }
   if (G_IS_PARAM_SPEC_CHAR (pspec))
@@ -1085,7 +1088,7 @@ gxk_param_get_adjustment_with_stepping (GxkParam  *param,
                     "signal_after::value-changed", param_adjustment_value_changed, param,
                     NULL);
   /* recognize adjustments created by this function */
-  g_object_set_data (adjustment, "gxk-param-func", gxk_param_get_adjustment_with_stepping);
+  g_object_set_data ((GObject*) adjustment, "gxk-param-func", (void*) gxk_param_get_adjustment_with_stepping);
   return GTK_ADJUSTMENT (adjustment);
 }
 
@@ -1102,8 +1105,8 @@ gxk_param_get_log_adjustment (GxkParam *param)
   GSList *slist;
   for (slist = param->objects; slist; slist = slist->next)
     if (GXK_IS_LOG_ADJUSTMENT (slist->data) &&
-        g_object_get_data (slist->data, "gxk-param-func") == gxk_param_get_log_adjustment)
-      return slist->data;
+        g_object_get_data ((GObject*) slist->data, "gxk-param-func") == gxk_param_get_log_adjustment)
+      return (GtkAdjustment*) slist->data;
   adjustment = gxk_param_get_adjustment (param);
   if (adjustment)
     {
@@ -1116,7 +1119,7 @@ gxk_param_get_log_adjustment (GxkParam *param)
           gxk_param_add_object (param, object);
           gtk_object_sink (object);
           /* recognize adjustments created by this function */
-          g_object_set_data (log_adjustment, "gxk-param-func", gxk_param_get_log_adjustment);
+          g_object_set_data ((GObject*) log_adjustment, "gxk-param-func", (void*) gxk_param_get_log_adjustment);
           return log_adjustment;
         }
     }
@@ -1133,7 +1136,7 @@ gxk_param_db_adjustment_convert (GxkAdapterAdjustment           *self,
                                  gdouble                         value,
                                  gpointer                        data)
 {
-  GxkParamDBData *dbdata = data;
+  GxkParamDBData *dbdata = (GxkParamDBData*) data;
   switch (convert_type)
     {
     case GXK_ADAPTER_ADJUSTMENT_CONVERT_TO_CLIENT:
@@ -1159,8 +1162,8 @@ gxk_param_get_decibel_adjustment (GxkParam *param)
   GSList *slist;
   for (slist = param->objects; slist; slist = slist->next)
     if (GXK_IS_LOG_ADJUSTMENT (slist->data) &&
-        g_object_get_data (slist->data, "gxk-param-func") == gxk_param_get_decibel_adjustment)
-      return slist->data;
+        g_object_get_data ((GObject*) slist->data, "gxk-param-func") == gxk_param_get_decibel_adjustment)
+      return (GtkAdjustment*) slist->data;
   adjustment = gxk_param_get_adjustment (param);
   if (adjustment && adjustment->lower >= 0 &&
       !g_param_spec_check_option (param->pspec, "db-value"))
@@ -1177,7 +1180,7 @@ gxk_param_get_decibel_adjustment (GxkParam *param)
       gxk_param_add_object (param, object);
       gtk_object_sink (object);
       /* recognize adjustments created by this function */
-      g_object_set_data (db_adjustment, "gxk-param-func", gxk_param_get_decibel_adjustment);
+      g_object_set_data ((GObject*) db_adjustment, "gxk-param-func", (void*) gxk_param_get_decibel_adjustment);
       return db_adjustment;
     }
   return NULL;
diff --git a/beast-gtk/gxk/gxkpolygon.c b/beast-gtk/gxk/gxkpolygon.cc
similarity index 97%
rename from beast-gtk/gxk/gxkpolygon.c
rename to beast-gtk/gxk/gxkpolygon.cc
index fb7a77c..e1ac648 100644
--- a/beast-gtk/gxk/gxkpolygon.c
+++ b/beast-gtk/gxk/gxkpolygon.cc
@@ -23,7 +23,7 @@
 
 
 /* --- prototypes --- */
-static void	gxk_polygon_class_init		(GxkPolygonClass *class);
+static void	gxk_polygon_class_init		(GxkPolygonClass *klass);
 static void	gxk_polygon_init		(GxkPolygon	 *self);
 static void	gxk_polygon_finalize		(GObject	 *object);
 static void	gxk_polygon_size_request	(GtkWidget	 *widget,
@@ -57,18 +57,18 @@ gxk_polygon_get_type (void)
       
       type = g_type_register_static (GTK_TYPE_WIDGET,
 				     "GxkPolygon",
-				     &type_info, 0);
+				     &type_info, GTypeFlags (0));
     }
   return type;
 }
 
 static void
-gxk_polygon_class_init (GxkPolygonClass *class)
+gxk_polygon_class_init (GxkPolygonClass *klass)
 {
-  GObjectClass *gobject_class = G_OBJECT_CLASS (class);
-  GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class);
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
   
-  parent_class = g_type_class_peek_parent (class);
+  parent_class = g_type_class_peek_parent (klass);
   
   gobject_class->finalize = gxk_polygon_finalize;
   
@@ -106,7 +106,7 @@ gxk_polygon_finalize (GObject *object)
 gpointer
 gxk_polygon_new (GxkPolygonGraph *polygon_graph)
 {
-  GxkPolygon *self = g_object_new (GXK_TYPE_POLYGON, NULL);
+  GxkPolygon *self = (GxkPolygon*) g_object_new (GXK_TYPE_POLYGON, NULL);
   gxk_polygon_set_graph (self, polygon_graph);
   return self;
 }
@@ -130,7 +130,7 @@ gxk_polygon_set_lines (GxkPolygon     *self,
   
   g_free (self->lines);
   self->n_lines = n_lines;
-  self->lines = g_memdup (lines, sizeof (lines[0]) * n_lines);
+  self->lines = (GxkPolygonLine*) g_memdup (lines, sizeof (lines[0]) * n_lines);
   gtk_widget_queue_draw (GTK_WIDGET (self));
 }
 
@@ -153,7 +153,7 @@ gxk_polygon_set_arcs (GxkPolygon    *self,
   
   g_free (self->arcs);
   self->n_arcs = n_arcs;
-  self->arcs = g_memdup (arcs, sizeof (arcs[0]) * n_arcs);
+  self->arcs = (GxkPolygonArc*) g_memdup (arcs, sizeof (arcs[0]) * n_arcs);
   gtk_widget_queue_draw (GTK_WIDGET (self));
 }
 
diff --git a/beast-gtk/gxk/gxkrackcovers.c b/beast-gtk/gxk/gxkrackcovers.cc
similarity index 90%
rename from beast-gtk/gxk/gxkrackcovers.c
rename to beast-gtk/gxk/gxkrackcovers.cc
index 3b60b1b..bda8d96 100644
--- a/beast-gtk/gxk/gxkrackcovers.c
+++ b/beast-gtk/gxk/gxkrackcovers.cc
@@ -30,15 +30,15 @@ rack_cover_create (GtkWidget *rtable)
     "  ####  ",
     "        ",
   };
-  GtkWidget *cover = g_object_new (GTK_TYPE_FRAME,
-				   "visible", TRUE,
-				   "shadow_type", GTK_SHADOW_ETCHED_OUT,
-				   "border_width", 1,
-				   NULL);
-  GtkTable *table = g_object_new (GTK_TYPE_TABLE,
-				  "visible", TRUE,
-				  "parent", cover,
-				  NULL);
+  GtkWidget *cover = (GtkWidget*) g_object_new (GTK_TYPE_FRAME,
+                                                "visible", TRUE,
+                                                "shadow_type", GTK_SHADOW_ETCHED_OUT,
+                                                "border_width", 1,
+                                                NULL);
+  GtkTable *table = (GtkTable*) g_object_new (GTK_TYPE_TABLE,
+                                              "visible", TRUE,
+                                              "parent", cover,
+                                              NULL);
   GdkPixmap *pixmap;
   GdkBitmap *mask;
   GtkWidget *pix;
@@ -66,7 +66,7 @@ rack_cover_create (GtkWidget *rtable)
   gdk_pixmap_unref (pixmap);
   gdk_pixmap_unref (mask);
   
-  pix = g_object_new (GTK_TYPE_ALIGNMENT, "visible", TRUE, NULL);
+  pix = (GtkWidget*) g_object_new (GTK_TYPE_ALIGNMENT, "visible", TRUE, NULL);
   gtk_table_attach (table, pix, 1, 2, 1, 2, GTK_EXPAND, GTK_EXPAND, 0, 0);
 
   g_object_ref (cover);
@@ -173,7 +173,7 @@ rack_cover_add_plates (GxkRackTable *rtable)
                   guint t, u;
                   max_free--;
                   gxk_rack_table_expand_rect (rtable, i, j, &t, &u);
-                  if (t * u > max)
+                  if (int (t * u) > max)
                     {
                       max = t * u;
                       k = i;
diff --git a/beast-gtk/gxk/gxkrackeditor.c b/beast-gtk/gxk/gxkrackeditor.cc
similarity index 99%
rename from beast-gtk/gxk/gxkrackeditor.c
rename to beast-gtk/gxk/gxkrackeditor.cc
index 1539d52..473fca5 100644
--- a/beast-gtk/gxk/gxkrackeditor.c
+++ b/beast-gtk/gxk/gxkrackeditor.cc
@@ -221,7 +221,7 @@ gxk_rack_table_handle_button_press (GxkRackTable   *self,
            (event->button == 1 && self->editor->drag_corner)))
         {
           GdkCursor *cursor;
-          gint cursort;
+          GdkCursorType cursort;
           switch (self->editor->drag_corner)
             {
             default: /* silence compiler */
diff --git a/beast-gtk/gxk/gxkrackitem.c b/beast-gtk/gxk/gxkrackitem.cc
similarity index 96%
rename from beast-gtk/gxk/gxkrackitem.c
rename to beast-gtk/gxk/gxkrackitem.cc
index cff2cc1..ba056dd 100644
--- a/beast-gtk/gxk/gxkrackitem.c
+++ b/beast-gtk/gxk/gxkrackitem.cc
@@ -59,20 +59,20 @@ gxk_rack_item_get_type (void)
       
       type = g_type_register_static (GTK_TYPE_FRAME,
                                      "GxkRackItem",
-                                     &type_info, 0);
+                                     &type_info, GTypeFlags (0));
     }
   
   return type;
 }
 
 static void
-gxk_rack_item_class_init (GxkRackItemClass *class)
+gxk_rack_item_class_init (GxkRackItemClass *klass)
 {
-  GtkObjectClass *object_class = GTK_OBJECT_CLASS (class);
-  GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class);
-  GtkContainerClass *container_class = GTK_CONTAINER_CLASS (class);
+  GtkObjectClass *object_class = GTK_OBJECT_CLASS (klass);
+  GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+  GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass);
   
-  parent_class = g_type_class_peek_parent (class);
+  parent_class = g_type_class_peek_parent (klass);
   
   object_class->destroy = gxk_rack_item_destroy;
   
@@ -82,10 +82,10 @@ gxk_rack_item_class_init (GxkRackItemClass *class)
   container_class->add = gxk_rack_item_add;
   container_class->remove = gxk_rack_item_remove;
 
-  class->button_press = gxk_rack_item_button_press;
+  klass->button_press = gxk_rack_item_button_press;
   
   g_signal_new ("button-press",
-                G_OBJECT_CLASS_TYPE (class),
+                G_OBJECT_CLASS_TYPE (klass),
                 G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
                 G_STRUCT_OFFSET (GxkRackItemClass, button_press),
                 NULL, NULL,
diff --git a/beast-gtk/gxk/gxkracktable.c b/beast-gtk/gxk/gxkracktable.cc
similarity index 93%
rename from beast-gtk/gxk/gxkracktable.c
rename to beast-gtk/gxk/gxkracktable.cc
index 44d13f6..c52b691 100644
--- a/beast-gtk/gxk/gxkracktable.c
+++ b/beast-gtk/gxk/gxkracktable.cc
@@ -87,20 +87,20 @@ gxk_rack_table_get_type (void)
       };
       object_type = g_type_register_static (GTK_TYPE_TABLE,
                                             "GxkRackTable",
-                                            &object_info, 0);
+                                            &object_info, GTypeFlags (0));
     }
   return object_type;
 }
 
 static void
-gxk_rack_table_class_init (GxkRackTableClass *class)
+gxk_rack_table_class_init (GxkRackTableClass *klass)
 {
-  GObjectClass *gobject_class = G_OBJECT_CLASS (class);
-  GtkObjectClass *object_class = GTK_OBJECT_CLASS (class);
-  GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class);
-  GtkContainerClass *container_class = GTK_CONTAINER_CLASS (class);
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  GtkObjectClass *object_class = GTK_OBJECT_CLASS (klass);
+  GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+  GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass);
   
-  parent_class = g_type_class_peek_parent (class);
+  parent_class = g_type_class_peek_parent (klass);
   
   gobject_class->finalize = gxk_rack_table_finalize;
   
@@ -112,18 +112,18 @@ gxk_rack_table_class_init (GxkRackTableClass *class)
   widget_class->unrealize = gxk_rack_table_unrealize;
   widget_class->map = gxk_rack_table_map;
   widget_class->unmap = gxk_rack_table_unmap;
-  widget_class->button_press_event = (gpointer) gxk_rack_table_handle_button_press;
-  widget_class->motion_notify_event = (gpointer) gxk_rack_table_handle_motion_notify;
-  widget_class->enter_notify_event = (gpointer) gxk_rack_table_handle_enter_notify;
-  widget_class->leave_notify_event = (gpointer) gxk_rack_table_handle_leave_notify;
-  widget_class->button_release_event = (gpointer) gxk_rack_table_handle_button_release;
+  widget_class->button_press_event = (gboolean (*) (GtkWidget*, GdkEventButton*)) gxk_rack_table_handle_button_press;
+  widget_class->motion_notify_event = (gboolean (*) (GtkWidget*, GdkEventMotion*)) gxk_rack_table_handle_motion_notify;
+  widget_class->enter_notify_event = (gboolean (*) (GtkWidget*, GdkEventCrossing*)) gxk_rack_table_handle_enter_notify;
+  widget_class->leave_notify_event = (gboolean (*) (GtkWidget*, GdkEventCrossing*)) gxk_rack_table_handle_leave_notify;
+  widget_class->button_release_event = (gboolean (*) (GtkWidget*, GdkEventButton*)) gxk_rack_table_handle_button_release;
   widget_class->expose_event = gxk_rack_table_expose;
   
   container_class->add = gxk_rack_table_add;
   container_class->remove = gxk_rack_table_remove;
   
   signal_edit_mode_changed = g_signal_new ("edit-mode-changed",
-                                           G_OBJECT_CLASS_TYPE (class),
+                                           G_OBJECT_CLASS_TYPE (klass),
                                            G_SIGNAL_RUN_FIRST,
                                            G_STRUCT_OFFSET (GxkRackTableClass, edit_mode_changed),
                                            NULL, NULL,
@@ -211,7 +211,7 @@ gxk_rack_table_size_request (GtkWidget      *widget,
   gxk_rack_table_invalidate_child_map (self);   /* we get here when re-attaching children */
   for (list = table->children; list; list = list->next)
     {
-      GtkTableChild *child = list->data;
+      GtkTableChild *child = (GtkTableChild*) list->data;
       
       if (GTK_WIDGET_VISIBLE (child->widget))
         gtk_widget_size_request (child->widget, NULL);
@@ -384,14 +384,13 @@ gxk_rack_table_expose (GtkWidget      *widget,
   
   if (self->editor && event->window == widget->window)
     {
-      guint x = GTK_CONTAINER (self)->border_width + GTK_WIDGET (self)->allocation.x, bx = 0;
-      guint i, j;
-      
+      int i, j, x = GTK_CONTAINER (self)->border_width + GTK_WIDGET (self)->allocation.x, bx = 0;
+
       gxk_rack_table_update_child_map (self);
       for (i = 0; i < table->ncols; i++)
         {
-          guint y = GTK_CONTAINER (self)->border_width + GTK_WIDGET (self)->allocation.y, by = 0;
-          
+          int y = GTK_CONTAINER (self)->border_width + GTK_WIDGET (self)->allocation.y, by = 0;
+
           bx = table->cols[i].allocation + table->cols[i].spacing;
           if (x > event->area.x + event->area.width || x + bx < event->area.x)
             {
@@ -582,20 +581,20 @@ gxk_rack_table_find_child (GxkRackTable *self,
 {
   GtkTable *table = GTK_TABLE (self);
   GList *list;
-  gint h, v;
+  uint h, v;
   if (gxk_rack_table_translate (self, x, y, &h, &v))
     {
       for (list = table->children; list; list = list->next)
         {
-          GtkTableChild *child = list->data;
+          GtkTableChild *child = (GtkTableChild*) list->data;
           if (h >= child->left_attach && h < child->right_attach &&
               v >= child->top_attach && v < child->bottom_attach)
             {
               if (GXK_IS_RACK_ITEM (child->widget) &&       /* exempt inner areas of frames */
                   GXK_RACK_ITEM (child->widget)->empty_frame &&
-                  h >= child->left_attach + 1 &&
+                  int (h) >= child->left_attach + 1 &&
                   h + 1 < child->right_attach &&
-                  v >= child->top_attach + 1 &&
+                  int (v) >= child->top_attach + 1 &&
                   v + 1 < child->bottom_attach)
                 continue;
               return child->widget;
@@ -618,7 +617,7 @@ gxk_rack_table_get_child_area (GxkRackTable *self,
 
   for (list = table->children; list; list = list->next)
     {
-      GtkTableChild *child = list->data;
+      GtkTableChild *child = (GtkTableChild*) list->data;
       if (child->widget == child_widget)
         {
           if (col)
@@ -645,7 +644,7 @@ gxk_rack_table_find_cell_child (GxkRackTable *self,
   
   for (list = table->children; list; list = list->next)
     {
-      GtkTableChild *child = list->data;
+      GtkTableChild *child = (GtkTableChild*) list->data;
       
       if (hcell >= child->left_attach && hcell < child->right_attach &&
           vcell >= child->top_attach && vcell < child->bottom_attach)
@@ -684,7 +683,7 @@ gxk_rack_table_update_child_map (GxkRackTable *self)
     }
 }
 
-#include "gxkrackcovers.c"
+#include "gxkrackcovers.cc"
 
 void
 gxk_rack_table_cover_up (GxkRackTable *self)
@@ -700,7 +699,7 @@ gxk_rack_table_uncover (GxkRackTable *self)
   g_return_if_fail (GXK_IS_RACK_TABLE (self));
   while (self->covers)
     {
-      GtkWidget *widget = g_slist_pop_head (&self->covers);
+      GtkWidget *widget = (GtkWidget*) g_slist_pop_head (&self->covers);
       gtk_widget_destroy (widget);
       g_object_unref (widget);
     }
diff --git a/beast-gtk/gxk/gxkradget.c b/beast-gtk/gxk/gxkradget.cc
similarity index 93%
rename from beast-gtk/gxk/gxkradget.c
rename to beast-gtk/gxk/gxkradget.cc
index 2412fa6..dcb85d1 100644
--- a/beast-gtk/gxk/gxkradget.c
+++ b/beast-gtk/gxk/gxkradget.cc
@@ -101,11 +101,7 @@ static gchar*          expand_expr              (const gchar         *expr,
                                                  Env                 *env);
 static MacroFunc       macro_func_lookup        (const gchar         *name);
 static inline gboolean boolean_from_string      (const gchar         *value);
-static gboolean        boolean_from_expr        (const gchar         *expr,
-                                                 Env                 *env);
 static inline guint64  num_from_string          (const gchar         *value);
-static guint64         num_from_expr            (const gchar         *expr,
-                                                 Env                 *env);
 static void            radget_define_gtk_menu   (void);
 static Node*           node_children_find_area  (Node                *node,
                                                  const gchar         *area);
@@ -237,7 +233,7 @@ clone_node_intern (Node        *source,
   node->default_area = source->default_area;
   for (slist = source->children; slist; slist = slist->next)
     {
-      Node *child = slist->data;
+      Node *child = (Node*) slist->data;
       child = clone_node_intern (child, domain, child->name, FALSE, clist);
       if (last)
         {
@@ -357,7 +353,7 @@ env_get_size_group (Env         *env,
                     gchar        type)
 {
   GData **groups = type == 'h' ? &env->hgroups : type == 'v' ? &env->vgroups : &env->hvgroups;
-  GtkSizeGroup *sg = g_datalist_get_data (groups, name);
+  GtkSizeGroup *sg = (GtkSizeGroup*) g_datalist_get_data (groups, name);
   if (!sg)
     {
       sg = gtk_size_group_new (type == 'h' ? GTK_SIZE_GROUP_HORIZONTAL :
@@ -384,7 +380,7 @@ env_find_quark (Env   *env,
   GSList *slist;
   for (slist = env->args_list; slist; slist = slist->next)
     {
-      GxkRadgetArgs *args = slist->data;
+      GxkRadgetArgs *args = (GxkRadgetArgs*) slist->data;
       if (radget_args_lookup_quark (args, quark, nthp))
         {
           RecursiveOption *ropt;
@@ -488,7 +484,7 @@ parse_formula (const gchar *c,
     {
       gchar *str;
       args = g_slist_reverse (args);
-      str = macro_func_lookup (args->data) (args, env);
+      str = macro_func_lookup ((const char*) args->data) (args, env);
       if (str)
         g_string_append (result, str);
       g_free (str);
@@ -570,6 +566,7 @@ expand_expr (const gchar *expr,
     return g_string_free (result, FALSE);
 }
 
+#if 0 // FIXME: unused
 static guint64
 num_from_expr (const gchar    *expr,
                Env            *env)
@@ -589,6 +586,7 @@ boolean_from_expr (const gchar    *expr,
   g_free (result);
   return boolv;
 }
+#endif
 
 static Node*
 node_children_find_area (Node        *node,
@@ -601,7 +599,7 @@ node_children_find_area (Node        *node,
       for (slist = children; slist; slist = slist->next)
         if (strcmp (NODE (slist->data)->name, area) == 0)
           {
-            node = slist->data;
+            node = (Node*) slist->data;
             g_slist_free (children);
             return node;
           }
@@ -653,9 +651,9 @@ static Node*
 node_lookup (Domain      *domain,
              const gchar *node_name)
 {
-  Node *node = g_datalist_get_data (&domain->nodes, node_name);
+  Node *node = (Node*) g_datalist_get_data (&domain->nodes, node_name);
   if (!node && domain != standard_domain)
-    node = g_datalist_get_data (&standard_domain->nodes, node_name);
+    node = (Node*) g_datalist_get_data (&standard_domain->nodes, node_name);
   return node;
 }
 
@@ -766,13 +764,13 @@ node_define (Domain       *domain,
         const gchar *name = attribute_names[i];
         const gchar *value = attribute_values[i];
         if (inherit)
-          radget_args_intern_set (node->parent_arg_list->data, name, value);
+          radget_args_intern_set ((GxkRadgetArgs*) node->parent_arg_list->data, name, value);
         else
           node->call_args = radget_args_intern_set (node->call_args, name, value);
         if (name[0] == '_') /* i18n version */
           {
             if (inherit)
-              radget_args_intern_set (node->parent_arg_list->data, name + 1, dgettext (i18n_domain, value));
+              radget_args_intern_set ((GxkRadgetArgs*) node->parent_arg_list->data, name + 1, dgettext (i18n_domain, value));
             else
               node->call_args = radget_args_intern_set (node->call_args, name + 1, dgettext (i18n_domain, value));
           }
@@ -790,7 +788,7 @@ radget_start_element  (GMarkupParseContext *context,
                        gpointer             user_data,
                        GError             **error)
 {
-  PData *pdata = user_data;
+  PData *pdata = (PData*) user_data;
   Node *child;
   if (!pdata->tag_opened && strcmp (element_name, "gxk-radget-definitions") == 0)
     {
@@ -818,9 +816,9 @@ radget_start_element  (GMarkupParseContext *context,
     }
   else if (pdata->node_stack && (child = node_lookup (pdata->domain, element_name), child))
     {
-      Node *parent = pdata->node_stack->data;
+      Node *parent = (Node*) pdata->node_stack->data;
       const gchar *area = NULL, *uname = NULL;
-      Node *node = node_define (pdata->domain, element_name, 0, child, g_slist_last (pdata->node_stack)->data,
+      Node *node = node_define (pdata->domain, element_name, 0, child, (Node*) g_slist_last (pdata->node_stack)->data,
                                 attribute_names, attribute_values, pdata->i18n_domain,
                                 &uname, &area, NULL, error);
       if (node)
@@ -844,7 +842,7 @@ radget_end_element (GMarkupParseContext *context,
                     gpointer             user_data,
                     GError             **error)
 {
-  PData *pdata = user_data;
+  PData *pdata = (PData*) user_data;
   if (strcmp (element_name, "gxk-radget-definitions") == 0)
     {
       /* toplevel tag closed */
@@ -904,7 +902,7 @@ radget_parser (Domain      *domain,
     radget_error,
   };
   PData pbuf = { 0, }, *pdata = &pbuf;
-  GMarkupParseContext *context = g_markup_parse_context_new (&parser, 0, pdata, NULL);
+  GMarkupParseContext *context = g_markup_parse_context_new (&parser, GMarkupParseFlags (0), pdata, NULL);
   guint8 bspace[1024];
   const gchar *buffer = text ? text : (const gchar*) bspace;
   pdata->domain = domain;
@@ -947,7 +945,7 @@ gxk_radget_parse (const gchar    *domain_name,
   Domain *domain;
   GError *myerror = NULL;
   gint fd = open (file_name, O_RDONLY, 0);
-  domain = domain_name ? g_datalist_get_data (&domains, domain_name) : standard_domain;
+  domain = domain_name ? (Domain*) g_datalist_get_data (&domains, domain_name) : standard_domain;
   if (!domain)
     {
       domain = g_new0 (Domain, 1);
@@ -983,7 +981,7 @@ gxk_radget_parse_text (const gchar    *domain_name,
   Domain *domain;
   GError *myerror = NULL;
   g_return_if_fail (text != NULL);
-  domain = domain_name ? g_datalist_get_data (&domains, domain_name) : standard_domain;
+  domain = domain_name ? (Domain*) g_datalist_get_data (&domains, domain_name) : standard_domain;
   if (!domain)
     {
       domain = g_new0 (Domain, 1);
@@ -1004,13 +1002,13 @@ toplevel_get_size_group (GtkWidget   *toplevel,
                          gchar        type)
 {
   gchar *key = g_strdup_printf ("gxk-toplevel-%cgroup#%s", type, name);
-  GtkSizeGroup *sg = g_object_get_data (toplevel, key);
+  GtkSizeGroup *sg = (GtkSizeGroup*) g_object_get_data ((GObject*) toplevel, key);
   if (!sg)
     {
       sg = gtk_size_group_new (type == 'h' ? GTK_SIZE_GROUP_HORIZONTAL :
                                type == 'v' ? GTK_SIZE_GROUP_VERTICAL :
                                GTK_SIZE_GROUP_BOTH);
-      g_object_set_data_full (toplevel, key, sg, g_object_unref);
+      g_object_set_data_full ((GObject*) toplevel, key, sg, g_object_unref);
     }
   g_free (key);
   return sg;
@@ -1022,9 +1020,9 @@ radget_widget_hierarchy_changed (GtkWidget *widget,
 {
   if (previous_toplevel)
     return;
-  const gchar *hgroup = g_object_get_data (widget, "gxk-window-hgroup");
-  const gchar *vgroup = g_object_get_data (widget, "gxk-window-vgroup");
-  const gchar *bgroup = g_object_get_data (widget, "gxk-window-hvgroup");
+  const gchar *hgroup = (const gchar*) g_object_get_data ((GObject*) widget, "gxk-window-hgroup");
+  const gchar *vgroup = (const gchar*) g_object_get_data ((GObject*) widget, "gxk-window-vgroup");
+  const gchar *bgroup = (const gchar*) g_object_get_data ((GObject*) widget, "gxk-window-hvgroup");
   if (!hgroup && !vgroup && !bgroup)
     return;
   GtkWidget *toplevel = gtk_widget_get_toplevel (widget);
@@ -1033,19 +1031,19 @@ radget_widget_hierarchy_changed (GtkWidget *widget,
     {
       GtkSizeGroup *sg = toplevel_get_size_group (toplevel, hgroup, 'h');
       gtk_size_group_add_widget (sg, widget);
-      g_object_set_data (widget, "gxk-window-hgroup", NULL);    /* gtk_size_group_add_widget() <= 2.4.4 may not be called twice */
+      g_object_set_data ((GObject*) widget, "gxk-window-hgroup", NULL);    /* gtk_size_group_add_widget() <= 2.4.4 may not be called twice */
     }
   if (vgroup)
     {
       GtkSizeGroup *sg = toplevel_get_size_group (toplevel, vgroup, 'v');
       gtk_size_group_add_widget (sg, widget);
-      g_object_set_data (widget, "gxk-window-vgroup", NULL);    /* gtk_size_group_add_widget() <= 2.4.4 may not be called twice */
+      g_object_set_data ((GObject*) widget, "gxk-window-vgroup", NULL);    /* gtk_size_group_add_widget() <= 2.4.4 may not be called twice */
     }
   if (bgroup)
     {
       GtkSizeGroup *sg = toplevel_get_size_group (toplevel, bgroup, 'b');
       gtk_size_group_add_widget (sg, widget);
-      g_object_set_data (widget, "gxk-window-hvgroup", NULL);   /* gtk_size_group_add_widget() <= 2.4.4 may not be called twice */
+      g_object_set_data ((GObject*) widget, "gxk-window-hvgroup", NULL);   /* gtk_size_group_add_widget() <= 2.4.4 may not be called twice */
     }
 }
 
@@ -1112,7 +1110,7 @@ property_value_from_string (GtkType      widget_type,
       g_value_set_double (value, float_from_string (exvalue));
       break;
     case G_TYPE_ENUM:
-      eclass = g_type_class_peek (vtype);
+      eclass = (GEnumClass*) g_type_class_peek (vtype);
       if (eclass)
         {
           g_value_init (value, vtype);
@@ -1120,7 +1118,7 @@ property_value_from_string (GtkType      widget_type,
         }
       break;
     case G_TYPE_FLAGS:
-      fclass = g_type_class_peek (vtype);
+      fclass = (GFlagsClass*) g_type_class_peek (vtype);
       if (fclass && exvalue)
         {
           gchar **fnames = g_strsplit (exvalue, "|", -1);
@@ -1149,7 +1147,7 @@ merge_args_list (GxkRadgetArgs *args,
     {
       if (call_args->next)
         args = merge_args_list (args, call_args->next);
-      args = gxk_radget_args_merge (args, call_args->data);
+      args = gxk_radget_args_merge (args, (const GxkRadgetArgs*) call_args->data);
     }
   return args;
 }
@@ -1182,7 +1180,7 @@ node_expand_call_args (Node   *node,
         slist = g_slist_prepend (slist, polist->data);
       while (slist)     /* two times prepending keeps original order */
         {
-          GxkRadgetArgs *pargs = g_slist_pop_head (&slist);
+          GxkRadgetArgs *pargs = (GxkRadgetArgs*) g_slist_pop_head (&slist);
           n_pops++, env->args_list = g_slist_prepend (env->args_list, pargs);
         }
     }
@@ -1237,10 +1235,10 @@ radget_create_from_node (Node         *node,
     n_pops += g_slist_length (node->parent_arg_list), env->args_list = g_slist_concat (g_slist_copy (node->parent_arg_list),
                                                                                        env->args_list);
   /* create radget */
-  GTypeClass *klass = g_type_class_ref (node->type);
+  GTypeClass *klass = (GTypeClass*) g_type_class_ref (node->type);
   if (!radget)
     {
-      GParameter *cparams = g_alloca (sizeof (*cparams) * ARGS_N_ENTRIES (node->prop_args));
+      GParameter *cparams = (GParameter*) g_alloca (sizeof (*cparams) * ARGS_N_ENTRIES (node->prop_args));
       memset (cparams, 0, sizeof (*cparams) * ARGS_N_ENTRIES (node->prop_args));
       guint n_cparams = 0;
       /* construct properties */
@@ -1260,27 +1258,27 @@ radget_create_from_node (Node         *node,
         }
       GxkRadgetData gdgdata;
       gdgdata.node = node;
-      gdgdata.call_stack_top = node->call_stack->data;
+      gdgdata.call_stack_top = (GxkRadgetArgs*) node->call_stack->data;
       gdgdata.xdef_radget = env->xdef_radget;
       gdgdata.env = env;
       radget = tinfo.create (node->type, node->name, n_cparams, cparams, &gdgdata);
       for (i = 0; i < n_cparams; i++)
         g_value_unset (&cparams[i].value);
     }
-  g_object_set_qdata (radget, quark_radget_node, node);
+  g_object_set_qdata ((GObject*) radget, quark_radget_node, node);
   /* keep global xdef_radget for gdg_data */
   if (!env->xdef_radget)
     env->xdef_radget = radget;
   /* widget specific patchups (size-groups) */
   if (node->size_hgroup)
-    gtk_size_group_add_widget (env_get_size_group (env, node->size_hgroup, 'h'), radget);
+    gtk_size_group_add_widget (env_get_size_group (env, node->size_hgroup, 'h'), (GtkWidget*) radget);
   if (node->size_vgroup)
-    gtk_size_group_add_widget (env_get_size_group (env, node->size_vgroup, 'v'), radget);
+    gtk_size_group_add_widget (env_get_size_group (env, node->size_vgroup, 'v'), (GtkWidget*) radget);
   if (node->size_hvgroup)
-    gtk_size_group_add_widget (env_get_size_group (env, node->size_hvgroup, 'b'), radget);
-  g_object_set_data (radget, "gxk-window-hgroup", (gchar*) node->size_window_hgroup);
-  g_object_set_data (radget, "gxk-window-vgroup", (gchar*) node->size_window_vgroup);
-  g_object_set_data (radget, "gxk-window-hvgroup", (gchar*) node->size_window_hvgroup);
+    gtk_size_group_add_widget (env_get_size_group (env, node->size_hvgroup, 'b'), (GtkWidget*) radget);
+  g_object_set_data ((GObject*) radget, "gxk-window-hgroup", (gchar*) node->size_window_hgroup);
+  g_object_set_data ((GObject*) radget, "gxk-window-vgroup", (gchar*) node->size_window_vgroup);
+  g_object_set_data ((GObject*) radget, "gxk-window-hvgroup", (gchar*) node->size_window_hvgroup);
   /* set properties */
   for (i = 0; i < ARGS_N_ENTRIES (node->prop_args); i++)
     {
@@ -1306,8 +1304,8 @@ radget_create_from_node (Node         *node,
     {
       g_signal_connect_after (radget, "hierarchy-changed", G_CALLBACK (radget_widget_hierarchy_changed), NULL);
       /* check anchored */
-      if (GTK_WIDGET_TOPLEVEL (gtk_widget_get_toplevel (radget)))
-        radget_widget_hierarchy_changed (radget, NULL);
+      if (GTK_WIDGET_TOPLEVEL (gtk_widget_get_toplevel ((GtkWidget*) radget)))
+        radget_widget_hierarchy_changed ((GtkWidget*) radget, NULL);
     }
   /* cleanup */
   g_type_class_unref (klass);
@@ -1322,8 +1320,8 @@ radget_add_to_parent (GxkRadget    *parent,
                       Env          *env,
                       GError      **error)
 {
-  Node *pnode = g_object_get_qdata (parent, quark_radget_node);
-  Node *cnode = g_object_get_qdata (radget, quark_radget_node);
+  Node *pnode = (Node*) g_object_get_qdata ((GObject*) parent, quark_radget_node);
+  Node *cnode = (Node*) g_object_get_qdata ((GObject*) radget, quark_radget_node);
   GxkRadgetType tinfo = { 0, };
   guint i, needs_packing, n_pops = 0;
   /* prepare for $name lookups */
@@ -1343,7 +1341,7 @@ radget_add_to_parent (GxkRadget    *parent,
   {
     GxkRadgetData gdgdata;
     gdgdata.node = cnode;
-    gdgdata.call_stack_top = cnode->call_stack->data;
+    gdgdata.call_stack_top = (GxkRadgetArgs*) cnode->call_stack->data;
     gdgdata.xdef_radget = env->xdef_radget;
     gdgdata.env = env;
     needs_packing = tinfo.adopt (radget, parent, &gdgdata);
@@ -1385,7 +1383,7 @@ radget_apply_hooks (GxkRadget    *radget,
                     Env          *env,
                     GError      **error)
 {
-  Node *cnode = g_object_get_qdata (radget, quark_radget_node);
+  Node *cnode = (Node*) g_object_get_qdata ((GObject*) radget, quark_radget_node);
   GxkRadgetType tinfo;
   guint i, n_pops = 0;
   /* prepare for $name lookups */
@@ -1434,12 +1432,12 @@ radget_create_children (GxkRadget    *parent,
                         Env          *env,
                         GError      **error)
 {
-  Node *pnode = g_object_get_qdata (parent, quark_radget_node);
+  Node *pnode = (Node*) g_object_get_qdata ((GObject*) parent, quark_radget_node);
   GSList *slist;
   /* create children */
   for (slist = pnode->children; slist; slist = slist->next)
     {
-      Node *cnode = slist->data;
+      Node *cnode = (Node*) slist->data;
       GxkRadget *radget;
       /* node_expand_call_args() sets env->name */
       GxkRadgetArgs *call_args = node_expand_call_args (cnode, NULL, env);
@@ -1463,10 +1461,10 @@ radget_creator (GxkRadget          *radget,
                 GSList             *user_args,
                 GSList             *env_args)
 {
-  Domain *domain = g_datalist_get_data (&domains, domain_name);
+  Domain *domain = (Domain*) g_datalist_get_data (&domains, domain_name);
   if (domain)
     {
-      Node *node = g_datalist_get_data (&domain->nodes, name);
+      Node *node = (Node*) g_datalist_get_data (&domain->nodes, name);
       if (node)
         {
           GxkRadgetArgs *call_args;
@@ -1671,7 +1669,7 @@ gxk_radget_creator (GxkRadget          *radget,
   g_return_val_if_fail (name != NULL, NULL);
   if (radget)
     {
-      Node *radget_node = g_object_get_qdata (radget, quark_radget_node);
+      Node *radget_node = (Node*) g_object_get_qdata ((GObject*) radget, quark_radget_node);
       g_return_val_if_fail (radget_node == NULL, NULL);
     }
   return radget_creator (radget, domain_name, name, parent, call_args, env_args);
@@ -1743,7 +1741,7 @@ gxk_radget_complete (GxkRadget          *radget,
 const gchar*
 gxk_radget_get_domain (GxkRadget *radget)
 {
-  Node *radget_node = g_object_get_qdata (radget, quark_radget_node);
+  Node *radget_node = (Node*) g_object_get_qdata ((GObject*) radget, quark_radget_node);
   g_return_val_if_fail (radget_node != NULL, NULL);
   return radget_node->domain;
 }
@@ -1753,7 +1751,7 @@ gxk_radget_sensitize (GxkRadget      *radget,
                       const gchar    *name,
                       gboolean        sensitive)
 {
-  GtkWidget *widget = gxk_radget_find (radget, name);
+  GtkWidget *widget = (GtkWidget*) gxk_radget_find (radget, name);
   if (GTK_IS_WIDGET (widget))
     {
       /* special guard for menu items */
@@ -1792,11 +1790,11 @@ gxk_radget_find (GxkRadget      *radget,
     {
       gchar *name = g_strndup (c, next - c);
       c = next + 1;
-      radget = gxk_widget_find_level_ordered (radget, name);
+      radget = (GtkWidget*) gxk_widget_find_level_ordered ((GtkWidget*) radget, name);
       g_free (name);
     }
   if (radget)
-    radget = gxk_widget_find_level_ordered (radget, c);
+    radget = gxk_widget_find_level_ordered ((GtkWidget*) radget, c);
   return radget;
 }
 
@@ -1815,11 +1813,11 @@ gxk_radget_find_area (GxkRadget      *radget,
   radget = area ? gxk_radget_find (radget, area) : radget;
   if (!GTK_IS_WIDGET (radget))
     return NULL;
-  node = g_object_get_qdata (radget, quark_radget_node);
+  node = (Node*) g_object_get_qdata ((GObject*) radget, quark_radget_node);
   while (node && node->default_area)
     {
-      radget = gxk_widget_find_level_ordered (radget, node->default_area);
-      node = radget ? g_object_get_qdata (radget, quark_radget_node) : NULL;
+      radget = gxk_widget_find_level_ordered ((GtkWidget*) radget, node->default_area);
+      node = radget ? (Node*) g_object_get_qdata ((GObject*) radget, quark_radget_node) : NULL;
     }
   return radget;
 }
@@ -1839,7 +1837,7 @@ gxk_radget_add (GxkRadget      *radget,
   g_return_if_fail (GTK_IS_WIDGET (widget));
   radget = gxk_radget_find_area (radget, area);
   if (GTK_IS_CONTAINER (radget))
-    gtk_container_add (radget, widget);
+    gtk_container_add ((GtkContainer*) radget, (GtkWidget*) widget);
   else
     g_error ("GxkRadget: failed to find area \"%s\"", area);
 }
@@ -1903,7 +1901,7 @@ gboolean
 gxk_radget_type_lookup (GType           type,
                         GxkRadgetType  *ggtype)
 {
-  GxkRadgetType *tdata = g_type_get_qdata (type, quark_radget_type);
+  GxkRadgetType *tdata = (GxkRadgetType*) g_type_get_qdata (type, quark_radget_type);
   if (tdata)
     {
       *ggtype = *tdata;
@@ -1943,7 +1941,7 @@ widget_create (GType               type,
                GParameter         *construct_params,
                GxkRadgetData      *gdgdata)
 {
-  GtkWidget *widget = g_object_newv (type, n_construct_params, construct_params);
+  GtkWidget *widget = (GtkWidget*) g_object_newv (type, n_construct_params, construct_params);
   g_object_set (widget, "name", name, NULL);
   return widget;
 }
@@ -1954,7 +1952,7 @@ gxk_adopt_hint_hook (GxkRadget           *radget,
                      const GValue        *value,
                      GParamSpec          *pspec)
 {
-  g_object_set_data_full (radget, "gxk-adopt-hint", g_value_dup_string (value), g_free);
+  g_object_set_data_full ((GObject*) radget, "gxk-adopt-hint", g_value_dup_string (value), g_free);
 }
 
 static gboolean
@@ -2001,7 +1999,7 @@ widget_set_pack (GxkRadget    *radget,
                  const GValue *value)
 {
   GtkWidget *parent = GTK_WIDGET (radget)->parent;
-  gtk_container_child_set_property (GTK_CONTAINER (parent), radget, pack_name, value);
+  gtk_container_child_set_property (GTK_CONTAINER (parent), (GtkWidget*) radget, pack_name, value);
 }
 
 void
@@ -2065,13 +2063,13 @@ menu_adopt (GxkRadget          *radget,
             GxkRadgetData      *gdgdata)
 {
   if (GTK_IS_MENU_ITEM (parent))
-    gxk_menu_attach_as_submenu (radget, parent);
+    gxk_menu_attach_as_submenu ((GtkMenu*) radget, (GtkMenuItem*) parent);
   else if (GTK_IS_OPTION_MENU (parent))
-    gtk_option_menu_set_menu (parent, radget);
+    gtk_option_menu_set_menu ((GtkOptionMenu*) parent, (GtkWidget*) radget);
   else if (GXK_IS_MENU_BUTTON (parent))
     g_object_set (parent, "menu", radget, NULL);
   else
-    gxk_menu_attach_as_popup (radget, parent);
+    gxk_menu_attach_as_popup ((GtkMenu*) radget, (GtkWidget*) parent);
   return TRUE;
 }
 
@@ -2085,7 +2083,7 @@ radget_define_gtk_menu (void)
     widget_create,
     (void(*)(GxkRadget*,const gchar*,const GValue*)) g_object_set_property,
     menu_adopt,
-    (void*) return_NULL,/* find_pack */
+    (GParamSpec* (*) (GxkRadget*, const gchar*)) return_NULL,/* find_pack */
     NULL,               /* set_pack */
   };
   const gchar *attribute_names[2] = { NULL, NULL };
@@ -2155,7 +2153,7 @@ argiter_pop (GSList **slist_p)
       d = (*slist_p)->data;
       *slist_p = (*slist_p)->next;
     }
-  return d;
+  return (const char*) d;
 }
 
 static inline gchar*
@@ -2376,7 +2374,7 @@ mf_nth (GSList *args,
   GSList *argiter = args->next; /* skip func name */
   gchar  *num = argiter_exp (&argiter, env);
   guint i = num_from_string (num);
-  const gchar *d = g_slist_nth_data (args->next, i);
+  const gchar *d = (const char*) g_slist_nth_data (args->next, i);
   g_free (num);
   return d ? expand_expr (d, env) : NULL;
 }
diff --git a/beast-gtk/gxk/gxkradgetfactory.c b/beast-gtk/gxk/gxkradgetfactory.cc
similarity index 94%
rename from beast-gtk/gxk/gxkradgetfactory.c
rename to beast-gtk/gxk/gxkradgetfactory.cc
index 567fd10..fbbb7e4 100644
--- a/beast-gtk/gxk/gxkradgetfactory.c
+++ b/beast-gtk/gxk/gxkradgetfactory.cc
@@ -156,7 +156,7 @@ gxk_radget_factory_finalize (GObject *object)
   gxk_radget_free_args (self->call_args);
   while (self->branches)
     {
-      GxkFactoryBranch *b = g_slist_pop_head (&self->branches);
+      GxkFactoryBranch *b = (GxkFactoryBranch*) g_slist_pop_head (&self->branches);
       g_object_unref (b);
     }
   
@@ -205,7 +205,7 @@ radget_factory_retrieve_branch (GxkRadgetFactory *self,
       g_slist_free (args_list);
       gxk_radget_free_args (action_args);
       if (parent == self->radget)
-        gxk_container_slot_reorder_child (GTK_CONTAINER (self->radget), radget, self->cslot);
+        gxk_container_slot_reorder_child (GTK_CONTAINER (self->radget), (GtkWidget*) radget, self->cslot);
       radget = gxk_radget_find_area (radget, NULL);
       g_datalist_set_data (&self->branch_widgets, key_path, radget);
     }
@@ -233,7 +233,7 @@ match_action_root (GxkRadgetFactory *self,
 #endif
   GtkWidget *ancestor;
   if (strcmp (self->action_root, ":xdef") == 0)
-    ancestor = self->xdef_radget;
+    ancestor = (GtkWidget*) self->xdef_radget;
   else
     ancestor = gxk_widget_find_level_ordered ((GtkWidget*) self->window, self->action_root);
   return ancestor && gxk_widget_has_ancestor (publisher, ancestor);
@@ -277,11 +277,11 @@ radget_factory_action_list_added (gpointer                client_data,
           radget = gxk_radget_creator (NULL, domain, self->per_list, self->radget, args_list, NULL);
           g_slist_free (args_list);
           gxk_radget_free_args (action_args);
-          gxk_container_slot_reorder_child (GTK_CONTAINER (self->radget), radget, self->cslot);
+          gxk_container_slot_reorder_child (GTK_CONTAINER (self->radget), (GtkWidget*) radget, self->cslot);
         }
       for (slist = self->branches; slist; slist = slist->next)
         {
-          GxkFactoryBranch *branch = slist->data;
+          GxkFactoryBranch *branch = (GxkFactoryBranch*) slist->data;
           if (branch->key_label)
             {
               gchar *key_path = gxk_factory_path_unescape_uline (branch->key_label);
@@ -331,7 +331,7 @@ radget_factory_action_list_added (gpointer                client_data,
           g_slist_free (args_list);
           gxk_radget_free_args (action_args);
           if (parent == self->radget)
-            gxk_container_slot_reorder_child (GTK_CONTAINER (self->radget), radget, self->cslot);
+            gxk_container_slot_reorder_child (GTK_CONTAINER (self->radget), (GtkWidget*) radget, self->cslot);
           if (GTK_IS_WIDGET (radget))
             {
               GxkRadget *achild = self->activatable ? gxk_radget_find (radget, self->activatable) : NULL;
@@ -345,7 +345,7 @@ radget_factory_action_list_added (gpointer                client_data,
                 }
               if (GTK_IS_WIDGET (rchild))
                 {
-                  gxk_action_list_regulate_widget (alist, i, rchild);
+                  gxk_action_list_regulate_widget (alist, i, (GtkWidget*) rchild);
                   const gchar *signal = GTK_IS_BUTTON (rchild) ? "clicked" : "activate"; /* work around buttons */
                   if (g_signal_lookup (signal, G_OBJECT_TYPE (rchild)))
                     g_signal_connect_after (rchild, signal,
@@ -364,11 +364,11 @@ radget_factory_check_anchored (gpointer data)
   GtkWidget *toplevel;
   gboolean is_window;
   GDK_THREADS_ENTER ();
-  toplevel = self->radget ? gxk_widget_get_attach_toplevel (self->radget) : NULL;
+  toplevel = self->radget ? gxk_widget_get_attach_toplevel ((GtkWidget*) self->radget) : NULL;
   is_window = GTK_IS_WINDOW (toplevel);
   if (is_window && !self->window)
     {
-      self->window = g_object_ref (toplevel);
+      self->window = (GtkWindow*) g_object_ref (toplevel);
       gxk_window_add_action_client (self->window, radget_factory_action_list_added, self);
     }
   else if (self->window && !is_window)
@@ -394,10 +394,10 @@ gxk_radget_factory_check_anchored (GxkRadgetFactory *self)
 static void
 destroy_factory_slist (gpointer data)
 {
-  GSList *slist = data;
+  GSList *slist = (GSList*) data;
   while (slist)
     {
-      GxkRadgetFactory *fact = g_slist_pop_head (&slist);
+      GxkRadgetFactory *fact = (GxkRadgetFactory*) g_slist_pop_head (&slist);
       g_object_run_dispose (G_OBJECT (fact));
       fact->radget = NULL;
       g_object_unref (fact);
@@ -414,9 +414,9 @@ gxk_radget_factory_attach (GxkRadgetFactory *self,
   g_return_if_fail (GTK_IS_WIDGET (radget));
   
   g_object_ref (self);
-  slist = g_object_steal_qdata (radget, quark_radget_factory_hook);
+  slist = (GSList*) g_object_steal_qdata ((GObject*) radget, quark_radget_factory_hook);
   slist = g_slist_prepend (slist, self);
-  g_object_set_qdata_full (radget, quark_radget_factory_hook, slist, destroy_factory_slist);
+  g_object_set_qdata_full ((GObject*) radget, quark_radget_factory_hook, slist, destroy_factory_slist);
   self->radget = radget;
   g_signal_connect_object (radget, "hierarchy-changed",
                            G_CALLBACK (gxk_radget_factory_check_anchored), self, G_CONNECT_SWAPPED);
@@ -426,9 +426,9 @@ gxk_radget_factory_attach (GxkRadgetFactory *self,
 }
 
 static void
-gxk_radget_factory_class_init (GxkRadgetFactoryClass *class)
+gxk_radget_factory_class_init (GxkRadgetFactoryClass *klass)
 {
-  GObjectClass *gobject_class = G_OBJECT_CLASS (class);
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
   
   quark_radget_factory_hook = g_quark_from_static_string ("GxkRadgetFactory-hook");
   
@@ -470,7 +470,7 @@ radget_factory_create (GType               type,
                        GParameter         *construct_params,
                        GxkRadgetData      *gdgdata)
 {
-  GtkWidget *widget = g_object_newv (type, n_construct_params, construct_params);
+  GtkWidget *widget = (GtkWidget*) g_object_newv (type, n_construct_params, construct_params);
   g_object_set (widget, "name", name, NULL);
   return widget;
 }
@@ -480,10 +480,10 @@ radget_factory_adopt (GxkRadget          *radget,
                       GxkRadget          *parent,
                       GxkRadgetData      *gdgdata)
 {
-  GxkRadgetFactory *self = radget;
+  GxkRadgetFactory *self = (GxkRadgetFactory*) radget;
   self->call_args = gxk_radget_data_copy_call_args (gdgdata);
   self->xdef_radget = gxk_radget_data_get_scope_radget (gdgdata);
-  gxk_radget_factory_attach (radget, GTK_WIDGET (parent));
+  gxk_radget_factory_attach ((GxkRadgetFactory*) radget, GTK_WIDGET (parent));
   self->cslot = gxk_container_get_insertion_slot (GTK_CONTAINER (parent));
   return FALSE; /* no support for packing options */
 }
@@ -550,9 +550,9 @@ gxk_factory_branch_finalize (GObject *object)
 }
 
 static void
-gxk_factory_branch_class_init (GxkFactoryBranchClass *class)
+gxk_factory_branch_class_init (GxkFactoryBranchClass *klass)
 {
-  GObjectClass *gobject_class = G_OBJECT_CLASS (class);
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
 
   gobject_class->set_property = gxk_factory_branch_set_property;
   gobject_class->finalize = gxk_factory_branch_finalize;
diff --git a/beast-gtk/gxk/gxkscrollcanvas.c b/beast-gtk/gxk/gxkscrollcanvas.cc
similarity index 86%
rename from beast-gtk/gxk/gxkscrollcanvas.c
rename to beast-gtk/gxk/gxkscrollcanvas.cc
index 0e5912e..19c0369 100644
--- a/beast-gtk/gxk/gxkscrollcanvas.c
+++ b/beast-gtk/gxk/gxkscrollcanvas.cc
@@ -31,8 +31,8 @@
 #define ALLOCATION(self)          (&GTK_WIDGET (self)->allocation)
 #define BORDER_WIDTH(self)        (GTK_CONTAINER (self)->border_width)
 #define LAYOUT(self)              (&(self)->layout)
-#define DRAG(self)                 g_object_get_data (self, "GxkScrollCanvas-drag")
-#define SET_DRAG(self, drag)       g_object_set_data_full (self, "GxkScrollCanvas-drag", drag, g_free)
+#define DRAG(self)                ((GxkScrollCanvasDrag*) g_object_get_data ((GObject*) self, "GxkScrollCanvas-drag"))
+#define SET_DRAG(self, drag)       g_object_set_data_full ((GObject*) self, "GxkScrollCanvas-drag", drag, g_free)
 /* switches */
 #define WITH_TOP_PANEL(self)      (LAYOUT (self)->top_panel_height ? 1 : 0)
 #define WITH_LEFT_PANEL(self)     (LAYOUT (self)->left_panel_width ? 1 : 0)
@@ -117,14 +117,14 @@ typedef enum    /*< skip >*/
 GxkDragMode
 gxk_drag_modifier_start (GdkModifierType key_mods)
 {
-  return 0;
+  return GxkDragMode (0);
 }
 
 GxkDragMode
 gxk_drag_modifier_next (GdkModifierType key_mods,
                         GxkDragMode     last_drag_mods)
 {
-  return 0;
+  return GxkDragMode (0);
 }
 
 G_DEFINE_TYPE (GxkScrollCanvas, gxk_scroll_canvas, GTK_TYPE_CONTAINER);
@@ -199,8 +199,8 @@ static void
 scroll_canvas_adjustment_changed_handler (GxkScrollCanvas *self,
                                           GtkAdjustment   *adjustment)
 {
-  GxkScrollCanvasClass *class = GXK_SCROLL_CANVAS_GET_CLASS (self);
-  class->adjustment_changed (self, adjustment);
+  GxkScrollCanvasClass *klass = GXK_SCROLL_CANVAS_GET_CLASS (self);
+  klass->adjustment_changed (self, adjustment);
 }
 
 void
@@ -222,9 +222,9 @@ gxk_scroll_canvas_set_hadjustment (GxkScrollCanvas *self,
     }
   
   if (!adjustment)
-    adjustment = g_object_new (GTK_TYPE_ADJUSTMENT, NULL);
+    adjustment = (GtkAdjustment*) g_object_new (GTK_TYPE_ADJUSTMENT, NULL);
   
-  self->hadjustment = g_object_ref (adjustment);
+  self->hadjustment = (GtkAdjustment*) g_object_ref (adjustment);
   gtk_object_sink (GTK_OBJECT (adjustment));
   g_object_connect (self->hadjustment,
                     "swapped_signal::changed", scroll_canvas_adjustment_changed_handler, self,
@@ -251,9 +251,9 @@ gxk_scroll_canvas_set_vadjustment (GxkScrollCanvas *self,
     }
   
   if (!adjustment)
-    adjustment = g_object_new (GTK_TYPE_ADJUSTMENT, NULL);
+    adjustment = (GtkAdjustment*) g_object_new (GTK_TYPE_ADJUSTMENT, NULL);
   
-  self->vadjustment = g_object_ref (adjustment);
+  self->vadjustment = (GtkAdjustment*) g_object_ref (adjustment);
   gtk_object_sink (GTK_OBJECT (adjustment));
   g_object_connect (self->vadjustment,
                     "swapped_signal::changed", scroll_canvas_adjustment_changed_handler, self,
@@ -275,13 +275,12 @@ scroll_canvas_set_scroll_adjustments (GxkScrollCanvas *self,
 void
 gxk_scroll_canvas_reset_pango_layouts (GxkScrollCanvas *self)
 {
-  gint i;
   g_return_if_fail (GXK_IS_SCROLL_CANVAS (self));
   /* resort to destroying the layouts to force recreation,
    * so things like merging a font_desc with STYLE->font_desc
    * take effect.
    */
-  for (i = 0; i < self->n_pango_layouts; i++)
+  for (uint i = 0; i < self->n_pango_layouts; i++)
     if (self->pango_layouts[i])
       {
         g_object_unref (self->pango_layouts[i]);
@@ -295,7 +294,7 @@ static void
 scroll_canvas_reset_skin_and_style (GxkScrollCanvas *self,
                                     gboolean         relayout)
 {
-  GxkScrollCanvasClass *class = GXK_SCROLL_CANVAS_GET_CLASS (self);
+  GxkScrollCanvasClass *klass = GXK_SCROLL_CANVAS_GET_CLASS (self);
   GtkWidget *widget = GTK_WIDGET (self);
   if (GTK_WIDGET_REALIZED (self))
     {
@@ -315,18 +314,18 @@ scroll_canvas_reset_skin_and_style (GxkScrollCanvas *self,
       /* reset background pixmap */
       if (self->canvas_pixmap)
         gxk_image_cache_unuse_pixmap (self->canvas_pixmap);
-      self->canvas_pixmap = gxk_image_cache_use_pixmap (class->image_file_name,
-                                                        class->image_tint, class->image_saturation,
+      self->canvas_pixmap = gxk_image_cache_use_pixmap (klass->image_file_name,
+                                                        klass->image_tint, klass->image_saturation,
                                                         gdk_drawable_get_colormap (self->canvas));
       /* revert to an empty pixbuf to let the shading still take effect */
       if (!self->canvas_pixmap)
         self->canvas_pixmap = gxk_image_cache_use_pixmap (GXK_IMAGE_BLACK32,
-                                                          class->image_tint, class->image_saturation,
+                                                          klass->image_tint, klass->image_saturation,
                                                           gdk_drawable_get_colormap (self->canvas));
       /* reset colors */
-      for (i = 0; i < class->n_colors; i++)
+      for (i = 0; i < klass->n_colors; i++)
         {
-          GdkColor color = class->colors[i];
+          GdkColor color = klass->colors[i];
           gdk_gc_set_rgb_fg_color (self->color_gc[i], &color);
         }
       /* reset pango layouts */
@@ -351,8 +350,8 @@ scroll_canvas_style_set (GtkWidget *widget,
 }
 
 static void
-scroll_canvas_state_changed (GtkWidget *widget,
-                             guint      previous_state)
+scroll_canvas_state_changed (GtkWidget   *widget,
+                             GtkStateType previous_state)
 {
   GxkScrollCanvas *self = GXK_SCROLL_CANVAS (widget);
   scroll_canvas_reset_skin_and_style (self, TRUE);
@@ -372,7 +371,7 @@ void
 gxk_scroll_canvas_get_layout (GxkScrollCanvas       *self,
                               GxkScrollCanvasLayout *layout)
 {
-  GxkScrollCanvasClass *class = GXK_SCROLL_CANVAS_GET_CLASS (self);
+  GxkScrollCanvasClass *klass = GXK_SCROLL_CANVAS_GET_CLASS (self);
   GxkScrollCanvasLayout tlayout;
   tlayout.top_panel_height = 10;
   tlayout.left_panel_width = 10;
@@ -382,9 +381,9 @@ gxk_scroll_canvas_get_layout (GxkScrollCanvas       *self,
   tlayout.canvas_height = 20;
   tlayout.max_canvas_width = G_MAXINT;
   tlayout.max_canvas_height = G_MAXINT;
-  if (class->get_layout)
+  if (klass->get_layout)
     {
-      class->get_layout (self, &tlayout);
+      klass->get_layout (self, &tlayout);
       tlayout.top_panel_height = MAX (0, tlayout.top_panel_height);
       tlayout.left_panel_width = MAX (0, tlayout.left_panel_width);
       tlayout.right_panel_width = MAX (0, tlayout.right_panel_width);
@@ -462,9 +461,9 @@ gxk_scroll_canvas_get_canvas_size (GxkScrollCanvas       *self,
 void
 gxk_scroll_canvas_reallocate (GxkScrollCanvas *self)
 {
-  GxkScrollCanvasClass *class;
+  GxkScrollCanvasClass *klass;
   g_return_if_fail (GXK_IS_SCROLL_CANVAS (self));
-  class = GXK_SCROLL_CANVAS_GET_CLASS (self);
+  klass = GXK_SCROLL_CANVAS_GET_CLASS (self);
 
   /* one reason we could be called is simply that self->layout has changed */
   gxk_scroll_canvas_get_layout (self, &self->layout);
@@ -496,8 +495,8 @@ gxk_scroll_canvas_reallocate (GxkScrollCanvas *self)
                               CANVAS_X (self), CANVAS_Y (self),
                               CANVAS_WIDTH (self), CANVAS_HEIGHT (self));
     }
-  if (class->reallocate_contents)
-    class->reallocate_contents (self, 0, 0);
+  if (klass->reallocate_contents)
+    klass->reallocate_contents (self, 0, 0);
   gxk_scroll_canvas_update_adjustments (self, TRUE, TRUE);
 }
 
@@ -519,10 +518,10 @@ static void
 scroll_canvas_realize (GtkWidget *widget)
 {
   GxkScrollCanvas *self = GXK_SCROLL_CANVAS (widget);
-  GxkScrollCanvasClass *class = GXK_SCROLL_CANVAS_GET_CLASS (self);
+  GxkScrollCanvasClass *klass = GXK_SCROLL_CANVAS_GET_CLASS (self);
   GdkWindowAttr attributes;
   guint i, attributes_mask;
-  GdkEventMask panel_events = (gtk_widget_get_events (widget) |
+  GdkEventMask panel_events = ((GdkEventMask) gtk_widget_get_events (widget) |
                                GDK_EXPOSURE_MASK |
                                GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK |
                                GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
@@ -545,7 +544,7 @@ scroll_canvas_realize (GtkWidget *widget)
   attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK;
   widget->window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask);
   gdk_window_set_user_data (widget->window, self);
-  gxk_window_set_cursor_type (widget->window, g_object_get_long (self, "window_cursor"));
+  gxk_window_set_cursor_type (widget->window, (GdkCursorType) g_object_get_long (self, "window_cursor"));
 
   /* self->top_panel */
   if (LAYOUT (self)->top_panel_height)
@@ -554,10 +553,10 @@ scroll_canvas_realize (GtkWidget *widget)
       attributes.y = TOP_PANEL_Y (self);
       attributes.width = TOP_PANEL_WIDTH (self);
       attributes.height = TOP_PANEL_HEIGHT (self);
-      attributes.event_mask = panel_events | class->top_panel_events;
+      attributes.event_mask = panel_events | klass->top_panel_events;
       self->top_panel = gdk_window_new (widget->window, &attributes, attributes_mask);
       gdk_window_set_user_data (self->top_panel, self);
-      gxk_window_set_cursor_type (self->top_panel, g_object_get_long (self, "top_panel_cursor"));
+      gxk_window_set_cursor_type (self->top_panel, (GdkCursorType) g_object_get_long (self, "top_panel_cursor"));
       gdk_window_show (self->top_panel);
     }
 
@@ -568,10 +567,10 @@ scroll_canvas_realize (GtkWidget *widget)
       attributes.y = LEFT_PANEL_Y (self);
       attributes.width = LEFT_PANEL_WIDTH (self);
       attributes.height = LEFT_PANEL_HEIGHT (self);
-      attributes.event_mask = panel_events | class->left_panel_events;
+      attributes.event_mask = panel_events | klass->left_panel_events;
       self->left_panel = gdk_window_new (widget->window, &attributes, attributes_mask);
       gdk_window_set_user_data (self->left_panel, self);
-      gxk_window_set_cursor_type (self->left_panel, g_object_get_long (self, "left_panel_cursor"));
+      gxk_window_set_cursor_type (self->left_panel, (GdkCursorType) g_object_get_long (self, "left_panel_cursor"));
       gdk_window_show (self->left_panel);
     }
 
@@ -582,10 +581,10 @@ scroll_canvas_realize (GtkWidget *widget)
       attributes.y = RIGHT_PANEL_Y (self);
       attributes.width = RIGHT_PANEL_WIDTH (self);
       attributes.height = RIGHT_PANEL_HEIGHT (self);
-      attributes.event_mask = panel_events | class->right_panel_events;
+      attributes.event_mask = panel_events | klass->right_panel_events;
       self->right_panel = gdk_window_new (widget->window, &attributes, attributes_mask);
       gdk_window_set_user_data (self->right_panel, self);
-      gxk_window_set_cursor_type (self->right_panel, g_object_get_long (self, "right_panel_cursor"));
+      gxk_window_set_cursor_type (self->right_panel, (GdkCursorType) g_object_get_long (self, "right_panel_cursor"));
       gdk_window_show (self->right_panel);
     }
 
@@ -596,10 +595,10 @@ scroll_canvas_realize (GtkWidget *widget)
       attributes.y = BOTTOM_PANEL_Y (self);
       attributes.width = BOTTOM_PANEL_WIDTH (self);
       attributes.height = BOTTOM_PANEL_HEIGHT (self);
-      attributes.event_mask = panel_events | class->bottom_panel_events;
+      attributes.event_mask = panel_events | klass->bottom_panel_events;
       self->bottom_panel = gdk_window_new (widget->window, &attributes, attributes_mask);
       gdk_window_set_user_data (self->bottom_panel, self);
-      gxk_window_set_cursor_type (self->bottom_panel, g_object_get_long (self, "bottom_panel_cursor"));
+      gxk_window_set_cursor_type (self->bottom_panel, (GdkCursorType) g_object_get_long (self, "bottom_panel_cursor"));
       gdk_window_show (self->bottom_panel);
     }
 
@@ -608,20 +607,20 @@ scroll_canvas_realize (GtkWidget *widget)
   attributes.y = CANVAS_Y (self);
   attributes.width = CANVAS_WIDTH (self);
   attributes.height = CANVAS_HEIGHT (self);
-  attributes.event_mask = panel_events | class->canvas_events;
+  attributes.event_mask = panel_events | klass->canvas_events;
   self->canvas = gdk_window_new (widget->window, &attributes, attributes_mask);
   gdk_window_set_user_data (self->canvas, self);
-  gxk_window_set_cursor_type (self->canvas, g_object_get_long (self, "canvas_cursor"));
+  gxk_window_set_cursor_type (self->canvas, (GdkCursorType) g_object_get_long (self, "canvas_cursor"));
   gdk_window_show (self->canvas);
 
   /* setup style, allocate colors */
   widget->style = gtk_style_attach (widget->style, widget->window);
-  self->color_gc = g_new0 (GdkGC*, class->n_colors);
-  for (i = 0; i < class->n_colors; i++)
+  self->color_gc = g_new0 (GdkGC*, klass->n_colors);
+  for (i = 0; i < klass->n_colors; i++)
     self->color_gc[i] = gdk_gc_new (widget->window);
 
   /* catch skin changes */
-  class->realized_widgets = g_slist_prepend (class->realized_widgets, self);
+  klass->realized_widgets = g_slist_prepend (klass->realized_widgets, self);
 
   /* setup backgrounds, colors and pango layouts */
   scroll_canvas_reset_skin_and_style (self, FALSE);
@@ -654,14 +653,14 @@ static void
 scroll_canvas_unrealize (GtkWidget *widget)
 {
   GxkScrollCanvas *self = GXK_SCROLL_CANVAS (widget);
-  GxkScrollCanvasClass *class = GXK_SCROLL_CANVAS_GET_CLASS (self);
+  GxkScrollCanvasClass *klass = GXK_SCROLL_CANVAS_GET_CLASS (self);
   guint i;
 
   /* ignore skin changes */
-  class->realized_widgets = g_slist_remove (class->realized_widgets, self);
+  klass->realized_widgets = g_slist_remove (klass->realized_widgets, self);
 
   /* release color GCs */
-  for (i = 0; i < class->n_colors; i++)
+  for (i = 0; i < klass->n_colors; i++)
     g_object_unref (self->color_gc[i]);
   g_free (self->color_gc);
   self->color_gc = NULL;
@@ -729,41 +728,41 @@ scroll_canvas_draw_window (GxkScrollCanvas        *self,
 
   /* frame: upper-left */
   x = 0, y = 0, xb = CANVAS_X (self), yb = CANVAS_Y (self);
-  gtk_paint_shadow (widget->style, drawable, widget->state, GTK_SHADOW_ETCHED_IN,
+  gtk_paint_shadow (widget->style, drawable, GtkStateType (widget->state), GTK_SHADOW_ETCHED_IN,
                     NULL, NULL, NULL, x, y, xb - x, yb - y);
   /* frame: upper-right */
   x = CANVAS_X (self) + CANVAS_WIDTH (self), y = 0, width = CANVAS_HREST (self), yb = CANVAS_Y (self);
-  gtk_paint_shadow (widget->style, drawable, widget->state, GTK_SHADOW_ETCHED_IN,
+  gtk_paint_shadow (widget->style, drawable, GtkStateType (widget->state), GTK_SHADOW_ETCHED_IN,
                     NULL, NULL, NULL, x, y, width, yb - y);
   /* frame: lower-left */
   x = 0, y = CANVAS_Y (self) + CANVAS_HEIGHT (self), xb = CANVAS_X (self), height = CANVAS_VREST (self);
-  gtk_paint_shadow (widget->style, drawable, widget->state, GTK_SHADOW_ETCHED_IN,
+  gtk_paint_shadow (widget->style, drawable, GtkStateType (widget->state), GTK_SHADOW_ETCHED_IN,
                     NULL, NULL, NULL, x, y, xb - x, height);
   /* frame: lower-right */
   x = CANVAS_X (self) + CANVAS_WIDTH (self), y = CANVAS_Y (self) + CANVAS_HEIGHT (self);
   width = CANVAS_HREST (self), height = CANVAS_VREST (self);
-  gtk_paint_shadow (widget->style, drawable, widget->state, GTK_SHADOW_ETCHED_IN,
+  gtk_paint_shadow (widget->style, drawable, GtkStateType (widget->state), GTK_SHADOW_ETCHED_IN,
                     NULL, NULL, NULL, x, y, width, height);
   /* frame: top-panel */
   x = TOP_PANEL_X (self), y = TOP_PANEL_Y (self), width = TOP_PANEL_WIDTH (self), height = TOP_PANEL_HEIGHT (self);
-  gtk_paint_shadow (widget->style, drawable, widget->state, GTK_SHADOW_OUT,
+  gtk_paint_shadow (widget->style, drawable, GtkStateType (widget->state), GTK_SHADOW_OUT,
                     NULL, NULL, NULL, x, y - YTHICKNESS (self), width, height + 2 * YTHICKNESS (self));
   /* frame: left-panel */
   x = LEFT_PANEL_X (self), y = LEFT_PANEL_Y (self), width = LEFT_PANEL_WIDTH (self), height = LEFT_PANEL_HEIGHT (self);
-  gtk_paint_shadow (widget->style, drawable, widget->state, GTK_SHADOW_OUT,
+  gtk_paint_shadow (widget->style, drawable, GtkStateType (widget->state), GTK_SHADOW_OUT,
                     NULL, NULL, NULL, x - XTHICKNESS (self), y, width + 2 * XTHICKNESS (self), height);
   /* frame: right-panel */
   x = RIGHT_PANEL_X (self), y = RIGHT_PANEL_Y (self), width = RIGHT_PANEL_WIDTH (self), height = RIGHT_PANEL_HEIGHT (self);
-  gtk_paint_shadow (widget->style, drawable, widget->state, GTK_SHADOW_OUT,
+  gtk_paint_shadow (widget->style, drawable, GtkStateType (widget->state), GTK_SHADOW_OUT,
                     NULL, NULL, NULL, x - XTHICKNESS (self), y, width + 2 * XTHICKNESS (self), height);
   /* frame: bottom-panel */
   x = BOTTOM_PANEL_X (self), y = BOTTOM_PANEL_Y (self), width = BOTTOM_PANEL_WIDTH (self), height = BOTTOM_PANEL_HEIGHT (self);
-  gtk_paint_shadow (widget->style, drawable, widget->state, GTK_SHADOW_OUT,
+  gtk_paint_shadow (widget->style, drawable, GtkStateType (widget->state), GTK_SHADOW_OUT,
                     NULL, NULL, NULL, x, y - YTHICKNESS (self), width, height + 2 * YTHICKNESS (self));
   /* frame */
   x = CANVAS_X (self) - XTHICKNESS (self), y = CANVAS_Y (self) - YTHICKNESS (self);
   width = CANVAS_WIDTH (self) + 2 * XTHICKNESS (self), height = CANVAS_HEIGHT (self) + 2 * YTHICKNESS (self);
-  gtk_paint_shadow (widget->style, drawable, widget->state,
+  gtk_paint_shadow (widget->style, drawable, GtkStateType (widget->state),
                     GTK_SHADOW_IN, NULL, NULL, NULL,
                     x, y, width, height);
   /* outline */
@@ -771,7 +770,7 @@ scroll_canvas_draw_window (GxkScrollCanvas        *self,
   y = CANVAS_Y (self) - TOP_PANEL_CFRAME (self) - TOP_PANEL_HEIGHT (self) - YTHICKNESS (self);
   xb = CANVAS_X (self) + CANVAS_WIDTH (self) + RIGHT_PANEL_CFRAME (self) + RIGHT_PANEL_WIDTH (self) + XTHICKNESS (self);
   yb = CANVAS_Y (self) + CANVAS_HEIGHT (self) + BOTTOM_PANEL_CFRAME (self) + BOTTOM_PANEL_HEIGHT (self) + YTHICKNESS (self);
-  gtk_paint_shadow (widget->style, drawable, widget->state,
+  gtk_paint_shadow (widget->style, drawable, GtkStateType (widget->state),
                     GTK_SHADOW_OUT, NULL, NULL, NULL,
                     x, y, xb - x, yb - y);
 }
@@ -833,7 +832,7 @@ scroll_canvas_redraw_markers (GxkScrollCanvas *self,
                               GdkWindow       *drawable,
                               GdkRectangle     area)
 {
-  GxkScrollCanvasClass *class = GXK_SCROLL_CANVAS_GET_CLASS (self);
+  GxkScrollCanvasClass *klass = GXK_SCROLL_CANVAS_GET_CLASS (self);
   guint i;
   for (i = 0; i < self->n_markers; i++)
     {
@@ -844,7 +843,7 @@ scroll_canvas_redraw_markers (GxkScrollCanvas *self,
           if (gdk_rectangle_intersect (&area, &marker->extends, &isec))
             {
               gdk_window_begin_paint_rect (*marker->windowp, &isec);
-              class->draw_marker (self, drawable, &isec, marker);
+              klass->draw_marker (self, drawable, &isec, marker);
               gdk_window_end_paint (*marker->windowp);
             }
         }
@@ -883,7 +882,7 @@ scroll_canvas_expose (GtkWidget      *widget,
                       GdkEventExpose *event)
 {
   GxkScrollCanvas *self = GXK_SCROLL_CANVAS (widget);
-  GxkScrollCanvasClass *class = GXK_SCROLL_CANVAS_GET_CLASS (self);
+  GxkScrollCanvasClass *klass = GXK_SCROLL_CANVAS_GET_CLASS (self);
   GdkRectangle *areas;
   gint j, n_areas;
   
@@ -895,7 +894,7 @@ scroll_canvas_expose (GtkWidget      *widget,
   else
     {
       n_areas = 1;
-      areas = g_memdup (&event->area, sizeof (event->area));
+      areas = (GdkRectangle*) g_memdup (&event->area, sizeof (event->area));
     }
 
   /* with gtk_widget_set_double_buffered (self, FALSE) in init and
@@ -908,75 +907,75 @@ scroll_canvas_expose (GtkWidget      *widget,
       GdkRectangle area = areas[j];
       if (event->window == widget->window)
         {
-          if (class->double_buffer_window)
+          if (klass->double_buffer_window)
             gdk_window_begin_paint_rect (event->window, &area);
-          else if (class->auto_clear)
+          else if (klass->auto_clear)
             gdk_window_clear_area (event->window, area.x, area.y, area.width, area.height);
-          class->draw_window (self, event->window, &area);
+          klass->draw_window (self, event->window, &area);
           GTK_WIDGET_CLASS (gxk_scroll_canvas_parent_class)->expose_event (widget, event);
           scroll_canvas_update_markers (self, event->window, areas[j]);
-          if (class->double_buffer_window)
+          if (klass->double_buffer_window)
             gdk_window_end_paint (event->window);
         }
       else if (event->window == self->canvas)
         {
           // g_print ("%s: canvas-expose: %d %d %d %d\n", G_OBJECT_TYPE_NAME (self), area.x, area.y, area.width, area.height);
-          if (class->double_buffer_canvas)
+          if (klass->double_buffer_canvas)
             gdk_window_begin_paint_rect (event->window, &area);
-          else if (class->auto_clear)
+          else if (klass->auto_clear)
             gdk_window_clear_area (event->window, area.x, area.y, area.width, area.height);
-          class->draw_canvas (self, event->window, &area);
+          klass->draw_canvas (self, event->window, &area);
           GTK_WIDGET_CLASS (gxk_scroll_canvas_parent_class)->expose_event (widget, event);
           scroll_canvas_update_markers (self, event->window, areas[j]);
-          if (class->double_buffer_canvas)
+          if (klass->double_buffer_canvas)
             gdk_window_end_paint (event->window);
         }
       else if (event->window == self->top_panel)
         {
-          if (class->double_buffer_top_panel)
+          if (klass->double_buffer_top_panel)
             gdk_window_begin_paint_rect (event->window, &area);
-          else if (class->auto_clear)
+          else if (klass->auto_clear)
             gdk_window_clear_area (event->window, area.x, area.y, area.width, area.height);
-          class->draw_top_panel (self, event->window, &area);
+          klass->draw_top_panel (self, event->window, &area);
           GTK_WIDGET_CLASS (gxk_scroll_canvas_parent_class)->expose_event (widget, event);
           scroll_canvas_update_markers (self, event->window, areas[j]);
-          if (class->double_buffer_top_panel)
+          if (klass->double_buffer_top_panel)
             gdk_window_end_paint (event->window);
         }
       else if (event->window == self->left_panel)
         {
-          if (class->double_buffer_left_panel)
+          if (klass->double_buffer_left_panel)
             gdk_window_begin_paint_rect (event->window, &area);
-          else if (class->auto_clear)
+          else if (klass->auto_clear)
             gdk_window_clear_area (event->window, area.x, area.y, area.width, area.height);
-          class->draw_left_panel (self, event->window, &area);
+          klass->draw_left_panel (self, event->window, &area);
           GTK_WIDGET_CLASS (gxk_scroll_canvas_parent_class)->expose_event (widget, event);
           scroll_canvas_update_markers (self, event->window, areas[j]);
-          if (class->double_buffer_left_panel)
+          if (klass->double_buffer_left_panel)
             gdk_window_end_paint (event->window);
         }
       else if (event->window == self->right_panel)
         {
-          if (class->double_buffer_right_panel)
+          if (klass->double_buffer_right_panel)
             gdk_window_begin_paint_rect (event->window, &area);
-          else if (class->auto_clear)
+          else if (klass->auto_clear)
             gdk_window_clear_area (event->window, area.x, area.y, area.width, area.height);
-          class->draw_right_panel (self, event->window, &area);
+          klass->draw_right_panel (self, event->window, &area);
           GTK_WIDGET_CLASS (gxk_scroll_canvas_parent_class)->expose_event (widget, event);
           scroll_canvas_update_markers (self, event->window, areas[j]);
-          if (class->double_buffer_right_panel)
+          if (klass->double_buffer_right_panel)
             gdk_window_end_paint (event->window);
         }
       else if (event->window == self->bottom_panel)
         {
-          if (class->double_buffer_bottom_panel)
+          if (klass->double_buffer_bottom_panel)
             gdk_window_begin_paint_rect (event->window, &area);
-          else if (class->auto_clear)
+          else if (klass->auto_clear)
             gdk_window_clear_area (event->window, area.x, area.y, area.width, area.height);
-          class->draw_bottom_panel (self, event->window, &area);
+          klass->draw_bottom_panel (self, event->window, &area);
           GTK_WIDGET_CLASS (gxk_scroll_canvas_parent_class)->expose_event (widget, event);
           scroll_canvas_update_markers (self, event->window, areas[j]);
-          if (class->double_buffer_bottom_panel)
+          if (klass->double_buffer_bottom_panel)
             gdk_window_end_paint (event->window);
         }
       else
@@ -1051,7 +1050,7 @@ gxk_scroll_canvas_set_window_cursor (GxkScrollCanvas *self,
 {
   GdkCursorType ocursor;
   g_return_if_fail (GXK_IS_SCROLL_CANVAS (self));
-  ocursor = g_object_get_long (self, "window_cursor");
+  ocursor = (GdkCursorType) g_object_get_long (self, "window_cursor");
   if (cursor != ocursor)
     {
       GtkWidget *widget = GTK_WIDGET (self);
@@ -1067,7 +1066,7 @@ gxk_scroll_canvas_set_canvas_cursor (GxkScrollCanvas *self,
 {
   GdkCursorType ocursor;
   g_return_if_fail (GXK_IS_SCROLL_CANVAS (self));
-  ocursor = g_object_get_long (self, "canvas_cursor");
+  ocursor = (GdkCursorType) g_object_get_long (self, "canvas_cursor");
   if (cursor != ocursor)
     {
       g_object_set_long (self, "canvas_cursor", cursor);
@@ -1082,7 +1081,7 @@ gxk_scroll_canvas_set_top_panel_cursor (GxkScrollCanvas *self,
 {
   GdkCursorType ocursor;
   g_return_if_fail (GXK_IS_SCROLL_CANVAS (self));
-  ocursor = g_object_get_long (self, "top_panel_cursor");
+  ocursor = (GdkCursorType) g_object_get_long (self, "top_panel_cursor");
   if (cursor != ocursor)
     {
       g_object_set_long (self, "top_panel_cursor", cursor);
@@ -1097,7 +1096,7 @@ gxk_scroll_canvas_set_left_panel_cursor (GxkScrollCanvas *self,
 {
   GdkCursorType ocursor;
   g_return_if_fail (GXK_IS_SCROLL_CANVAS (self));
-  ocursor = g_object_get_long (self, "left_panel_cursor");
+  ocursor = (GdkCursorType) g_object_get_long (self, "left_panel_cursor");
   if (cursor != ocursor)
     {
       g_object_set_long (self, "left_panel_cursor", cursor);
@@ -1112,7 +1111,7 @@ gxk_scroll_canvas_set_right_panel_cursor (GxkScrollCanvas *self,
 {
   GdkCursorType ocursor;
   g_return_if_fail (GXK_IS_SCROLL_CANVAS (self));
-  ocursor = g_object_get_long (self, "right_panel_cursor");
+  ocursor = (GdkCursorType) g_object_get_long (self, "right_panel_cursor");
   if (cursor != ocursor)
     {
       g_object_set_long (self, "right_panel_cursor", cursor);
@@ -1127,7 +1126,7 @@ gxk_scroll_canvas_set_bottom_panel_cursor (GxkScrollCanvas *self,
 {
   GdkCursorType ocursor;
   g_return_if_fail (GXK_IS_SCROLL_CANVAS (self));
-  ocursor = g_object_get_long (self, "bottom_panel_cursor");
+  ocursor = (GdkCursorType) g_object_get_long (self, "bottom_panel_cursor");
   if (cursor != ocursor)
     {
       g_object_set_long (self, "bottom_panel_cursor", cursor);
@@ -1178,15 +1177,15 @@ static void
 scroll_canvas_adjustment_value_changed (GxkScrollCanvas *self,
                                         GtkAdjustment   *adjustment)
 {
-  GxkScrollCanvasClass *class = GXK_SCROLL_CANVAS_GET_CLASS (self);
+  GxkScrollCanvasClass *klass = GXK_SCROLL_CANVAS_GET_CLASS (self);
   gint xdiff = 0, ydiff = 0;
-  if (class->hscrollable)
+  if (klass->hscrollable)
     {
       gint x = self->x_offset;
       self->x_offset = self->hadjustment->value;
       xdiff = x - self->x_offset;
     }
-  if (class->vscrollable)
+  if (klass->vscrollable)
     {
       gint y = self->y_offset;
       self->y_offset = self->vadjustment->value;
@@ -1206,9 +1205,8 @@ scroll_canvas_adjustment_value_changed (GxkScrollCanvas *self,
     }
   if (xdiff || ydiff)
     {
-      gint i;
       /* adjust marker coordinates */
-      for (i = 0; i < self->n_markers; i++)
+      for (uint i = 0; i < self->n_markers; i++)
         {
           GxkScrollMarker *marker = self->markers + i;
           if (xdiff && (marker->windowp == &self->canvas ||
@@ -1220,8 +1218,8 @@ scroll_canvas_adjustment_value_changed (GxkScrollCanvas *self,
                         marker->windowp == &self->right_panel))
             marker->extends.y += ydiff;
         }
-      if (class->reallocate_contents)
-        class->reallocate_contents (self, xdiff, ydiff);
+      if (klass->reallocate_contents)
+        klass->reallocate_contents (self, xdiff, ydiff);
     }
 }
 
@@ -1230,8 +1228,8 @@ gxk_scroll_canvas_update_adjustments (GxkScrollCanvas *self,
                                       gboolean         hadj,
                                       gboolean         vadj)
 {
-  GxkScrollCanvasClass *class = GXK_SCROLL_CANVAS_GET_CLASS (self);
-  if (hadj && class->hscrollable)
+  GxkScrollCanvasClass *klass = GXK_SCROLL_CANVAS_GET_CLASS (self);
+  if (hadj && klass->hscrollable)
     {
       self->hadjustment->lower = MAX (self->hadjustment->lower, 0);
       self->hadjustment->upper = CLAMP (self->hadjustment->upper, self->hadjustment->lower, G_MAXINT);
@@ -1241,7 +1239,7 @@ gxk_scroll_canvas_update_adjustments (GxkScrollCanvas *self,
       self->hadjustment->page_increment = self->hadjustment->page_size / 2;
       self->hadjustment->step_increment = CLAMP (self->hadjustment->step_increment, 0, self->hadjustment->page_increment);
     }
-  if (vadj && class->vscrollable)
+  if (vadj && klass->vscrollable)
     {
       self->vadjustment->lower = MAX (self->vadjustment->lower, 0);
       self->vadjustment->upper = CLAMP (self->vadjustment->upper, self->vadjustment->lower, G_MAXINT);
@@ -1259,11 +1257,11 @@ scroll_canvas_update_adjustments (GxkScrollCanvas *self,
                                   gboolean         hadj,
                                   gboolean         vadj)
 {
-  GxkScrollCanvasClass *class = GXK_SCROLL_CANVAS_GET_CLASS (self);
+  GxkScrollCanvasClass *klass = GXK_SCROLL_CANVAS_GET_CLASS (self);
   gdouble hv = self->hadjustment->value;
   gdouble vv = self->vadjustment->value;
   
-  if (hadj && class->hscrollable)
+  if (hadj && klass->hscrollable)
     {
       self->hadjustment->lower = MAX (self->hadjustment->lower, 0);
       self->hadjustment->upper = CLAMP (self->hadjustment->upper, self->hadjustment->lower, G_MAXINT);
@@ -1275,12 +1273,12 @@ scroll_canvas_update_adjustments (GxkScrollCanvas *self,
         self->hadjustment->page_increment = self->hadjustment->page_size / 2;
       self->hadjustment->step_increment = CLAMP (self->hadjustment->step_increment, 0, self->hadjustment->page_increment);
     }
-  if (class->hscrollable)
+  if (klass->hscrollable)
     self->hadjustment->value = CLAMP (self->hadjustment->value,
                                       self->hadjustment->lower,
                                       MAX (self->hadjustment->upper - self->hadjustment->page_size,
                                            self->hadjustment->lower));
-  if (vadj && class->vscrollable)
+  if (vadj && klass->vscrollable)
     {
       self->vadjustment->lower = MAX (self->vadjustment->lower, 0);
       self->vadjustment->upper = CLAMP (self->vadjustment->upper, self->vadjustment->lower, G_MAXINT);
@@ -1292,18 +1290,18 @@ scroll_canvas_update_adjustments (GxkScrollCanvas *self,
         self->vadjustment->page_increment = self->vadjustment->page_size / 2;
       self->vadjustment->step_increment = CLAMP (self->vadjustment->step_increment, 0, self->vadjustment->page_increment);
     }
-  if (class->vscrollable)
+  if (klass->vscrollable)
     self->vadjustment->value = CLAMP (self->vadjustment->value,
                                       self->vadjustment->lower,
                                       MAX (self->vadjustment->upper - self->vadjustment->page_size,
                                            self->hadjustment->lower));
-  if (hadj && class->hscrollable)
+  if (hadj && klass->hscrollable)
     gtk_adjustment_changed (self->hadjustment);
-  if (vadj && class->vscrollable)
+  if (vadj && klass->vscrollable)
     gtk_adjustment_changed (self->vadjustment);
-  if (hv != self->hadjustment->value && class->hscrollable)
+  if (hv != self->hadjustment->value && klass->hscrollable)
     gtk_adjustment_value_changed (self->hadjustment);
-  if (vv != self->vadjustment->value && class->vscrollable)
+  if (vv != self->vadjustment->value && klass->vscrollable)
     gtk_adjustment_value_changed (self->vadjustment);
 }
 
@@ -1312,11 +1310,11 @@ scroll_canvas_change_adjustments (GxkScrollCanvas *self,
                                   gint             xval,
                                   gint             yval)
 {
-  GxkScrollCanvasClass *class = GXK_SCROLL_CANVAS_GET_CLASS (self);
+  GxkScrollCanvasClass *klass = GXK_SCROLL_CANVAS_GET_CLASS (self);
   gdouble hv = self->hadjustment->value;
   gdouble vv = self->vadjustment->value;
 
-  if (class->hscrollable)
+  if (klass->hscrollable)
     {
       self->hadjustment->value = xval;
       self->hadjustment->value = CLAMP (self->hadjustment->value,
@@ -1324,7 +1322,7 @@ scroll_canvas_change_adjustments (GxkScrollCanvas *self,
                                         MAX (self->hadjustment->upper - self->hadjustment->page_size,
                                              self->hadjustment->lower));
     }
-  if (class->vscrollable)
+  if (klass->vscrollable)
     {
       self->vadjustment->value = yval;
       self->vadjustment->value = CLAMP (self->vadjustment->value,
@@ -1332,9 +1330,9 @@ scroll_canvas_change_adjustments (GxkScrollCanvas *self,
                                         MAX (self->vadjustment->upper - self->vadjustment->page_size,
                                              self->vadjustment->lower));
     }
-  if (class->hscrollable && hv != self->hadjustment->value)
+  if (klass->hscrollable && hv != self->hadjustment->value)
     gtk_adjustment_value_changed (self->hadjustment);
-  if (class->vscrollable && vv != self->vadjustment->value)
+  if (klass->vscrollable && vv != self->vadjustment->value)
     gtk_adjustment_value_changed (self->vadjustment);
 }
 
@@ -1363,18 +1361,16 @@ scroll_canvas_scroll_adjustments (GxkScrollCanvas *self,
 gboolean
 gxk_scroll_canvas_dragging (GxkScrollCanvas *self)
 {
-  GxkScrollCanvasDrag *drag;
   g_return_val_if_fail (GXK_IS_SCROLL_CANVAS (self), FALSE);
-  drag = DRAG (self);
+  GxkScrollCanvasDrag *drag = DRAG (self);
   return drag != NULL;
 }
 
 void
 gxk_scroll_canvas_drag_abort (GxkScrollCanvas *self)
 {
-  GxkScrollCanvasDrag *drag;
   g_return_if_fail (GXK_IS_SCROLL_CANVAS (self));
-  drag = DRAG (self);
+  GxkScrollCanvasDrag *drag = DRAG (self);
   if (drag)
     {
       GxkScrollCanvasDrag dcopy = *drag;
@@ -1439,7 +1435,7 @@ scroll_canvas_button_press (GtkWidget      *widget,
   drag = g_new0 (GxkScrollCanvasDrag, 1);
   drag->widget = widget;
   drag->type = GXK_DRAG_START;
-  drag->mode = gxk_drag_modifier_start (event->state);
+  drag->mode = gxk_drag_modifier_start (GdkModifierType (event->state));
   drag->button = event->button;
   drag->state = GXK_DRAG_UNHANDLED;
   drag->drawable = event->window;
@@ -1469,16 +1465,15 @@ static gboolean
 scroll_canvas_auto_scroller (gpointer data)
 {
   GxkScrollCanvas *self = GXK_SCROLL_CANVAS (data);
-  GxkScrollCanvasClass *class = GXK_SCROLL_CANVAS_GET_CLASS (self);
-  GxkScrollCanvasDrag *drag;
+  GxkScrollCanvasClass *klass = GXK_SCROLL_CANVAS_GET_CLASS (self);
   guint remain = 1;
 
   GDK_THREADS_ENTER ();
-  drag = DRAG (self);
+  GxkScrollCanvasDrag *drag = DRAG (self);
   if (drag && GTK_WIDGET_DRAWABLE (self))
     {
-      gboolean hdrag = class->hscrollable && (drag->canvas_drag || drag->top_panel_drag || drag->bottom_panel_drag);
-      gboolean vdrag = class->vscrollable && (drag->canvas_drag || drag->left_panel_drag || drag->right_panel_drag);
+      gboolean hdrag = klass->hscrollable && (drag->canvas_drag || drag->top_panel_drag || drag->bottom_panel_drag);
+      gboolean vdrag = klass->vscrollable && (drag->canvas_drag || drag->left_panel_drag || drag->right_panel_drag);
       gint x, y, width, height, xdiff = 0, ydiff = 0;
       GdkModifierType modifiers;
       gdk_window_get_size (drag->drawable, &width, &height);
@@ -1523,7 +1518,7 @@ scroll_canvas_motion (GtkWidget      *widget,
     {
       handled = TRUE;
       drag->type = GXK_DRAG_MOTION;
-      drag->mode = gxk_drag_modifier_next (event->state, drag->mode);
+      drag->mode = gxk_drag_modifier_next (GdkModifierType (event->state), drag->mode);
       scroll_canvas_drag (self, event->x, event->y, (GdkEvent*) event);
       drag = DRAG (self);
     }
@@ -1554,7 +1549,7 @@ scroll_canvas_button_release (GtkWidget      *widget,
     {
       handled = TRUE;
       drag->type = GXK_DRAG_DONE;
-      drag->mode = gxk_drag_modifier_next (event->state, drag->mode);
+      drag->mode = gxk_drag_modifier_next (GdkModifierType (event->state), drag->mode);
       scroll_canvas_drag (self, event->x, event->y, (GdkEvent*) event);
       drag = DRAG (self);
       SET_DRAG (self, NULL);
@@ -1590,11 +1585,11 @@ gxk_scroll_canvas_scroll_to (GxkScrollCanvas *self,
 
   if (GTK_WIDGET_REALIZED (self))
     {
-      GxkScrollCanvasClass *class = GXK_SCROLL_CANVAS_GET_CLASS (self);
+      GxkScrollCanvasClass *klass = GXK_SCROLL_CANVAS_GET_CLASS (self);
       gint ihv = self->hadjustment->value;
       gint ivv = self->vadjustment->value;
-      if ((class->hscrollable && ihv != scroll_area_x) ||
-          (class->vscrollable && ivv != scroll_area_y))
+      if ((klass->hscrollable && ihv != scroll_area_x) ||
+          (klass->vscrollable && ivv != scroll_area_y))
         {
           GxkScrollCanvasDrag *drag = DRAG (self);
           scroll_canvas_change_adjustments (self, scroll_area_x, scroll_area_y);
@@ -1734,15 +1729,11 @@ gxk_scroll_canvas_move_marker (GxkScrollCanvas        *self,
                                guint                   x,
                                guint                   y)
 {
-  GxkScrollCanvasClass *class;
-  GdkGC *draw_gc;
-  gint i, ox, oy;
   g_return_if_fail (GXK_IS_SCROLL_CANVAS (self));
   g_return_if_fail (marker != NULL);
-  class = GXK_SCROLL_CANVAS_GET_CLASS (self);
 
-  ox = marker->extends.x;
-  oy = marker->extends.y;
+  uint ox = marker->extends.x;
+  uint oy = marker->extends.y;
   if (x == ox && y == oy)
     return;
   if (!GTK_WIDGET_DRAWABLE (self) || !marker->pixmap || !*marker->windowp)
@@ -1753,23 +1744,24 @@ gxk_scroll_canvas_move_marker (GxkScrollCanvas        *self,
     }
 
   /* restore backing under marker */
-  draw_gc = STYLE (self)->bg_gc[STATE (self)];
+  GdkGC *draw_gc = STYLE (self)->bg_gc[STATE (self)];
   gdk_window_begin_paint_rect (*marker->windowp, &marker->extends);
   gdk_draw_drawable (*marker->windowp, draw_gc, marker->pixmap,
                      0, 0, marker->extends.x, marker->extends.y,
                      marker->extends.width, marker->extends.height);
   /* restore overlapping markers */
-  for (i = 0; i < self->n_markers; i++)
+  GxkScrollCanvasClass *klass = GXK_SCROLL_CANVAS_GET_CLASS (self);
+  for (uint i = 0; i < self->n_markers; i++)
     {
       GxkScrollMarker *marker2 = self->markers + i;
       if (marker2 != marker && marker2->windowp == marker->windowp && marker2->pixmap)
         {
           GdkRectangle isec, nsec = marker->extends;
           if (gdk_rectangle_intersect (&marker->extends, &marker2->extends, &isec))
-            class->draw_marker (self, *marker2->windowp, &isec, marker2);
+            klass->draw_marker (self, *marker2->windowp, &isec, marker2);
           nsec.x = x, nsec.y = y;       /* check against new region */
           if (gdk_rectangle_intersect (&nsec, &marker2->extends, &isec))
-            class->draw_marker (self, *marker2->windowp, &isec, marker2);
+            klass->draw_marker (self, *marker2->windowp, &isec, marker2);
         }
     }
 
@@ -1782,7 +1774,7 @@ gxk_scroll_canvas_move_marker (GxkScrollCanvas        *self,
                      marker->extends.x, marker->extends.y, 0, 0,
                      marker->extends.width, marker->extends.height);
   /* save backing from overlapping markers */
-  for (i = 0; i < self->n_markers; i++)
+  for (uint i = 0; i < self->n_markers; i++)
     {
       GxkScrollMarker *marker2 = self->markers + i;
       if (marker2 != marker && marker2->windowp == marker->windowp && marker2->pixmap)
@@ -1801,17 +1793,17 @@ gxk_scroll_canvas_move_marker (GxkScrollCanvas        *self,
   gdk_draw_drawable (*marker->windowp, draw_gc, marker->pixmap,
                      0, 0, marker->extends.x, marker->extends.y,
                      marker->extends.width, marker->extends.height);
-  for (i = 0; i < self->n_markers; i++)
+  for (uint i = 0; i < self->n_markers; i++)
     {
       GxkScrollMarker *marker2 = self->markers + i;
       if (marker2->windowp == marker->windowp && marker2->pixmap)
         {
           GdkRectangle isec, osec = marker->extends;
           if (gdk_rectangle_intersect (&marker->extends, &marker2->extends, &isec))
-            class->draw_marker (self, *marker2->windowp, &isec, marker2);
+            klass->draw_marker (self, *marker2->windowp, &isec, marker2);
           osec.x = ox, osec.y = oy;     /* check against old region */
           if (gdk_rectangle_intersect (&osec, &marker2->extends, &isec))
-            class->draw_marker (self, *marker2->windowp, &isec, marker2);
+            klass->draw_marker (self, *marker2->windowp, &isec, marker2);
         }
     }
 
@@ -1826,12 +1818,12 @@ dummy_handler (void)
 }
 
 static void
-gxk_scroll_canvas_class_init (GxkScrollCanvasClass *class)
+gxk_scroll_canvas_class_init (GxkScrollCanvasClass *klass)
 {
-  GObjectClass *gobject_class = G_OBJECT_CLASS (class);
-  GtkObjectClass *object_class = GTK_OBJECT_CLASS (class);
-  GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class);
-  // GtkContainerClass *container_class = GTK_CONTAINER_CLASS (class);
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  GtkObjectClass *object_class = GTK_OBJECT_CLASS (klass);
+  GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+  // GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass);
   
   gobject_class->finalize = scroll_canvas_finalize;
   
@@ -1853,34 +1845,34 @@ gxk_scroll_canvas_class_init (GxkScrollCanvasClass *class)
   widget_class->focus_out_event = scroll_canvas_focus_out;
 
   /* widget config */
-  class->double_buffer_top_panel = TRUE;
-  class->double_buffer_left_panel = TRUE;
-  class->double_buffer_right_panel = TRUE;
-  class->double_buffer_bottom_panel = TRUE;
-  class->double_buffer_canvas = TRUE;
-  class->double_buffer_window = TRUE;
-  class->auto_clear = TRUE;
-  class->grab_focus = TRUE;
-  class->hscrollable = FALSE;
-  class->vscrollable = FALSE;
+  klass->double_buffer_top_panel = TRUE;
+  klass->double_buffer_left_panel = TRUE;
+  klass->double_buffer_right_panel = TRUE;
+  klass->double_buffer_bottom_panel = TRUE;
+  klass->double_buffer_canvas = TRUE;
+  klass->double_buffer_window = TRUE;
+  klass->auto_clear = TRUE;
+  klass->grab_focus = TRUE;
+  klass->hscrollable = FALSE;
+  klass->vscrollable = FALSE;
   /* skin config */
-  class->image_file_name = NULL;
-  class->image_tint.red = 0xff00;
-  class->image_tint.green = 0xff00;
-  class->image_tint.blue = 0xff00;
-  class->image_saturation = 0.9;
+  klass->image_file_name = NULL;
+  klass->image_tint.red = 0xff00;
+  klass->image_tint.green = 0xff00;
+  klass->image_tint.blue = 0xff00;
+  klass->image_saturation = 0.9;
   /* virtual methods */
-  class->get_layout = (gpointer) dummy_handler;
-  class->set_scroll_adjustments = scroll_canvas_set_scroll_adjustments;
-  class->update_adjustments = scroll_canvas_update_adjustments;
-  class->adjustment_changed = scroll_canvas_adjustment_changed;
-  class->draw_window = scroll_canvas_draw_window;
-  class->draw_canvas = scroll_canvas_draw_canvas;
-  class->draw_top_panel = scroll_canvas_draw_panel;
-  class->draw_left_panel = scroll_canvas_draw_panel;
-  class->draw_right_panel = scroll_canvas_draw_panel;
-  class->draw_bottom_panel = scroll_canvas_draw_panel;
-  class->handle_drag = (gpointer) dummy_handler;
+  klass->get_layout = (void (*) (GxkScrollCanvas*, GxkScrollCanvasLayout*)) dummy_handler;
+  klass->set_scroll_adjustments = scroll_canvas_set_scroll_adjustments;
+  klass->update_adjustments = scroll_canvas_update_adjustments;
+  klass->adjustment_changed = scroll_canvas_adjustment_changed;
+  klass->draw_window = scroll_canvas_draw_window;
+  klass->draw_canvas = scroll_canvas_draw_canvas;
+  klass->draw_top_panel = scroll_canvas_draw_panel;
+  klass->draw_left_panel = scroll_canvas_draw_panel;
+  klass->draw_right_panel = scroll_canvas_draw_panel;
+  klass->draw_bottom_panel = scroll_canvas_draw_panel;
+  klass->handle_drag = (void (*) (GxkScrollCanvas*, GxkScrollCanvasDrag*, GdkEvent*)) dummy_handler;
   
   widget_class->set_scroll_adjustments_signal =
     gtk_signal_new ("set_scroll_adjustments",
@@ -1892,10 +1884,10 @@ gxk_scroll_canvas_class_init (GxkScrollCanvasClass *class)
 }
 
 void
-gxk_scroll_canvas_class_skin_changed (GxkScrollCanvasClass *class)
+gxk_scroll_canvas_class_skin_changed (GxkScrollCanvasClass *klass)
 {
   GSList *slist;
-  g_return_if_fail (GXK_IS_SCROLL_CANVAS_CLASS (class));
-  for (slist = class->realized_widgets; slist; slist = slist->next)
-    scroll_canvas_reset_skin_and_style (slist->data, TRUE);
+  g_return_if_fail (GXK_IS_SCROLL_CANVAS_CLASS (klass));
+  for (slist = klass->realized_widgets; slist; slist = slist->next)
+    scroll_canvas_reset_skin_and_style ((GxkScrollCanvas*) slist->data, TRUE);
 }
diff --git a/beast-gtk/gxk/gxksimplelabel.c b/beast-gtk/gxk/gxksimplelabel.cc
similarity index 97%
rename from beast-gtk/gxk/gxksimplelabel.c
rename to beast-gtk/gxk/gxksimplelabel.cc
index b605b8d..77800cb 100644
--- a/beast-gtk/gxk/gxksimplelabel.c
+++ b/beast-gtk/gxk/gxksimplelabel.cc
@@ -100,19 +100,19 @@ gxk_simple_label_get_type (void)
           32,             /* n_preallocs */
           (GInstanceInitFunc) simple_label_init,
         };
-      label_type = g_type_register_static (GTK_TYPE_MISC, "GxkSimpleLabel", &label_info, 0);
+      label_type = g_type_register_static (GTK_TYPE_MISC, "GxkSimpleLabel", &label_info, GTypeFlags (0));
     }
   return label_type;
 }
 
 static void
-simple_label_class_init (GxkSimpleLabelClass *class)
+simple_label_class_init (GxkSimpleLabelClass *klass)
 {
-  GObjectClass *gobject_class = G_OBJECT_CLASS (class);
-  GtkObjectClass *object_class = GTK_OBJECT_CLASS (class);
-  GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class);
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  GtkObjectClass *object_class = GTK_OBJECT_CLASS (klass);
+  GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
   
-  parent_class = g_type_class_peek_parent (class);
+  parent_class = g_type_class_peek_parent (klass);
   
   gobject_class->set_property = simple_label_set_property;
   gobject_class->get_property = simple_label_get_property;
@@ -225,14 +225,14 @@ simple_label_set_property (GObject      *object,
       if (cstr)
         {
           if (self->use_underline)
-            g_object_notify (self, "use-underline");
+            g_object_notify ((GObject*) self, "use-underline");
           self->use_underline = FALSE;
         }
       simple_label_set_pattern_internal (self, cstr);
       gxk_simple_label_recalculate (self);
       break;
     case PROP_MNEMONIC_WIDGET:
-      gxk_simple_label_set_mnemonic_widget (self, g_value_get_object (value));
+      gxk_simple_label_set_mnemonic_widget (self, (GtkWidget*) g_value_get_object (value));
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -376,7 +376,7 @@ static void
 label_mnemonic_widget_weak_notify (gpointer      data,
                                    GObject      *where_the_object_was)
 {
-  GxkSimpleLabel *label = data;
+  GxkSimpleLabel *label = (GxkSimpleLabel*) data;
   
   label->mnemonic_widget = NULL;
   g_object_notify (G_OBJECT (label), "mnemonic_widget");
@@ -399,7 +399,7 @@ gxk_simple_label_set_mnemonic_widget (GxkSimpleLabel  *self,
     g_object_weak_ref (G_OBJECT (self->mnemonic_widget),
                        label_mnemonic_widget_weak_notify,
                        self);
-  g_object_notify (self, "mnemonic_widget");
+  g_object_notify ((GObject*) self, "mnemonic_widget");
 }
 
 static PangoAttrList*
@@ -692,7 +692,7 @@ simple_label_expose (GtkWidget      *widget,
       get_layout_location (self, &x, &y);
       gtk_paint_layout (widget->style,
                         widget->window,
-                        GTK_WIDGET_STATE (widget),
+                        GtkStateType (GTK_WIDGET_STATE (widget)),
                         FALSE,
                         &event->area,
                         widget,
diff --git a/beast-gtk/gxk/gxkspline.c b/beast-gtk/gxk/gxkspline.cc
similarity index 96%
rename from beast-gtk/gxk/gxkspline.c
rename to beast-gtk/gxk/gxkspline.cc
index 0b07303..13a4359 100644
--- a/beast-gtk/gxk/gxkspline.c
+++ b/beast-gtk/gxk/gxkspline.cc
@@ -21,7 +21,7 @@
 #include <math.h>
 
 #define SQRT_3       (1.7320508075688772935274463415059)
-static const double INF = 1e+999;
+static const double INF = DBL_MAX;
 
 
 /* --- functions --- */
@@ -75,15 +75,15 @@ gxk_spline_new_natural (guint                   n_points,
 GxkSpline*
 gxk_spline_copy (GxkSpline *spline)
 {
-  return g_memdup (spline, sizeof (spline[0]) + spline->n_segs * sizeof (spline->segs[0]));
+  return (GxkSpline*) g_memdup (spline, sizeof (spline[0]) + spline->n_segs * sizeof (spline->segs[0]));
 }
 
 static int
 spline_segment_cmp (const void *v1,
                     const void *v2)
 {
-  const GxkSplineSegment *s1 = v1;
-  const GxkSplineSegment *s2 = v2;
+  const GxkSplineSegment *s1 = (GxkSplineSegment*) v1;
+  const GxkSplineSegment *s2 = (GxkSplineSegment*) v2;
   return s1->x < s2->x ? -1 : s1->x > s2->x;
 }
 
@@ -103,10 +103,10 @@ gxk_spline_new (guint                   n_points,
                 double                  dy_end)
 {
   g_return_val_if_fail (n_points >= 2, NULL);
-  GxkSpline *spline = g_malloc (sizeof (spline[0]) + n_points * sizeof (spline->segs[0]));
+  GxkSpline *spline = (GxkSpline*) g_malloc (sizeof (spline[0]) + n_points * sizeof (spline->segs[0]));
   /* initialize segments */
   spline->n_segs = n_points;
-  gint i;
+  uint i;
   for (i = 0; i < spline->n_segs; i++)
     {
       GxkSplineSegment *seg = spline->segs + i;
@@ -117,7 +117,7 @@ gxk_spline_new (guint                   n_points,
   /* ensure the segments are sorted in ascending order */
   qsort (spline->segs, spline->n_segs, sizeof (spline->segs[0]), spline_segment_cmp);
   /* check the first derivatives for not-a-knot vs. natural spline */
-  double *dyx = g_alloca (sizeof (dyx[0]) * spline->n_segs);
+  double *dyx = (double*) g_alloca (sizeof (dyx[0]) * spline->n_segs);
   GxkSplineSegment *ss = spline->segs;
   /* curvature of first point */
   if (isnan (dy_start))
@@ -129,7 +129,7 @@ gxk_spline_new (guint                   n_points,
       double deltay = ss[1].y - ss[0].y;
       dyx[0]= (3. / deltax) * (deltay / deltax - dy_start);
     }
-  gint last = spline->n_segs - 1;
+  uint last = spline->n_segs - 1;
   /* decomposition loop of tridiagonal algorithm */
   for (i = 1; i < last; i++)
     {
diff --git a/beast-gtk/gxk/gxkstatusbar.c b/beast-gtk/gxk/gxkstatusbar.cc
similarity index 79%
rename from beast-gtk/gxk/gxkstatusbar.c
rename to beast-gtk/gxk/gxkstatusbar.cc
index 7963136..9008249 100644
--- a/beast-gtk/gxk/gxkstatusbar.c
+++ b/beast-gtk/gxk/gxkstatusbar.cc
@@ -60,7 +60,7 @@ status_bar_remove_timer (GxkStatusBar *sbar)
 static void
 sbar_free (gpointer data)
 {
-  GxkStatusBar *sbar = data;
+  GxkStatusBar *sbar = (GxkStatusBar*) data;
   
   status_bar_remove_timer (sbar);
   g_object_unref (sbar->pbar);
@@ -84,23 +84,23 @@ gxk_status_bar_create (void)
   if (!quark_status_bar)
     quark_status_bar = g_quark_from_static_string ("GxkStatusBar");
   
-  sbar->sbar = g_object_new (GTK_TYPE_FRAME,
-                             "visible", FALSE,
-                             "shadow", GTK_SHADOW_OUT,
-                             NULL);
-  obox = g_object_new (GTK_TYPE_HBOX,
-                       "visible", TRUE,
-                       "homogeneous", FALSE,
-                       "resize_mode", GTK_RESIZE_QUEUE,
-                       "width_request", 110, /* squeeze labels into available space */
-                       "spacing", 0,
-                       "border_width", 1,
-                       "parent", sbar->sbar,
-                       NULL);
-  sbar->pbar = g_object_new (GTK_TYPE_PROGRESS_BAR,
-                             "visible", TRUE,
-                             "width_request", 100,
-                             NULL);
+  sbar->sbar = (GtkWidget*) g_object_new (GTK_TYPE_FRAME,
+                                          "visible", FALSE,
+                                          "shadow", GTK_SHADOW_OUT,
+                                          NULL);
+  obox = (GtkWidget*) g_object_new (GTK_TYPE_HBOX,
+                                    "visible", TRUE,
+                                    "homogeneous", FALSE,
+                                    "resize_mode", GTK_RESIZE_QUEUE,
+                                    "width_request", 110, /* squeeze labels into available space */
+                                    "spacing", 0,
+                                    "border_width", 1,
+                                    "parent", sbar->sbar,
+                                    NULL);
+  sbar->pbar = (GtkProgressBar*) g_object_new (GTK_TYPE_PROGRESS_BAR,
+                                               "visible", TRUE,
+                                               "width_request", 100,
+                                               NULL);
   sbar->prog = GTK_PROGRESS (sbar->pbar);
   gtk_progress_bar_set_pulse_step (sbar->pbar, 0.01);   /* per pulse increment */
   gtk_progress_bar_set_activity_blocks (sbar->pbar, 4); /* pbar length divider */
@@ -108,23 +108,23 @@ gxk_status_bar_create (void)
   gtk_progress_set_show_text (sbar->prog, TRUE);
   gtk_box_pack_start (GTK_BOX (obox), GTK_WIDGET (sbar->pbar), FALSE, TRUE, 0);
   
-  hbox = g_object_new (GTK_TYPE_HBOX,
-                       "visible", TRUE,
-                       "homogeneous", FALSE,
-                       "parent", g_object_new (GTK_TYPE_FRAME,
-                                               "shadow", GTK_SHADOW_IN,
-                                               "visible", TRUE,
-                                               "parent", obox,
-                                               NULL),
-                       NULL);
-  sbar->message = g_object_new (GTK_TYPE_LABEL,
-                                "visible", TRUE,
-                                "xalign", 0.0,
-                                NULL);
+  hbox = (GtkWidget*) g_object_new (GTK_TYPE_HBOX,
+                                    "visible", TRUE,
+                                    "homogeneous", FALSE,
+                                    "parent", g_object_new (GTK_TYPE_FRAME,
+                                                            "shadow", GTK_SHADOW_IN,
+                                                            "visible", TRUE,
+                                                            "parent", obox,
+                                                            NULL),
+                                    NULL);
+  sbar->message = (GtkLabel*) g_object_new (GTK_TYPE_LABEL,
+                                            "visible", TRUE,
+                                            "xalign", 0.0,
+                                            NULL);
   gtk_box_pack_start (GTK_BOX (hbox), GTK_WIDGET (sbar->message), TRUE, TRUE, GTK_STYLE_THICKNESS (hbox->style, y));
-  sbar->status = g_object_new (GTK_TYPE_LABEL,
-                               "xalign", 1.0,
-                               NULL);
+  sbar->status = (GtkLabel*) g_object_new (GTK_TYPE_LABEL,
+                                           "xalign", 1.0,
+                                           NULL);
   gtk_box_pack_end (GTK_BOX (hbox), GTK_WIDGET (sbar->status), FALSE, TRUE, GTK_STYLE_THICKNESS (hbox->style, y));
   
   g_object_ref (sbar->pbar);
@@ -141,7 +141,7 @@ gxk_status_bar_create (void)
 static gboolean
 status_bar_clear_handler (gpointer data)
 {
-  GxkStatusBar *sbar = data;
+  GxkStatusBar *sbar = (GxkStatusBar*) data;
 
   GDK_THREADS_ENTER ();
   sbar->timer_id = 0;
@@ -182,7 +182,7 @@ status_bar_set (GxkStatusBar *sbar,
                 const gchar  *status_msg)
 {
   guint clear_timeout = 7 * 1000;       /* default clearance timeout */
-  gchar *format = "   ";                /* idle progress format */
+  const char *format = "   ";           /* idle progress format */
   gfloat fraction = 0;
   gboolean activity_pulse = FALSE;
   gboolean beep = FALSE;                /* flag beeps for errors */
@@ -352,10 +352,10 @@ void
 gxk_status_window_push (gpointer widget)
 {
   g_return_if_fail (GTK_IS_WIDGET (widget));
-  widget = gtk_widget_get_toplevel (widget);
+  widget = gtk_widget_get_toplevel ((GtkWidget*) widget);
   g_return_if_fail (GTK_IS_WINDOW (widget) == TRUE);
   
-  gtk_widget_ref (widget);
+  gtk_widget_ref ((GtkWidget*) widget);
   status_window_stack = g_slist_prepend (status_window_stack, widget);
 }
 
@@ -368,7 +368,7 @@ gxk_status_window_pop (void)
 {
   g_return_if_fail (status_window_stack != NULL);
   
-  gtk_widget_unref (status_window_stack->data);
+  gtk_widget_unref ((GtkWidget*) status_window_stack->data);
   status_window_stack = g_slist_remove (status_window_stack, status_window_stack->data);
 }
 
@@ -383,9 +383,9 @@ status_bar_get_current (void)
       dialog = GXK_DIALOG (slist->data);
       
       if (dialog->status_bar && GTK_WIDGET_DRAWABLE (dialog->status_bar))
-        return g_object_get_qdata (G_OBJECT (dialog->status_bar), quark_status_bar);
+        return (GxkStatusBar*) g_object_get_qdata (G_OBJECT (dialog->status_bar), quark_status_bar);
     }
   dialog = gxk_dialog_get_status_window ();
   
-  return dialog ? g_object_get_qdata (G_OBJECT (dialog->status_bar), quark_status_bar) : NULL;
+  return dialog ? (GxkStatusBar*) g_object_get_qdata (G_OBJECT (dialog->status_bar), quark_status_bar) : NULL;
 }
diff --git a/beast-gtk/gxk/gxkstock.c b/beast-gtk/gxk/gxkstock.cc
similarity index 90%
rename from beast-gtk/gxk/gxkstock.c
rename to beast-gtk/gxk/gxkstock.cc
index 1ba2a87..b946cff 100644
--- a/beast-gtk/gxk/gxkstock.c
+++ b/beast-gtk/gxk/gxkstock.cc
@@ -19,14 +19,14 @@
 #include <string.h>
 
 /* --- variables --- */
-guint  gxk_size_button = 0;
-guint  gxk_size_big_button = 0;
-guint  gxk_size_canvas = 0;
-guint  gxk_size_toolbar = 0;
-guint  gxk_size_menu = 0;
-guint  gxk_size_tabulator = 0;
-guint  gxk_size_info_sign = 0;
-guint  gxk_size_palette = 0;
+GtkIconSize  gxk_size_button = GtkIconSize (0);
+GtkIconSize  gxk_size_big_button = GtkIconSize (0);
+GtkIconSize  gxk_size_canvas = GtkIconSize (0);
+GtkIconSize  gxk_size_toolbar = GtkIconSize (0);
+GtkIconSize  gxk_size_menu = GtkIconSize (0);
+GtkIconSize  gxk_size_tabulator = GtkIconSize (0);
+GtkIconSize  gxk_size_info_sign = GtkIconSize (0);
+GtkIconSize  gxk_size_palette = GtkIconSize (0);
 static GtkIconFactory *stock_icon_factory = NULL;
 
 
@@ -123,9 +123,9 @@ gxk_stock_button (const gchar *stock_id,
 
   g_return_val_if_fail (stock_id != NULL, NULL);
 
-  button = g_object_new (GTK_TYPE_BUTTON,
-			 "visible", TRUE,
-			 NULL);
+  button = (GtkWidget*) g_object_new (GTK_TYPE_BUTTON,
+                                      "visible", TRUE,
+                                      NULL);
   alignment = gxk_stock_button_child (stock_id, label);
   gtk_container_add (GTK_CONTAINER (button), alignment);
 
@@ -158,10 +158,10 @@ gxk_stock_button_child (const gchar *stock_id,
   if (image)
     gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, TRUE, 0);
   gtk_box_pack_start (GTK_BOX (hbox),
-		      g_object_new (GTK_TYPE_LABEL,
-				    "label", label ? label : gxk_stock_item (stock_id),
-				    "use_underline", TRUE,
-				    NULL),
+		      (GtkWidget*) g_object_new (GTK_TYPE_LABEL,
+                                                 "label", label ? label : gxk_stock_item (stock_id),
+                                                 "use_underline", TRUE,
+                                                 NULL),
 		      FALSE, TRUE, 0);
   gtk_widget_show_all (alignment);
 
@@ -235,7 +235,7 @@ gxk_stock_register_item (const GxkStockItem *item)
     tkitem.label = (gchar*) item->label;
   else
     tkitem.label = (gchar*) gxk_stock_item (item->stock_fallback);
-  tkitem.modifier = 0;
+  tkitem.modifier = GdkModifierType (0);
   tkitem.keyval = 0;
   tkitem.translation_domain = NULL;
   gtk_stock_add (&tkitem, 1);
@@ -302,7 +302,7 @@ gxk_stock_fallback_pixbuf (const gchar *stock_id)
 
   g_return_val_if_fail (stock_id != NULL, NULL);
 
-  pixbuf = g_datalist_get_data (&stock_pixbuf_repo, stock_id);
+  pixbuf = (GdkPixbuf*) g_datalist_get_data (&stock_pixbuf_repo, stock_id);
   if (!pixbuf)
     {
       GtkIconSet *iset = gtk_icon_factory_lookup_default (stock_id);
@@ -313,7 +313,7 @@ gxk_stock_fallback_pixbuf (const gchar *stock_id)
 	  if (!style)
 	    style = gtk_style_new ();
 	  pixbuf = gtk_icon_set_render_icon (iset, style, GTK_TEXT_DIR_NONE,
-					     GTK_STATE_NORMAL, -1, NULL, NULL);
+					     GTK_STATE_NORMAL, GtkIconSize (-1), NULL, NULL);
 	  g_datalist_set_data (&stock_pixbuf_repo, stock_id, pixbuf);
 	}
     }
@@ -393,7 +393,7 @@ gxk_stock_icon_window (const gchar *stock_id)
   gtk_widget_realize (drag_window);
   gdk_window_raise (drag_window->window);
   bitmap_data = gdk_pixbuf_create_bitmap_data (pixbuf, &width, &height, 1);
-  mask = gdk_bitmap_create_from_data (drag_window->window, bitmap_data, width, height);
+  mask = gdk_bitmap_create_from_data (drag_window->window, (const char*) bitmap_data, width, height);
   g_free (bitmap_data);
   gtk_widget_shape_combine_mask (drag_window, mask, 0, 0);
   gdk_pixmap_unref (mask);
diff --git a/beast-gtk/gxk/gxktest.c b/beast-gtk/gxk/gxktest.cc
similarity index 56%
rename from beast-gtk/gxk/gxktest.c
rename to beast-gtk/gxk/gxktest.cc
index 49815fc..4599c40 100644
--- a/beast-gtk/gxk/gxktest.c
+++ b/beast-gtk/gxk/gxktest.cc
@@ -50,7 +50,7 @@ static void scroll_canvas_test (void);
 static gint
 led_timer (gpointer data)
 {
-  GxkLed *led = data;
+  GxkLed *led = (GxkLed*) data;
   static guint led_cindex = 0;
 
   GDK_THREADS_ENTER ();
@@ -65,7 +65,7 @@ int
 main (int   argc,
       char *argv[])
 {
-  GtkWidget *window, *led, *polygon1, *polygon2, *polygon, *box, *box2;
+  GtkWidget *led, *polygon1, *polygon2, *polygon, *box, *box2;
   GxkPolygonArc arcs[64];
   guint i;
   
@@ -101,7 +101,7 @@ main (int   argc,
       { 0.5, 0.5, 0.0, 0.1 }, /* / */
     };
     GxkPolygonGraph graph = { G_N_ELEMENTS (lines), lines, 0, NULL };
-    polygon1 = gxk_polygon_new (&graph);
+    polygon1 = (GtkWidget*) gxk_polygon_new (&graph);
   }
   
   {
@@ -120,51 +120,51 @@ main (int   argc,
       { 0.0, 0.1, 0.5, 0.5 }, /* / */
     };
     GxkPolygonGraph graph = { G_N_ELEMENTS (lines), lines, 0, NULL };
-    polygon2 = gxk_polygon_new (&graph);
+    polygon2 = (GtkWidget*) gxk_polygon_new (&graph);
   }
   i = 0;
   arcs[i++] = (GxkPolygonArc) { 0.5, 0.5, 0.3, 0.3, 0, +360 }; /* O */
   arcs[i++] = (GxkPolygonArc) { 0.5, 0.5, 0.1, 0.1, 0, -360 }; /* o */
   gxk_polygon_set_arcs (GXK_POLYGON (polygon2), i, arcs);
   
-  box = g_object_new (GTK_TYPE_VBOX,
-		      "visible", TRUE,
-		      NULL);
+  box = (GtkWidget*) g_object_new (GTK_TYPE_VBOX,
+                                   "visible", TRUE,
+                                   NULL);
   gtk_box_pack_start (GTK_BOX (box), polygon1, TRUE, TRUE, 5);
   gtk_box_pack_start (GTK_BOX (box), polygon2, TRUE, TRUE, 5);
-  box2 = g_object_new (GTK_TYPE_HBOX,
-		       "visible", TRUE,
-		       NULL);
+  box2 = (GtkWidget*) g_object_new (GTK_TYPE_HBOX,
+                                    "visible", TRUE,
+                                    NULL);
   gtk_box_pack_start (GTK_BOX (box), box2, FALSE, FALSE, 5);
 
-  polygon = gxk_polygon_new (&gxk_polygon_power);
+  polygon = (GtkWidget*) gxk_polygon_new (&gxk_polygon_power);
   gtk_box_pack_start (GTK_BOX (box2), polygon, FALSE, FALSE, 5);
   
-  polygon = gxk_polygon_new (&gxk_polygon_stop);
+  polygon = (GtkWidget*) gxk_polygon_new (&gxk_polygon_stop);
   gtk_box_pack_start (GTK_BOX (box2), polygon, FALSE, FALSE, 5);
 
-  polygon = gxk_polygon_new (&gxk_polygon_first);
+  polygon = (GtkWidget*) gxk_polygon_new (&gxk_polygon_first);
   gtk_box_pack_start (GTK_BOX (box2), polygon, FALSE, FALSE, 5);
 
-  polygon = gxk_polygon_new (&gxk_polygon_previous);
+  polygon = (GtkWidget*) gxk_polygon_new (&gxk_polygon_previous);
   gtk_box_pack_start (GTK_BOX (box2), polygon, FALSE, FALSE, 5);
   
-  polygon = gxk_polygon_new (&gxk_polygon_rewind);
+  polygon = (GtkWidget*) gxk_polygon_new (&gxk_polygon_rewind);
   gtk_box_pack_start (GTK_BOX (box2), polygon, FALSE, FALSE, 5);
   
-  polygon = gxk_polygon_new (&gxk_polygon_play);
+  polygon = (GtkWidget*) gxk_polygon_new (&gxk_polygon_play);
   gtk_box_pack_start (GTK_BOX (box2), polygon, FALSE, FALSE, 5);
   
-  polygon = gxk_polygon_new (&gxk_polygon_pause);
+  polygon = (GtkWidget*) gxk_polygon_new (&gxk_polygon_pause);
   gtk_box_pack_start (GTK_BOX (box2), polygon, FALSE, FALSE, 5);
   
-  polygon = gxk_polygon_new (&gxk_polygon_forward);
+  polygon = (GtkWidget*) gxk_polygon_new (&gxk_polygon_forward);
   gtk_box_pack_start (GTK_BOX (box2), polygon, FALSE, FALSE, 5);
   
-  polygon = gxk_polygon_new (&gxk_polygon_next);
+  polygon = (GtkWidget*) gxk_polygon_new (&gxk_polygon_next);
   gtk_box_pack_start (GTK_BOX (box2), polygon, FALSE, FALSE, 5);
 
-  polygon = gxk_polygon_new (&gxk_polygon_last);
+  polygon = (GtkWidget*) gxk_polygon_new (&gxk_polygon_last);
   gtk_box_pack_start (GTK_BOX (box2), polygon, FALSE, FALSE, 5);
   
   {
@@ -175,21 +175,21 @@ main (int   argc,
       { 0.25, 0.75, 0.25, 0.25 }, /* down */
     };
     GxkPolygonGraph graph = { G_N_ELEMENTS (lines), lines, 0, NULL, 30 };
-    polygon = gxk_polygon_new (&graph);
+    polygon = (GtkWidget*) gxk_polygon_new (&graph);
   }
   // gxk_polygon_set_length (GXK_POLYGON (polygon), 21);
   gtk_box_pack_start (GTK_BOX (box2), polygon, FALSE, FALSE, 5);
   
-  led = gxk_led_new (0x13f4e5);
+  led = (GtkWidget*) gxk_led_new (0x13f4e5);
   gtk_box_pack_start (GTK_BOX (box), led, TRUE, TRUE, 5);
-  window = g_object_new (GTK_TYPE_WINDOW,
-			 "border_width", 20,
-			 "child", box,
-			 "default_width", 400,
-			 "default_height", 400,
-			 "visible", TRUE,
-			 "sensitive", FALSE,
-			 NULL);
+  g_object_new (GTK_TYPE_WINDOW,
+                "border_width", 20,
+                "child", box,
+                "default_width", 400,
+                "default_height", 400,
+                "visible", TRUE,
+                "sensitive", FALSE,
+                NULL);
   g_timeout_add (400, led_timer, led);
 
   /* start main loop */
@@ -218,42 +218,41 @@ exit_program ()
 static void
 rack_test (void)
 {
-  GtkWidget *win, *box = g_object_new (GTK_TYPE_VBOX, "visible", TRUE, NULL);
-  GtkWidget *button = g_object_new (GTK_TYPE_TOGGLE_BUTTON,
-                                    "visible", TRUE,
-                                    "use_underline", TRUE,
-                                    "label", "_Edit",
-                                    NULL);
-  GxkRackTable *rtable = g_object_new (GXK_TYPE_RACK_TABLE, NULL);
+  GtkWidget *win, *box = (GtkWidget*) g_object_new (GTK_TYPE_VBOX, "visible", TRUE, NULL);
+  GtkWidget *button = (GtkWidget*) g_object_new (GTK_TYPE_TOGGLE_BUTTON,
+                                                 "visible", TRUE,
+                                                 "use_underline", TRUE,
+                                                 "label", "_Edit",
+                                                 NULL);
+  GxkRackTable *rtable = (GxkRackTable*) g_object_new (GXK_TYPE_RACK_TABLE, NULL);
   gtk_table_resize (GTK_TABLE (rtable), 20, 30);
   gtk_box_pack_start (GTK_BOX (box), button, FALSE, TRUE, 0);
   gtk_box_pack_start (GTK_BOX (box), GTK_WIDGET (rtable), TRUE, TRUE, 0);
   g_object_connect (button, "signal::clicked", toggle_edit_mode, rtable, NULL);
   gtk_table_attach_defaults (GTK_TABLE (rtable),
-                             g_object_new (GTK_TYPE_BUTTON, "visible", 1, "label", "Huhu", NULL),
+                             (GtkWidget*) g_object_new (GTK_TYPE_BUTTON, "visible", 1, "label", "Huhu", NULL),
                              3, 20, 3, 5);
   gtk_container_add (GTK_CONTAINER (rtable),
-                     g_object_new (GXK_TYPE_RACK_ITEM,
-                                   "child", g_object_new (GTK_TYPE_LABEL, "visible", 1, "label", "RackItem", NULL),
-                                   NULL));
+                     (GtkWidget*) g_object_new (GXK_TYPE_RACK_ITEM,
+                                                "child", g_object_new (GTK_TYPE_LABEL, "visible", 1, "label", "RackItem", NULL),
+                                                NULL));
   gtk_container_add (GTK_CONTAINER (rtable),
-                     g_object_new (GXK_TYPE_RACK_ITEM,
-                                   NULL));
+                     (GtkWidget*) g_object_new (GXK_TYPE_RACK_ITEM, NULL));
   gtk_container_add (GTK_CONTAINER (rtable),
-                     g_object_new (GXK_TYPE_RACK_ITEM,
-                                   "shadow-type", GTK_SHADOW_ETCHED_IN,
-                                   "label-widget", g_object_new (GXK_TYPE_SIMPLE_LABEL,
-                                                                 "visible", 1,
-                                                                 "label", "Huhu, this is an opverlong label text",
-                                                                 "auto-cut", TRUE,
-                                                                 NULL),
-                                   NULL));
-  win = g_object_new (GTK_TYPE_WINDOW,
-                      "border_width", 20,
-                      "child", box,
-                      "sensitive", TRUE,
-                      "visible", TRUE,
-                      NULL);
+                     (GtkWidget*) g_object_new (GXK_TYPE_RACK_ITEM,
+                                                "shadow-type", GTK_SHADOW_ETCHED_IN,
+                                                "label-widget", g_object_new (GXK_TYPE_SIMPLE_LABEL,
+                                                                              "visible", 1,
+                                                                              "label", "Huhu, this is an opverlong label text",
+                                                                              "auto-cut", TRUE,
+                                                                              NULL),
+                                                NULL));
+  win = (GtkWidget*) g_object_new (GTK_TYPE_WINDOW,
+                                   "border_width", 20,
+                                   "child", box,
+                                   "sensitive", TRUE,
+                                   "visible", TRUE,
+                                   NULL);
   g_object_connect (win,
                     "signal::hide", exit_program, NULL,
                     "signal::delete-event", gtk_widget_hide_on_delete, NULL,
@@ -294,51 +293,51 @@ faked_scroll_canvas_get_layout (GxkScrollCanvas        *self,
 static void
 scroll_canvas_test (void)
 {
-  GtkWidget *win, *box = g_object_new (GTK_TYPE_VBOX, "visible", TRUE, NULL);
-  GtkWidget *btn1 = g_object_new (GTK_TYPE_TOGGLE_BUTTON,
-                                  "visible", TRUE,
-                                  "use_underline", TRUE,
-                                  "label", "_Top",
-                                  "active", 1,
-                                  "user_data", 1,
-                                  NULL);
-  GtkWidget *btn2 = g_object_new (GTK_TYPE_TOGGLE_BUTTON,
-                                  "visible", TRUE,
-                                  "use_underline", TRUE,
-                                  "label", "_Left",
-                                  "active", 1,
-                                  "user_data", 2,
-                                  NULL);
-  GtkWidget *btn3 = g_object_new (GTK_TYPE_TOGGLE_BUTTON,
-                                  "visible", TRUE,
-                                  "use_underline", TRUE,
-                                  "label", "_Right",
-                                  "active", 1,
-                                  "user_data", 3,
-                                  NULL);
-  GtkWidget *btn4 = g_object_new (GTK_TYPE_TOGGLE_BUTTON,
-                                  "visible", TRUE,
-                                  "use_underline", TRUE,
-                                  "label", "_Bottom",
-                                  "active", 1,
-                                  "user_data", 4,
-                                  NULL);
-  GtkWidget *btn5 = g_object_new (GTK_TYPE_TOGGLE_BUTTON,
-                                  "visible", TRUE,
-                                  "use_underline", TRUE,
-                                  "label", "Border _Width",
-                                  "active", 1,
-                                  "user_data", 5,
-                                  NULL);
-  GtkWidget *frame = g_object_new (GTK_TYPE_FRAME,
-                                   "visible", TRUE,
-                                   "shadow_type", GTK_SHADOW_IN,
-                                   "border_width", 5,
-                                   NULL);
-  GxkScrollCanvas *scc = g_object_new (GXK_TYPE_SCROLL_CANVAS,
-                                       "border-width", 10,
-                                       "parent", frame,
-                                       NULL);
+  GtkWidget *win, *box = (GtkWidget*) g_object_new (GTK_TYPE_VBOX, "visible", TRUE, NULL);
+  GtkWidget *btn1 = (GtkWidget*) g_object_new (GTK_TYPE_TOGGLE_BUTTON,
+                                               "visible", TRUE,
+                                               "use_underline", TRUE,
+                                               "label", "_Top",
+                                               "active", 1,
+                                               "user_data", 1,
+                                               NULL);
+  GtkWidget *btn2 = (GtkWidget*) g_object_new (GTK_TYPE_TOGGLE_BUTTON,
+                                               "visible", TRUE,
+                                               "use_underline", TRUE,
+                                               "label", "_Left",
+                                               "active", 1,
+                                               "user_data", 2,
+                                               NULL);
+  GtkWidget *btn3 = (GtkWidget*) g_object_new (GTK_TYPE_TOGGLE_BUTTON,
+                                               "visible", TRUE,
+                                               "use_underline", TRUE,
+                                               "label", "_Right",
+                                               "active", 1,
+                                               "user_data", 3,
+                                               NULL);
+  GtkWidget *btn4 = (GtkWidget*) g_object_new (GTK_TYPE_TOGGLE_BUTTON,
+                                               "visible", TRUE,
+                                               "use_underline", TRUE,
+                                               "label", "_Bottom",
+                                               "active", 1,
+                                               "user_data", 4,
+                                               NULL);
+  GtkWidget *btn5 = (GtkWidget*) g_object_new (GTK_TYPE_TOGGLE_BUTTON,
+                                               "visible", TRUE,
+                                               "use_underline", TRUE,
+                                               "label", "Border _Width",
+                                               "active", 1,
+                                               "user_data", 5,
+                                               NULL);
+  GtkWidget *frame = (GtkWidget*) g_object_new (GTK_TYPE_FRAME,
+                                                "visible", TRUE,
+                                                "shadow_type", GTK_SHADOW_IN,
+                                                "border_width", 5,
+                                                NULL);
+  GxkScrollCanvas *scc = (GxkScrollCanvas*) g_object_new (GXK_TYPE_SCROLL_CANVAS,
+                                                          "border-width", 10,
+                                                          "parent", frame,
+                                                          NULL);
   /* patch up scroll-canvas class to have a layout */
   g_type_class_unref (g_type_class_ref (GXK_TYPE_SCROLL_CANVAS)); // ensure class exists
   GXK_SCROLL_CANVAS_CLASS (g_type_class_peek (GXK_TYPE_SCROLL_CANVAS))->get_layout = faked_scroll_canvas_get_layout;
@@ -353,14 +352,14 @@ scroll_canvas_test (void)
   g_object_connect (btn3, "signal::clicked", toggle_panel_sizes, scc, NULL);
   g_object_connect (btn4, "signal::clicked", toggle_panel_sizes, scc, NULL);
   g_object_connect (btn5, "signal::clicked", toggle_panel_sizes, scc, NULL);
-  win = g_object_new (GTK_TYPE_WINDOW,
-                      "border_width", 20,
-                      "child", box,
-                      "sensitive", TRUE,
-                      "default-height", 320,
-                      "default-width", 400,
-                      "visible", TRUE,
-                      NULL);
+  win = (GtkWidget*) g_object_new (GTK_TYPE_WINDOW,
+                                   "border_width", 20,
+                                   "child", box,
+                                   "sensitive", TRUE,
+                                   "default-height", 320,
+                                   "default-width", 400,
+                                   "visible", TRUE,
+                                   NULL);
   g_object_connect (win,
                     "signal::hide", exit_program, NULL,
                     "signal::delete-event", gtk_widget_hide_on_delete, NULL,
diff --git a/beast-gtk/gxk/gxktexttools.c b/beast-gtk/gxk/gxktexttools.cc
similarity index 91%
rename from beast-gtk/gxk/gxktexttools.c
rename to beast-gtk/gxk/gxktexttools.cc
index 621690a..5890ad7 100644
--- a/beast-gtk/gxk/gxktexttools.c
+++ b/beast-gtk/gxk/gxktexttools.cc
@@ -82,12 +82,12 @@ text_buffer_add_error (GtkTextBuffer *tbuffer,
   va_list args;
   if (!tag)
     {
-      tag = g_object_new (GTK_TYPE_TEXT_TAG,
-                          "name", "gxk-text-tools-error",
-                          "foreground", "#000000",
-                          "background", "#ff0000",
-                          "wrap_mode", GTK_WRAP_WORD,
-                          NULL);
+      tag = (GtkTextTag*) g_object_new (GTK_TYPE_TEXT_TAG,
+                                        "name", "gxk-text-tools-error",
+                                        "foreground", "#000000",
+                                        "background", "#ff0000",
+                                        "wrap_mode", GTK_WRAP_WORD,
+                                        NULL);
       g_object_set_int (tag, "gxk-text-tools-owned", 1);
       gtk_text_tag_table_add (table, tag);
       g_object_unref (tag);
@@ -153,7 +153,7 @@ pixbuf_new_from_path (const gchar *file_name,
       GSList *slist;
       for (slist = tsm_paths; slist && !pixbuf; slist = slist->next)
         {
-          gchar *loc = g_strconcat (slist->data, file_name, NULL);
+          char *loc = g_strconcat ((const char*) slist->data, file_name, NULL);
           pixbuf = gdk_pixbuf_new_from_file (loc, NULL);
           g_free (loc);
         }
@@ -173,13 +173,13 @@ typedef struct {
 static void
 free_textgets (gpointer data)
 {
-  GSList *slist = data;
+  GSList *slist = (GSList*) data;
   while (slist)
     {
-      Textget *textget = g_slist_pop_head (&slist);
+      Textget *textget = (Textget*) g_slist_pop_head (&slist);
       while (textget->widgets)
         {
-          GtkWidget *widget = g_slist_pop_head (&textget->widgets);
+          GtkWidget *widget = (GtkWidget*) g_slist_pop_head (&textget->widgets);
           g_object_unref (widget);
         }
       g_free (textget);
@@ -196,9 +196,9 @@ gxk_text_buffer_create_textget (GtkTextBuffer *tbuffer)
   gtk_text_buffer_get_iter_at_mark (tbuffer, &iter, gtk_text_buffer_get_insert (tbuffer));
   textget->anchor = gtk_text_buffer_create_child_anchor (tbuffer, &iter);
   textget->widgets = NULL;
-  slist = g_object_steal_data (tbuffer, "textgets");
+  slist = (GSList*) g_object_steal_data ((GObject*) tbuffer, "textgets");
   slist = g_slist_prepend (slist, textget);
-  g_object_set_data_full (tbuffer, "textgets", slist, free_textgets);
+  g_object_set_data_full ((GObject*) tbuffer, "textgets", slist, free_textgets);
   return textget;
 }
 
@@ -238,7 +238,7 @@ gxk_text_buffer_handle_textget (GtkTextBuffer *tbuffer,
   GSList *slist;
   for (slist = textget_handlers; slist; slist = slist->next)
     {
-      TextgetHandler *th = slist->data;
+      TextgetHandler *th = (TextgetHandler*) slist->data;
       if (strcmp (element_name, th->element_name) == 0)
         {
           GtkWidget *widget = th->handler (th->user_data, element_name, attribute_names, attribute_values);
@@ -257,18 +257,16 @@ void
 gxk_text_buffer_add_textgets_to_view (GtkTextBuffer *tbuffer,
                                       GtkTextView   *tview)
 {
-  GSList *slist;
-
   g_return_if_fail (GTK_IS_TEXT_BUFFER (tbuffer));
   g_return_if_fail (GTK_IS_TEXT_VIEW (tview));
 
-  slist = g_object_steal_data (tbuffer, "textgets");
+  GSList *slist = (GSList*) g_object_steal_data ((GObject*) tbuffer, "textgets");
   while (slist)
     {
-      Textget *textget = g_slist_pop_head (&slist);
+      Textget *textget = (Textget*) g_slist_pop_head (&slist);
       while (textget->widgets)
         {
-          GtkWidget *widget = g_slist_pop_head (&textget->widgets);
+          GtkWidget *widget = (GtkWidget*) g_slist_pop_head (&textget->widgets);
           gtk_text_view_add_child_at_anchor (tview, widget, textget->anchor);
           g_object_unref (widget);
         }
@@ -310,10 +308,10 @@ enum_match_value (GEnumClass  *eclass,
                   gint         fallback)
 {
   guint i, length = strlen (name);
-  
+
   for (i = 0; i < eclass->n_values; i++)
     {
-      gchar *vname = eclass->values[i].value_name;
+      const char *vname = eclass->values[i].value_name;
       guint n = strlen (vname);
       if (((n > length && char2eval (vname[n - 1 - length]) == '-')
            || n == length)
@@ -322,7 +320,7 @@ enum_match_value (GEnumClass  *eclass,
     }
   for (i = 0; i < eclass->n_values; i++)
     {
-      gchar *vname = eclass->values[i].value_nick;
+      const char *vname = eclass->values[i].value_nick;
       guint n = strlen (vname);
       if (((n > length && char2eval (vname[n - 1 - length]) == '-')
            || n == length)
@@ -354,9 +352,9 @@ text_buffer_tagdef (GtkTextBuffer *tbuffer,
   gint edefault = 0;
   if (!tag)
     {
-      tag = g_object_new (GTK_TYPE_TEXT_TAG,
-                          "name", tag_name,
-                          NULL);
+      tag = (GtkTextTag*) g_object_new (GTK_TYPE_TEXT_TAG,
+                                        "name", tag_name,
+                                        NULL);
       g_object_set_int (tag, "gxk-text-tools-owned", 1);
       gtk_text_tag_table_add (ttable, tag);
       g_object_unref (tag);
@@ -399,7 +397,7 @@ text_buffer_tagdef (GtkTextBuffer *tbuffer,
       break;
     case G_TYPE_ENUM:
       g_value_init (&value, vtype);
-      eclass = g_type_class_ref (vtype);
+      eclass = (GEnumClass*) g_type_class_ref (vtype);
       g_value_set_enum (&value, enum_match_value (eclass, tag_value, edefault));
       g_type_class_unref (eclass);
       break;
@@ -446,7 +444,7 @@ static GtkStyle*
 tsm_data_ensure_style (TsmData *md)
 {
   if (!md->style)
-    md->style = g_object_new (GTK_TYPE_STYLE, NULL);
+    md->style = (GtkStyle*) g_object_new (GTK_TYPE_STYLE, NULL);
   return md->style;
 }
 
@@ -459,14 +457,14 @@ data_tag_event (GtkTextTag        *tag,
 {
   if (0)
     {
-      GEnumClass *eclass = g_type_class_ref (GDK_TYPE_EVENT_TYPE);
+      GEnumClass *eclass = (GEnumClass*) g_type_class_ref (GDK_TYPE_EVENT_TYPE);
       GEnumValue *ev = g_enum_get_value (eclass, event->type);
       g_message ("TextTagEvent: %s\n", ev->value_name);
       g_type_class_unref (eclass);
     }
   if (event->type == GDK_BUTTON_PRESS)
     {
-      const gchar *data = g_object_get_data (G_OBJECT (tag), "data");
+      const gchar *data = (const char*) g_object_get_data (G_OBJECT (tag), "data");
       g_signal_emit (tbuffer, signal_custom_activate, 0, data);
       return TRUE;
     }
@@ -485,20 +483,20 @@ struct _TsmLevel
 static const TsmLevel*
 tsm_peek_level (TsmData *md)
 {
-  static const TsmLevel template = {
+  static const TsmLevel ttemplate = {
     TRUE,       /* strip_space */
     NULL,       /* tag_name */
     NULL,       /* mark */
     NULL,       /* next */
   };
-  return md->lstack ? md->lstack : &template;
+  return md->lstack ? md->lstack : &ttemplate;
 }
 
 static TsmLevel*
 tsm_push_level (TsmData *md)
 {
   const TsmLevel *src = tsm_peek_level (md);
-  TsmLevel *ml = g_memdup (src, sizeof (TsmLevel));
+  TsmLevel *ml = (TsmLevel*) g_memdup (src, sizeof (TsmLevel));
   GtkTextIter iter;
   ml->tag_name = NULL;
   ml->tag = NULL;
@@ -530,7 +528,7 @@ tsm_start_element  (GMarkupParseContext *context,
                     gpointer             user_data,
                     GError             **error)
 {
-  TsmData *md = user_data;
+  TsmData *md = (TsmData*) user_data;
   
   if (strcmp (element_name, "tagdef") == 0)
     {
@@ -611,7 +609,7 @@ tsm_start_element  (GMarkupParseContext *context,
         if (strcmp (attribute_names[i], "ref") == 0)
           {
             GtkTextTagTable *ttable = gtk_text_buffer_get_tag_table (md->tbuffer);
-            ml->tag = g_object_new (GTK_TYPE_TEXT_TAG, NULL);
+            ml->tag = (GtkTextTag*) g_object_new (GTK_TYPE_TEXT_TAG, NULL);
             g_object_set_int (ml->tag, "gxk-text-tools-owned", 1);
             g_object_set_data_full (G_OBJECT (ml->tag), "data", g_strdup (attribute_values[i]), g_free);
             g_object_connect (ml->tag, "signal::event", data_tag_event, md->tbuffer, NULL);
@@ -651,13 +649,13 @@ tsm_start_element  (GMarkupParseContext *context,
           }
         else if (strcmp (attribute_names[i], "size") == 0)
           {
-            GEnumClass *eclass = g_type_class_ref (GTK_TYPE_ICON_SIZE);
+            GEnumClass *eclass = (GEnumClass*) g_type_class_ref (GTK_TYPE_ICON_SIZE);
             gint c, l = enum_match_value (eclass, attribute_values[i], GTK_ICON_SIZE_INVALID);
             g_type_class_unref (eclass);
             if (l == GTK_ICON_SIZE_INVALID)
               l = gtk_icon_size_from_name (attribute_values[i]);
             if (l != GTK_ICON_SIZE_INVALID)
-              isize = l;
+              isize = GtkIconSize (l);
             else
               {
                 g_markup_parse_context_get_position (context, &c, &l);
@@ -666,9 +664,9 @@ tsm_start_element  (GMarkupParseContext *context,
               }
           }
       if (!pixbuf && iset)
-        pixbuf = g_object_ref (gtk_icon_set_render_icon (iset, tsm_data_ensure_style (md),
-                                                         GTK_TEXT_DIR_NONE, GTK_STATE_NORMAL,
-                                                         isize, NULL, NULL));
+        pixbuf = (GdkPixbuf*) g_object_ref (gtk_icon_set_render_icon (iset, tsm_data_ensure_style (md),
+                                                                      GTK_TEXT_DIR_NONE, GTK_STATE_NORMAL,
+                                                                      isize, NULL, NULL));
       if (pixbuf)
         {
           GtkTextIter iter;
@@ -708,7 +706,7 @@ tsm_end_element (GMarkupParseContext *context,
                  gpointer             user_data,
                  GError             **error)
 {
-  TsmData *md = user_data;
+  TsmData *md = (TsmData*) user_data;
   
   if (strcmp (element_name, "tagdef") == 0)
     {
@@ -784,7 +782,7 @@ tsm_text (GMarkupParseContext *context,
           gpointer             user_data,
           GError             **error)
 {
-  TsmData *md = user_data;
+  TsmData *md = (TsmData*) user_data;
   gchar *string = g_new (gchar, text_len + 1), *dest = string;
   const TsmLevel *ml = tsm_peek_level (md);
   guint i;
@@ -872,10 +870,10 @@ gxk_text_buffer_insert (GtkTextBuffer *tbuffer,
       while (n)
         {
           /* force-validate to UTF-8 */
-          gchar *dest = data_buffer;
+          char *dest = (char*) data_buffer;
           while (!g_utf8_validate (dest, n - (dest - (gchar*) data_buffer), (const gchar**) &dest))
             *dest = '?';
-          gtk_text_buffer_insert_at_cursor (tbuffer, data_buffer, n);
+          gtk_text_buffer_insert_at_cursor (tbuffer, (char*) data_buffer, n);
           /* next chunk */
           n = read_callback (callback_data, data_buffer, &error);
         }
@@ -920,12 +918,12 @@ gxk_text_buffer_insert (GtkTextBuffer *tbuffer,
       md.after_whitespace = TRUE;
       md.after_newline = TRUE;
       md.style = NULL;
-      context = g_markup_parse_context_new (&tsm_parser, 0, &md, NULL);
+      context = g_markup_parse_context_new (&tsm_parser, GMarkupParseFlags (0), &md, NULL);
       
       n = read_callback (callback_data, data_buffer, &error);
       while (n)
         {
-          if (!g_markup_parse_context_parse (context, data_buffer, n, &error))
+          if (!g_markup_parse_context_parse (context, (char*) data_buffer, n, &error))
             goto ABORT;
           n = read_callback (callback_data, data_buffer, &error);
         }
@@ -950,12 +948,12 @@ gxk_text_buffer_insert (GtkTextBuffer *tbuffer,
   if (!tag)
     {
       const guint left_margin = 3, right_margin = 3;
-      tag = g_object_new (GTK_TYPE_TEXT_TAG,
-                          "name", name,
-                          "left_margin", left_margin + indent * 8,
-                          "right_margin", right_margin,
-                          "family", g_object_get_data (G_OBJECT (tbuffer), "family"),
-                          NULL);
+      tag = (GtkTextTag*) g_object_new (GTK_TYPE_TEXT_TAG,
+                                        "name", name,
+                                        "left_margin", left_margin + indent * 8,
+                                        "right_margin", right_margin,
+                                        "family", g_object_get_data (G_OBJECT (tbuffer), "family"),
+                                        NULL);
       g_object_set_int (tag, "gxk-text-tools-owned", 1);
       gtk_text_tag_table_add (ttable, tag);
       gtk_text_tag_set_priority (tag, 0);
@@ -974,7 +972,7 @@ static_read_callback (gpointer data,
                       guint8  *buffer,
                       GError **error)
 {
-  guint i, *ip = data;
+  guint i, *ip = (guint*) data;
   
   i = *ip;
   *ip = 0;
@@ -1005,7 +1003,7 @@ fd_read_callback (gpointer data,
                   guint8  *buffer,
                   GError **error)
 {
-  gint l, *fdp = data;
+  gint l, *fdp = (gint*) data;
   
   do
     l = read (*fdp, buffer, FILE_READ_BUFFER_SIZE);
@@ -1142,7 +1140,7 @@ gxk_text_view_enter_browse_mode (GtkTextView *tview)
 {
   g_return_if_fail (GTK_IS_TEXT_VIEW (tview));
 
-  if (!g_signal_handler_find (tview, G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, 0, 0, NULL, text_view_key_event, tview))
+  if (!g_signal_handler_find (tview, G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, 0, 0, NULL, (void*) text_view_key_event, tview))
     {
       g_signal_connect (tview, "key_press_event", G_CALLBACK (text_view_key_event), tview);
       g_signal_connect (tview, "key_release_event", G_CALLBACK (text_view_key_event), tview);
@@ -1160,8 +1158,8 @@ gxk_text_view_leave_browse_mode (GtkTextView *tview)
 {
   g_return_if_fail (GTK_IS_TEXT_VIEW (tview));
 
-  if (g_signal_handler_find (tview, G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, 0, 0, NULL, text_view_key_event, tview))
-    g_signal_handlers_disconnect_by_func (tview, text_view_key_event, tview);
+  if (g_signal_handler_find (tview, G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, 0, 0, NULL, (void*) text_view_key_event, tview))
+    g_signal_handlers_disconnect_by_func (tview, (void*) text_view_key_event, tview);
 }
 
 /**
@@ -1267,7 +1265,7 @@ scroll_text_patchup_size_request (GtkWidget      *scwin,
                                   GtkRequisition *requisition,
                                   GtkWidget      *sctext)
 {
-  GxkScrollTextFlags flags = g_object_get_long (sctext, "GxkScrollTextFlags");
+  GxkScrollTextFlags flags = (GxkScrollTextFlags) g_object_get_long (sctext, "GxkScrollTextFlags");
   if (!GTK_WIDGET_MAPPED (scwin))
     {
       /* provide initial size */
@@ -1320,31 +1318,31 @@ gxk_scroll_text_create (GxkScrollTextFlags flags,
   gxk_text_buffer_init_custom ();
 
   /* sctext outer container */
-  sctext = g_object_new (GTK_TYPE_VBOX,
-                         "visible", TRUE,
-                         NULL);
+  sctext = (GtkWidget*) g_object_new (GTK_TYPE_VBOX,
+                                      "visible", TRUE,
+                                      NULL);
   g_object_set_long (sctext, "GxkScrollTextFlags", flags);
   /* navigation toolbar */
   if (flags & GXK_SCROLL_TEXT_NAVIGATABLE)
     {
       toolbar = gxk_radget_create ("beast", "gxk-scroll-text-toolbar", NULL); // FIXME: domain name
-      gtk_box_pack_start (GTK_BOX (sctext), toolbar, FALSE, TRUE, 0);
+      gtk_box_pack_start (GTK_BOX (sctext), (GtkWidget*) toolbar, FALSE, TRUE, 0);
     }
   else /* there's code depending on the "presence" of a widget in the toolbar slot */
-    gtk_box_pack_start (GTK_BOX (sctext), g_object_new (GTK_TYPE_ALIGNMENT, NULL), FALSE, TRUE, 0);
+    gtk_box_pack_start (GTK_BOX (sctext), (GtkWidget*) g_object_new (GTK_TYPE_ALIGNMENT, NULL), FALSE, TRUE, 0);
 
   /* scrollable text area */
-  scwin = g_object_new (GTK_TYPE_SCROLLED_WINDOW,
-                        "visible", TRUE,
-                        "hscrollbar_policy", (flags & GXK_SCROLL_TEXT_HFIXED) ? GTK_POLICY_NEVER : GTK_POLICY_AUTOMATIC,
-                        "vscrollbar_policy", (flags & GXK_SCROLL_TEXT_VFIXED) ? GTK_POLICY_NEVER : GTK_POLICY_AUTOMATIC,
-                        NULL);
+  scwin = (GtkWidget*) g_object_new (GTK_TYPE_SCROLLED_WINDOW,
+                                     "visible", TRUE,
+                                     "hscrollbar_policy", (flags & GXK_SCROLL_TEXT_HFIXED) ? GTK_POLICY_NEVER : GTK_POLICY_AUTOMATIC,
+                                     "vscrollbar_policy", (flags & GXK_SCROLL_TEXT_VFIXED) ? GTK_POLICY_NEVER : GTK_POLICY_AUTOMATIC,
+                                     NULL);
   g_signal_connect_after (scwin, "size_request", G_CALLBACK (scroll_text_patchup_size_request), sctext);
   gtk_box_pack_start (GTK_BOX (sctext), scwin, TRUE, TRUE, 0);
-  widget = g_object_new (GTK_TYPE_TEXT_VIEW,
-                         "visible", TRUE,
-                         "parent", scwin,
-                         NULL);
+  widget = (GtkWidget*) g_object_new (GTK_TYPE_TEXT_VIEW,
+                                      "visible", TRUE,
+                                      "parent", scwin,
+                                      NULL);
   gtk_widget_grab_focus (widget);
   tbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
 
@@ -1356,10 +1354,10 @@ gxk_scroll_text_create (GxkScrollTextFlags flags,
       tnav->vadjustment = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (scwin));
       g_object_connect (tnav->vadjustment, "signal::value_changed", tnav_update_vpos, tnav, NULL);
       g_signal_connect_swapped (tbuffer, "custom-activate", G_CALLBACK (navigate_link), sctext);
-      tnav->backb = gxk_radget_find (toolbar, "back-button");
+      tnav->backb = (GtkWidget*) gxk_radget_find (toolbar, "back-button");
       g_object_connect (g_object_ref (tnav->backb), "swapped_signal::clicked", navigate_back, sctext, NULL);
       gtk_widget_set_sensitive (tnav->backb, FALSE);
-      tnav->forwardb = gxk_radget_find (toolbar, "forward-button");
+      tnav->forwardb = (GtkWidget*) gxk_radget_find (toolbar, "forward-button");
       g_object_connect (g_object_ref (tnav->forwardb), "swapped_signal::clicked", navigate_forward, sctext, NULL);
       gtk_widget_set_sensitive (tnav->forwardb, FALSE);
       g_object_connect (gxk_radget_find (toolbar, "reload-button"),
@@ -1368,12 +1366,12 @@ gxk_scroll_text_create (GxkScrollTextFlags flags,
       g_object_connect (gxk_radget_find (toolbar, "index-button"),
                         "swapped_signal::clicked", navigate_index, sctext,
                         NULL);
-      button = gxk_radget_find (toolbar, "find-button");
+      button = (GtkWidget*) gxk_radget_find (toolbar, "find-button");
       g_object_connect (button,
                         "swapped_signal::clicked", navigate_find, sctext,
                         NULL);
       gtk_widget_set_sensitive (button, FALSE); // FIXME: implement Find
-      tnav->refe = gxk_radget_find (toolbar, "location-entry");
+      tnav->refe = (GtkWidget*) gxk_radget_find (toolbar, "location-entry");
       g_object_connect (g_object_ref (tnav->refe),
                         "swapped_signal::activate", navigate_goto, sctext,
                         "swapped_signal::key_press_event", scroll_text_key_event, sctext,
@@ -1403,14 +1401,14 @@ gxk_scroll_text_create (GxkScrollTextFlags flags,
   switch (flags & (GXK_SCROLL_TEXT_MONO | GXK_SCROLL_TEXT_SANS | GXK_SCROLL_TEXT_SERIF))
     {
     case GXK_SCROLL_TEXT_SANS:
-      g_object_set_data ((GObject*) tbuffer, "family", "sans");
+      g_object_set_data ((GObject*) tbuffer, "family", (void*) "sans");
       break;
     case GXK_SCROLL_TEXT_SERIF:
-      g_object_set_data ((GObject*) tbuffer, "family", "serif");
+      g_object_set_data ((GObject*) tbuffer, "family", (void*) "serif");
       break;
     default:
     case GXK_SCROLL_TEXT_MONO:
-      g_object_set_data ((GObject*) tbuffer, "family", "monospace");
+      g_object_set_data ((GObject*) tbuffer, "family", (void*) "monospace");
       break;
     }
   if (flags & GXK_SCROLL_TEXT_WIDGET_BG)
@@ -1436,7 +1434,7 @@ static void
 text_tag_remove (GtkTextTag *tag,
                  gpointer    data)
 {
-  GSList **slist_p = data;
+  GSList **slist_p = (GSList**) data;
   if (g_object_get_int (tag, "gxk-text-tools-owned"))
     *slist_p = g_slist_prepend (*slist_p, tag);
 }
@@ -1466,7 +1464,7 @@ gxk_scroll_text_clear (GtkWidget *sctext)
   gtk_text_buffer_delete (tbuffer, &iter1, &iter2);
   gtk_text_tag_table_foreach (ttable, text_tag_remove, &slist);
   for (node = slist; node; node = node->next)
-    gtk_text_tag_table_remove (ttable, node->data);
+    gtk_text_tag_table_remove (ttable, (GtkTextTag*) node->data);
   g_slist_free (slist);
   g_object_set_int (tview, "indent", 0);
 }
@@ -1789,11 +1787,11 @@ navigation_set_url (TextNavigation *tnav,
     {
       GSList *slist;
       for (slist = tsm_paths; slist; slist = slist->next)
-        if (navigation_test_file (slist->data, url, tnav->file))
+        if (navigation_test_file ((const char*) slist->data, url, tnav->file))
           {
             /* take first match */
             g_free (tnav->path);
-            tnav->path = g_strconcat (slist->data, url,
+            tnav->path = g_strconcat ((const char*) slist->data, url,
                                       url[0] && url[strlen (url) - 1] != '/' ? "/" : "",
                                       NULL);
             break;
@@ -1819,7 +1817,7 @@ navigation_clear_fore_stack (TextNavigation *tnav)
   GSList *slist;
   for (slist = tnav->fore_stack; slist; slist = slist->next)
     {
-      HEntry *hentry = slist->data;
+      HEntry *hentry = (HEntry*) slist->data;
       g_free (hentry->url);
       g_free (hentry);
     }
@@ -1843,7 +1841,7 @@ navigation_update_widgets (TextNavigation *tnav)
 static void
 free_navigation (gpointer data)
 {
-  TextNavigation *tnav = data;
+  TextNavigation *tnav = (TextNavigation*) data;
   GSList *slist;
   if (tnav->backb)
     g_object_unref (tnav->backb);
@@ -1864,7 +1862,7 @@ free_navigation (gpointer data)
   navigation_clear_fore_stack (tnav);
   for (slist = tnav->back_stack; slist; slist = slist->next)
     {
-      HEntry *hentry = slist->data;
+      HEntry *hentry = (HEntry*) slist->data;
       g_free (hentry->url);
       g_free (hentry);
     }
@@ -1875,7 +1873,7 @@ free_navigation (gpointer data)
 static TextNavigation*
 navigation_from_sctext (GtkWidget *sctext)
 {
-  TextNavigation *tnav = g_object_get_data (G_OBJECT (sctext), "gxk-text-tools-navigation");
+  TextNavigation *tnav = (TextNavigation*) g_object_get_data (G_OBJECT (sctext), "gxk-text-tools-navigation");
   if (!tnav)
     {
       tnav = g_new0 (TextNavigation, 1);
@@ -1908,7 +1906,7 @@ guess_file_type (const gchar *file_name)
       close (fd);
       if (l)
         {
-          gchar *p = buffer;
+          gchar *p = (gchar*) buffer;
           buffer[l] = 0;
 #if 0
           while (*p == ' ' || *p == '\t' || *p == '\n' || *p == '\r')
@@ -1947,7 +1945,7 @@ g_string_add_xmlstr (GString     *gstring,
 static gboolean
 adjust_vscroll_offset (gpointer data)
 {
-  GtkWidget *sctext = data;
+  GtkWidget *sctext = (GtkWidget*) data;
   TextNavigation *tnav;
   GDK_THREADS_ENTER ();
   tnav = navigation_from_sctext (sctext);
@@ -2093,7 +2091,7 @@ gxk_scroll_text_advance (GtkWidget   *sctext,
 
   tnav = navigation_from_sctext (sctext);
   /* handle history */
-  last = tnav->back_stack ? tnav->back_stack->data : NULL;
+  last = tnav->back_stack ? (HEntry*) tnav->back_stack->data : NULL;
   if (tnav->current)
     {
       if (last && strcmp (last->url, tnav->current->url) == 0)
@@ -2118,7 +2116,7 @@ gxk_scroll_text_advance (GtkWidget   *sctext,
   /* dedup history */
   if (last && strcmp (last->url, tnav->current->url) == 0)
     {
-      last = g_slist_pop_head (&tnav->back_stack);
+      last = (HEntry*) g_slist_pop_head (&tnav->back_stack);
       g_free (last->url);
       g_free (last);
     }
@@ -2187,7 +2185,7 @@ gxk_scroll_text_rewind (GtkWidget *sctext)
     {
       if (tnav->current)
         {
-          HEntry *next = tnav->fore_stack ? tnav->fore_stack->data : NULL;
+          HEntry *next = tnav->fore_stack ? (HEntry*) tnav->fore_stack->data : NULL;
           if (next && strcmp (next->url, tnav->current->url) == 0)
             {
               g_free (tnav->current->url);
@@ -2196,7 +2194,7 @@ gxk_scroll_text_rewind (GtkWidget *sctext)
           else
             tnav->fore_stack = g_slist_prepend (tnav->fore_stack, tnav->current);
         }
-      tnav->current = g_slist_pop_head (&tnav->back_stack);
+      tnav->current = (HEntry*) g_slist_pop_head (&tnav->back_stack);
     }
   if (tnav->current)
     {
@@ -2216,7 +2214,7 @@ navigate_back (GtkWidget *sctext)
     {
       if (tnav->current)
         {
-          HEntry *next = tnav->fore_stack ? tnav->fore_stack->data : NULL;
+          HEntry *next = tnav->fore_stack ? (HEntry*) tnav->fore_stack->data : NULL;
           if (next && strcmp (next->url, tnav->current->url) == 0)
             {
               g_free (tnav->current->url);
@@ -2225,7 +2223,7 @@ navigate_back (GtkWidget *sctext)
           else
             tnav->fore_stack = g_slist_prepend (tnav->fore_stack, tnav->current);
         }
-      tnav->current = g_slist_pop_head (&tnav->back_stack);
+      tnav->current = (HEntry*) g_slist_pop_head (&tnav->back_stack);
       navigation_reset_url (tnav);
       navigation_set_url (tnav, tnav->current->url, tnav->current->vpos);
       scroll_text_reload (sctext);
@@ -2241,7 +2239,7 @@ navigate_forward (GtkWidget *sctext)
     {
       if (tnav->current)
         {
-          HEntry *last = tnav->back_stack ? tnav->back_stack->data : NULL;
+          HEntry *last = tnav->back_stack ? (HEntry*) tnav->back_stack->data : NULL;
           if (last && strcmp (last->url, tnav->current->url) == 0)
             {
               g_free (tnav->current->url);
@@ -2250,7 +2248,7 @@ navigate_forward (GtkWidget *sctext)
           else
             tnav->back_stack = g_slist_prepend (tnav->back_stack, tnav->current);
         }
-      tnav->current = g_slist_pop_head (&tnav->fore_stack);
+      tnav->current = (HEntry*) g_slist_pop_head (&tnav->fore_stack);
       navigation_reset_url (tnav);
       navigation_set_url (tnav, tnav->current->url, tnav->current->vpos);
       scroll_text_reload (sctext);
diff --git a/beast-gtk/gxk/gxkutils.c b/beast-gtk/gxk/gxkutils.cc
similarity index 92%
rename from beast-gtk/gxk/gxkutils.c
rename to beast-gtk/gxk/gxkutils.cc
index 11c6599..de360e9 100644
--- a/beast-gtk/gxk/gxkutils.c
+++ b/beast-gtk/gxk/gxkutils.cc
@@ -25,11 +25,11 @@
 
 
 /* --- generated marshallers --- */
-#include "gxkmarshal.c"
+#include "gxkmarshal.cc"
 
 
 /* --- generated type IDs and enums --- */
-#include "gxkgentypes.c"
+#include "gxkgentypes.cc"
 
 
 /* --- prototypes --- */
@@ -60,7 +60,7 @@ ehook_container_focus_child_set (GSignalInvocationHint *ihint,
                                  const GValue          *param_values,
                                  gpointer               data)
 {
-  GtkContainer *container = g_value_get_object (param_values + 0);
+  GtkContainer *container = (GtkContainer*) g_value_get_object (param_values + 0);
   if (!container->focus_child ||
       !GTK_WIDGET_DRAWABLE (container->focus_child) ||
       gtk_container_get_focus_hadjustment (container) ||
@@ -111,7 +111,7 @@ gxk_init_utils (void)
                                                      NULL, NULL,
                                                      gtk_marshal_VOID__VOID,
                                                      G_TYPE_NONE, 0, NULL);
-  GtkWidgetClass *widget_class = gtk_type_class (GTK_TYPE_WIDGET);
+  GtkWidgetClass *widget_class = (GtkWidgetClass*) gtk_type_class (GTK_TYPE_WIDGET);
   widget_class->can_activate_accel = gxk_widget_real_can_activate_accel;
   
   /* patch up scrolling+focus behaviour */
@@ -168,10 +168,10 @@ gxk_type_register_generated (guint                   n_entries,
       switch (entries[i].parent)
 	{
 	case G_TYPE_ENUM:
-	  type_id = g_enum_register_static (entries[i].type_name, entries[i].type_data);
+	  type_id = g_enum_register_static (entries[i].type_name, (const GEnumValue*) entries[i].type_data);
 	  break;
 	case G_TYPE_FLAGS:
-	  type_id = g_flags_register_static (entries[i].type_name, entries[i].type_data);
+	  type_id = g_flags_register_static (entries[i].type_name, (const GFlagsValue*) entries[i].type_data);
 	  break;
 	default:
 	  g_warning ("%s: unsupported parent type `%s'", G_STRLOC, g_type_name (entries[i].parent));
@@ -200,12 +200,12 @@ g_object_set_double (gpointer     object,
   g_return_if_fail (G_IS_OBJECT (object));
 
   if (memcmp (&v_double, &zero, sizeof (zero)) == 0)
-    g_object_set_data (object, name, NULL);
+    g_object_set_data ((GObject*) object, name, NULL);
   else
     {
       gdouble *dp = g_new0 (gdouble, 1);
       *dp = v_double;
-      g_object_set_data_full (object, name, dp, g_free);
+      g_object_set_data_full ((GObject*) object, name, dp, g_free);
     }
 }
 
@@ -221,11 +221,9 @@ gdouble
 g_object_get_double (gpointer     object,
 		     const gchar *name)
 {
-  gdouble *dp;
-
   g_return_val_if_fail (G_IS_OBJECT (object), 0);
-  
-  dp = g_object_get_data (object, name);
+
+  double *dp = (double*) g_object_get_data ((GObject*) object, name);
   return dp ? *dp : 0;
 }
 
@@ -244,7 +242,7 @@ g_object_set_long (gpointer     object,
 {
   g_return_if_fail (G_IS_OBJECT (object));
 
-  g_object_set_data (object, name, (gpointer) v_long);
+  g_object_set_data ((GObject*) object, name, (gpointer) v_long);
 }
 
 /**
@@ -261,7 +259,7 @@ g_object_get_long (gpointer     object,
 {
   g_return_val_if_fail (G_IS_OBJECT (object), 0);
 
-  return (glong) g_object_get_data (object, name);
+  return (glong) g_object_get_data ((GObject*) object, name);
 }
 
 gchar*
@@ -269,8 +267,8 @@ gxk_convert_latin1_to_utf8 (const gchar *string)
 {
   if (string)
     {
-      const guchar *s = string;
-      guint l = strlen (s);
+      const uint l = strlen (string);
+      const guchar *s = (const guchar*) string;
       guchar *dest = g_new (guchar, l * 2 + 1), *d = dest;
       while (*s)
 	if (*s >= 0xC0)
@@ -280,7 +278,7 @@ gxk_convert_latin1_to_utf8 (const gchar *string)
 	else
 	  *d++ = *s++;
       *d++ = 0;
-      return dest;
+      return (char*) dest;
     }
   return NULL;
 }
@@ -421,9 +419,9 @@ widget_propagate_hierarchy_changed_to_attached (GtkWidget *widget)
       if (menu_item->submenu)
         gxk_widget_attached_hierarchy_changed (menu_item->submenu);
     }
-  GList *menu_list = g_object_get_data (widget, "GxkWidget-popup-menus");
+  GList *menu_list = (GList*) g_object_get_data ((GObject*) widget, "GxkWidget-popup-menus");
   for (; menu_list; menu_list = menu_list->next)
-    gxk_widget_attached_hierarchy_changed (menu_list->data);
+    gxk_widget_attached_hierarchy_changed ((GtkWidget*) menu_list->data);
 }
 
 static void
@@ -464,7 +462,7 @@ gxk_window_set_cursor_type (GdkWindow    *window,
     gdk_window_set_cursor (window, NULL);
   else
     {
-      GdkCursor *wc = gdk_cursor_new (cursor & ~1);
+      GdkCursor *wc = gdk_cursor_new (GdkCursorType (cursor & ~1));
       gdk_window_set_cursor (window, wc);
       gdk_cursor_unref (wc);
     }
@@ -479,16 +477,16 @@ expose_handler (gpointer data)
 {
   GdkWindow *window, *cwindow;
   GDK_THREADS_ENTER ();
-  window = g_slist_pop_head (&expose_windows);
-  cwindow = g_slist_pop_head (&cexpose_windows);
+  window = (GdkWindow*) g_slist_pop_head (&expose_windows);
+  cwindow = (GdkWindow*) g_slist_pop_head (&cexpose_windows);
   while (window || cwindow)
     {
       if (window)
 	gdk_window_process_updates (window, FALSE);
       if (cwindow)
 	gdk_window_process_updates (cwindow, TRUE);
-      window = g_slist_pop_head (&expose_windows);
-      cwindow = g_slist_pop_head (&cexpose_windows);
+      window = (GdkWindow*) g_slist_pop_head (&expose_windows);
+      cwindow = (GdkWindow*) g_slist_pop_head (&cexpose_windows);
     }
   expose_handler_id = 0;
   GDK_THREADS_LEAVE ();
@@ -624,8 +622,8 @@ static int
 gxk_color_dot_cmp (const void *v1,
                    const void *v2)
 {
-  const GxkColorDot *c1 = v1;
-  const GxkColorDot *c2 = v2;
+  const GxkColorDot *c1 = (const GxkColorDot*) v1;
+  const GxkColorDot *c2 = (const GxkColorDot*) v2;
   return c1->value < c2->value ? -1 : c1->value > c2->value;
 }
 
@@ -637,7 +635,7 @@ gxk_color_dots_new (guint              n_dots,
   GxkColorDots *cdots = g_new0 (GxkColorDots, 1);
   guint sizeof_color_dot = sizeof (GxkColorDot);
   cdots->n_colors = n_dots;
-  cdots->colors = g_memdup (dots, sizeof_color_dot * n_dots);
+  cdots->colors = (GxkColorDot*) g_memdup (dots, sizeof_color_dot * n_dots);
   qsort (cdots->colors, cdots->n_colors, sizeof_color_dot, gxk_color_dot_cmp);
   return cdots;
 }
@@ -725,7 +723,7 @@ gxk_widget_make_sensitive (GtkWidget *widget)
 static gboolean
 idle_showraiser (gpointer data)
 {
-  GtkWidget **widget_p = data;
+  GtkWidget **widget_p = (GtkWidget**) data;
   GDK_THREADS_ENTER ();
   if (GTK_IS_WIDGET (*widget_p))
     {
@@ -861,10 +859,10 @@ gxk_notebook_create_tabulator (const gchar *label_text,
                                const gchar *stock_image,
                                const gchar *tooltip)
 {
-  GtkWidget *ev = g_object_new (GTK_TYPE_EVENT_BOX, NULL);
+  GtkWidget *ev = (GtkWidget*) g_object_new (GTK_TYPE_EVENT_BOX, NULL);
   GtkWidget *image = gtk_image_new();
-  GtkWidget *label = g_object_new (GTK_TYPE_LABEL, NULL);
-  GtkWidget *box = g_object_new (GTK_TYPE_HBOX, "parent", ev, NULL);
+  GtkWidget *label = (GtkWidget*) g_object_new (GTK_TYPE_LABEL, NULL);
+  GtkWidget *box = (GtkWidget*) g_object_new (GTK_TYPE_HBOX, "parent", ev, NULL);
   gtk_box_pack_start (GTK_BOX (box), image, FALSE, TRUE, 0);
   gtk_box_pack_start (GTK_BOX (box), label, FALSE, TRUE, 0);
   gtk_widget_show_all (ev);
@@ -891,7 +889,7 @@ gxk_notebook_change_tabulator (GtkWidget        *tabulator,
           else
             gtk_widget_hide (label);
           gchar *ostock = NULL;
-          GtkIconSize isize = 0;
+          GtkIconSize isize = GtkIconSize (0);
           gtk_image_get_stock (GTK_IMAGE (image), &ostock, &isize);
           if (stock_image && (!ostock || strcmp (ostock, stock_image) != 0 || isize != GXK_ICON_SIZE_TABULATOR))
             gtk_image_set_from_stock (GTK_IMAGE (image), stock_image, GXK_ICON_SIZE_TABULATOR);
@@ -961,7 +959,7 @@ vseparator_space_request (GtkWidget      *widget,
 GtkWidget*
 gxk_vseparator_space_new (gboolean draw_seperator)
 {
-  GtkWidget *widget = g_object_new (draw_seperator ? GTK_TYPE_VSEPARATOR : GTK_TYPE_ALIGNMENT,
+  GtkWidget *widget = (GtkWidget*) g_object_new (draw_seperator ? GTK_TYPE_VSEPARATOR : GTK_TYPE_ALIGNMENT,
                                     "visible", TRUE,
                                     NULL);
   g_signal_connect (widget, "size-request", G_CALLBACK (vseparator_space_request),
@@ -1031,7 +1029,7 @@ gtk_box_get_nth_child (GtkBox *box,
     while (child->next && pos--)
       child = child->next;
 
-  GtkBoxChild *child_info = child && pos <= 0 ? child->data : NULL;
+  GtkBoxChild *child_info = child && pos <= 0 ? (GtkBoxChild*) child->data : NULL;
   return child_info ? child_info->widget : NULL;
 }
 
@@ -1058,7 +1056,7 @@ async_delete_event_handler (gpointer data)
   GtkWidget *widget = GTK_WIDGET (data);
   if (GTK_IS_WINDOW (widget) && GTK_WIDGET_DRAWABLE (widget))
     {
-      GdkEvent event = { 0, };
+      GdkEvent event = { GdkEventType (0), };
       event.any.type = GDK_DELETE;
       event.any.window = widget->window;
       event.any.send_event = TRUE;
@@ -1127,7 +1125,7 @@ static void
 find_descendant_callback (GtkWidget *child,
                           gpointer   data)
 {
-  DescendantSearch *dsearch = data;
+  DescendantSearch *dsearch = (DescendantSearch*) data;
   if (!dsearch->child)
     {
       if (g_type_is_a (G_OBJECT_TYPE (child), dsearch->type))
@@ -1370,8 +1368,8 @@ gxk_widget_set_tooltip (gpointer     widget,
                         const gchar *tooltip)
 {
   g_return_if_fail (GTK_IS_WIDGET (widget));
-  gxk_widget_set_latent_tooltip (widget, tooltip);
-  gtk_tooltips_set_tip (GXK_TOOLTIPS, widget, tooltip, NULL);
+  gxk_widget_set_latent_tooltip ((GtkWidget*) widget, tooltip);
+  gtk_tooltips_set_tip (GXK_TOOLTIPS, (GtkWidget*) widget, tooltip, NULL);
 }
 
 /**
@@ -1391,7 +1389,7 @@ gxk_widget_set_latent_tooltip (GtkWidget   *widget,
 {
   if (tooltip && !tooltip[0])
     tooltip = NULL;
-  g_object_set_data_full (widget, "gxk-widget-latent-tooltip", g_strdup (tooltip), g_free);
+  g_object_set_data_full ((GObject*) widget, "gxk-widget-latent-tooltip", g_strdup (tooltip), g_free);
 }
 
 /**
@@ -1405,7 +1403,7 @@ gxk_widget_set_latent_tooltip (GtkWidget   *widget,
 const gchar*
 gxk_widget_get_latent_tooltip (GtkWidget *widget)
 {
-  return g_object_get_data (widget, "gxk-widget-latent-tooltip");
+  return (const char*) g_object_get_data ((GObject*) widget, "gxk-widget-latent-tooltip");
 }
 
 static gboolean
@@ -1413,12 +1411,12 @@ gxk_activate_accel_group (GtkWidget     *widget,
 			  GdkEventKey   *event,
 			  GtkAccelGroup *accel_group)
 {
-  GdkModifierType accel_mods = event->state;
+  GdkModifierType accel_mods = GdkModifierType (event->state);
   guint accel_key = event->keyval;
   gboolean was_handled = FALSE;
   if (gtk_accelerator_valid (accel_key, accel_mods))
     {
-      gchar *accel_name = gtk_accelerator_name (accel_key, (accel_mods & gtk_accelerator_get_default_mod_mask ()));
+      gchar *accel_name = gtk_accelerator_name (accel_key, GdkModifierType (accel_mods & gtk_accelerator_get_default_mod_mask ()));
       GQuark accel_quark = g_quark_from_string (accel_name);
       guint signal_accel_activate = g_signal_lookup ("accel_activate", GTK_TYPE_ACCEL_GROUP);
       g_free (accel_name);
@@ -1453,7 +1451,7 @@ gxk_widget_activate_accel_group (GtkWidget     *widget,
       g_signal_connect_data (widget, "key_press_event",
 			     G_CALLBACK (gxk_activate_accel_group),
 			     g_object_ref (accel_group),
-			     (GClosureNotify) g_object_unref, 0);
+			     (GClosureNotify) g_object_unref, GConnectFlags (0));
     }
 }
 
@@ -1474,7 +1472,7 @@ gxk_size_group (GtkSizeGroupMode sgmode,
 {
   if (first_widget)
     {
-      GtkWidget *widget = first_widget;
+      GtkWidget *widget = (GtkWidget*) first_widget;
       GtkSizeGroup *sgroup = gtk_size_group_new (sgmode);
       va_list args;
 
@@ -1653,7 +1651,7 @@ gxk_tree_view_append_text_columns (GtkTreeView *tree_view,
 
       gxk_tree_view_add_text_column (tree_view, col, column_flags,
 				     xalign, title, NULL,
-				     NULL, NULL, 0);
+				     NULL, NULL, GConnectFlags (0));
     }
   va_end (var_args);
 }
@@ -1725,22 +1723,22 @@ tree_view_add_column (GtkTreeView  *tree_view,
   switch (column_type)
     {
     case 1:	/* text */
-      cell = g_object_new (GTK_TYPE_CELL_RENDERER_TEXT,
-			   "xalign", xalign,
-			   "editable", callback1 != NULL,
-			   NULL);
+      cell = (GtkCellRenderer*) g_object_new (GTK_TYPE_CELL_RENDERER_TEXT,
+                                              "xalign", xalign,
+                                              "editable", callback1 != NULL,
+                                              NULL);
       prop = "text";
       if (callback1)
 	g_signal_connect_data (cell, "edited", G_CALLBACK (callback1), data, NULL, cflags);
       break;
     case 2:	/* popup */
-      cell = g_object_new (GXK_TYPE_CELL_RENDERER_POPUP,
-			   "xalign", xalign,
-                           "auto-popup", auto_popup,
-			   "editable", callback1 || callback2,
-                           "text-editing", callback1 != NULL,
-                           "popup-editing", callback2 != NULL,
-			   NULL);
+      cell = (GtkCellRenderer*) g_object_new (GXK_TYPE_CELL_RENDERER_POPUP,
+                                              "xalign", xalign,
+                                              "auto-popup", auto_popup,
+                                              "editable", callback1 || callback2,
+                                              "text-editing", callback1 != NULL,
+                                              "popup-editing", callback2 != NULL,
+                                              NULL);
       prop = "text";
       if (callback1)
 	g_signal_connect_data (cell, "edited", G_CALLBACK (callback1), data, NULL, cflags);
@@ -1748,22 +1746,22 @@ tree_view_add_column (GtkTreeView  *tree_view,
 	g_signal_connect_data (cell, "popup", G_CALLBACK (callback2), data, NULL, cflags);
       break;
     case 3:
-      cell = g_object_new (GTK_TYPE_CELL_RENDERER_TOGGLE,
-			   /* "radio", radio_indicator, */
-			   "activatable", callback1 != NULL,
-			   NULL);
+      cell = (GtkCellRenderer*) g_object_new (GTK_TYPE_CELL_RENDERER_TOGGLE,
+                                              /* "radio", radio_indicator, */
+                                              "activatable", callback1 != NULL,
+                                              NULL);
       prop = "active";
       if (callback1)
 	g_signal_connect_data (cell, "toggled", G_CALLBACK (callback1), data, NULL, cflags);
       break;
     }
   gxk_tree_view_add_column (tree_view, -1,
-			    tcol = g_object_new (GTK_TYPE_TREE_VIEW_COLUMN,
-						 "title", title,
-						 "sizing", sizing,
-						 "resizable", resizable,
-						 "reorderable", reorderable,
-						 NULL),
+			    tcol = (GtkTreeViewColumn*) g_object_new (GTK_TYPE_TREE_VIEW_COLUMN,
+                                                                      "title", title,
+                                                                      "sizing", sizing,
+                                                                      "resizable", resizable,
+                                                                      "reorderable", reorderable,
+                                                                      NULL),
 			    cell,
 			    prop, model_column,
 			    NULL);
@@ -1903,11 +1901,11 @@ gxk_tree_view_set_editable (GtkTreeView *tview,
                             gboolean     maybe_editable)
 {
   GList *clist = gtk_tree_view_get_columns (tview);
-  GtkTreeViewColumn *tcol = g_list_pop_head (&clist);
+  GtkTreeViewColumn *tcol = (GtkTreeViewColumn*) g_list_pop_head (&clist);
   while (tcol)
     {
       GList *rlist = gtk_tree_view_column_get_cell_renderers (tcol);
-      GtkCellRenderer *cell = g_list_pop_head (&rlist);
+      GtkCellRenderer *cell = (GtkCellRenderer*) g_list_pop_head (&rlist);
       while (cell)
         {
           GParamSpec *pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (cell), "editable");
@@ -1925,9 +1923,9 @@ gxk_tree_view_set_editable (GtkTreeView *tview,
                     g_object_set (cell, "editable", FALSE, NULL);
                 }
             }
-          cell = g_list_pop_head (&rlist);
+          cell = (GtkCellRenderer*) g_list_pop_head (&rlist);
         }
-      tcol = g_list_pop_head (&clist);
+      tcol = (GtkTreeViewColumn*) g_list_pop_head (&clist);
     }
 }
 
@@ -1962,14 +1960,14 @@ gxk_tree_view_column_set_tip_title (GtkTreeViewColumn   *tree_column,
   g_return_if_fail (GTK_IS_TREE_VIEW_COLUMN (tree_column));
 
   gtk_tree_view_column_set_title (tree_column, title);
-  label = g_object_new (GTK_TYPE_LABEL,
-			"visible", TRUE,
-			"label", title,
-			"xalign", 0.5,
-			NULL);
+  label = (GtkWidget*) g_object_new (GTK_TYPE_LABEL,
+                                     "visible", TRUE,
+                                     "label", title,
+                                     "xalign", 0.5,
+                                     NULL);
   g_signal_connect_data (label, "map",
 			 G_CALLBACK (fixup_tcolumn_title), g_strdup (tooltip), (GClosureNotify) g_free,
-			 0);
+			 GConnectFlags (0));
   gtk_tree_view_column_set_widget (tree_column, label);
 }
 
@@ -2108,9 +2106,8 @@ browse_selection_weak_notify (gpointer data,
 static gboolean
 browse_selection_handler (gpointer data)
 {
-  GtkTreeSelection *selection;
   GDK_THREADS_ENTER ();
-  selection = g_slist_pop_head (&browse_selection_queue);
+  GtkTreeSelection *selection = (GtkTreeSelection*) g_slist_pop_head (&browse_selection_queue);
   while (selection)
     {
       GtkTreeIter iter;
@@ -2124,7 +2121,7 @@ browse_selection_handler (gpointer data)
            * browse_selection_changed() changes the "GxkTreeSelection-last" path
            * upon selection changes.
            */
-	  const GtkTreePath *cpath = g_object_get_data (selection, "GxkTreeSelection-last");
+	  const GtkTreePath *cpath = (GtkTreePath*) g_object_get_data ((GObject*) selection, "GxkTreeSelection-last");
 	  g_object_ref (selection);
 	  browse_selection_ignore = selection;
 	  if (cpath)
@@ -2132,7 +2129,7 @@ browse_selection_handler (gpointer data)
               GtkTreePath *p = gtk_tree_path_copy (cpath);
 	      gtk_tree_selection_select_path (selection, p);
               gtk_tree_path_free (p);
-	      cpath = g_object_get_data (selection, "GxkTreeSelection-last");
+	      cpath = (const GtkTreePath*) g_object_get_data ((GObject*) selection, "GxkTreeSelection-last");
 	      needs_sel = !gtk_tree_selection_get_selected (selection, NULL, NULL);
             }
           if (needs_sel && cpath)
@@ -2141,7 +2138,7 @@ browse_selection_handler (gpointer data)
               if (gxk_tree_path_prev (p))
                 gtk_tree_selection_select_path (selection, p);
               gtk_tree_path_free (p);
-              cpath = g_object_get_data (selection, "GxkTreeSelection-last");
+              cpath = (const GtkTreePath*) g_object_get_data ((GObject*) selection, "GxkTreeSelection-last");
               needs_sel = !gtk_tree_selection_get_selected (selection, NULL, NULL);
             }
           if (needs_sel && cpath)
@@ -2150,7 +2147,7 @@ browse_selection_handler (gpointer data)
               if (gtk_tree_path_up (p))
                 gtk_tree_selection_select_path (selection, p);
               gtk_tree_path_free (p);
-              cpath = g_object_get_data (selection, "GxkTreeSelection-last");
+              cpath = (const GtkTreePath*) g_object_get_data ((GObject*) selection, "GxkTreeSelection-last");
               needs_sel = !gtk_tree_selection_get_selected (selection, NULL, NULL);
             }
 	  if (needs_sel)
@@ -2178,7 +2175,7 @@ browse_selection_handler (gpointer data)
 	  browse_selection_ignore = NULL;
 	  g_object_unref (selection);
 	}
-      selection = g_slist_pop_head (&browse_selection_queue);
+      selection = (GtkTreeSelection*) g_slist_pop_head (&browse_selection_queue);
     }
   browse_selection_handler_id = 0;
   GDK_THREADS_LEAVE ();
@@ -2193,7 +2190,7 @@ browse_selection_changed (GtkTreeSelection *selection)
   if (gtk_tree_selection_get_selected (selection, &model, &iter))
     {
       GtkTreePath *path = gtk_tree_model_get_path (model, &iter);
-      g_object_set_data_full (selection, "GxkTreeSelection-last", path, gtk_tree_path_free);
+      g_object_set_data_full ((GObject*) selection, "GxkTreeSelection-last", path, GDestroyNotify (gtk_tree_path_free));
     }
   if (browse_selection_ignore != selection &&
       !g_slist_find (browse_selection_queue, selection))
@@ -2220,7 +2217,7 @@ gxk_tree_selection_force_browse (GtkTreeSelection *selection,
   if (model)
     g_return_if_fail (GTK_IS_TREE_MODEL (model));
   if (!gxk_signal_handler_exists (selection, "changed", G_CALLBACK (browse_selection_changed), selection))
-    g_signal_connect_data (selection, "changed", G_CALLBACK (browse_selection_changed), selection, NULL, 0);
+    g_signal_connect_data (selection, "changed", G_CALLBACK (browse_selection_changed), selection, NULL, GConnectFlags (0));
   if (model && !gxk_signal_handler_exists (model, "row-inserted", G_CALLBACK (browse_selection_changed), selection))
     g_signal_connect_object (model, "row-inserted", G_CALLBACK (browse_selection_changed), selection, G_CONNECT_SWAPPED);
   browse_selection_changed (selection);
@@ -2480,14 +2477,14 @@ gxk_signal_handler_exists (gpointer     instance,
 					      &signal_id, &detail, FALSE))
     {
       if (g_signal_handler_find (instance, (G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA |
-					    (detail ? G_SIGNAL_MATCH_DETAIL : 0)),
-				 signal_id, detail, NULL, callback, data) != 0)
+					    (detail ? G_SIGNAL_MATCH_DETAIL : GSignalMatchType (0))),
+				 signal_id, detail, NULL, (void*) callback, data) != 0)
 	return TRUE;
     }
   else if (!detailed_signal)
     {
       if (g_signal_handler_find (instance, G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA,
-				 0, 0, NULL, callback, data) != 0)
+				 0, 0, NULL, (void*) callback, data) != 0)
 	return TRUE;
     }
   else
@@ -2525,14 +2522,14 @@ gxk_signal_handler_pending (gpointer     instance,
 					      &signal_id, &detail, FALSE))
     {
       if (g_signal_handler_find (instance, (G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA | G_SIGNAL_MATCH_UNBLOCKED |
-					    (detail ? G_SIGNAL_MATCH_DETAIL : 0)),
-				 signal_id, detail, NULL, callback, data) != 0)
+					    (detail ? G_SIGNAL_MATCH_DETAIL : GSignalMatchType (0))),
+				 signal_id, detail, NULL, (void*) callback, data) != 0)
 	return TRUE;
     }
   else if (!detailed_signal)
     {
       if (g_signal_handler_find (instance, G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA | G_SIGNAL_MATCH_UNBLOCKED,
-				 0, 0, NULL, callback, data) != 0)
+				 0, 0, NULL, (void*) callback, data) != 0)
 	return TRUE;
     }
   else
@@ -2681,7 +2678,7 @@ requisition_to_aux_info (GtkWidget      *widget,
 			 GtkRequisition *requisition,
                          gpointer        data)
 {
-  double *xyscale = data;
+  double *xyscale = (double*) data;
   guint width = requisition->width;
   guint height = requisition->height;
   
@@ -2735,7 +2732,7 @@ gxk_widget_proxy_requisition (GtkWidget *widget,
 {
   g_return_if_fail (GTK_IS_WIDGET (widget));
 
-  g_signal_handlers_disconnect_by_func (widget, requisition_to_aux_info, NULL);
+  g_signal_handlers_disconnect_by_func (widget, (void*) requisition_to_aux_info, NULL);
   double xyscale[2] = { xscale, yscale };
   if (xscale >= 0 || yscale >= 0)
     g_signal_connect_data (widget, "size-request", G_CALLBACK (requisition_to_aux_info),
@@ -2789,7 +2786,7 @@ void
 gxk_scrolled_window_unspare_space (GtkScrolledWindow*scwin)
 {
   if (gxk_signal_handler_exists (scwin, "size-request", G_CALLBACK (scrolled_window_size_request_spare_space), NULL))
-    g_signal_handlers_disconnect_by_func (scwin, G_CALLBACK (scrolled_window_size_request_spare_space), NULL);
+    g_signal_handlers_disconnect_by_func (scwin, (void*) scrolled_window_size_request_spare_space, NULL);
 }
 
 /**
@@ -2810,13 +2807,13 @@ gxk_scrolled_window_create (GtkWidget        *child,
                             gdouble           xrequest,
                             gdouble           yrequest)
 {
-  GtkWidget *scwin = g_object_new (GTK_TYPE_SCROLLED_WINDOW,
+  GtkWidget *scwin = (GtkWidget*) g_object_new (GTK_TYPE_SCROLLED_WINDOW,
                                    "visible", TRUE,
                                    "hscrollbar_policy", GTK_POLICY_AUTOMATIC,
                                    "vscrollbar_policy", GTK_POLICY_AUTOMATIC,
                                    NULL);
   child = gtk_widget_get_toplevel (child);
-  GtkWidget *viewport = g_object_new (GTK_TYPE_VIEWPORT,
+  GtkWidget *viewport = (GtkWidget*) g_object_new (GTK_TYPE_VIEWPORT,
                                       "visible", TRUE,
                                       "shadow_type", shadow_type,
                                       "hadjustment", gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (scwin)),
@@ -2849,7 +2846,7 @@ void
 gxk_widget_request_hclient_height (GtkWidget       *widget,
                                    GtkWidget       *client)
 {
-  g_signal_handlers_disconnect_by_func (widget, request_hclient_height, client);
+  g_signal_handlers_disconnect_by_func (widget, (void*) request_hclient_height, client);
   g_signal_connect_after (widget, "size_request", G_CALLBACK (request_hclient_height), client);
 }
 
@@ -2874,7 +2871,7 @@ void
 gxk_widget_request_vclient_width (GtkWidget       *widget,
                                   GtkWidget       *client)
 {
-  g_signal_handlers_disconnect_by_func (widget, request_vclient_width, client);
+  g_signal_handlers_disconnect_by_func (widget, (void*) request_vclient_width, client);
   g_signal_connect_after (widget, "size_request", G_CALLBACK (request_vclient_width), client);
 }
 
@@ -2891,7 +2888,7 @@ gboolean
 gxk_widget_has_ancestor (gpointer widget,
                          gpointer ancestor)
 {
-  GtkWidget *w = widget, *a = ancestor;
+  GtkWidget *w = (GtkWidget*) widget, *a = (GtkWidget*) ancestor;
   g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE);
   g_return_val_if_fail (GTK_IS_WIDGET (ancestor), FALSE);
 
@@ -3003,12 +3000,12 @@ gxk_widget_regulate_uses_active (GtkWidget *widget)
 GtkAccelGroup*
 gxk_window_get_menu_accel_group (GtkWindow *window)
 {
-  GtkAccelGroup *agroup = g_object_get_data (window, "GxkWindow-menu-accel-group");
+  GtkAccelGroup *agroup = (GtkAccelGroup*) g_object_get_data ((GObject*) window, "GxkWindow-menu-accel-group");
   if (!agroup)
     {
       agroup = gtk_accel_group_new ();
       gtk_window_add_accel_group (window, agroup);
-      g_object_set_data_full (window, "GxkWindow-menu-accel-group", agroup, g_object_unref);
+      g_object_set_data_full ((GObject*) window, "GxkWindow-menu-accel-group", agroup, g_object_unref);
     }
   return agroup;
 }
@@ -3016,13 +3013,13 @@ gxk_window_get_menu_accel_group (GtkWindow *window)
 static GdkGeometry*
 window_get_geometry (GtkWindow *window)
 {
-  GdkGeometry *geometry = g_object_get_data (window, "gxk-GdkGeometry");
+  GdkGeometry *geometry = (GdkGeometry*) g_object_get_data ((GObject*) window, "gxk-GdkGeometry");
   if (!geometry)
     {
       geometry = g_new0 (GdkGeometry, 1);
       geometry->width_inc = 1;
       geometry->height_inc = 1;
-      g_object_set_data_full (window, "gxk-GdkGeometry", geometry, g_free);
+      g_object_set_data_full ((GObject*) window, "gxk-GdkGeometry", geometry, g_free);
     }
   return geometry;
 }
@@ -3032,7 +3029,7 @@ gxk_window_set_geometry_min_width (GtkWindow       *window,
                                    guint            min_width)
 {
   GdkGeometry *geometry = window_get_geometry (window);
-  if (geometry->min_width != min_width)
+  if (geometry->min_width != (int) min_width)
     {
       geometry->min_width = min_width;
       gtk_window_set_geometry_hints (GTK_WINDOW (window), NULL, geometry, GDK_HINT_MIN_SIZE | GDK_HINT_RESIZE_INC);
@@ -3044,7 +3041,7 @@ gxk_window_set_geometry_min_height (GtkWindow       *window,
                                     guint            min_height)
 {
   GdkGeometry *geometry = window_get_geometry (window);
-  if (geometry->min_height != min_height)
+  if (geometry->min_height != (int) min_height)
     {
       geometry->min_height = min_height;
       gtk_window_set_geometry_hints (GTK_WINDOW (window), NULL, geometry, GDK_HINT_MIN_SIZE | GDK_HINT_RESIZE_INC);
@@ -3056,7 +3053,7 @@ gxk_window_set_geometry_width_inc (GtkWindow       *window,
                                    guint            width_increment)
 {
   GdkGeometry *geometry = window_get_geometry (window);
-  if (geometry->width_inc != width_increment)
+  if (geometry->width_inc != (int) width_increment)
     {
       geometry->width_inc = width_increment;
       gtk_window_set_geometry_hints (GTK_WINDOW (window), NULL, geometry, GDK_HINT_MIN_SIZE | GDK_HINT_RESIZE_INC);
@@ -3068,7 +3065,7 @@ gxk_window_set_geometry_height_inc (GtkWindow       *window,
                                     guint            height_increment)
 {
   GdkGeometry *geometry = window_get_geometry (window);
-  if (geometry->height_inc != height_increment)
+  if (geometry->height_inc != (int) height_increment)
     {
       geometry->height_inc = height_increment;
       gtk_window_set_geometry_hints (GTK_WINDOW (window), NULL, geometry, GDK_HINT_MIN_SIZE | GDK_HINT_RESIZE_INC);
@@ -3101,8 +3098,8 @@ gxk_expander_connect_to_widget (GtkWidget       *expander,
                                 GtkWidget       *widget)
 {
   if (!gxk_signal_handler_pending (expander, "notify::expanded", G_CALLBACK (adjust_visibility), widget))
-    g_signal_connect_object (expander, "notify::expanded", G_CALLBACK (adjust_visibility), widget, 0);
-  g_object_notify (expander, "expanded");
+    g_signal_connect_object (expander, "notify::expanded", G_CALLBACK (adjust_visibility), widget, GConnectFlags (0));
+  g_object_notify ((GObject*) expander, "expanded");
 }
 
 /**
@@ -3137,7 +3134,7 @@ gxk_label_set_attributes (GtkLabel *label,
   PangoAttribute *attr  = NULL;
   do
     {
-      PangoAttrType attr_type = va_arg (args, PangoAttrType);
+      PangoAttrType attr_type = (PangoAttrType) va_arg (args, int); // PangoAttrType
 
       switch (attr_type)
         {
@@ -3148,16 +3145,16 @@ gxk_label_set_attributes (GtkLabel *label,
           attr = pango_attr_family_new (va_arg (args, const gchar *));
           break;
         case PANGO_ATTR_STYLE:
-          attr = pango_attr_style_new (va_arg (args, PangoStyle));
+          attr = pango_attr_style_new ((PangoStyle) va_arg (args, int)); // PangoStyle
           break;
         case PANGO_ATTR_WEIGHT:
-          attr = pango_attr_weight_new (va_arg (args, PangoWeight));
+          attr = pango_attr_weight_new ((PangoWeight) va_arg (args, int)); // PangoWeight
           break;
         case PANGO_ATTR_VARIANT:
-          attr = pango_attr_variant_new (va_arg (args, PangoVariant));
+          attr = pango_attr_variant_new ((PangoVariant) va_arg (args, int)); // PangoVariant
           break;
         case PANGO_ATTR_STRETCH:
-          attr = pango_attr_stretch_new (va_arg (args, PangoStretch));
+          attr = pango_attr_stretch_new ((PangoStretch) va_arg (args, int)); // PangoStretch
           break;
         case PANGO_ATTR_SIZE:
           attr = pango_attr_size_new (va_arg (args, gint));
@@ -3184,10 +3181,10 @@ gxk_label_set_attributes (GtkLabel *label,
           }
           break;
         case PANGO_ATTR_UNDERLINE:
-          attr = pango_attr_underline_new (va_arg (args, PangoUnderline));
+          attr = pango_attr_underline_new ((PangoUnderline) va_arg (args, int)); // PangoUnderline
           break;
         case PANGO_ATTR_STRIKETHROUGH:
-          attr = pango_attr_underline_new (va_arg (args, gboolean));
+          attr = pango_attr_underline_new ((PangoUnderline) va_arg (args, gboolean));
           break;
         case PANGO_ATTR_RISE:
           attr = pango_attr_rise_new (va_arg (args, gint));
@@ -3220,7 +3217,7 @@ gxk_label_set_attributes (GtkLabel *label,
 guint
 gxk_container_get_insertion_slot (GtkContainer *container)
 {
-  guint *slots = g_object_steal_data (container, "gxk-container-slots");
+  guint *slots = (guint*) g_object_steal_data ((GObject*) container, "gxk-container-slots");
   guint n_slots = slots ? slots[0] : 0;
   guint n_children = 0;
   if (GTK_IS_CONTAINER (container))
@@ -3233,7 +3230,7 @@ gxk_container_get_insertion_slot (GtkContainer *container)
   slots = g_renew (guint, slots, 1 + n_slots);
   slots[0] = n_slots;
   slots[n_slots] = n_children;
-  g_object_set_data_full (container, "gxk-container-slots", slots, g_free);
+  g_object_set_data_full ((GObject*) container, "gxk-container-slots", slots, g_free);
   return n_slots;
 }
 
@@ -3242,7 +3239,7 @@ gxk_container_slot_reorder_child (GtkContainer    *container,
                                   GtkWidget       *widget,
                                   guint            sloti)
 {
-  guint *slots = g_object_get_data (container, "gxk-container-slots");
+  guint *slots = (guint*) g_object_get_data ((GObject*) container, "gxk-container-slots");
   guint n_slots = slots ? slots[0] : 0;
   if (sloti && sloti <= n_slots)
     {
@@ -3326,7 +3323,7 @@ gxk_menu_check_sensitive (GtkMenu *menu)
   GList *list;
   for (list = shell->children; list; list = list->next)
     {
-      GtkWidget *child = list->data;
+      GtkWidget *child = (GtkWidget*) list->data;
       if (GTK_WIDGET_VISIBLE (child) &&
           GTK_WIDGET_IS_SENSITIVE (child) &&
           !GTK_IS_TEAROFF_MENU_ITEM (child))
@@ -3424,10 +3421,10 @@ gxk_option_menu_set_menu (GtkOptionMenu *option_menu,
 static void
 popup_menus_detach (gpointer data)
 {
-  GList *menu_list = data;
+  GList *menu_list = (GList*) data;
   while (menu_list)
     {
-      GtkMenu *menu = g_list_pop_head (&menu_list);
+      GtkMenu *menu = (GtkMenu*) g_list_pop_head (&menu_list);
       if (gtk_menu_get_attach_widget (menu))
         gtk_menu_detach (menu);
     }
@@ -3437,14 +3434,14 @@ static void
 popup_menu_detacher (GtkWidget *widget,
                      GtkMenu   *menu)
 {
-  GList *menu_list = g_object_steal_data (widget, "GxkWidget-popup-menus");
+  GList *menu_list = (GList*) g_object_steal_data ((GObject*) widget, "GxkWidget-popup-menus");
   GtkMenuDetachFunc mdfunc;
   if (menu_list)
     {
       menu_list = g_list_remove (menu_list, menu);
-      g_object_set_data_full (widget, "GxkWidget-popup-menus", menu_list, popup_menus_detach);
+      g_object_set_data_full ((GObject*) widget, "GxkWidget-popup-menus", menu_list, popup_menus_detach);
     }
-  mdfunc = g_object_get_data (menu, "gxk-GtkMenuDetachFunc");
+  mdfunc = (GtkMenuDetachFunc) g_object_get_data ((GObject*) menu, "gxk-GtkMenuDetachFunc");
   if (mdfunc)
     mdfunc (widget, menu);
 }
@@ -3464,10 +3461,10 @@ gxk_menu_attach_as_popup_with_func (GtkMenu          *menu,
   g_return_if_fail (GTK_IS_MENU (menu));
   g_return_if_fail (GTK_IS_WIDGET (widget));
 
-  GList *menu_list = g_object_steal_data (widget, "GxkWidget-popup-menus");
+  GList *menu_list = (GList*) g_object_steal_data ((GObject*) widget, "GxkWidget-popup-menus");
   menu_list = g_list_prepend (menu_list, menu);
-  g_object_set_data_full (widget, "GxkWidget-popup-menus", menu_list, popup_menus_detach);
-  g_object_set_data (menu, "gxk-GtkMenuDetachFunc", mdfunc);
+  g_object_set_data_full ((GObject*) widget, "GxkWidget-popup-menus", menu_list, popup_menus_detach);
+  g_object_set_data ((GObject*) menu, "gxk-GtkMenuDetachFunc", (void*) mdfunc);
   gtk_menu_attach_to_widget (menu, widget, popup_menu_detacher);
 
   gxk_widget_proxy_hierarchy_changed_to_attached (widget);
@@ -3524,7 +3521,7 @@ menu_position_pushed_in (GtkMenu   *menu,
   GList *list;
   for (list = GTK_MENU_SHELL (menu)->children; list; list = list->next)
     {
-      GtkWidget *child = list->data;
+      GtkWidget *child = (GtkWidget*) list->data;
       if (active == child)
         break;
       else if (GTK_WIDGET_VISIBLE (child))
@@ -3543,7 +3540,7 @@ menu_position_func (GtkMenu  *menu,
                     gboolean *push_in,
                     gpointer  func_data)
 {
-  PopupData *pdata = func_data;
+  PopupData *pdata = (PopupData*) func_data;
   *push_in = FALSE;
   if (pdata->pushed_in)
     {
@@ -3641,7 +3638,7 @@ widget_find_level_ordered (GtkWidget   *widget,
       GList *list, *newlist = NULL;
       for (list = children; list; list = list->next)
         {
-          GtkWidget *child = list->data;
+          GtkWidget *child = (GtkWidget*) list->data;
           if (child->name && strcmp (child->name, name) == 0)
             {
               g_list_free (children);
@@ -3651,7 +3648,7 @@ widget_find_level_ordered (GtkWidget   *widget,
       /* none found, search next level */
       for (list = children; list; list = list->next)
         {
-          widget = list->data;
+          widget = (GtkWidget*) list->data;
           if (GTK_IS_CONTAINER (widget))
             newlist = g_list_concat (gtk_container_get_children (GTK_CONTAINER (widget)), newlist);
           if (GTK_IS_MENU_ITEM (widget))
@@ -3660,7 +3657,7 @@ widget_find_level_ordered (GtkWidget   *widget,
               if (mitem->submenu)
                 newlist = g_list_prepend (newlist, mitem->submenu);
             }
-          GList *extra_children = g_object_get_data (widget, "GxkWidget-popup-menus");
+          GList *extra_children = (GList*) g_object_get_data ((GObject*) widget, "GxkWidget-popup-menus");
           if (extra_children)
             newlist = g_list_concat (g_list_copy (extra_children), newlist);
         }
@@ -3772,7 +3769,7 @@ const gchar*
 gxk_widget_get_options (gpointer widget)
 {
   g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
-  return g_object_get_data (widget, "GxkWidget-options");
+  return (const char*) g_object_get_data ((GObject*) widget, "GxkWidget-options");
 }
 
 /**
@@ -3796,7 +3793,7 @@ gxk_widget_add_option (gpointer         widget,
   g_return_if_fail (GTK_IS_WIDGET (widget));
   g_return_if_fail (option != NULL && !strchr (option, ':'));
   g_return_if_fail (value == NULL || !strcmp (value, "-") || !strcmp (value, "+"));
-  options = g_object_get_data (widget, "GxkWidget-options");
+  options = (const char*) g_object_get_data ((GObject*) widget, "GxkWidget-options");
   if (!options)
     options = "";
   if (value && strcmp (value, "-") == 0 &&
@@ -3813,7 +3810,7 @@ gxk_widget_add_option (gpointer         widget,
                               option, /* append >= 1 */
                               append >= 2 ? value : "",
                               NULL);
-      g_object_set_data_full (widget, "GxkWidget-options", s, g_free);
+      g_object_set_data_full ((GObject*) widget, "GxkWidget-options", s, g_free);
     }
 }
 
@@ -3830,7 +3827,7 @@ gxk_widget_check_option (gpointer         widget,
 {
   const gchar *options;
   g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE);
-  options = g_object_get_data (widget, "GxkWidget-options");
+  options = (const char*) g_object_get_data ((GObject*) widget, "GxkWidget-options");
   return g_option_check (options, option);
 }
 
@@ -3917,9 +3914,9 @@ gxk_file_selection_heal (GtkFileSelection *fs)
   main_box = gxk_file_selection_split (fs, NULL);
 
   /* add obligatory button seperator */
-  any = g_object_new (GTK_TYPE_HSEPARATOR,
-		      "visible", TRUE,
-		      NULL);
+  any = (GtkWidget*) g_object_new (GTK_TYPE_HSEPARATOR,
+                                   "visible", TRUE,
+                                   NULL);
   gtk_box_pack_end (GTK_BOX (main_box), any, FALSE, TRUE, 0);
 
   return main_box;
@@ -3934,7 +3931,7 @@ gxk_zfile_uncompress (guint                uncompressed_size,
 {
   uLongf dlen = uncompressed_size;
   guint len = dlen + 1;
-  guint8 *text = g_malloc (len);
+  guint8 *text = (guint8*) g_malloc (len);
   gint result;
   const gchar *err;
 
@@ -3965,5 +3962,5 @@ gxk_zfile_uncompress (guint                uncompressed_size,
     g_error ("while decompressing (%p, %u): %s", cdata, cdata_size, err);
 
   text[dlen] = 0;
-  return text;
+  return (char*) text;
 }
diff --git a/beast-gtk/gxk/splinetest.c b/beast-gtk/gxk/splinetest.cc
similarity index 100%
rename from beast-gtk/gxk/splinetest.c
rename to beast-gtk/gxk/splinetest.cc
diff --git a/po/POTSCAN b/po/POTSCAN
index 3ffeb0f..d91f0f9 100644
--- a/po/POTSCAN
+++ b/po/POTSCAN
@@ -53,13 +53,13 @@ beast-gtk/bstwaveeditor.c
 beast-gtk/bstwaveview.c
 beast-gtk/dialogs/radgets-beast.xml
 beast-gtk/dialogs/radgets-standard.xml
-beast-gtk/gxk/gxklistwrapper.c
-beast-gtk/gxk/gxkparam-entry.c
-beast-gtk/gxk/gxkparam-label.c
-beast-gtk/gxk/gxkparam-scale.c
-beast-gtk/gxk/gxkparam-spinner.c
-beast-gtk/gxk/gxkparam-toggle.c
-beast-gtk/gxk/gxksimplelabel.c
+beast-gtk/gxk/gxklistwrapper.cc
+beast-gtk/gxk/gxkparam-entry.cc
+beast-gtk/gxk/gxkparam-label.cc
+beast-gtk/gxk/gxkparam-scale.cc
+beast-gtk/gxk/gxkparam-spinner.cc
+beast-gtk/gxk/gxkparam-toggle.cc
+beast-gtk/gxk/gxksimplelabel.cc
 birnet/birnetmsg.cc
 birnet/birnetutils.cc
 bse/bseautodoc.cc



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]