diff options
Diffstat (limited to 'src/gtkext/gtkdockitem.c')
-rw-r--r-- | src/gtkext/gtkdockitem.c | 106 |
1 files changed, 87 insertions, 19 deletions
diff --git a/src/gtkext/gtkdockitem.c b/src/gtkext/gtkdockitem.c index 89d606c..51d1cc7 100644 --- a/src/gtkext/gtkdockitem.c +++ b/src/gtkext/gtkdockitem.c @@ -28,14 +28,24 @@ -/* Détermine le type d'un panneau dockable. */ -G_DEFINE_TYPE(GtkDockItem, gtk_dock_item, GTK_TYPE_OBJECT) +/* Procède à l'initialisation d'un panneau dockable. */ +static void g_dock_item_class_init(GDockItemClass *); + +/* Supprime toutes les références externes. */ +static void g_dock_item_class_dispose(GDockItem *); + +/* Procède à la libération totale de la mémoire. */ +static void g_dock_item_class_finalize(GDockItem *); +/* Détermine le type d'un panneau dockable. */ +G_DEFINE_TYPE(GDockItem, g_dock_item, G_TYPE_OBJECT) + + /****************************************************************************** * * -* Paramètres : class = classe GTK à initialiser. * +* Paramètres : klass = classe GTK à initialiser. * * * * Description : Procède à l'initialisation d'un panneau dockable. * * * @@ -45,12 +55,19 @@ G_DEFINE_TYPE(GtkDockItem, gtk_dock_item, GTK_TYPE_OBJECT) * * ******************************************************************************/ -static void gtk_dock_item_class_init(GtkDockItemClass *class) +static void g_dock_item_class_init(GDockItemClass *klass) { + GObjectClass *object; /* Autre version de la classe */ + + object = G_OBJECT_CLASS(klass); + + object->dispose = g_dock_item_class_dispose; + object->finalize = g_dock_item_class_finalize; + g_signal_new("content-changed", - GTK_TYPE_DOCK_ITEM, + G_TYPE_DOCK_ITEM, G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET(GtkDockItemClass, content_changed), + G_STRUCT_OFFSET(GDockItemClass, content_changed), NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_OBJECT, G_TYPE_NONE, 2, GTK_TYPE_WIDGET, GTK_TYPE_WIDGET); @@ -60,6 +77,57 @@ static void gtk_dock_item_class_init(GtkDockItemClass *class) /****************************************************************************** * * +* Paramètres : ditem = instance d'objet GLib à traiter. * +* * +* Description : Supprime toutes les références externes. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +static void g_dock_item_class_dispose(GDockItem *ditem) +{ + gpointer obj_class; /* Classe parente */ + + gtk_widget_unref(ditem->panel); + + obj_class = g_type_class_peek_parent(G_DOCK_ITEM_GET_CLASS(ditem)); + + G_OBJECT_CLASS(obj_class)->dispose(G_OBJECT(ditem)); + +} + + +/****************************************************************************** +* * +* Paramètres : ditem = instance d'objet GLib à traiter. * +* * +* Description : Procède à la libération totale de la mémoire. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +static void g_dock_item_class_finalize(GDockItem *ditem) +{ + gpointer obj_class; /* Classe parente */ + + g_free(ditem->name); + g_free(ditem->desc); + + obj_class = g_type_class_peek_parent(G_DOCK_ITEM_GET_CLASS(ditem)); + + G_OBJECT_CLASS(obj_class)->finalize(G_OBJECT(ditem)); + +} + + +/****************************************************************************** +* * * Paramètres : ditem = composant GTK à initialiser. * * * * Description : Procède à l'initialisation d'un panneau dockable. * @@ -70,7 +138,7 @@ static void gtk_dock_item_class_init(GtkDockItemClass *class) * * ******************************************************************************/ -static void gtk_dock_item_init(GtkDockItem *ditem) +static void g_dock_item_init(GDockItem *ditem) { ditem->name = NULL; @@ -92,14 +160,14 @@ static void gtk_dock_item_init(GtkDockItem *ditem) * * ******************************************************************************/ -GtkDockItem *gtk_dock_item_new(const gchar *name, GtkWidget *panel) +GDockItem *g_dock_item_new(const gchar *name, GtkWidget *panel) { - GtkDockItem *result; /* Composant à retourner */ + GDockItem *result; /* Composant à retourner */ - result = g_object_new(GTK_TYPE_DOCK_ITEM, NULL); + result = g_object_new(G_TYPE_DOCK_ITEM, NULL); - gtk_dock_item_set_name(result, name); - gtk_dock_item_set_panel(result, panel); + g_dock_item_set_name(result, name); + g_dock_item_set_panel(result, panel); return result; @@ -119,7 +187,7 @@ GtkDockItem *gtk_dock_item_new(const gchar *name, GtkWidget *panel) * * ******************************************************************************/ -void gtk_dock_item_set_name(GtkDockItem *ditem, const gchar *name) +void g_dock_item_set_name(GDockItem *ditem, const gchar *name) { if (ditem->name != NULL) g_free(ditem->name); @@ -141,7 +209,7 @@ void gtk_dock_item_set_name(GtkDockItem *ditem, const gchar *name) * * ******************************************************************************/ -const gchar *gtk_dock_item_get_name(GtkDockItem *ditem) +const gchar *g_dock_item_get_name(GDockItem *ditem) { return ditem->name; @@ -161,7 +229,7 @@ const gchar *gtk_dock_item_get_name(GtkDockItem *ditem) * * ******************************************************************************/ -void gtk_dock_item_set_desc(GtkDockItem *ditem, const gchar *desc) +void g_dock_item_set_desc(GDockItem *ditem, const gchar *desc) { if (ditem->desc != NULL) g_free(ditem->desc); @@ -183,14 +251,14 @@ void gtk_dock_item_set_desc(GtkDockItem *ditem, const gchar *desc) * * ******************************************************************************/ -const gchar *gtk_dock_item_get_desc(GtkDockItem *ditem) +const gchar *g_dock_item_get_desc(GDockItem *ditem) { const char *result; /* CHaîne à renvoyer */ result = ditem->desc; if (result == NULL) - result = gtk_dock_item_get_name(ditem); + result = g_dock_item_get_name(ditem); return result; @@ -210,7 +278,7 @@ const gchar *gtk_dock_item_get_desc(GtkDockItem *ditem) * * ******************************************************************************/ -void gtk_dock_item_set_panel(GtkDockItem *ditem, GtkWidget *panel) +void g_dock_item_set_panel(GDockItem *ditem, GtkWidget *panel) { GtkWidget *old; /* Ancien panneau remplacé */ @@ -240,7 +308,7 @@ void gtk_dock_item_set_panel(GtkDockItem *ditem, GtkWidget *panel) * * ******************************************************************************/ -GtkWidget *gtk_dock_item_get_panel(GtkDockItem *ditem) +GtkWidget *g_dock_item_get_panel(GDockItem *ditem) { return ditem->panel; |