[f-spot] port the EditTagDialog to GtkBuilder
- From: Stephane Delcroix <sdelcroix src gnome org>
- To: svn-commits-list gnome org
- Subject: [f-spot] port the EditTagDialog to GtkBuilder
- Date: Fri, 10 Jul 2009 10:05:48 +0000 (UTC)
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"><small></small></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"><small></small></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]