diff options
Diffstat (limited to 'src/gui')
| -rw-r--r-- | src/gui/editem-int.h | 2 | ||||
| -rw-r--r-- | src/gui/editem.c | 19 | ||||
| -rw-r--r-- | src/gui/editem.h | 3 | ||||
| -rw-r--r-- | src/gui/editor.c | 2 | ||||
| -rw-r--r-- | src/gui/menus/binary.c | 22 | ||||
| -rw-r--r-- | src/gui/menus/binary.h | 4 | ||||
| -rw-r--r-- | src/gui/menus/edition.c | 41 | ||||
| -rw-r--r-- | src/gui/menus/edition.h | 4 | ||||
| -rw-r--r-- | src/gui/menus/menubar.c | 32 | ||||
| -rw-r--r-- | src/gui/menus/options.c | 33 | ||||
| -rw-r--r-- | src/gui/menus/project.c | 8 | ||||
| -rw-r--r-- | src/gui/menus/view.c | 71 | ||||
| -rw-r--r-- | src/gui/menus/view.h | 6 | ||||
| -rw-r--r-- | src/gui/status.c | 7 | ||||
| -rw-r--r-- | src/gui/status.h | 2 | ||||
| -rw-r--r-- | 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, "<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 */  | 
