summaryrefslogtreecommitdiff
path: root/src/gui/panels/panel.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2018-02-18 21:27:51 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2018-02-18 21:27:51 (GMT)
commit1eadace09a51cd93aaf78d91f0d601730728dfd5 (patch)
tree8d40ab473acf2823b2f66ff99f94f8ea97764df4 /src/gui/panels/panel.c
parent412251e72f33525c3f5d0a1a3ec3843b9b79131e (diff)
Moved the resource builder as part of panel base.
Diffstat (limited to 'src/gui/panels/panel.c')
-rw-r--r--src/gui/panels/panel.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/gui/panels/panel.c b/src/gui/panels/panel.c
index 6536977..80de791 100644
--- a/src/gui/panels/panel.c
+++ b/src/gui/panels/panel.c
@@ -170,6 +170,9 @@ static void g_panel_item_dockable_interface_init(GtkDockableInterface *iface)
static void g_panel_item_dispose(GPanelItem *item)
{
+ if (item->builder != NULL) // REMME
+ g_object_unref(G_OBJECT(item->builder));
+
G_OBJECT_CLASS(g_panel_item_parent_class)->dispose(G_OBJECT(item));
}
@@ -240,6 +243,46 @@ GPanelItem *g_panel_item_new(PanelItemPersonality personality, const char *name,
/******************************************************************************
* *
+* Paramètres : item = panneau dont la construction est à poursuivre. *
+* name = nom associé à l'élément dans les ressources globales. *
+* *
+* Description : Charge les éléments graphiques du panneau via les ressources.*
+* *
+* Retour : Constructeur mis en place, afin de faciliter son usage. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+GtkBuilder *g_panel_item_build(GPanelItem *item, const char *name)
+{
+ GtkBuilder *result; /* Constructeur à retourner */
+ char *path; /* Chemin d'accès à constituer */
+ GEditorItem *base; /* Version basique d'instance */
+
+ asprintf(&path, "/org/chrysalide/gui/panels/%s.ui", name);
+
+ result = gtk_builder_new_from_resource(path);
+
+ free(path);
+
+ item->builder = result;
+
+ base = G_EDITOR_ITEM(item);
+
+ base->widget = GTK_WIDGET(gtk_builder_get_object(result, "box"));
+
+ g_object_ref(G_OBJECT(base->widget));
+
+ gtk_widget_unparent(base->widget);
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
* Paramètres : item = instance GTK dont l'interface est à consulter. *
* *
* Description : Fournit le nom court du composant encapsulable. *