From 7457f676155191be13664f62ccbe2e1fcb184de4 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Mon, 5 May 2003 16:08:04 +0000 Subject: Update (removing toolbars with context menu works again). 2003-05-05 Marco Pesenti Gritti * lib/egg/egg-editable-toolbar.c: * lib/egg/egg-toolbar-editor.c: * lib/egg/egg-toolbar-editor.h: * lib/egg/egg-toolbars-model.c: * lib/egg/egg-toolbars-model.h: Update (removing toolbars with context menu works again). * src/window-commands.c: (toolbar_editor_help_cb), (window_cmd_edit_toolbar): Build the tbe dialog, update for new egg api. Fix position of new toolbars to be before bookmarks toolbar. --- lib/egg/egg-editable-toolbar.c | 4 +-- lib/egg/egg-toolbar-editor.c | 66 ++++-------------------------------------- lib/egg/egg-toolbar-editor.h | 9 +++--- lib/egg/egg-toolbars-model.c | 14 ++++++--- lib/egg/egg-toolbars-model.h | 1 + 5 files changed, 21 insertions(+), 73 deletions(-) (limited to 'lib') diff --git a/lib/egg/egg-editable-toolbar.c b/lib/egg/egg-editable-toolbar.c index 174b775fe..bf32c54ff 100755 --- a/lib/egg/egg-editable-toolbar.c +++ b/lib/egg/egg-editable-toolbar.c @@ -279,8 +279,6 @@ popup_toolbar_context_menu_cb (GtkWidget *toolbar, gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, 2, gtk_get_current_event_time ()); - - t->priv->selected_toolbar = NULL; } } @@ -378,7 +376,7 @@ toolbar_added_cb (EggToolbarsModel *model, gtk_widget_set_size_request (toolbar, -1, MIN_TOOLBAR_HEIGHT); gtk_box_pack_start (GTK_BOX (t), toolbar, FALSE, FALSE, 0); - /* FIXME reorder to match position */ + gtk_box_reorder_child (GTK_BOX (t), toolbar, position); } static void diff --git a/lib/egg/egg-toolbar-editor.c b/lib/egg/egg-toolbar-editor.c index fd032cdd6..a373b520c 100755 --- a/lib/egg/egg-toolbar-editor.c +++ b/lib/egg/egg-toolbar-editor.c @@ -38,11 +38,6 @@ static void egg_toolbar_editor_init (EggToolbarEditor *t); static void egg_toolbar_editor_finalize (GObject *object); static void update_editor_sheet (EggToolbarEditor *editor); -enum -{ - RESPONSE_ADD_TOOLBAR -}; - enum { PROP_0, @@ -83,7 +78,7 @@ egg_toolbar_editor_get_type (void) (GInstanceInitFunc) egg_toolbar_editor_init }; - egg_toolbar_editor_type = g_type_register_static (GTK_TYPE_DIALOG, + egg_toolbar_editor_type = g_type_register_static (GTK_TYPE_VBOX, "EggToolbarEditor", &our_info, 0); } @@ -211,8 +206,7 @@ egg_toolbar_editor_finalize (GObject *object) } GtkWidget * -egg_toolbar_editor_new (GtkWindow *parent, - EggMenuMerge *merge, +egg_toolbar_editor_new (EggMenuMerge *merge, EggToolbarsModel *model) { EggToolbarEditor *t; @@ -221,10 +215,6 @@ egg_toolbar_editor_new (GtkWindow *parent, "MenuMerge", merge, "ToolbarsModel", model, NULL)); - if (parent != NULL) - { - gtk_window_set_transient_for (GTK_WINDOW (t), parent); - } g_return_val_if_fail (t->priv != NULL, NULL); @@ -302,37 +292,6 @@ drag_data_get_cb (GtkWidget *widget, selection_data->target, 8, target, strlen (target)); } -static void -editor_close (EggToolbarEditor *editor) -{ - g_return_if_fail (IS_EGG_TOOLBAR_EDITOR (editor)); - gtk_widget_destroy (GTK_WIDGET (editor)); -} - -static void -editor_add_toolbar (EggToolbarEditor *editor) -{ - g_return_if_fail (IS_EGG_TOOLBAR_EDITOR (editor)); - - egg_toolbars_model_add_toolbar (editor->priv->model, "UserCreated"); -} - -static void -dialog_response_cb (GtkDialog *dialog, - gint response_id, - EggToolbarEditor *editor) -{ - switch (response_id) - { - case RESPONSE_ADD_TOOLBAR: - editor_add_toolbar (editor); - break; - case GTK_RESPONSE_CLOSE: - editor_close (editor); - break; - } -} - static gchar * elide_underscores (const gchar *original) { @@ -475,29 +434,22 @@ static void setup_editor (EggToolbarEditor *editor) { GtkWidget *scrolled_window; - GtkWidget *vbox; GtkWidget *label_hbox; GtkWidget *image; GtkWidget *label; g_return_if_fail (IS_EGG_TOOLBAR_EDITOR (editor)); - gtk_dialog_set_has_separator (GTK_DIALOG (editor), FALSE); - gtk_window_set_title (GTK_WINDOW (editor), "Toolbar editor"); - - vbox = gtk_vbox_new (FALSE, 12); - gtk_container_set_border_width (GTK_CONTAINER (vbox), 12); - gtk_widget_show (vbox); - gtk_container_add (GTK_CONTAINER (GTK_DIALOG (editor)->vbox), vbox); + gtk_container_set_border_width (GTK_CONTAINER (editor), 12); scrolled_window = gtk_scrolled_window_new (NULL, NULL); editor->priv->scrolled_window = scrolled_window; gtk_widget_show (scrolled_window); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - gtk_box_pack_start (GTK_BOX (vbox), scrolled_window, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (editor), scrolled_window, TRUE, TRUE, 0); label_hbox = gtk_hbox_new (FALSE, 6); gtk_widget_show (label_hbox); - gtk_box_pack_start (GTK_BOX (vbox), label_hbox, FALSE, FALSE, 0); + gtk_box_pack_start (GTK_BOX (editor), label_hbox, FALSE, FALSE, 0); image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG); gtk_widget_show (image); @@ -507,14 +459,6 @@ setup_editor (EggToolbarEditor *editor) gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); gtk_widget_show (label); gtk_box_pack_start (GTK_BOX (label_hbox), label, FALSE, TRUE, 0); - - gtk_dialog_add_button (GTK_DIALOG (editor), - _("_Add a New Toolbar"), RESPONSE_ADD_TOOLBAR); - gtk_dialog_add_button (GTK_DIALOG (editor), - GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE); - - g_signal_connect (editor, "response", - G_CALLBACK (dialog_response_cb), editor); } static void diff --git a/lib/egg/egg-toolbar-editor.h b/lib/egg/egg-toolbar-editor.h index 6c6861153..b351fcb89 100755 --- a/lib/egg/egg-toolbar-editor.h +++ b/lib/egg/egg-toolbar-editor.h @@ -19,7 +19,7 @@ #ifndef EGG_TOOLBAR_EDITOR_H #define EGG_TOOLBAR_EDITOR_H -#include +#include #include "egg-menu-merge.h" #include "egg-toolbars-model.h" @@ -41,19 +41,18 @@ typedef struct EggToolbarEditorPrivate EggToolbarEditorPrivate; struct EggToolbarEditor { - GtkDialog parent_object; + GtkVBox parent_object; EggToolbarEditorPrivate *priv; }; struct EggToolbarEditorClass { - GtkDialogClass parent_class; + GtkVBoxClass parent_class; }; GType egg_toolbar_editor_get_type (void); -GtkWidget *egg_toolbar_editor_new (GtkWindow *parent, - EggMenuMerge *merge, +GtkWidget *egg_toolbar_editor_new (EggMenuMerge *merge, EggToolbarsModel *model); void egg_toolbar_editor_load_actions (EggToolbarEditor *editor, const char *xml_file); diff --git a/lib/egg/egg-toolbars-model.c b/lib/egg/egg-toolbars-model.c index e2a8ce9fb..94a89ba27 100755 --- a/lib/egg/egg-toolbars-model.c +++ b/lib/egg/egg-toolbars-model.c @@ -299,16 +299,22 @@ parse_item_list (EggToolbarsModel *t, } int -egg_toolbars_model_add_toolbar (EggToolbarsModel *t, const char *name) +egg_toolbars_model_add_toolbar (EggToolbarsModel *t, + int position, + const char *name) { GNode *node; + int real_position; g_return_val_if_fail (IS_EGG_TOOLBARS_MODEL (t), -1); node = g_node_new (toolbars_toolbar_new (name)); - g_node_insert (t->priv->toolbars, -1, node); + g_node_insert (t->priv->toolbars, position, node); + + real_position = g_node_child_position (t->priv->toolbars, node); - g_signal_emit (G_OBJECT (t), egg_toolbars_model_signals[TOOLBAR_ADDED], 0); + g_signal_emit (G_OBJECT (t), egg_toolbars_model_signals[TOOLBAR_ADDED], + 0, real_position); return g_node_child_position (t->priv->toolbars, node); } @@ -325,7 +331,7 @@ parse_toolbars (EggToolbarsModel *t, int position; name = xmlGetProp (child, "name"); - position = egg_toolbars_model_add_toolbar (t, name); + position = egg_toolbars_model_add_toolbar (t, -1, name); xmlFree (name); parse_item_list (t, child->children, position); diff --git a/lib/egg/egg-toolbars-model.h b/lib/egg/egg-toolbars-model.h index 4d0e82937..1440468fc 100755 --- a/lib/egg/egg-toolbars-model.h +++ b/lib/egg/egg-toolbars-model.h @@ -80,6 +80,7 @@ void egg_toolbars_model_load (EggToolbarsModel *t, void egg_toolbars_model_save (EggToolbarsModel *t, const char *xml_file); int egg_toolbars_model_add_toolbar (EggToolbarsModel *t, + int position, const char *name); EggTbModelFlags egg_toolbars_model_get_flags (EggToolbarsModel *t, int toolbar_position); -- cgit v1.2.3