diff options
Diffstat (limited to 'src/editor.c')
-rw-r--r-- | src/editor.c | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/src/editor.c b/src/editor.c index 942e6f4..5cdd4df 100644 --- a/src/editor.c +++ b/src/editor.c @@ -86,7 +86,7 @@ void mcb_file_save_project_as(GtkMenuItem *, gpointer); /* Charge un projet récent et met à jour la liste. */ -void mcb_open_recent_project(GtkMenuItem *, gpointer); +void mcb_open_recent_project(GtkMenuItem *, GObject *); /* Réagit avec le menu "Affichage -> Vue xxx". */ void mcb_view_change_support(GtkRadioMenuItem *, GObject *); @@ -137,7 +137,7 @@ void update_debug_menu_items(GObject *, gboolean); /* Réagit au changement d'onglet d'un panneau quelconque. */ -static void on_dock_item_switch(GtkDockPanel *, GtkDockItem *, GObject *); +static void on_dock_item_switch(GtkDockPanel *, GDockItem *, GObject *); /* Met en concordance les menus avec l'édition courante. */ static void refresh_editor_menus(GObject *, GOpenidaBinary *, GtkBinView *); @@ -192,7 +192,7 @@ GtkWidget *create_editor(void) GtkWidget *dpanel; /* Support de panneaux */ - GtkDockItem *ditem; /* Panneau avec ses infos. */ + GDockItem *ditem; /* Panneau avec ses infos. */ #if 0 @@ -400,7 +400,7 @@ GtkWidget *create_editor(void) //gtk_paned_pack1 (GTK_PANED (hpaned1), scrolledwindow2, FALSE, TRUE); - ditem = gtk_dock_item_new(_("Binary code"), scrolledwindow2); + ditem = g_dock_item_new(_("Binary code"), scrolledwindow2); gtk_dock_panel_add_item(dpanel, ditem); @@ -455,7 +455,7 @@ GtkWidget *create_editor(void) place_all_panels_in_editor(dpanel); - ditem = gtk_dock_item_new(_("Registers"), get_panel(PNT_REGISTERS)); + ditem = g_dock_item_new(_("Registers"), get_panel(PNT_REGISTERS)); gtk_dock_panel_add_item(dpanel, ditem); @@ -472,17 +472,17 @@ GtkWidget *create_editor(void) gtk_paned_pack2(GTK_PANED(vpaned1), dpanel, FALSE, FALSE); - ditem = gtk_dock_item_new(_("Messages"), get_panel(PNT_LOG)); + ditem = g_dock_item_new(_("Messages"), get_panel(PNT_LOG)); gtk_dock_panel_add_item(dpanel, ditem); - ditem = gtk_dock_item_new(_("Strings"), get_panel(PNT_STRINGS)); + ditem = g_dock_item_new(_("Strings"), get_panel(PNT_STRINGS)); gtk_dock_panel_add_item(dpanel, ditem); panel = build_shell_panel(G_OBJECT(result)); - ditem = gtk_dock_item_new(_("Shell"), panel); + ditem = g_dock_item_new(_("Shell"), panel); gtk_dock_panel_add_item(dpanel, ditem); @@ -555,6 +555,8 @@ GtkWidget *create_editor(void) void destroy_editor(GtkWidget *widget, gpointer data) { + close_openida_project(get_current_openida_project()); + gtk_main_quit(); } @@ -716,7 +718,7 @@ void mcb_file_save_project_as(GtkMenuItem *menuitem, gpointer data) /****************************************************************************** * * * Paramètres : menuitem = élément de menu sélectionné. * -* data = adresse de l'espace de référencement global. * +* ref = adresse de l'espace de référencement global. * * * * Description : Charge un projet récent et met à jour la liste. * * * @@ -726,17 +728,20 @@ void mcb_file_save_project_as(GtkMenuItem *menuitem, gpointer data) * * ******************************************************************************/ -void mcb_open_recent_project(GtkMenuItem *menuitem, gpointer data) +void mcb_open_recent_project(GtkMenuItem *menuitem, GObject *ref) { const gchar *caption; /* Etiquette du menu */ openida_project *project; /* Nouveau projet chargé */ caption = gtk_label_get_text(GTK_LABEL(gtk_bin_get_child(GTK_BIN(menuitem)))); - project = NULL/*load_openida_project_from_xml(caption)*/; + project = g_openida_project_new_from_xml(ref, caption); if (project != NULL) { + push_openida_project_into_recent_list(project); + load_recent_openida_projects_list(ref, G_CALLBACK(mcb_open_recent_project)); + set_current_openida_project(project); /* TODO ... */ @@ -767,9 +772,7 @@ void mcb_view_change_support(GtkRadioMenuItem *menuitem, GObject *ref) GOpenidaBinary *binary; /* Edition courante */ GtkBinView *binview; /* Afficheur effectif de code */ GtkWidget *panel; /* Nouveau support à utiliser */ - GtkDockPanel *dpanel; /* Support de panneaux */ - char *title; /* Titre associé au binaire */ - GtkDockItem *ditem; /* Panneau avec ses infos. */ + GDockItem *ditem; /* Panneau avec ses infos. */ /* On ne traite qu'une seule fois ! */ if (!gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menuitem))) return; @@ -787,12 +790,9 @@ void mcb_view_change_support(GtkRadioMenuItem *menuitem, GObject *ref) g_object_set_data(ref, "binview", binview); - dpanel = GTK_DOCK_PANEL(g_object_get_data(ref, "binpanel")); - - title = g_openida_binary_to_string(binary); - ditem = gtk_dock_panel_item_from_name(dpanel, strrchr(title, '/') + 1); + ditem = gtk_dock_panel_get_item_from_binary(get_current_openida_project(), binary); - gtk_dock_item_set_panel(ditem, panel); + g_dock_item_set_panel(ditem, panel); notify_panels_of_view_change(binview, true); @@ -1255,12 +1255,12 @@ void update_debug_menu_items(GObject *ref, gboolean stopped) * * ******************************************************************************/ -static void on_dock_item_switch(GtkDockPanel *panel, GtkDockItem *item, GObject *ref) +static void on_dock_item_switch(GtkDockPanel *panel, GDockItem *item, GObject *ref) { GtkWidget *widget; /* Support réel à traiter */ GOpenidaBinary *binary; /* Binaire en cours d'édition */ - widget = gtk_dock_item_get_panel(item); + widget = g_dock_item_get_panel(item); if (GTK_IS_SCROLLED_WINDOW(widget)) widget = gtk_bin_get_child(GTK_BIN(widget)); |