From 6b785b0e6c6048a4a8f1f81f9eaa407e05622368 Mon Sep 17 00:00:00 2001 From: Cyrille Bagard Date: Sat, 11 Jan 2020 00:04:51 +0100 Subject: Cleaned editor items by removing a direct link to the main window. --- src/gui/editem-int.h | 2 -- src/gui/editem.c | 19 ------------- src/gui/editem.h | 3 --- src/gui/editor.c | 2 +- src/gui/menus/binary.c | 22 +++++---------- src/gui/menus/binary.h | 4 +-- src/gui/menus/edition.c | 41 +++++++++++++++------------- src/gui/menus/edition.h | 4 +-- src/gui/menus/menubar.c | 32 +++++++++++++--------- src/gui/menus/options.c | 33 +++++++++++++---------- src/gui/menus/project.c | 8 +++++- src/gui/menus/view.c | 71 ++++++++++++++++++++++--------------------------- src/gui/menus/view.h | 6 ++--- src/gui/status.c | 7 ++--- src/gui/status.h | 2 +- src/gui/tb/tbitem.c | 5 ---- 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, "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 */ -- cgit v0.11.2-87-g4458