summaryrefslogtreecommitdiff
path: root/src/gui/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/core')
-rw-r--r--src/gui/core/core.c14
-rw-r--r--src/gui/core/global.c53
-rw-r--r--src/gui/core/global.h6
3 files changed, 69 insertions, 4 deletions
diff --git a/src/gui/core/core.c b/src/gui/core/core.c
index 5cfa1ed..0c1e3f3 100644
--- a/src/gui/core/core.c
+++ b/src/gui/core/core.c
@@ -25,6 +25,7 @@
#include "global.h"
+#include "items.h"
#include "panels.h"
#include "theme.h"
#include "../menubar.h"
@@ -51,8 +52,8 @@
bool load_all_gui_components(void)
{
bool result; /* Bilan à retourner */
- GObject *ref; /* Espace de référencements */
GMenuBar *bar; /* Gestion des menus */
+ GtkBuilder *builder; /* Constructeur principal */
GtkMenuItem *submenuitem; /* Sous-élément de menu */
result = true;
@@ -63,13 +64,18 @@ bool load_all_gui_components(void)
* Charge une liste initiale pour activer les raccourcis clavier.
*/
- ref = get_global_ref();
+ bar = G_MENU_BAR(find_editor_item_by_key("menubar"));
- bar = G_MENU_BAR(g_object_get_data(ref, "menubar"));
- submenuitem = GTK_MENU_ITEM(g_object_get_data(ref, "mnu_view_side_panels"));
+ builder = get_editor_builder();
+
+ submenuitem = GTK_MENU_ITEM(gtk_builder_get_object(builder, "view_side_panels"));
mcb_view_update_side_panels_list(submenuitem, bar);
+ g_object_unref(G_OBJECT(builder));
+
+ g_object_unref(G_OBJECT(bar));
+
return result;
}
diff --git a/src/gui/core/global.c b/src/gui/core/global.c
index a9fd82f..c7e9a34 100644
--- a/src/gui/core/global.c
+++ b/src/gui/core/global.c
@@ -25,6 +25,9 @@
+/* Constructeur principal de l'éditeur */
+static GtkBuilder *_builder = NULL;
+
/* Fenêtre principale de l'éditeur */
static GtkWindow *_editor = NULL;
@@ -53,6 +56,56 @@ G_LOCK_DEFINE_STATIC(_cv_mutex);
* *
* Paramètres : editor = fenêtre principale à référencer. *
* *
+* Description : Note l'adresse du constructeur principal de l'éditeur. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+void set_editor_builder(GtkBuilder *builder)
+{
+ g_clear_object(&_builder);
+
+ _builder = builder;
+
+ if (builder != NULL)
+ g_object_ref(G_OBJECT(builder));
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : - *
+* *
+* Description : Fournit l'adresse du constructeur principal de l'éditeur. *
+* *
+* Retour : Constructeur principal référencé. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+GtkBuilder *get_editor_builder(void)
+{
+ GtkBuilder *result; /* Instance à retourner */
+
+ result = _builder;
+
+ if (result != NULL)
+ g_object_ref(G_OBJECT(result));
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : editor = fenêtre principale à référencer. *
+* *
* Description : Note l'adresse de la fenêtre principale de l'éditeur. *
* *
* Retour : - *
diff --git a/src/gui/core/global.h b/src/gui/core/global.h
index a624ab7..7d3e67b 100644
--- a/src/gui/core/global.h
+++ b/src/gui/core/global.h
@@ -32,6 +32,12 @@
+/* Note l'adresse du constructeur principal de l'éditeur. */
+void set_editor_builder(GtkBuilder *);
+
+/* Fournit l'adresse du constructeur principal de l'éditeur. */
+GtkBuilder *get_editor_builder(void);
+
/* Note l'adresse de la fenêtre principale de l'éditeur. */
void set_editor_window(GtkWindow *);