--- a/gntbindable.c Wed Apr 03 19:04:31 2019 -0400
+++ b/gntbindable.c Wed Apr 03 19:22:35 2019 -0400
@@ -37,8 +37,6 @@
-static GObjectClass *parent_class = NULL;
char * okeys; /* Old keystrokes */
@@ -48,6 +46,18 @@
GList * params; /* The list of paramaters */
+G_DEFINE_TYPE(GntBindable, gnt_bindable, G_TYPE_OBJECT) +/****************************************************************************** + *****************************************************************************/ gnt_bindable_free_rebind_info(void)
@@ -106,6 +116,7 @@
gnt_bindable_rebinding_activate(GntBindable *data, gpointer bindable)
@@ -172,12 +183,6 @@
add_binding(gpointer key, gpointer value, gpointer data)
@@ -200,20 +205,6 @@
g_hash_table_insert(bv->hash, value, key);
-gnt_bindable_class_init(GntBindableClass *klass)
- parent_class = g_type_class_peek_parent(klass);
- klass->actions = g_hash_table_new_full(g_str_hash, g_str_equal, g_free,
- (GDestroyNotify)gnt_bindable_action_free);
- klass->bindings = g_hash_table_new_full(g_str_hash, g_str_equal, g_free,
- (GDestroyNotify)gnt_bindable_action_param_free);
- gnt_style_read_actions(G_OBJECT_CLASS_TYPE(klass), GNT_BINDABLE_CLASS(klass));
bindable_clone(GntBindableAction *action)
@@ -254,34 +245,28 @@
/******************************************************************************
+ * GObject Implementation + *****************************************************************************/ +gnt_bindable_init(G_GNUC_UNUSED GntBindable *bindable) +gnt_bindable_class_init(GntBindableClass *klass) + klass->actions = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, + (GDestroyNotify)gnt_bindable_action_free); + klass->bindings = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, + (GDestroyNotify)gnt_bindable_action_param_free); + gnt_style_read_actions(G_OBJECT_CLASS_TYPE(klass), GNT_BINDABLE_CLASS(klass)); +/****************************************************************************** *****************************************************************************/
-gnt_bindable_get_type(void)
- static const GTypeInfo info = {
- sizeof(GntBindableClass),
- (GBaseInitFunc)duplicate_hashes, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc)gnt_bindable_class_init,
- NULL, /* instance_init */
- type = g_type_register_static(G_TYPE_OBJECT,
- &info, G_TYPE_FLAG_ABSTRACT);
--- a/gntbindable.h Wed Apr 03 19:04:31 2019 -0400
+++ b/gntbindable.h Wed Apr 03 19:22:35 2019 -0400
@@ -33,22 +33,11 @@
-#define GNT_TYPE_BINDABLE (gnt_bindable_get_type())
-#define GNT_BINDABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GNT_TYPE_BINDABLE, GntBindable))
-#define GNT_BINDABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GNT_TYPE_BINDABLE, GntBindableClass))
-#define GNT_IS_BINDABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GNT_TYPE_BINDABLE))
-#define GNT_IS_BINDABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GNT_TYPE_BINDABLE))
-#define GNT_BINDABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GNT_TYPE_BINDABLE, GntBindableClass))
+#define GNT_TYPE_BINDABLE gnt_bindable_get_type() -typedef struct _GntBindable GntBindable;
-typedef struct _GntBindableClass GntBindableClass;
+typedef struct _GntBindable GntBindable; @@ -68,7 +57,7 @@
-GType gnt_bindable_get_type(void);
+G_DECLARE_DERIVABLE_TYPE(GntBindable, gnt_bindable, GNT, BINDABLE, GObject)