summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2020-01-10 23:04:51 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2020-01-10 23:04:51 (GMT)
commit6b785b0e6c6048a4a8f1f81f9eaa407e05622368 (patch)
treedc6dc802b65ec37b3cbc3c65e9d6637654f0981c /src
parentc0528230469b10d606b9d1fa66a18696b2584fed (diff)
Cleaned editor items by removing a direct link to the main window.
Diffstat (limited to 'src')
-rw-r--r--src/gui/editem-int.h2
-rw-r--r--src/gui/editem.c19
-rw-r--r--src/gui/editem.h3
-rw-r--r--src/gui/editor.c2
-rw-r--r--src/gui/menus/binary.c22
-rw-r--r--src/gui/menus/binary.h4
-rw-r--r--src/gui/menus/edition.c41
-rw-r--r--src/gui/menus/edition.h4
-rw-r--r--src/gui/menus/menubar.c32
-rw-r--r--src/gui/menus/options.c33
-rw-r--r--src/gui/menus/project.c8
-rw-r--r--src/gui/menus/view.c71
-rw-r--r--src/gui/menus/view.h6
-rw-r--r--src/gui/status.c7
-rw-r--r--src/gui/status.h2
-rw-r--r--src/gui/tb/tbitem.c5
16 files changed, 117 insertions, 144 deletions
diff --git a/src/gui/editem-int.h b/src/gui/editem-int.h
index cf2d813..29f83e0 100644
--- a/src/gui/editem-int.h
+++ b/src/gui/editem-int.h
@@ -63,8 +63,6 @@ struct _GEditorItem
DL_LIST_ITEM(link); /* Maillon de liste chaînée */
- GObject *ref; /* Espce de référencement */
-
const char *name; /* Nom du panneau */
GtkWidget *widget; /* Composant GTK d'affichage */
diff --git a/src/gui/editem.c b/src/gui/editem.c
index 96d63c7..f1aa805 100644
--- a/src/gui/editem.c
+++ b/src/gui/editem.c
@@ -81,25 +81,6 @@ static void g_editor_item_init(GEditorItem *item)
* *
* Paramètres : item = instance à consulter. *
* *
-* Description : Fournit l'adresse de l'espace de référencement global. *
-* *
-* Retour : - *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-GObject *g_editor_item_get_global_ref(const GEditorItem *item)
-{
- return item->ref;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : item = instance à consulter. *
-* *
* Description : Fournit le nom humain attribué à l'élément réactif. *
* *
* Retour : Désignation (courte) de l'élément de l'éditeur. *
diff --git a/src/gui/editem.h b/src/gui/editem.h
index 5adc288..a5c5b0e 100644
--- a/src/gui/editem.h
+++ b/src/gui/editem.h
@@ -53,9 +53,6 @@ typedef struct _GEditorItemClass GEditorItemClass;
/* Indique le type défini pour un élément réactif d'éditeur. */
GType g_editor_item_get_type(void);
-/* Fournit l'adresse de l'espace de référencement global. */
-GObject *g_editor_item_get_global_ref(const GEditorItem *);
-
/* Fournit le nom humain attribué à l'élément réactif. */
const char *g_editor_item_get_name(const GEditorItem *);
diff --git a/src/gui/editor.c b/src/gui/editor.c
index 6a270fb..4d3931a 100644
--- a/src/gui/editor.c
+++ b/src/gui/editor.c
@@ -287,7 +287,7 @@ GtkWidget *create_editor(void)
/* Barre de statut générale */
- editem = g_status_info_new(ref);
+ editem = g_status_info_new();
register_editor_item(editem);
widget = g_editor_item_get_widget(editem);
diff --git a/src/gui/menus/binary.c b/src/gui/menus/binary.c
index aeaf6f6..65b371b 100644
--- a/src/gui/menus/binary.c
+++ b/src/gui/menus/binary.c
@@ -142,7 +142,8 @@ GtkWidget *build_menu_binary(GObject *ref, GMenuBar *bar)
/******************************************************************************
* *
-* Paramètres : new = nouveau contenu chargé à analyser. *
+* Paramètres : ref = espace de référencement global. *
+* new = nouveau contenu chargé à analyser. *
* *
* Description : Réagit à un changement d'affichage principal de contenu. *
* *
@@ -152,20 +153,13 @@ GtkWidget *build_menu_binary(GObject *ref, GMenuBar *bar)
* *
******************************************************************************/
-void update_access_for_content_in_menu_binary(GLoadedContent *new)
+void update_access_for_content_in_menu_binary(GObject *ref, GLoadedContent *new)
{
- GObject *ref; /* Espace de référencements */
gboolean access; /* Accès à déterminer */
GtkWidget *item; /* Elément de menu à traiter */
- /* Préliminaire */
-
- ref = get_global_ref();
-
access = G_IS_LOADED_BINARY(new);
- /* Menus */
-
item = GTK_WIDGET(g_object_get_data(ref, "mnu_binary_epoints"));
gtk_widget_set_sensitive(item, access);
@@ -180,7 +174,8 @@ void update_access_for_content_in_menu_binary(GLoadedContent *new)
/******************************************************************************
* *
-* Paramètres : new = nouvelle vue du contenu chargé analysé. *
+* Paramètres : ref = espace de référencement global. *
+* new = nouvelle vue du contenu chargé analysé. *
* *
* Description : Lance une actualisation du fait d'un changement de support. *
* *
@@ -190,16 +185,11 @@ void update_access_for_content_in_menu_binary(GLoadedContent *new)
* *
******************************************************************************/
-void update_access_for_view_in_menu_binary(GLoadedPanel *new)
+void update_access_for_view_in_menu_binary(GObject *ref, GLoadedPanel *new)
{
- GObject *ref; /* Espace de référencements */
gboolean access; /* Accès à déterminer */
GtkWidget *item; /* Elément de menu à traiter */
- ref = get_global_ref();
-
- /* Exportation de graphiques */
-
access = GTK_IS_GRAPH_DISPLAY(new);
item = GTK_WIDGET(g_object_get_data(ref, "mnu_binary_export_graph"));
diff --git a/src/gui/menus/binary.h b/src/gui/menus/binary.h
index a752626..e21c4eb 100644
--- a/src/gui/menus/binary.h
+++ b/src/gui/menus/binary.h
@@ -38,10 +38,10 @@
GtkWidget *build_menu_binary(GObject *, GMenuBar *);
/* Réagit à un changement d'affichage principal de contenu. */
-void update_access_for_content_in_menu_binary(GLoadedContent *);
+void update_access_for_content_in_menu_binary(GObject *, GLoadedContent *);
/* Lance une actualisation du fait d'un changement de support. */
-void update_access_for_view_in_menu_binary(GLoadedPanel *);
+void update_access_for_view_in_menu_binary(GObject *, GLoadedPanel *);
diff --git a/src/gui/menus/edition.c b/src/gui/menus/edition.c
index cdf8aa3..e1ef696 100644
--- a/src/gui/menus/edition.c
+++ b/src/gui/menus/edition.c
@@ -237,7 +237,8 @@ GtkWidget *build_menu_edition(GObject *ref, GMenuBar *bar)
/******************************************************************************
* *
-* Paramètres : new = nouvelle vue du contenu chargé analysé. *
+* Paramètres : ref = espace de référencement global. *
+* new = nouvelle vue du contenu chargé analysé. *
* *
* Description : Lance une actualisation du fait d'un changement de support. *
* *
@@ -247,14 +248,11 @@ GtkWidget *build_menu_edition(GObject *ref, GMenuBar *bar)
* *
******************************************************************************/
-void update_access_for_view_in_menu_edition(GLoadedPanel *new)
+void update_access_for_view_in_menu_edition(GObject *ref, GLoadedPanel *new)
{
- GObject *ref; /* Espace de référencements */
gboolean access; /* Accès à déterminer */
GtkWidget *item; /* Elément de menu à traiter */
- ref = get_global_ref();
-
/* Déplacements ciblés */
access = GTK_IS_BLOCK_DISPLAY(new) || GTK_IS_GRAPH_DISPLAY(new);
@@ -325,7 +323,8 @@ void update_access_for_view_in_menu_edition(GLoadedPanel *new)
/******************************************************************************
* *
-* Paramètres : panel = vue d'affichage active ou NULL si aucune. *
+* Paramètres : ref = espace de référencement global. *
+* panel = vue d'affichage active ou NULL si aucune. *
* cursor = suivi des positions à consulter. *
* *
* Description : Met à jour les accès du menu "Edition" selon une position. *
@@ -336,15 +335,12 @@ void update_access_for_view_in_menu_edition(GLoadedPanel *new)
* *
******************************************************************************/
-void update_access_for_cursor_in_menu_edition(GLoadedPanel *panel, const GLineCursor *cursor)
+void update_access_for_cursor_in_menu_edition(GObject *ref, GLoadedPanel *panel, const GLineCursor *cursor)
{
- GObject *ref; /* Espace de référencements */
GObject *creator; /* Créateur à l'orgine du seg. */
gboolean access; /* Accès à déterminer */
GtkWidget *item; /* Elément de menu à traiter */
- ref = get_global_ref();
-
/* Préliminaire */
/**
@@ -420,14 +416,15 @@ void update_access_for_cursor_in_menu_edition(GLoadedPanel *panel, const GLineCu
static void mcb_edition_goto(GtkMenuItem *menuitem, GMenuBar *bar)
{
- GObject *ref; /* Espace de référencements */
+ GtkWindow *editor; /* Fenêtre graphique principale*/
GtkWidget *dialog; /* Boîte de dialogue à montrer */
vmpa2t *addr; /* Adresse de destination */
GLoadedPanel *panel; /* Afficheur effectif de code */
GLoadedBinary *binary; /* Binaire en cours d'édition */
- ref = g_editor_item_get_global_ref(G_EDITOR_ITEM(bar));
- dialog = create_goto_dialog(GTK_WINDOW(ref));
+ editor = get_editor_window();
+
+ dialog = create_goto_dialog(editor);
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK)
{
@@ -450,6 +447,8 @@ static void mcb_edition_goto(GtkMenuItem *menuitem, GMenuBar *bar)
gtk_widget_destroy(dialog);
+ g_object_unref(G_OBJECT(editor));
+
}
@@ -616,7 +615,7 @@ static void mcb_edition_list_xrefs(GtkMenuItem *menuitem, GMenuBar *bar)
GLoadedBinary *binary; /* Représentation binaire */
GArchProcessor *proc; /* Processeur de l'architecture*/
GArchInstruction *instr; /* Point de croisements */
- GObject *ref; /* Espace de référencements */
+ GtkWindow *editor; /* Fenêtre graphique principale*/
GtkWidget *dialog; /* Boîte de dialogue à montrer */
vmpa2t *dest; /* Adresse de destination */
@@ -642,9 +641,9 @@ static void mcb_edition_list_xrefs(GtkMenuItem *menuitem, GMenuBar *bar)
if (instr != NULL)
{
- ref = g_editor_item_get_global_ref(G_EDITOR_ITEM(bar));
+ editor = get_editor_window();
- dialog = create_gotox_dialog_for_cross_references(GTK_WINDOW(ref), binary, instr, true);
+ dialog = create_gotox_dialog_for_cross_references(editor, binary, instr, true);
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK)
{
@@ -658,6 +657,8 @@ static void mcb_edition_list_xrefs(GtkMenuItem *menuitem, GMenuBar *bar)
gtk_widget_destroy(dialog);
+ g_object_unref(G_OBJECT(editor));
+
g_object_unref(G_OBJECT(instr));
}
@@ -691,7 +692,7 @@ static void mcb_edition_bookmarks_toggle(GtkMenuItem *menuitem, GMenuBar *bar)
GLoadedBinary *binary; /* Binaire en cours d'étude */
GDbCollection *collec; /* Collection à manipuler */
GDbItem *exist; /* Sens du basculement courant */
- GObject *ref; /* Espace de référencements */
+ GtkWindow *editor; /* Fenêtre graphique principale*/
GtkBuilder *builder; /* Constructeur utilisé */
GtkWidget *dialog; /* Boîte de dialogue à montrer */
GDbItem *bookmark; /* Nouveau signet défini */
@@ -727,9 +728,9 @@ static void mcb_edition_bookmarks_toggle(GtkMenuItem *menuitem, GMenuBar *bar)
else
{
- ref = g_editor_item_get_global_ref(G_EDITOR_ITEM(bar));
+ editor = get_editor_window();
- dialog = create_bookmark_dialog(GTK_WINDOW(ref), &builder);
+ dialog = create_bookmark_dialog(editor, &builder);
ret = gtk_dialog_run(GTK_DIALOG(dialog));
@@ -745,6 +746,8 @@ static void mcb_edition_bookmarks_toggle(GtkMenuItem *menuitem, GMenuBar *bar)
g_object_unref(G_OBJECT(builder));
+ g_object_unref(G_OBJECT(editor));
+
}
g_object_unref(G_OBJECT(collec));
diff --git a/src/gui/menus/edition.h b/src/gui/menus/edition.h
index 596ceba..3b22650 100644
--- a/src/gui/menus/edition.h
+++ b/src/gui/menus/edition.h
@@ -38,10 +38,10 @@
GtkWidget *build_menu_edition(GObject *, GMenuBar *);
/* Lance une actualisation du fait d'un changement de support. */
-void update_access_for_view_in_menu_edition(GLoadedPanel *);
+void update_access_for_view_in_menu_edition(GObject *, GLoadedPanel *);
/* Met à jour les accès du menu "Edition" selon une position. */
-void update_access_for_cursor_in_menu_edition(GLoadedPanel *, const GLineCursor *);
+void update_access_for_cursor_in_menu_edition(GObject *, GLoadedPanel *, const GLineCursor *);
diff --git a/src/gui/menus/menubar.c b/src/gui/menus/menubar.c
index d386362..97aa24f 100644
--- a/src/gui/menus/menubar.c
+++ b/src/gui/menus/menubar.c
@@ -35,6 +35,7 @@
#include "project.h"
#include "view.h"
#include "../editem-int.h"
+#include "../core/global.h"
@@ -209,13 +210,8 @@ GEditorItem *g_menu_bar_new(GObject *ref)
result = g_object_new(G_TYPE_MENU_BAR, NULL);
- /* Initialisation générique */
-
item = G_EDITOR_ITEM(result);
- g_object_ref(ref);
- item->ref = ref;
-
/* Fichier */
result->file = build_menu_file();
@@ -282,9 +278,13 @@ GEditorItem *g_menu_bar_new(GObject *ref)
static void change_menubar_current_content(GMenuBar *bar, GLoadedContent *old, GLoadedContent *new)
{
- rebuild_menu_view_for_content(bar->view, new);
+ GObject *ref; /* Espace de référencements */
+
+ ref = get_global_ref();
+
+ rebuild_menu_view_for_content(bar->view, ref, new);
- update_access_for_content_in_menu_binary(new);
+ update_access_for_content_in_menu_binary(ref, new);
}
@@ -305,13 +305,17 @@ static void change_menubar_current_content(GMenuBar *bar, GLoadedContent *old, G
static void change_menubar_current_view(GMenuBar *bar, GLoadedPanel *old, GLoadedPanel *new)
{
- update_access_for_view_in_menu_edition(new);
+ GObject *ref; /* Espace de référencements */
- rebuild_menu_view_for_view(bar->view, new);
+ ref = get_global_ref();
- update_access_for_view_in_menu_view(new);
+ update_access_for_view_in_menu_edition(ref, new);
- update_access_for_view_in_menu_binary(new);
+ rebuild_menu_view_for_view(bar->view, ref, new);
+
+ update_access_for_view_in_menu_view(ref, new);
+
+ update_access_for_view_in_menu_binary(ref, new);
}
@@ -332,7 +336,11 @@ static void change_menubar_current_view(GMenuBar *bar, GLoadedPanel *old, GLoade
static void track_caret_address_for_menu_bar(GMenuBar *bar, GLoadedPanel *panel, const GLineCursor *cursor)
{
- update_access_for_cursor_in_menu_edition(panel, cursor);
+ GObject *ref; /* Espace de référencements */
+
+ ref = get_global_ref();
+
+ update_access_for_cursor_in_menu_edition(ref, panel, cursor);
}
diff --git a/src/gui/menus/options.c b/src/gui/menus/options.c
index 3702d42..065f4f5 100644
--- a/src/gui/menus/options.c
+++ b/src/gui/menus/options.c
@@ -29,6 +29,7 @@
#include "../editem-int.h"
+#include "../core/global.h"
#include "../dialogs/identity.h"
#include "../dialogs/preferences.h"
#include "../../gtkext/easygtk.h"
@@ -36,10 +37,10 @@
/* Réagit au menu "Options -> Préférences". */
-static void mcb_options_preferences(GtkMenuItem *, GMenuBar *);
+static void mcb_options_preferences(GtkMenuItem *, gpointer);
/* Réagit au menu "Options -> Identité". */
-static void mcb_options_identity(GtkMenuItem *, GMenuBar *);
+static void mcb_options_identity(GtkMenuItem *, gpointer);
@@ -68,11 +69,11 @@ GtkWidget *build_menu_options(GObject *ref, GMenuBar *bar)
menubar = qck_create_menu(GTK_MENU_ITEM(result));
submenuitem = qck_create_menu_item(ref, "mnu_options_preferences", _("Preferences"),
- G_CALLBACK(mcb_options_preferences), bar);
+ G_CALLBACK(mcb_options_preferences), NULL);
gtk_container_add(GTK_CONTAINER(menubar), submenuitem);
submenuitem = qck_create_menu_item(ref, "mnu_options_identity", _("Identity"),
- G_CALLBACK(mcb_options_identity), bar);
+ G_CALLBACK(mcb_options_identity), NULL);
gtk_container_add(GTK_CONTAINER(menubar), submenuitem);
return result;
@@ -83,7 +84,7 @@ GtkWidget *build_menu_options(GObject *ref, GMenuBar *bar)
/******************************************************************************
* *
* Paramètres : menuitem = élément de menu sélectionné. *
-* bar = barre de menu parente. *
+* unused = adresse non utilisée ici. *
* *
* Description : Réagit au menu "Options -> Préférences". *
* *
@@ -93,15 +94,15 @@ GtkWidget *build_menu_options(GObject *ref, GMenuBar *bar)
* *
******************************************************************************/
-static void mcb_options_preferences(GtkMenuItem *menuitem, GMenuBar *bar)
+static void mcb_options_preferences(GtkMenuItem *menuitem, gpointer unused)
{
- GObject *ref; /* Espace de référencements */
+ GtkWindow *editor; /* Fenêtre graphique principale*/
GtkBuilder *builder; /* Constructeur utilisé */
GtkWidget *dialog; /* Boîte de dialogue à montrer */
- ref = g_editor_item_get_global_ref(G_EDITOR_ITEM(bar));
+ editor = get_editor_window();
- dialog = create_preferences_dialog(GTK_WINDOW(ref), &builder);
+ dialog = create_preferences_dialog(editor, &builder);
gtk_dialog_run(GTK_DIALOG(dialog));
@@ -109,13 +110,15 @@ static void mcb_options_preferences(GtkMenuItem *menuitem, GMenuBar *bar)
g_object_unref(G_OBJECT(builder));
+ g_object_unref(G_OBJECT(editor));
+
}
/******************************************************************************
* *
* Paramètres : menuitem = élément de menu sélectionné. *
-* bar = barre de menu parente. *
+* unused = adresse non utilisée ici. *
* *
* Description : Réagit au menu "Options -> Identité". *
* *
@@ -125,15 +128,15 @@ static void mcb_options_preferences(GtkMenuItem *menuitem, GMenuBar *bar)
* *
******************************************************************************/
-static void mcb_options_identity(GtkMenuItem *menuitem, GMenuBar *bar)
+static void mcb_options_identity(GtkMenuItem *menuitem, gpointer unused)
{
- GObject *ref; /* Espace de référencements */
+ GtkWindow *editor; /* Fenêtre graphique principale*/
GtkBuilder *builder; /* Constructeur utilisé */
GtkWidget *dialog; /* Boîte de dialogue à montrer */
- ref = g_editor_item_get_global_ref(G_EDITOR_ITEM(bar));
+ editor = get_editor_window();
- dialog = create_identity_dialog(GTK_WINDOW(ref), &builder);
+ dialog = create_identity_dialog(editor, &builder);
gtk_dialog_run(GTK_DIALOG(dialog));
@@ -141,4 +144,6 @@ static void mcb_options_identity(GtkMenuItem *menuitem, GMenuBar *bar)
g_object_unref(G_OBJECT(builder));
+ g_object_unref(G_OBJECT(editor));
+
}
diff --git a/src/gui/menus/project.c b/src/gui/menus/project.c
index 459d963..76dc7e5 100644
--- a/src/gui/menus/project.c
+++ b/src/gui/menus/project.c
@@ -32,6 +32,7 @@
#include "../editem-int.h"
+#include "../core/global.h"
#include "../../analysis/loading.h"
#include "../../analysis/contents/file.h"
#include "../../core/global.h"
@@ -174,14 +175,17 @@ void update_menu_project_for_project(GtkWidget *widget, GStudyProject *project,
static void mcb_project_add_binary_file(GtkMenuItem *menuitem, GMenuBar *bar)
{
+ GtkWindow *editor; /* Fenêtre graphique principale*/
GtkWidget *dialog; /* Boîte à afficher */
GStudyProject *project; /* Projet courant */
char *dir; /* Répertoire courant */
gchar *filename; /* Nom du fichier à intégrer */
GBinContent *content; /* Contenu binaire à charger */
+ editor = get_editor_window();
+
dialog = gtk_file_chooser_dialog_new(_("Open a binary file"),
- GTK_WINDOW(G_EDITOR_ITEM(bar)->ref),
+ editor,
GTK_FILE_CHOOSER_ACTION_OPEN,
_("_Cancel"), GTK_RESPONSE_CANCEL,
_("_Open"), GTK_RESPONSE_ACCEPT,
@@ -217,6 +221,8 @@ static void mcb_project_add_binary_file(GtkMenuItem *menuitem, GMenuBar *bar)
gtk_widget_destroy(dialog);
+ g_object_unref(G_OBJECT(editor));
+
}
diff --git a/src/gui/menus/view.c b/src/gui/menus/view.c
index 018cfbf..e8b3c93 100644
--- a/src/gui/menus/view.c
+++ b/src/gui/menus/view.c
@@ -46,7 +46,7 @@
/* Met à jour les accès du menu "Affichage -> Basculer...". */
-static void update_switch_access_in_menu_view(void);
+static void update_switch_access_in_menu_view(GObject *);
/* Réagit avec le menu "Affichage -> Panneaux latéraux -> ...". */
static void mcb_view_change_panel_docking(GtkCheckMenuItem *, GPanelItem *);
@@ -55,10 +55,10 @@ static void mcb_view_change_panel_docking(GtkCheckMenuItem *, GPanelItem *);
static void mcb_view_change_support(GtkRadioMenuItem *, gpointer);
/* Réagit avec le menu "Affichage -> Basculer vers le suivant". */
-static void mcb_view_switch_to_next_support(GtkRadioMenuItem *, gpointer);
+static void mcb_view_switch_to_next_support(GtkRadioMenuItem *, GObject *);
/* Réagit avec le menu "Affichage -> Basculer vers le précédent". */
-static void mcb_view_switch_to_prev_support(GtkRadioMenuItem *, gpointer);
+static void mcb_view_switch_to_prev_support(GtkRadioMenuItem *, GObject *);
/* Accompagne la première allocation d'un panneau d'affichage. */
static void handle_loaded_panel_first_allocation(GtkWidget *, GdkRectangle *, GLineCursor *);
@@ -73,7 +73,7 @@ static void mcb_view_zoom(GtkCheckMenuItem *, gpointer );
static void mcb_view_display_column(GtkCheckMenuItem *, gpointer);
/* Réagit avec le menu "Affichage -> Plein écran". */
-static void mcb_view_show_full_screen(GtkCheckMenuItem *, GMenuBar *);
+static void mcb_view_show_full_screen(GtkCheckMenuItem *, gpointer);
@@ -118,12 +118,12 @@ GtkWidget *build_menu_view(GObject *ref, GMenuBar *bar)
/* Types de panneau de code */
submenuitem = qck_create_menu_item(ref, "mnu_view_switch_to_next_support", _("Switch to next"),
- G_CALLBACK(mcb_view_switch_to_next_support), NULL);
+ G_CALLBACK(mcb_view_switch_to_next_support), ref);
add_accelerator_to_widget(submenuitem, "Tab");
gtk_container_add(GTK_CONTAINER(menubar), submenuitem);
submenuitem = qck_create_menu_item(ref, "mnu_view_switch_to_prev_support", _("Switch to previous"),
- G_CALLBACK(mcb_view_switch_to_prev_support), NULL);
+ G_CALLBACK(mcb_view_switch_to_prev_support), ref);
add_accelerator_to_widget(submenuitem, "<Shift>Tab");
gtk_container_add(GTK_CONTAINER(menubar), submenuitem);
@@ -163,7 +163,7 @@ GtkWidget *build_menu_view(GObject *ref, GMenuBar *bar)
/* Affichage -> Plein écran */
submenuitem = qck_create_check_menu_item(NULL, NULL, _("Full screen"),
- G_CALLBACK(mcb_view_show_full_screen), bar);
+ G_CALLBACK(mcb_view_show_full_screen), NULL);
add_accelerator_to_widget(submenuitem, "F11");
gtk_container_add(GTK_CONTAINER(menubar), submenuitem);
@@ -175,7 +175,8 @@ GtkWidget *build_menu_view(GObject *ref, GMenuBar *bar)
/******************************************************************************
* *
* Paramètres : widget = menu principal à actualiser. *
-* new = nouveau contenu chargé à analyser. *
+* ref = espace de référencement global. *
+* new = nouveau contenu chargé à analyser. *
* *
* Description : Réagit à un changement d'affichage principal de contenu. *
* *
@@ -185,9 +186,8 @@ GtkWidget *build_menu_view(GObject *ref, GMenuBar *bar)
* *
******************************************************************************/
-void rebuild_menu_view_for_content(GtkWidget *widget, GLoadedContent *new)
+void rebuild_menu_view_for_content(GtkWidget *widget, GObject *ref, GLoadedContent *new)
{
- GObject *ref; /* Espace de références */
GtkWidget *menubar; /* Support pour éléments */
unsigned int i; /* Boucle de parcours */
char *key; /* Clef pour accès ultérieurs */
@@ -199,8 +199,6 @@ void rebuild_menu_view_for_content(GtkWidget *widget, GLoadedContent *new)
unsigned int count; /* Nombre d'itérations à mener */
GSList *rgroup; /* Groupe des boutons radio */
- ref = get_global_ref();
-
/* Retrait d'éventuels anciens menus */
menubar = gtk_menu_item_get_submenu(GTK_MENU_ITEM(widget));
@@ -277,6 +275,7 @@ void rebuild_menu_view_for_content(GtkWidget *widget, GLoadedContent *new)
/******************************************************************************
* *
* Paramètres : widget = menu principal à actualiser. *
+* ref = espace de référencement global. *
* new = nouvelle vue du contenu chargé analysé. *
* *
* Description : Lance une actualisation du fait d'un changement de support. *
@@ -287,9 +286,8 @@ void rebuild_menu_view_for_content(GtkWidget *widget, GLoadedContent *new)
* *
******************************************************************************/
-void rebuild_menu_view_for_view(GtkWidget *widget, GLoadedPanel *new)
+void rebuild_menu_view_for_view(GtkWidget *widget, GObject *ref, GLoadedPanel *new)
{
- GObject *ref; /* Espace de références */
GLoadedContent *content; /* Contenu en cours d'analyse */
unsigned int index; /* Indice de la vue */
GtkWidget *menubar; /* Support pour éléments */
@@ -306,8 +304,6 @@ void rebuild_menu_view_for_view(GtkWidget *widget, GLoadedPanel *new)
size_t count; /* Nombre d'itérations à mener */
bool status; /* Consigne d'affichage */
- ref = get_global_ref();
-
content = get_current_content();
assert((content == NULL && new == NULL) || (content != NULL && new != NULL));
@@ -425,7 +421,8 @@ void rebuild_menu_view_for_view(GtkWidget *widget, GLoadedPanel *new)
/******************************************************************************
* *
-* Paramètres : new = nouvelle vue du contenu chargé analysé. *
+* Paramètres : ref = espace de référencement global. *
+* new = nouvelle vue du contenu chargé analysé. *
* *
* Description : Met à jour les accès du menu "Affichage" selon le contenu. *
* *
@@ -435,17 +432,14 @@ void rebuild_menu_view_for_view(GtkWidget *widget, GLoadedPanel *new)
* *
******************************************************************************/
-void update_access_for_view_in_menu_view(GLoadedPanel *new)
+void update_access_for_view_in_menu_view(GObject *ref, GLoadedPanel *new)
{
- GObject *ref; /* Espace de référencements */
gboolean access; /* Accès à déterminer */
GtkWidget *item; /* Elément de menu à traiter */
- ref = get_global_ref();
-
/* Bascules */
- update_switch_access_in_menu_view();
+ update_switch_access_in_menu_view(ref);
/* Zooms */
@@ -465,7 +459,7 @@ void update_access_for_view_in_menu_view(GLoadedPanel *new)
/******************************************************************************
* *
-* Paramètres : - *
+* Paramètres : ref = espace de référencement global. *
* *
* Description : Met à jour les accès du menu "Affichage -> Basculer...". *
* *
@@ -475,9 +469,8 @@ void update_access_for_view_in_menu_view(GLoadedPanel *new)
* *
******************************************************************************/
-static void update_switch_access_in_menu_view(void)
+static void update_switch_access_in_menu_view(GObject *ref)
{
- GObject *ref; /* Espace de références */
GLoadedPanel *panel; /* Afficheur effectif de code */
GLoadedContent *content; /* Contenu représenté */
unsigned int count; /* Nombre de vues possibles */
@@ -485,8 +478,6 @@ static void update_switch_access_in_menu_view(void)
gboolean access; /* Accès à déterminer */
GtkWidget *item; /* Elément de menu à traiter */
- ref = get_global_ref();
-
panel = get_current_view();
if (panel == NULL)
@@ -711,7 +702,7 @@ static void mcb_view_change_support(GtkRadioMenuItem *menuitem, gpointer unused)
/******************************************************************************
* *
* Paramètres : menuitem = élément de menu ayant basculé. *
-* unused = adresse non utilisée ici. *
+* ref = espace de référencement global. *
* *
* Description : Réagit avec le menu "Affichage -> Basculer vers le suivant". *
* *
@@ -721,7 +712,7 @@ static void mcb_view_change_support(GtkRadioMenuItem *menuitem, gpointer unused)
* *
******************************************************************************/
-static void mcb_view_switch_to_next_support(GtkRadioMenuItem *menuitem, gpointer unused)
+static void mcb_view_switch_to_next_support(GtkRadioMenuItem *menuitem, GObject *ref)
{
GLoadedPanel *panel; /* Afficheur effectif de code */
GLoadedContent *content; /* Contenu représenté */
@@ -746,7 +737,7 @@ static void mcb_view_switch_to_next_support(GtkRadioMenuItem *menuitem, gpointer
g_object_unref(G_OBJECT(content));
g_object_unref(G_OBJECT(panel));
- update_switch_access_in_menu_view();
+ update_switch_access_in_menu_view(ref);
}
@@ -754,7 +745,7 @@ static void mcb_view_switch_to_next_support(GtkRadioMenuItem *menuitem, gpointer
/******************************************************************************
* *
* Paramètres : menuitem = élément de menu ayant basculé. *
-* unused = adresse non utilisée ici. *
+* ref = espace de référencement global. *
* *
* Description : Réagit avec le menu "Affichage -> Basculer ... précédent". *
* *
@@ -764,7 +755,7 @@ static void mcb_view_switch_to_next_support(GtkRadioMenuItem *menuitem, gpointer
* *
******************************************************************************/
-static void mcb_view_switch_to_prev_support(GtkRadioMenuItem *menuitem, gpointer unused)
+static void mcb_view_switch_to_prev_support(GtkRadioMenuItem *menuitem, GObject *ref)
{
GLoadedPanel *panel; /* Afficheur effectif de code */
GLoadedContent *content; /* Contenu représenté */
@@ -782,7 +773,7 @@ static void mcb_view_switch_to_prev_support(GtkRadioMenuItem *menuitem, gpointer
g_object_unref(G_OBJECT(content));
g_object_unref(G_OBJECT(panel));
- update_switch_access_in_menu_view();
+ update_switch_access_in_menu_view(ref);
}
@@ -974,7 +965,7 @@ static void mcb_view_display_column(GtkCheckMenuItem *menuitem, gpointer unused)
/******************************************************************************
* *
* Paramètres : menuitem = élément de menu sélectionné. *
-* bar = barre de menu parente. *
+* unused = adresse non utilisée ici. *
* *
* Description : Réagit avec le menu "Affichage -> Plein écran". *
* *
@@ -984,18 +975,20 @@ static void mcb_view_display_column(GtkCheckMenuItem *menuitem, gpointer unused)
* *
******************************************************************************/
-static void mcb_view_show_full_screen(GtkCheckMenuItem *menuitem, GMenuBar *bar)
+static void mcb_view_show_full_screen(GtkCheckMenuItem *menuitem, gpointer unused)
{
- GObject *ref; /* Espace de référencements */
+ GtkWindow *editor; /* Fenêtre graphique principale*/
gboolean active; /* Etat de sélection du menu */
- ref = g_editor_item_get_global_ref(G_EDITOR_ITEM(bar));
+ editor = get_editor_window();
active = gtk_check_menu_item_get_active(menuitem);
if (active)
- gtk_window_fullscreen(GTK_WINDOW(ref));
+ gtk_window_fullscreen(editor);
else
- gtk_window_unfullscreen(GTK_WINDOW(ref));
+ gtk_window_unfullscreen(editor);
+
+ g_object_unref(G_OBJECT(editor));
}
diff --git a/src/gui/menus/view.h b/src/gui/menus/view.h
index d3d70ab..d177c37 100644
--- a/src/gui/menus/view.h
+++ b/src/gui/menus/view.h
@@ -38,13 +38,13 @@
GtkWidget *build_menu_view(GObject *, GMenuBar *);
/* Réagit à un changement d'affichage principal de contenu. */
-void rebuild_menu_view_for_content(GtkWidget *, GLoadedContent *);
+void rebuild_menu_view_for_content(GtkWidget *, GObject *, GLoadedContent *);
/* Lance une actualisation du fait d'un changement de support. */
-void rebuild_menu_view_for_view(GtkWidget *, GLoadedPanel *);
+void rebuild_menu_view_for_view(GtkWidget *, GObject *, GLoadedPanel *);
/* Met à jour les accès du menu "Affichage" selon le contenu. */
-void update_access_for_view_in_menu_view(GLoadedPanel *);
+void update_access_for_view_in_menu_view(GObject *, GLoadedPanel *);
/* Réagit avec le menu "Affichage -> Panneaux latéraux". */
void mcb_view_update_side_panels_list(GtkMenuItem *, GMenuBar *);
diff --git a/src/gui/status.c b/src/gui/status.c
index 645028e..f692e0d 100644
--- a/src/gui/status.c
+++ b/src/gui/status.c
@@ -177,7 +177,7 @@ static void g_status_info_finalize(GStatusInfo *info)
/******************************************************************************
* *
-* Paramètres : ref = espace de référencement global. *
+* Paramètres : - *
* *
* Description : Compose la barre de statut principale. *
* *
@@ -187,7 +187,7 @@ static void g_status_info_finalize(GStatusInfo *info)
* *
******************************************************************************/
-GEditorItem *g_status_info_new(GObject *ref)
+GEditorItem *g_status_info_new(void)
{
GStatusInfo *result; /* Structure à retourner */
GEditorItem *item; /* Autre version de l'élément */
@@ -196,9 +196,6 @@ GEditorItem *g_status_info_new(GObject *ref)
item = G_EDITOR_ITEM(result);
- g_object_ref(ref);
- item->ref = ref;
-
set_global_status(GTK_STATUS_STACK(item->widget));
return G_EDITOR_ITEM(result);
diff --git a/src/gui/status.h b/src/gui/status.h
index 97e12c6..11c1ee6 100644
--- a/src/gui/status.h
+++ b/src/gui/status.h
@@ -49,7 +49,7 @@ typedef struct _GStatusInfoClass GStatusInfoClass;
GType g_status_info_get_type(void);
/* Compose la barre de statut principale. */
-GEditorItem *g_status_info_new(GObject *);
+GEditorItem *g_status_info_new(void);
diff --git a/src/gui/tb/tbitem.c b/src/gui/tb/tbitem.c
index 375fee7..22568ec 100644
--- a/src/gui/tb/tbitem.c
+++ b/src/gui/tb/tbitem.c
@@ -102,11 +102,6 @@ GEditorItem *g_toolbar_item_setup(GToolbarItem *tbitem, GObject *ref, const char
result = G_EDITOR_ITEM(tbitem);
- /* Initialisation générique */
-
- g_object_ref(ref);
- result->ref = ref;
-
result->name = name;
/* Intégration dans la barre */