diff options
Diffstat (limited to 'src/gui/core')
-rw-r--r-- | src/gui/core/core.c | 14 | ||||
-rw-r--r-- | src/gui/core/global.c | 53 | ||||
-rw-r--r-- | src/gui/core/global.h | 6 |
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 *); |