diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2017-08-26 22:15:05 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2017-08-26 22:15:05 (GMT) |
commit | 8ca477e012b11a19363542d171b8e973d637641c (patch) | |
tree | 94a4fcde1779f031946eff7a36075f41a17cd73b /src/gui/menus/view.c | |
parent | 4fb2ac107092671fe27fc3ebf9fc86dff7c3ec19 (diff) |
Removed most of the functions using the editor items as global access to active items.
Diffstat (limited to 'src/gui/menus/view.c')
-rw-r--r-- | src/gui/menus/view.c | 66 |
1 files changed, 38 insertions, 28 deletions
diff --git a/src/gui/menus/view.c b/src/gui/menus/view.c index a00c614..5298af3 100644 --- a/src/gui/menus/view.c +++ b/src/gui/menus/view.c @@ -32,6 +32,8 @@ #include "../editem-int.h" +#include "../core/global.h" +#include "../core/items.h" #include "../core/panels.h" #include "../../analysis/project.h" #include "../../gtkext/easygtk.h" @@ -47,10 +49,10 @@ static void mcb_view_update_side_panels_list(GtkMenuItem *, GMenuBar *); static void mcb_view_change_panel_docking(GtkCheckMenuItem *, GPanelItem *); /* Réagit avec le menu "Affichage -> Vue xxx". */ -static void mcb_view_change_support(GtkRadioMenuItem *, GMenuBar *); +static void mcb_view_change_support(GtkRadioMenuItem *, gpointer); /* Réagit avec le menu "Affichage -> (colonne xxx)". */ -static void mcb_view_display_column(GtkCheckMenuItem *, GMenuBar *); +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 *); @@ -99,7 +101,7 @@ GtkWidget *build_menu_view(GObject *ref, GtkAccelGroup *accgroup, GMenuBar *bar) /* Types de panneau de code */ submenuitem = qck_create_radio_menu_item(ref, "mnu_view_switch_textview", NULL, _("Text view"), - G_CALLBACK(mcb_view_change_support), bar); + G_CALLBACK(mcb_view_change_support), NULL); add_accelerator_to_menu_item(submenuitem, "F3", accgroup); g_object_set_data(G_OBJECT(submenuitem), "kind_of_view", GUINT_TO_POINTER(BVW_BLOCK)); g_object_set_data(G_OBJECT(submenuitem), "kind_of_display", GSIZE_TO_POINTER(GTK_TYPE_BLOCK_DISPLAY)); @@ -108,7 +110,7 @@ GtkWidget *build_menu_view(GObject *ref, GtkAccelGroup *accgroup, GMenuBar *bar) rgroup = gtk_radio_menu_item_get_group(GTK_RADIO_MENU_ITEM(submenuitem)); submenuitem = qck_create_radio_menu_item(ref, "mnu_view_switch_graphview", rgroup, _("Graph view"), - G_CALLBACK(mcb_view_change_support), bar); + G_CALLBACK(mcb_view_change_support), NULL); add_accelerator_to_menu_item(submenuitem, "F4", accgroup); g_object_set_data(G_OBJECT(submenuitem), "kind_of_view", GUINT_TO_POINTER(BVW_GRAPH)); g_object_set_data(G_OBJECT(submenuitem), "kind_of_display", GSIZE_TO_POINTER(GTK_TYPE_GRAPH_DISPLAY)); @@ -122,17 +124,17 @@ GtkWidget *build_menu_view(GObject *ref, GtkAccelGroup *accgroup, GMenuBar *bar) /* Affichage des données */ submenuitem = qck_create_check_menu_item(ref, "mnu_view_display_off", _("Physical offset"), - G_CALLBACK(mcb_view_display_column), bar); + G_CALLBACK(mcb_view_display_column), NULL); g_object_set_data(G_OBJECT(submenuitem), "kind_of_col", GUINT_TO_POINTER(BLC_PHYSICAL)); gtk_container_add(GTK_CONTAINER(menubar), submenuitem); submenuitem = qck_create_check_menu_item(ref, "mnu_view_display_addr", _("Virtual address"), - G_CALLBACK(mcb_view_display_column), bar); + G_CALLBACK(mcb_view_display_column), NULL); g_object_set_data(G_OBJECT(submenuitem), "kind_of_col", GUINT_TO_POINTER(BLC_VIRTUAL)); gtk_container_add(GTK_CONTAINER(menubar), submenuitem); submenuitem = qck_create_check_menu_item(ref, "mnu_view_display_code", _("Binary code"), - G_CALLBACK(mcb_view_display_column), bar); + G_CALLBACK(mcb_view_display_column), NULL); g_object_set_data(G_OBJECT(submenuitem), "kind_of_col", GUINT_TO_POINTER(BLC_BINARY)); gtk_container_add(GTK_CONTAINER(menubar), submenuitem); @@ -173,8 +175,8 @@ void update_menu_view_for_view(GtkWidget *widget, GtkDisplayPanel *panel, GMenuB GtkRadioMenuItem *item; /* Elément de menu arbitraire */ GSList *radios; /* Liste des menus d'affichage */ GSList *found; /* Elément de menu à activer */ - GLoadedBinary *binary; /* Binaire courant */ BinaryView content; /* Type de vue active */ + GLoadedBinary *binary; /* Binaire courant */ const bool *display; /* Règles d'affichage courantes*/ GtkWidget *submenuitem; /* Sous-élément de menu */ bool status; /* Consigne d'affichage */ @@ -189,7 +191,7 @@ void update_menu_view_for_view(GtkWidget *widget, GtkDisplayPanel *panel, GMenuB void disconnect_display_radio(GtkWidget *wgt, gpointer unused) { - g_signal_handlers_disconnect_by_func(wgt, G_CALLBACK(mcb_view_change_support), bar); + g_signal_handlers_disconnect_by_func(wgt, G_CALLBACK(mcb_view_change_support), NULL); } @@ -216,7 +218,7 @@ void update_menu_view_for_view(GtkWidget *widget, GtkDisplayPanel *panel, GMenuB void reconnect_display_radio(GtkWidget *wgt, gpointer unused) { - g_signal_connect(wgt, "toggled", G_CALLBACK(mcb_view_change_support), bar); + g_signal_connect(wgt, "toggled", G_CALLBACK(mcb_view_change_support), NULL); } @@ -224,44 +226,46 @@ void update_menu_view_for_view(GtkWidget *widget, GtkDisplayPanel *panel, GMenuB /* - */ - binary = g_editor_item_get_current_binary(G_EDITOR_ITEM(bar)); - content = gtk_display_panel_describe_content(panel); + binary = get_current_binary(); + display = g_loaded_binary_get_column_display(binary, content); + g_object_unref(G_OBJECT(binary)); + /* Positions physiques */ submenuitem = g_object_get_data(ref, "mnu_view_display_off"); - g_signal_handlers_disconnect_by_func(submenuitem, G_CALLBACK(mcb_view_display_column), bar); + g_signal_handlers_disconnect_by_func(submenuitem, G_CALLBACK(mcb_view_display_column), NULL); status = display[BLC_PHYSICAL]; gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(submenuitem), status); - g_signal_connect(submenuitem, "toggled", G_CALLBACK(mcb_view_display_column), bar); + g_signal_connect(submenuitem, "toggled", G_CALLBACK(mcb_view_display_column), NULL); /* Adresses virtuelles */ submenuitem = g_object_get_data(ref, "mnu_view_display_addr"); - g_signal_handlers_disconnect_by_func(submenuitem, G_CALLBACK(mcb_view_display_column), bar); + g_signal_handlers_disconnect_by_func(submenuitem, G_CALLBACK(mcb_view_display_column), NULL); status = display[BLC_VIRTUAL]; gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(submenuitem), status); - g_signal_connect(submenuitem, "toggled", G_CALLBACK(mcb_view_display_column), bar); + g_signal_connect(submenuitem, "toggled", G_CALLBACK(mcb_view_display_column), NULL); /* Code binaire */ submenuitem = g_object_get_data(ref, "mnu_view_display_code"); - g_signal_handlers_disconnect_by_func(submenuitem, G_CALLBACK(mcb_view_display_column), bar); + g_signal_handlers_disconnect_by_func(submenuitem, G_CALLBACK(mcb_view_display_column), NULL); status = display[BLC_BINARY]; gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(submenuitem), status); - g_signal_connect(submenuitem, "toggled", G_CALLBACK(mcb_view_display_column), bar); + g_signal_connect(submenuitem, "toggled", G_CALLBACK(mcb_view_display_column), NULL); } @@ -447,7 +451,7 @@ static void mcb_view_change_panel_docking(GtkCheckMenuItem *menuitem, GPanelItem /****************************************************************************** * * * Paramètres : menuitem = élément de menu ayant basculé. * -* bar = barre de menu parente. * +* unused = adresse non utilisée ici. * * * * Description : Réagit avec le menu "Affichage -> Vue xxx". * * * @@ -457,7 +461,7 @@ static void mcb_view_change_panel_docking(GtkCheckMenuItem *menuitem, GPanelItem * * ******************************************************************************/ -static void mcb_view_change_support(GtkRadioMenuItem *menuitem, GMenuBar *bar) +static void mcb_view_change_support(GtkRadioMenuItem *menuitem, gpointer unused) { GSList *group; /* Liste de menus radio */ GSList *iter; /* Boucle de parcours */ @@ -465,6 +469,7 @@ static void mcb_view_change_support(GtkRadioMenuItem *menuitem, GMenuBar *bar) GtkDisplayPanel *panel; /* Afficheur effectif de code */ GtkDockStation *station; /* Base du remplacement */ GtkWidget *scroll; /* Nouveau support à utiliser */ + GtkDisplayPanel *new; /* Nouvel afficheur de code */ /* On ne traite qu'une seule fois ! */ if (!gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menuitem))) return; @@ -477,19 +482,21 @@ static void mcb_view_change_support(GtkRadioMenuItem *menuitem, GMenuBar *bar) wanted = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(iter->data), "kind_of_view")); - panel = g_editor_item_get_current_view(G_EDITOR_ITEM(bar)); + panel = get_current_view(); station = get_dock_station_for_view_panel(panel); /* En vue du retrait de la station d'accueil... */ scroll = get_scroll_window_for_view_panel(panel); g_object_ref(G_OBJECT(scroll)); - panel = get_alt_view_for_view_panel(panel, wanted); - scroll = get_scroll_window_for_view_panel(panel); + new = get_alt_view_for_view_panel(panel, wanted); + scroll = get_scroll_window_for_view_panel(new); gtk_dock_panel_change_active_widget(station, scroll); - change_editor_items_current_view(G_EDITOR_ITEM(bar)->ref, panel); + change_editor_items_current_view(new); + + g_object_unref(G_OBJECT(panel)); } @@ -499,7 +506,7 @@ static void mcb_view_change_support(GtkRadioMenuItem *menuitem, GMenuBar *bar) /****************************************************************************** * * * Paramètres : menuitem = élément de menu ayant basculé. * -* bar = barre de menu parente. * +* unused = adresse non utilisée ici. * * * * Description : Réagit avec le menu "Affichage -> (colonne xxx)". * * * @@ -509,7 +516,7 @@ static void mcb_view_change_support(GtkRadioMenuItem *menuitem, GMenuBar *bar) * * ******************************************************************************/ -static void mcb_view_display_column(GtkCheckMenuItem *menuitem, GMenuBar *bar) +static void mcb_view_display_column(GtkCheckMenuItem *menuitem, gpointer unused) { BufferLineColumn col; /* Colonne à traiter */ GLoadedBinary *binary; /* Binaire courant */ @@ -519,15 +526,18 @@ static void mcb_view_display_column(GtkCheckMenuItem *menuitem, GMenuBar *bar) col = GPOINTER_TO_UINT(g_object_get_data(G_OBJECT(menuitem), "kind_of_col")); - binary = g_editor_item_get_current_binary(G_EDITOR_ITEM(bar)); + binary = get_current_binary(); - panel = g_editor_item_get_current_view(G_EDITOR_ITEM(bar)); + panel = get_current_view(); view = gtk_display_panel_describe_content(panel); + g_object_unref(G_OBJECT(panel)); active = gtk_check_menu_item_get_active(menuitem); g_loaded_binary_set_column_display(binary, view, col, active); + g_object_unref(G_OBJECT(binary)); + } |