[f-spot] port the EditTagDialog to GtkBuilder



commit e03e781b2cc1e706d89cff45189d63e4e8efe879
Author: Stephane Delcroix <stephane delcroix org>
Date:   Fri Jul 10 12:05:36 2009 +0200

    port the EditTagDialog to GtkBuilder

 src/MainWindow.cs                 |   18 +++-
 src/Makefile.am                   |    4 +-
 src/TagCommands.cs                |  160 +------------------------------
 src/UI.Dialog/EditTagDialog.cs    |  151 +++++++++++++++++++++++++++++
 src/UI.Dialog/ui/EditTagDialog.ui |  192 +++++++++++++++++++++++++++++++++++++
 src/f-spot.glade                  |  172 ---------------------------------
 6 files changed, 365 insertions(+), 332 deletions(-)
---
diff --git a/src/MainWindow.cs b/src/MainWindow.cs
index 167395c..14d4e78 100644
--- a/src/MainWindow.cs
+++ b/src/MainWindow.cs
@@ -1785,8 +1785,22 @@ public class MainWindow {
 		if (tag == null)
 			return;
 		
-		TagCommands.Edit command = new TagCommands.Edit (db, main_window);
-		command.Execute (tag);
+		EditTagDialog dialog = new EditTagDialog (db, tag, main_window);
+		if ((ResponseType)dialog.Run () == ResponseType.Ok) {
+			bool name_changed = false;
+			try {
+				if (tag.Name != dialog.TagName) {
+					tag.Name = dialog.TagName;
+					name_changed = true;
+				}
+				tag.Category = dialog.TagCategory;
+				db.Tags.Commit (tag, name_changed);
+			} catch (Exception ex) {
+				Log.Exception (ex);
+			}
+		}
+
+		dialog.Destroy ();
 	}
 
 	public void HandleMergeTagsCommand (object obj, EventArgs args)
diff --git a/src/Makefile.am b/src/Makefile.am
index 95bcab5..c28eed7 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -257,6 +257,7 @@ F_SPOT_CSDISTFILES =				\
 	$(srcdir)/UI.Dialog/BuilderDialog.cs	\
 	$(srcdir)/UI.Dialog/DateRangeDialog.cs		\
 	$(srcdir)/UI.Dialog/EditExceptionDialog.cs	\
+	$(srcdir)/UI.Dialog/EditTagDialog.cs	\
 	$(srcdir)/UI.Dialog/ExceptionDialog.cs	\
 	$(srcdir)/UI.Dialog/GladeDialog.cs	\
 	$(srcdir)/UI.Dialog/HigMessageDialog.cs	\
@@ -404,9 +405,10 @@ F_SPOT_ASSEMBLIES = 				\
 F_SPOT_DISTRESOURCES =					\
 	$(srcdir)/dces.rdf				\
 	$(srcdir)/f-spot.glade				\
-	$(srcdir)/UI.Dialog/ui/AdjustTimeDialog.ui	\
 	$(srcdir)/ui/main_window.ui			\
+	$(srcdir)/UI.Dialog/ui/AdjustTimeDialog.ui	\
 	$(srcdir)/UI.Dialog/ui/DateRangeDialog.ui	\
+	$(srcdir)/UI.Dialog/ui/EditTagDialog.ui		\
 	$(srcdir)/UI.Dialog/ui/PreferenceDialog.glade	\
 	$(srcdir)/FSpot.addin.xml
 
diff --git a/src/TagCommands.cs b/src/TagCommands.cs
index 8451e50..aa47dda 100644
--- a/src/TagCommands.cs
+++ b/src/TagCommands.cs
@@ -5,6 +5,9 @@
  * 	Larry Ewing <lewing novell com>
  * 	Stephane Delcroix <stephane delcroix org>
  *
+ * Copyright (c) 2003-2009 Novell, Inc,
+ * Copyright (c) 2007 Stephane Delcroix <stephane delcroix org>
+ *
  * This is free software. See COPYING for details
  */
 
@@ -178,163 +181,6 @@ public class TagCommands {
 		}
 	}
 
