aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/email-custom-header
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2009-09-25 06:04:36 +0800
committerMatthew Barnes <mbarnes@redhat.com>2009-11-17 08:33:32 +0800
commit054c0881696a85f537e93b4950a28f505a3dc0f7 (patch)
treee63cfece426e2de5898c926eb6737cff229bb38b /plugins/email-custom-header
parent6348266ee635db59a12d75497f980dd85d0fcf58 (diff)
downloadgsoc2013-evolution-054c0881696a85f537e93b4950a28f505a3dc0f7.tar.gz
gsoc2013-evolution-054c0881696a85f537e93b4950a28f505a3dc0f7.tar.zst
gsoc2013-evolution-054c0881696a85f537e93b4950a28f505a3dc0f7.zip
BugĀ 589153 - Use GtkBuilder instead of libglade
Diffstat (limited to 'plugins/email-custom-header')
-rw-r--r--plugins/email-custom-header/Makefile.am11
-rw-r--r--plugins/email-custom-header/email-custom-header.c110
-rw-r--r--plugins/email-custom-header/email-custom-header.glade176
-rw-r--r--plugins/email-custom-header/org-gnome-email-custom-header.glade104
-rw-r--r--plugins/email-custom-header/org-gnome-email-custom-header.ui96
5 files changed, 178 insertions, 319 deletions
diff --git a/plugins/email-custom-header/Makefile.am b/plugins/email-custom-header/Makefile.am
index d38ac68230..3f67f845ed 100644
--- a/plugins/email-custom-header/Makefile.am
+++ b/plugins/email-custom-header/Makefile.am
@@ -14,8 +14,8 @@ liborg_gnome_email_custom_header_la_CPPFLAGS = \
-I$(top_builddir)/composer \
$(GNOME_PLATFORM_CFLAGS) \
$(EVOLUTION_MAIL_CFLAGS) \
- -DEVOLUTION_GLADEDIR=\""$(gladedir)"\" \
- -DCONNECTOR_GLADEDIR=\""$(gladedir)"\"
+ -DEVOLUTION_UIDIR=\""$(uidir)"\" \
+ -DCONNECTOR_UIDIR=\""$(uidir)"\"
liborg_gnome_email_custom_header_la_SOURCES = \
email-custom-header.c \
@@ -57,14 +57,13 @@ install-data-local:
fi
endif
-glade_DATA = \
- org-gnome-email-custom-header.glade \
- email-custom-header.glade
+ui_DATA = \
+ org-gnome-email-custom-header.ui
EXTRA_DIST = \
org-gnome-email-custom-header.eplug.xml \
$(schema_in_files) \
- $(glade_DATA)
+ $(ui_DATA)
BUILT_SOURCES = \
org-gnome-email-custom-header.eplug \
diff --git a/plugins/email-custom-header/email-custom-header.c b/plugins/email-custom-header/email-custom-header.c
index dad324aa02..d30a40afa6 100644
--- a/plugins/email-custom-header/email-custom-header.c
+++ b/plugins/email-custom-header/email-custom-header.c
@@ -28,7 +28,6 @@
#include <glib/gi18n.h>
#include <gconf/gconf-client.h>
#include <e-util/e-error.h>
-#include <glade/glade.h>
#include "mail/em-utils.h"
#include "mail/em-event.h"
#include "composer/e-msg-composer.h"
@@ -41,7 +40,6 @@
#define GCONF_KEY_CUSTOM_HEADER "/apps/evolution/eplugin/email_custom_header/customHeader"
typedef struct {
- GladeXML *xml;
GConfClient *gconf;
GtkWidget *treeview;
GtkWidget *header_add;
@@ -57,8 +55,7 @@ enum {
};
struct _EmailCustomHeaderOptionsDialogPrivate {
- /* Glade XML data */
- GladeXML *xml;
+ GtkBuilder *builder;
/*Widgets*/
GtkWidget *main;
GtkWidget *page;
@@ -119,7 +116,7 @@ epech_get_widgets (CustomHeaderOptionsDialog *mch)
EmailCustomHeaderOptionsDialogPrivate *priv;
priv = mch->priv;
-#define EMAIL_CUSTOM_HEADER(name) glade_xml_get_widget (priv->xml, name)
+#define EMAIL_CUSTOM_HEADER(name) e_builder_get_widget (priv->builder, name)
priv->main = EMAIL_CUSTOM_HEADER ("email-custom-header-dialog");
if (!priv->main)
@@ -207,7 +204,7 @@ epech_header_options_cb (GtkDialog *dialog, gint state, gpointer func_data)
case GTK_RESPONSE_CANCEL:
gtk_widget_hide (priv->main);
gtk_widget_destroy (priv->main);
- g_object_unref (priv->xml);
+ g_object_unref (priv->builder);
break;
case GTK_RESPONSE_HELP:
e_display_help (
@@ -224,24 +221,17 @@ epech_dialog_run (CustomHeaderOptionsDialog *mch, GtkWidget *parent)
{
EmailCustomHeaderOptionsDialogPrivate *priv;
GtkWidget *toplevel;
- gchar *filename;
g_return_val_if_fail (mch != NULL || EMAIL_CUSTOM_HEADER_OPTIONS_IS_DIALOG (mch), FALSE);
priv = mch->priv;
epech_get_header_list (mch);
- filename = g_build_filename (EVOLUTION_GLADEDIR,
- "org-gnome-email-custom-header.glade",
- NULL);
- priv->xml = glade_xml_new (filename, NULL, NULL);
- g_free (filename);
-
- if (!priv->xml) {
- d (printf ("\n Could not load the Glade XML file\n"));
- }
+ priv->builder = gtk_builder_new ();
+ e_load_ui_builder_definition (
+ priv->builder, "org-gnome-email-custom-header.ui");
if (!epech_get_widgets(mch)) {
- g_object_unref (priv->xml);
+ g_object_unref (priv->builder);
d (printf ("\n Could not get the Widgets\n"));
}
@@ -424,7 +414,7 @@ epech_dialog_init (GObject *object)
mch = EMAIL_CUSTOM_HEADEROPTIONS_DIALOG (object);
priv = g_new0 (EmailCustomHeaderOptionsDialogPrivate, 1);
mch->priv = priv;
- priv->xml = NULL;
+ priv->builder = NULL;
priv->main = NULL;
priv->page = NULL;
priv->header_table = NULL;
@@ -861,7 +851,6 @@ destroy_cd_data (gpointer data)
if (!cd)
return;
- g_object_unref (cd->xml);
g_object_unref (cd->gconf);
g_free (cd);
}
@@ -880,22 +869,77 @@ e_plugin_lib_get_configure_widget (EPlugin *epl)
gchar *buffer;
GtkTreeViewColumn *col;
gint col_pos;
-
GConfClient *client = gconf_client_get_default();
-
ConfigData *cd = g_new0 (ConfigData, 1);
- gchar *gladefile;
-
- gladefile = g_build_filename (EVOLUTION_GLADEDIR,
- "email-custom-header.glade",
- NULL);
- cd->xml = glade_xml_new (gladefile, "ech_configuration_box", NULL);
- g_free (gladefile);
+ GtkWidget *ech_configuration_box;
+ GtkWidget *vbox2;
+ GtkWidget *label1;
+ GtkWidget *header_configuration_box;
+ GtkWidget *header_container;
+ GtkWidget *scrolledwindow1;
+ GtkWidget *header_treeview;
+ GtkWidget *vbuttonbox1;
+ GtkWidget *header_add;
+ GtkWidget *header_edit;
+ GtkWidget *header_remove;
+
+ ech_configuration_box = gtk_vbox_new (FALSE, 0);
+ gtk_widget_show (ech_configuration_box);
+
+ vbox2 = gtk_vbox_new (FALSE, 0);
+ gtk_widget_show (vbox2);
+ gtk_box_pack_start (GTK_BOX (ech_configuration_box), vbox2, FALSE, FALSE, 0);
+
+ /* To translators: This string is used while adding a new message header to configuration, to specifying the format of the key values */
+ label1 = gtk_label_new (_("The format for specifying a Custom Header key value is:\nName of the Custom Header key values separated by \";\"."));
+ gtk_widget_show (label1);
+ gtk_box_pack_start (GTK_BOX (vbox2), label1, FALSE, TRUE, 0);
+ gtk_label_set_justify (GTK_LABEL (label1), GTK_JUSTIFY_CENTER);
+ gtk_label_set_line_wrap (GTK_LABEL (label1), TRUE);
+
+ header_configuration_box = gtk_vbox_new (FALSE, 5);
+ gtk_widget_show (header_configuration_box);
+ gtk_box_pack_start (GTK_BOX (ech_configuration_box), header_configuration_box, TRUE, TRUE, 0);
+
+ header_container = gtk_hbox_new (FALSE, 6);
+ gtk_widget_show (header_container);
+ gtk_box_pack_start (GTK_BOX (header_configuration_box), header_container, TRUE, TRUE, 0);
+
+ scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);
+ gtk_widget_show (scrolledwindow1);
+ gtk_box_pack_start (GTK_BOX (header_container), scrolledwindow1, TRUE, TRUE, 0);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+
+ header_treeview = gtk_tree_view_new ();
+ gtk_widget_show (header_treeview);
+ gtk_container_add (GTK_CONTAINER (scrolledwindow1), header_treeview);
+ gtk_container_set_border_width (GTK_CONTAINER (header_treeview), 1);
+
+ vbuttonbox1 = gtk_vbutton_box_new ();
+ gtk_widget_show (vbuttonbox1);
+ gtk_box_pack_start (GTK_BOX (header_container), vbuttonbox1, FALSE, TRUE, 0);
+ gtk_button_box_set_layout (GTK_BUTTON_BOX (vbuttonbox1), GTK_BUTTONBOX_START);
+ gtk_box_set_spacing (GTK_BOX (vbuttonbox1), 6);
+
+ header_add = gtk_button_new_from_stock ("gtk-add");
+ gtk_widget_show (header_add);
+ gtk_container_add (GTK_CONTAINER (vbuttonbox1), header_add);
+ GTK_WIDGET_SET_FLAGS (header_add, GTK_CAN_DEFAULT);
+
+ header_edit = gtk_button_new_from_stock ("gtk-edit");
+ gtk_widget_show (header_edit);
+ gtk_container_add (GTK_CONTAINER (vbuttonbox1), header_edit);
+ GTK_WIDGET_SET_FLAGS (header_edit, GTK_CAN_DEFAULT);
+
+ header_remove = gtk_button_new_from_stock ("gtk-remove");
+ gtk_widget_show (header_remove);
+ gtk_container_add (GTK_CONTAINER (vbuttonbox1), header_remove);
+ GTK_WIDGET_SET_FLAGS (header_remove, GTK_CAN_DEFAULT);
cd->gconf = gconf_client_get_default ();
- cd->treeview = glade_xml_get_widget (cd->xml, "header_treeview");
+ cd->treeview = header_treeview;
cd->store = gtk_list_store_new (HEADER_N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING);
@@ -927,14 +971,14 @@ e_plugin_lib_get_configure_widget (EPlugin *epl)
g_signal_connect (G_OBJECT (selection), "changed", G_CALLBACK (selection_changed), cd);
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (cd->treeview), TRUE);
- cd->header_add = glade_xml_get_widget (cd->xml, "header_add");
+ cd->header_add = header_add;
g_signal_connect (G_OBJECT (cd->header_add), "clicked", G_CALLBACK (header_add_clicked), cd);
- cd->header_remove = glade_xml_get_widget (cd->xml, "header_remove");
+ cd->header_remove = header_remove;
g_signal_connect (G_OBJECT (cd->header_remove), "clicked", G_CALLBACK (header_remove_clicked), cd);
gtk_widget_set_sensitive (cd->header_remove, FALSE);
- cd->header_edit = glade_xml_get_widget (cd->xml, "header_edit");
+ cd->header_edit = header_edit;
g_signal_connect (G_OBJECT (cd->header_edit), "clicked", G_CALLBACK (header_edit_clicked), cd);
gtk_widget_set_sensitive (cd->header_edit, FALSE);
@@ -968,7 +1012,7 @@ e_plugin_lib_get_configure_widget (EPlugin *epl)
hbox = gtk_vbox_new (FALSE, 0);
- gtk_box_pack_start (GTK_BOX (hbox), glade_xml_get_widget (cd->xml, "ech_configuration_box"), TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (hbox), ech_configuration_box, TRUE, TRUE, 0);
/* to let free data properly on destroy of configuration widget */
g_object_set_data_full (G_OBJECT (hbox), "mycd-data", cd, destroy_cd_data);
diff --git a/plugins/email-custom-header/email-custom-header.glade b/plugins/email-custom-header/email-custom-header.glade
deleted file mode 100644
index 14a618f977..0000000000
--- a/plugins/email-custom-header/email-custom-header.glade
+++ /dev/null
@@ -1,176 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
-<glade-interface>
-
-<widget class="GtkWindow" id="window1">
- <property name="visible">True</property>
- <property name="title" translatable="no">window1</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="focus_on_map">True</property>
- <property name="urgency_hint">False</property>
-
- <child>
- <widget class="GtkVBox" id="ech_configuration_box">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkVBox" id="vbox2">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="label" translatable="yes" comments="To translators: This string is used while adding a new message header to configuration, to specifying the format of the key values">The format for specifying a Custom Header key value is:
-Name of the Custom Header key values separated by &quot;;&quot;.</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_CENTER</property>
- <property name="wrap">True</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="header_configuration_box">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">5</property>
-
- <child>
- <widget class="GtkHBox" id="header_container">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_NONE</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTreeView" id="header_treeview">
- <property name="border_width">1</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_visible">True</property>
- <property name="rules_hint">False</property>
- <property name="reorderable">False</property>
- <property name="enable_search">True</property>
- <property name="fixed_height_mode">False</property>
- <property name="hover_selection">False</property>
- <property name="hover_expand">False</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVButtonBox" id="vbuttonbox1">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_START</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkButton" id="header_add">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-add</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="header_edit">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-edit</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="header_remove">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-remove</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-</glade-interface>
diff --git a/plugins/email-custom-header/org-gnome-email-custom-header.glade b/plugins/email-custom-header/org-gnome-email-custom-header.glade
deleted file mode 100644
index 142f0b7408..0000000000
--- a/plugins/email-custom-header/org-gnome-email-custom-header.glade
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
-<glade-interface>
-<requires lib="gnome"/>
-
-<widget class="GtkDialog" id="email-custom-header-dialog">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="title" translatable="yes">Email Custom Header</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_MOUSE</property>
- <property name="modal">False</property>
- <property name="resizable">False</property>
- <property name="destroy_with_parent">False</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="focus_on_map">True</property>
- <property name="urgency_hint">False</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="email-custom-header-vbox">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area1">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="helpbutton1">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-help</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-11</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="cancelbutton1">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-6</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="okbutton1">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-ok</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-5</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkTable" id="email-custom-header-options">
- <property name="border_width">12</property>
- <property name="visible">True</property>
- <property name="n_rows">4</property>
- <property name="n_columns">4</property>
- <property name="homogeneous">False</property>
- <property name="row_spacing">12</property>
- <property name="column_spacing">12</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-</glade-interface>
diff --git a/plugins/email-custom-header/org-gnome-email-custom-header.ui b/plugins/email-custom-header/org-gnome-email-custom-header.ui
new file mode 100644
index 0000000000..e1d347df8c
--- /dev/null
+++ b/plugins/email-custom-header/org-gnome-email-custom-header.ui
@@ -0,0 +1,96 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+ <object class="GtkDialog" id="email-custom-header-dialog">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="title" translatable="yes">Email Custom Header</property>
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
+ <property name="window_position">GTK_WIN_POS_MOUSE</property>
+ <property name="modal">False</property>
+ <property name="resizable">False</property>
+ <property name="destroy_with_parent">False</property>
+ <property name="decorated">True</property>
+ <property name="skip_taskbar_hint">False</property>
+ <property name="skip_pager_hint">False</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+ <property name="focus_on_map">True</property>
+ <property name="urgency_hint">False</property>
+ <property name="has_separator">True</property>
+ <child internal-child="vbox">
+ <object class="GtkVBox" id="email-custom-header-vbox">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+ <child internal-child="action_area">
+ <object class="GtkHButtonBox" id="dialog-action_area1">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_END</property>
+ <child>
+ <object class="GtkButton" id="helpbutton1">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-help</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="cancelbutton1">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-cancel</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="okbutton1">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-ok</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkTable" id="email-custom-header-options">
+ <property name="border_width">12</property>
+ <property name="visible">True</property>
+ <property name="n_rows">4</property>
+ <property name="n_columns">4</property>
+ <property name="homogeneous">False</property>
+ <property name="row_spacing">12</property>
+ <property name="column_spacing">12</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-11">helpbutton1</action-widget>
+ <action-widget response="-6">cancelbutton1</action-widget>
+ <action-widget response="-5">okbutton1</action-widget>
+ </action-widgets>
+ </object>
+</interface>