--- a/gnt-skel.c Wed Apr 03 21:42:03 2019 -0400
+++ b/gnt-skel.c Wed Apr 03 22:50:49 2019 -0400
@@ -22,14 +22,20 @@
-static GntWidgetClass *parent_class = NULL;
static guint signals[SIGS] = { 0 };
+G_DEFINE_TYPE(GntSkel, gnt_skel, GNT_TYPE_WIDGET) gnt_skel_draw(GntWidget *widget)
@@ -64,18 +70,21 @@
gnt_skel_class_init(GntSkelClass *klass)
GObjectClass *obj_class = G_OBJECT_CLASS(klass);
+ GntWidgetClass *widget_class = GNT_WIDGET_CLASS(klass); - parent_class = GNT_WIDGET_CLASS(klass);
- parent_class->destroy = gnt_skel_destroy;
- parent_class->draw = gnt_skel_draw;
- parent_class->map = gnt_skel_map;
- parent_class->size_request = gnt_skel_size_request;
- parent_class->key_pressed = gnt_skel_key_pressed;
+ widget_class->destroy = gnt_skel_destroy; + widget_class->draw = gnt_skel_draw; + widget_class->map = gnt_skel_map; + widget_class->size_request = gnt_skel_size_request; + widget_class->key_pressed = gnt_skel_key_pressed; - parent_class->actions = gnt_hash_table_duplicate(parent_class->actions, g_str_hash,
- g_str_equal, NULL, (GDestroyNotify)gnt_widget_action_free);
- parent_class->bindings = gnt_hash_table_duplicate(parent_class->bindings, g_str_hash,
- g_str_equal, NULL, (GDestroyNotify)gnt_widget_action_param_free);
+ widget_class->actions = gnt_hash_table_duplicate(widget_class->actions, + g_str_hash, g_str_equal, NULL, + (GDestroyNotify)gnt_widget_action_free); + widget_class->bindings = + gnt_hash_table_duplicate(widget_class->bindings, g_str_hash, + (GDestroyNotify)gnt_widget_action_param_free); gnt_widget_actions_read(G_OBJECT_CLASS_TYPE(klass), klass);
@@ -83,41 +92,13 @@
-gnt_skel_init(GTypeInstance *instance, gpointer class)
+gnt_skel_init(G_GNUC_UNUSED GntSkel *self)
/******************************************************************************
*****************************************************************************/
- static const GTypeInfo info = {
- NULL, /* base_finalize */
- (GClassInitFunc)gnt_skel_class_init,
- NULL, /* class_finalize */
- gnt_skel_init, /* instance_init */
- type = g_type_register_static(GNT_TYPE_WIDGET,
GntWidget *gnt_skel_new()
GntWidget *widget = g_object_new(GNT_TYPE_SKEL, NULL);
--- a/gnt-skel.h Wed Apr 03 21:42:03 2019 -0400
+++ b/gnt-skel.h Wed Apr 03 22:50:49 2019 -0400
@@ -34,36 +34,11 @@
-#define GNT_TYPE_SKEL (gnt_skel_get_type())
-#define GNT_SKEL(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GNT_TYPE_SKEL, GntSkel))
-#define GNT_SKEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GNT_TYPE_SKEL, GntSkelClass))
-#define GNT_IS_SKEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GNT_TYPE_SKEL))
-#define GNT_IS_SKEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GNT_TYPE_SKEL))
-#define GNT_SKEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GNT_TYPE_SKEL, GntSkelClass))
-typedef struct _GntSkel GntSkel;
-typedef struct _GntSkelPriv GntSkelPriv;
-typedef struct _GntSkelClass GntSkelClass;
- void (*gnt_reserved1)(void);
- void (*gnt_reserved2)(void);
- void (*gnt_reserved3)(void);
- void (*gnt_reserved4)(void);
+#define GNT_TYPE_SKEL gnt_skel_get_type() -GType gnt_skel_get_type(void);
+G_DECLARE_FINAL_TYPE(GntSkel, gnt_skel, GNT, SKEL, GntWidget) GntWidget * gnt_skel_new();