From 7457f676155191be13664f62ccbe2e1fcb184de4 Mon Sep 17 00:00:00 2001
From: Marco Pesenti Gritti <marco@it.gnome.org>
Date: Mon, 5 May 2003 16:08:04 +0000
Subject: Update (removing toolbars with context menu works again).

2003-05-05  Marco Pesenti Gritti  <marco@it.gnome.org>

	* 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 <gtk/gtkdialog.h>
+#include <gtk/gtkvbox.h>
 
 #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