-	public class Edit : GladeDialog {
-		Db db;
-		Gtk.Window parent_window;
-		Tag tag;
-
-		[Glade.Widget] private Button ok_button;
-		[Glade.Widget] private Entry tag_name_entry;
-		[Glade.Widget] private Label prompt_label;
-		[Glade.Widget] private Label already_in_use_label;
-		[Glade.Widget] private Gtk.Image icon_image;
-		[Glade.Widget] private Button icon_button;
-		[Glade.Widget] private OptionMenu category_option_menu;
-
-		private ArrayList categories;
-
-		private void HandleTagNameEntryChanged (object sender, EventArgs args)
-		{
-			Update ();
-		}
-
-		private bool TagNameExistsInCategory (string name, Category category)
-		{
-			foreach (Tag tag in category.Children) {
-				if (String.Compare(tag.Name, name, true) == 0)
-					return true;
-
-				if (tag is Category && TagNameExistsInCategory (name, tag as Category))
-					return true;
-			}
-
-			return false;
-		}
-
-		string orig_name;
-		string last_valid_name;
-		private void Update ()
-		{
-			string name = tag_name_entry.Text;
-
-			if (name == String.Empty) {
-				ok_button.Sensitive = false;
-				already_in_use_label.Markup = String.Empty;
-			} else if (TagNameExistsInCategory (name, db.Tags.RootCategory)
-				   && String.Compare(name, orig_name, true) != 0) {
-				ok_button.Sensitive = false;
-				already_in_use_label.Markup = "<small>" + Catalog.GetString ("This name is already in use") + "</small>";
-			} else {
-				ok_button.Sensitive = true;
-				already_in_use_label.Markup = String.Empty;
-				last_valid_name = tag_name_entry.Text;
-			}
-		}
-
-		private void PopulateCategories (ArrayList categories, Category parent)
-		{
-			foreach (Tag tag in parent.Children) {
-				if (tag is Category && tag != this.tag && !this.tag.IsAncestorOf (tag)) {
-					categories.Add (tag);
-					PopulateCategories (categories, tag as Category);
-				}
-			}
-		}
-
-		private void HandleIconButtonClicked (object sender, EventArgs args)
-		{
-			TagCommands.EditIcon command = new TagCommands.EditIcon (db, parent_window);
-			//FIXME
-			if (command.Execute (tag)) {
-				if (FSpot.ColorManagement.IsEnabled && tag.Icon != null) {
-					icon_image.Pixbuf = tag.Icon.Copy();
-					FSpot.ColorManagement.ApplyScreenProfile(icon_image.Pixbuf);
-				}
-				else
-					icon_image.Pixbuf = tag.Icon;
-			}
-		}
-
-		private void PopulateCategoryOptionMenu (Tag t)
-		{
-			int history = 0;
-			int i = 0;
-			categories = new ArrayList ();
-			Category root = db.Tags.RootCategory;
-			categories.Add (root);
-			PopulateCategories (categories, root);
-
-			Menu menu = new Menu ();
-
-			foreach (Category category in categories) {
-				if (t.Category == category)
-					history = i;
-				
-				i++;
-				
-				menu.Append (TagMenu.TagMenuItem.IndentedItem (category));
-			}
-			
-			category_option_menu.Sensitive = true;
-
-			menu.ShowAll ();
-			category_option_menu.Menu = menu;
-			category_option_menu.SetHistory ((uint)history);
-		}
-
-		public bool Execute (Tag t) 
-		{
-			CreateDialog ("edit_tag_dialog");
-
-			tag = t;
-			this.Dialog.DefaultResponse = ResponseType.Ok;
-
-			this.Dialog.Title = Catalog.GetString ("Edit Tag");
-			prompt_label.Text = Catalog.GetString ("Tag Name:");
-
-			orig_name = last_valid_name = t.Name;
-			tag_name_entry.Text = t.Name;
-
-			icon_image.Pixbuf = t.Icon;
-			//FIXME
-			if (FSpot.ColorManagement.IsEnabled && icon_image.Pixbuf != null) {
-				icon_image.Pixbuf = icon_image.Pixbuf.Copy();
-				FSpot.ColorManagement.ApplyScreenProfile (icon_image.Pixbuf);
-			}
-			PopulateCategoryOptionMenu  (t);
-			
-			icon_button.Clicked += HandleIconButtonClicked;
-			icon_button.SetSizeRequest (48, 48);
-			
-			tag_name_entry.GrabFocus ();
-
-			category_option_menu.Changed += HandleTagNameEntryChanged;
-			ResponseType response = (ResponseType) this.Dialog.Run ();
-			bool success = false;
-
-			if (response == ResponseType.Ok) {
-				try {
-					t.Name = last_valid_name;
-					t.Category = categories [category_option_menu.History] as Category;
-					db.Tags.Commit (t, orig_name != t.Name);
-					success = true;
-				} catch (Exception ex) {
-					// FIXME error dialog.
-					Console.WriteLine ("error {0}", ex);
-				}
-			}
-			
-			this.Dialog.Destroy ();
-			return success;
-		}
-
-		public Edit (Db db, Gtk.Window parent_window)
-		{
-			this.db = db;
-			this.parent_window = parent_window;
-		}
-	}
-
 	public class EditIcon : GladeDialog {
 		Db db;
 		Gtk.Window parent_window;
diff --git a/src/UI.Dialog/EditTagDialog.cs b/src/UI.Dialog/EditTagDialog.cs
new file mode 100644
index 0000000..383bf18
--- /dev/null
+++ b/src/UI.Dialog/EditTagDialog.cs
@@ -0,0 +1,151 @@
+/*
+ * EditTagDialog.cs
+ *
+ * Author(s):
+ * 	Larry Ewing <lewing novell com>
+ * 	Stephane Delcroix <stephane delcroix org>
+ *
+ * Copyright (c) 2003-2009 Novell, Inc,
+ * Copyright (c) 2007 Stephane Delcroix <stephane delcroix org>
+ *
+ * This is free software. See COPYING for details
+ */
+
+using System;
+using System.Collections;
+using Mono.Posix;
+using Gtk;
+
+namespace FSpot.UI.Dialog
+{
+	public class EditTagDialog : BuilderDialog {
+		Db db;
+		Tag tag;
+
+		[GtkBeans.Builder.Object] Button ok_button;
+		[GtkBeans.Builder.Object] Entry tag_name_entry;
+		[GtkBeans.Builder.Object] Label prompt_label;
+		[GtkBeans.Builder.Object] Label already_in_use_label;
+		[GtkBeans.Builder.Object] Gtk.Image icon_image;
+		[GtkBeans.Builder.Object] Button icon_button;
+		[GtkBeans.Builder.Object] OptionMenu category_option_menu;
+
+
+		public EditTagDialog (Db db, Tag t, Gtk.Window parent_window) : base ("EditTagDialog.ui", "edit_tag_dialog")
+		{
+			this.db = db;
+			tag = t;
+			TransientFor = parent_window;
+
+			orig_name = last_valid_name = t.Name;
+			tag_name_entry.Text = t.Name;
+
+			icon_image.Pixbuf = t.Icon;
+			//FIXME
+			if (FSpot.ColorManagement.IsEnabled && icon_image.Pixbuf != null) {
+				icon_image.Pixbuf = icon_image.Pixbuf.Copy();
+				FSpot.ColorManagement.ApplyScreenProfile (icon_image.Pixbuf);
+			}
+			PopulateCategoryOptionMenu  (t);
+			
+			tag_name_entry.GrabFocus ();
+
+			category_option_menu.Changed += HandleTagNameEntryChanged;
+		}
+
+		string orig_name;
+		string last_valid_name;
+		public string TagName {
+			get { return last_valid_name; }
+		}
+
+		public Category TagCategory {
+			get { return categories [category_option_menu.History] as Category;}
+		}
+
+		ArrayList categories;
+
+		void HandleTagNameEntryChanged (object sender, EventArgs args)
+		{
+			string name = tag_name_entry.Text;
+
+			if (name == String.Empty) {
+				ok_button.Sensitive = false;
+				already_in_use_label.Markup = String.Empty;
+			} else if (TagNameExistsInCategory (name, db.Tags.RootCategory)
+				   && String.Compare(name, orig_name, true) != 0) {
+				ok_button.Sensitive = false;
+				already_in_use_label.Markup = "<small>" + Catalog.GetString ("This name is already in use") + "</small>";
+			} else {
+				ok_button.Sensitive = true;
+				already_in_use_label.Markup = String.Empty;
+				last_valid_name = tag_name_entry.Text;
+			}
+		}
+
+		bool TagNameExistsInCategory (string name, Category category)
+		{
+			foreach (Tag tag in category.Children) {
+				if (String.Compare(tag.Name, name, true) == 0)
+					return true;
+
+				if (tag is Category && TagNameExistsInCategory (name, tag as Category))
+					return true;
+			}
+
+			return false;
+		}
+
+		void PopulateCategories (ArrayList categories, Category parent)
+		{
+			foreach (Tag tag in parent.Children) {
+				if (tag is Category && tag != this.tag && !this.tag.IsAncestorOf (tag)) {
+					categories.Add (tag);
+					PopulateCategories (categories, tag as Category);
+				}
+			}
+		}
+
+		void HandleIconButtonClicked (object sender, EventArgs args)
+		{
+			TagCommands.EditIcon command = new TagCommands.EditIcon (db, this);
+			//FIXME
+			if (command.Execute (tag)) {
+				if (FSpot.ColorManagement.IsEnabled && tag.Icon != null) {
+					icon_image.Pixbuf = tag.Icon.Copy();
+					FSpot.ColorManagement.ApplyScreenProfile(icon_image.Pixbuf);
+				}
+				else
+					icon_image.Pixbuf = tag.Icon;
+			}
+		}
+
+		void PopulateCategoryOptionMenu (Tag t)
+		{
+			int history = 0;
+			int i = 0;
+			categories = new ArrayList ();
+			Category root = db.Tags.RootCategory;
+			categories.Add (root);
+			PopulateCategories (categories, root);
+
+			Menu menu = new Menu ();
+
+			foreach (Category category in categories) {
+				if (t.Category == category)
+					history = i;
+				
+				i++;
+				
+				menu.Append (TagMenu.TagMenuItem.IndentedItem (category));
+			}
+			
+			category_option_menu.Sensitive = true;
+
+			menu.ShowAll ();
+			category_option_menu.Menu = menu;
+			category_option_menu.SetHistory ((uint)history);
+		}
+	}
+}
+
diff --git a/src/UI.Dialog/ui/EditTagDialog.ui b/src/UI.Dialog/ui/EditTagDialog.ui
new file mode 100644
index 0000000..1a34a0f
--- /dev/null
+++ b/src/UI.Dialog/ui/EditTagDialog.ui
@@ -0,0 +1,192 @@
+<?xml version="1.0"?>
+<interface>
+  <requires lib="gtk+" version="2.16"/>
+  <!-- interface-naming-policy toplevel-contextual -->
+  <object class="GtkDialog" id="edit_tag_dialog">
+    <property name="border_width">6</property>
+    <property name="title" translatable="yes">Edit Tag</property>
+    <property name="modal">True</property>
+    <property name="destroy_with_parent">True</property>
+    <property name="type_hint">dialog</property>
+    <property name="has_separator">False</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="vbox4">
+        <property name="visible">True</property>
+        <property name="spacing">2</property>
+        <child>
+          <object class="GtkTable" id="table4">
+            <property name="visible">True</property>
+            <property name="n_rows">3</property>
+            <property name="n_columns">2</property>
+            <property name="column_spacing">6</property>
+            <property name="row_spacing">6</property>
+            <child>
+              <object class="GtkEntry" id="tag_name_entry">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="activates_default">True</property>
+                <signal name="changed" handler="HandleTagNameEntryChanged"/>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="prompt_label">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">_Tag Name:</property>
+                <property name="use_underline">True</property>
+                <property name="mnemonic_widget">tag_name_entry</property>
+              </object>
+              <packing>
+                <property name="top_attach">2</property>
+                <property name="bottom_attach">3</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="category_label">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">P_arent Tag:</property>
+                <property name="use_underline">True</property>
+                <property name="mnemonic_widget">category_option_menu</property>
+              </object>
+              <packing>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkOptionMenu" id="category_option_menu">
+                <property name="width_request">150</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">False</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="top_attach">1</property>
+                <property name="bottom_attach">2</property>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="icon_label">
+                <property name="visible">True</property>
+                <property name="xalign">0</property>
+                <property name="label" translatable="yes">_Icon:</property>
+                <property name="use_underline">True</property>
+                <property name="mnemonic_widget">icon_button</property>
+              </object>
+              <packing>
+                <property name="x_options">GTK_FILL</property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="icon_button">
+                <property name="width_request">48</property>
+                <property name="height_request">48</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">False</property>
+                <property name="tooltip_text" translatable="yes">Edit icon</property>
+                <signal name="clicked" handler="HandleIconButtonClicked"/>
+                <child>
+                  <object class="GtkImage" id="icon_image">
+                    <property name="visible">True</property>
+                    <property name="stock">gtk-missing-image</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="right_attach">2</property>
+                <property name="x_options"></property>
+                <property name="y_options"></property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkAlignment" id="alignment7">
+            <property name="visible">True</property>
+            <property name="xalign">0</property>
+            <property name="xscale">0</property>
+            <child>
+              <object class="GtkLabel" id="already_in_use_label">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">&lt;small&gt;&lt;/small&gt;</property>
+                <property name="use_markup">True</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="fill">False</property>
+            <property name="position">2</property>
+          </packing>
+        </child>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="hbuttonbox3">
+            <property name="visible">True</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="cancel_button">
+                <property name="label">gtk-cancel</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="ok_button">
+                <property name="label">gtk-ok</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="padding">2</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="-6">cancel_button</action-widget>
+      <action-widget response="-5">ok_button</action-widget>
+    </action-widgets>
+  </object>
+</interface>
diff --git a/src/f-spot.glade b/src/f-spot.glade
index 93c8def..bb40b15 100644
--- a/src/f-spot.glade
+++ b/src/f-spot.glade
@@ -727,178 +727,6 @@
       </widget>
     </child>
   </widget>
-  <widget class="GtkDialog" id="edit_tag_dialog">
-    <property name="border_width">6</property>
-    <property name="modal">True</property>
-    <property name="destroy_with_parent">True</property>
-    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-    <property name="has_separator">False</property>
-    <child internal-child="vbox">
-      <widget class="GtkVBox" id="vbox4">
-        <property name="visible">True</property>
-        <property name="spacing">2</property>
-        <child>
-          <widget class="GtkTable" id="table4">
-            <property name="visible">True</property>
-            <property name="n_rows">3</property>
-            <property name="n_columns">2</property>
-            <property name="column_spacing">6</property>
-            <property name="row_spacing">6</property>
-            <child>
-              <widget class="GtkEntry" id="tag_name_entry">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="invisible_char">*</property>
-                <property name="activates_default">True</property>
-                <signal name="changed" handler="HandleTagNameEntryChanged"/>
-              </widget>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
-                <property name="top_attach">2</property>
-                <property name="bottom_attach">3</property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkLabel" id="prompt_label">
-                <property name="visible">True</property>
-                <property name="xalign">0</property>
-                <property name="label" translatable="yes">_Tag Name:</property>
-                <property name="use_underline">True</property>
-                <property name="mnemonic_widget">tag_name_entry</property>
-              </widget>
-              <packing>
-                <property name="top_attach">2</property>
-                <property name="bottom_attach">3</property>
-                <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkLabel" id="category_label">
-                <property name="visible">True</property>
-                <property name="xalign">0</property>
-                <property name="label" translatable="yes">P_arent Tag:</property>
-                <property name="use_underline">True</property>
-                <property name="mnemonic_widget">category_option_menu</property>
-              </widget>
-              <packing>
-                <property name="top_attach">1</property>
-                <property name="bottom_attach">2</property>
-                <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkOptionMenu" id="category_option_menu">
-                <property name="width_request">150</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="response_id">0</property>
-              </widget>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
-                <property name="top_attach">1</property>
-                <property name="bottom_attach">2</property>
-                <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkLabel" id="icon_label">
-                <property name="visible">True</property>
-                <property name="xalign">0</property>
-                <property name="label" translatable="yes">_Icon:</property>
-                <property name="use_underline">True</property>
-                <property name="mnemonic_widget">icon_button</property>
-              </widget>
-              <packing>
-                <property name="x_options">GTK_FILL</property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-            <child>
-              <widget class="GtkButton" id="icon_button">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="tooltip" translatable="yes">Edit icon</property>
-                <property name="response_id">0</property>
-                <child>
-                  <widget class="GtkImage" id="icon_image">
-                    <property name="visible">True</property>
-                    <property name="stock">gtk-missing-image</property>
-                  </widget>
-                </child>
-              </widget>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="right_attach">2</property>
-                <property name="x_options"></property>
-                <property name="y_options"></property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="position">1</property>
-          </packing>
-        </child>
-        <child>
-          <widget class="GtkAlignment" id="alignment7">
-            <property name="visible">True</property>
-            <property name="xalign">0</property>
-            <property name="xscale">0</property>
-            <child>
-              <widget class="GtkLabel" id="already_in_use_label">
-                <property name="visible">True</property>
-                <property name="label" translatable="yes">&lt;small&gt;&lt;/small&gt;</property>
-                <property name="use_markup">True</property>
-              </widget>
-            </child>
-          </widget>
-          <packing>
-            <property name="fill">False</property>
-            <property name="position">2</property>
-          </packing>
-        </child>
-        <child internal-child="action_area">
-          <widget class="GtkHButtonBox" id="hbuttonbox3">
-            <property name="visible">True</property>
-            <property name="layout_style">GTK_BUTTONBOX_END</property>
-            <child>
-              <widget class="GtkButton" id="cancel_button">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="label">gtk-cancel</property>
-                <property name="use_stock">True</property>
-                <property name="response_id">-6</property>
-              </widget>
-            </child>
-            <child>
-              <widget class="GtkButton" id="ok_button">
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="label">gtk-ok</property>
-                <property name="use_stock">True</property>
-                <property name="response_id">-5</property>
-              </widget>
-              <packing>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </widget>
-          <packing>
-            <property name="expand">False</property>
-            <property name="padding">2</property>
-            <property name="pack_type">GTK_PACK_END</property>
-          </packing>
-        </child>
-      </widget>
-    </child>
-  </widget>
   <widget class="GtkDialog" id="edit_icon_dialog">
     <property name="visible">True</property>
     <property name="title" translatable="yes">Edit Tag Icon</property>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]