[goobox] use a .ui file to describe the message dialog



commit feebaf1cf02554648cbffb7726980f79558d9922
Author: Paolo Bacchilega <paobac src gnome org>
Date:   Mon Mar 18 13:34:59 2013 +0100

    use a .ui file to describe the message dialog

 po/POTFILES.in           |    1 +
 src/dlg-ripper.c         |    4 +-
 src/goobox.gresource.xml |    1 +
 src/gtk-utils.c          |  361 ++++++++++------------------------------------
 src/gtk-utils.h          |   24 +---
 src/ui/Makefile.am       |    1 +
 src/ui/message-dialog.ui |  103 +++++++++++++
 7 files changed, 186 insertions(+), 309 deletions(-)
---
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 28065de..9dec552 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -68,6 +68,7 @@ src/typedefs.h
 [type: gettext/glade]src/ui/format-options.ui
 src/ui.h
 [type: gettext/glade]src/ui/menu-toolbars.ui
+[type: gettext/glade]src/ui/message-dialog.ui
 [type: gettext/glade]src/ui/preferences.ui
 [type: gettext/glade]src/ui/properties.ui
 [type: gettext/glade]src/ui/ripper.ui
diff --git a/src/dlg-ripper.c b/src/dlg-ripper.c
index 6678209..7b76c98 100644
--- a/src/dlg-ripper.c
+++ b/src/dlg-ripper.c
@@ -580,7 +580,6 @@ rip_current_track (DialogData *data)
                        save_playlist (data);
 
                data->ripping = FALSE;
-               gtk_window_set_modal (GTK_WINDOW (data->dialog), FALSE);
                gtk_widget_hide (data->dialog);
 
                d = _gtk_ok_dialog_with_checkbutton_new (GTK_WINDOW (data->window),
@@ -594,8 +593,7 @@ rip_current_track (DialogData *data)
                g_signal_connect (G_OBJECT (d), "response",
                                  G_CALLBACK (done_dialog_response_cb),
                                  data);
-               gtk_window_set_resizable (GTK_WINDOW (d), FALSE);
-               gtk_widget_show (d);
+               gtk_window_present (GTK_WINDOW (d));
 
                return;
        }
diff --git a/src/goobox.gresource.xml b/src/goobox.gresource.xml
index e4dad6a..d186507 100644
--- a/src/goobox.gresource.xml
+++ b/src/goobox.gresource.xml
@@ -7,6 +7,7 @@
     <file compressed="true">ui/format-options.ui</file>
     <file compressed="true">ui/goobox.css</file>
     <file compressed="true">ui/menu-toolbars.ui</file>
+    <file compressed="true">ui/message-dialog.ui</file>
     <file compressed="true">ui/preferences.ui</file>
     <file compressed="true">ui/properties.ui</file>
     <file compressed="true">ui/ripper.ui</file>
diff --git a/src/gtk-utils.c b/src/gtk-utils.c
index 2975554..cd11abc 100644
--- a/src/gtk-utils.c
+++ b/src/gtk-utils.c
@@ -76,7 +76,7 @@ create_button (const char *stock_id,
 }
 
 
-GtkWidget*
+GtkWidget *
 _gtk_message_dialog_new (GtkWindow        *parent,
                         GtkDialogFlags    flags,
                         const char       *stock_id,
@@ -85,69 +85,63 @@ _gtk_message_dialog_new (GtkWindow        *parent,
                         const char       *first_button_text,
                         ...)
 {
-       GtkWidget    *d;
-       GtkWidget    *label;
-       GtkWidget    *image;
-       GtkWidget    *hbox;
-       va_list       args;
-       const gchar  *text;
-       int           response_id;
-       char         *escaped_message, *markup_text;
-
-       g_return_val_if_fail (message != NULL, NULL);
-
-       if (stock_id == NULL)
-               stock_id = GTK_STOCK_DIALOG_INFO;
+       GtkBuilder  *builder;
+       GtkWidget   *dialog;
+       GtkWidget   *label;
+       va_list      args;
+       const gchar *text;
+       int          response_id;
+       char        *markup_text;
 
-       d = gtk_dialog_new_with_buttons ("", parent, flags, NULL, NULL);
-       gtk_window_set_resizable (GTK_WINDOW (d), FALSE);
+       builder = _gtk_builder_new_from_resource ("message-dialog.ui");
+       dialog = _gtk_builder_get_widget (builder, "message_dialog");
+       gtk_window_set_transient_for (GTK_WINDOW (dialog), parent);
+       gtk_window_set_modal (GTK_WINDOW (dialog), (flags & GTK_DIALOG_MODAL));
+       gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), (flags & GTK_DIALOG_DESTROY_WITH_PARENT));
+       g_object_set_data_full (G_OBJECT (dialog), "builder", builder, g_object_unref);
 
-       gtk_container_set_border_width (GTK_CONTAINER (d), 6);
-       gtk_container_set_border_width (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (d))), 6);
-       gtk_box_set_spacing (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (d))), 8);
+       if (flags & GTK_DIALOG_MODAL)
+               _gtk_dialog_add_to_window_group (GTK_DIALOG (dialog));
 
-       /* Add label and image */
+       /* set the icon */
 
-       image = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_DIALOG);
-       gtk_misc_set_alignment (GTK_MISC (image), 0.5, 0.0);
+       gtk_image_set_from_stock (GTK_IMAGE (_gtk_builder_get_widget (builder, "icon_image")),
+                                 stock_id,
+                                 GTK_ICON_SIZE_DIALOG);
 
-       label = gtk_label_new ("");
+       /* set the message */
 
-       escaped_message = g_markup_escape_text (message, -1);
-       if (secondary_message != NULL) {
-               char *escaped_secondary_message = g_markup_escape_text (secondary_message, -1);
-               markup_text = g_strdup_printf ("<span weight=\"bold\" size=\"larger\">%s</span>\n\n%s",
-                                              escaped_message,
-                                              escaped_secondary_message);
-               g_free (escaped_secondary_message);
-       } else
-               markup_text = g_strdup (escaped_message);
-       gtk_label_set_markup (GTK_LABEL (label), markup_text);
-       g_free (markup_text);
-       g_free (escaped_message);
+       label = _gtk_builder_get_widget (builder, "message_label");
 
-       gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
-       gtk_label_set_selectable (GTK_LABEL (label), TRUE);
+       if (message != NULL) {
+               char *escaped_message;
 
-       hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
-       gtk_container_set_border_width (GTK_CONTAINER (hbox), 6);
+               escaped_message = g_markup_escape_text (message, -1);
+               if (secondary_message != NULL) {
+                       char *escaped_secondary_message;
 
-       gtk_box_pack_start (GTK_BOX (hbox), image,
-                           FALSE, FALSE, 0);
+                       escaped_secondary_message = g_markup_escape_text (secondary_message, -1);
+                       markup_text = g_strdup_printf ("<span weight=\"bold\" 
size=\"larger\">%s</span>\n\n%s",
+                                                      escaped_message,
+                                                      escaped_secondary_message);
 
-       gtk_box_pack_start (GTK_BOX (hbox), label,
-                           TRUE, TRUE, 0);
+                       g_free (escaped_secondary_message);
+               }
+               else
+                       markup_text = g_strdup_printf ("<span weight=\"bold\" size=\"larger\">%s</span>", 
escaped_message);
 
-       gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (d))),
-                           hbox,
-                           FALSE, FALSE, 0);
+               g_free (escaped_message);
+       }
+       else
+               markup_text = g_markup_escape_text (secondary_message, -1);
 
-       gtk_widget_show_all (hbox);
+       gtk_label_set_markup (GTK_LABEL (label), markup_text);
+       g_free (markup_text);
 
-       /* Add buttons */
+       /* add the buttons */
 
        if (first_button_text == NULL)
-               return d;
+               return dialog;
 
        va_start (args, first_button_text);
 
@@ -155,9 +149,9 @@ _gtk_message_dialog_new (GtkWindow        *parent,
        response_id = va_arg (args, gint);
 
        while (text != NULL) {
-               gtk_dialog_add_button (GTK_DIALOG (d), text, response_id);
+               gtk_dialog_add_button (GTK_DIALOG (dialog), text, response_id);
 
-               text = va_arg (args, gchar*);
+               text = va_arg (args, char*);
                if (text == NULL)
                        break;
                response_id = va_arg (args, int);
@@ -165,181 +159,11 @@ _gtk_message_dialog_new (GtkWindow        *parent,
 
        va_end (args);
 
-       gtk_dialog_set_default_response (GTK_DIALOG (d), GTK_RESPONSE_YES);
-
-       return d;
+       return dialog;
 }
 
 
-char *
-_gtk_request_dialog_run (GtkWindow        *parent,
-                        GtkDialogFlags    flags,
-                        const char       *message,
-                        const char       *default_value,
-                        int               max_length,
-                        const char       *no_button_text,
-                        const char       *yes_button_text)
-{
-       GtkWidget    *d;
-       GtkWidget    *label;
-       GtkWidget    *image;
-       GtkWidget    *hbox;
-       GtkWidget    *vbox;
-       GtkWidget    *entry;
-       GtkWidget    *button;
-       char         *result = NULL;
-       char         *stock_id = GTK_STOCK_DIALOG_QUESTION;
-
-       d = gtk_dialog_new_with_buttons ("", parent, flags, NULL, NULL);
-       gtk_window_set_resizable (GTK_WINDOW (d), FALSE);
-
-       gtk_container_set_border_width (GTK_CONTAINER (d), 6);
-       gtk_container_set_border_width (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (d))), 6);
-       gtk_box_set_spacing (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (d))), 12);
-
-       /* Add label and image */
-
-       image = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_DIALOG);
-       gtk_misc_set_alignment (GTK_MISC (image), 0.5, 0.0);
-
-       label = gtk_label_new (message);
-       gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
-       gtk_label_set_selectable (GTK_LABEL (label), FALSE);
-       gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
-
-       entry = gtk_entry_new ();
-       gtk_widget_set_size_request (entry, REQUEST_ENTRY_WIDTH, -1);
-       gtk_entry_set_max_length (GTK_ENTRY (entry), max_length);
-       gtk_entry_set_text (GTK_ENTRY (entry), default_value);
-       gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE);
-
-       hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
-       vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
-
-       gtk_container_set_border_width (GTK_CONTAINER (hbox), 6);
-       gtk_box_set_spacing (GTK_BOX (hbox), 12);
-       gtk_box_set_spacing (GTK_BOX (vbox), 6);
-
-       gtk_box_pack_start (GTK_BOX (vbox), label,
-                           TRUE, TRUE, 0);
-
-       gtk_box_pack_start (GTK_BOX (vbox), entry,
-                           FALSE, FALSE, 0);
-
-       gtk_box_pack_start (GTK_BOX (hbox), image,
-                           FALSE, FALSE, 0);
-
-       gtk_box_pack_start (GTK_BOX (hbox), vbox,
-                           TRUE, TRUE, 0);
-
-       gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (d))),
-                           hbox,
-                           FALSE, FALSE, 0);
-
-       gtk_widget_show_all (hbox);
-
-       /* Add buttons */
-
-       button = create_button (GTK_STOCK_CANCEL, no_button_text);
-       gtk_dialog_add_action_widget (GTK_DIALOG (d),
-                                     button,
-                                     GTK_RESPONSE_CANCEL);
-
-       /**/
-
-       button = create_button (GTK_STOCK_OK, yes_button_text);
-       gtk_dialog_add_action_widget (GTK_DIALOG (d),
-                                     button,
-                                     GTK_RESPONSE_YES);
-
-       /**/
-
-       gtk_dialog_set_default_response (GTK_DIALOG (d),
-                                        GTK_RESPONSE_YES);
-       gtk_widget_grab_focus (entry);
-
-       /* Run dialog */
-
-       if ((gtk_dialog_run (GTK_DIALOG (d)) == GTK_RESPONSE_YES) &&
-           (strlen (gtk_entry_get_text (GTK_ENTRY (entry))) > 0) )
-               /* Normalize unicode text to "NFC" form for consistency. */
-               result = g_utf8_normalize (gtk_entry_get_text (GTK_ENTRY (entry)),
-                                          -1,
-                                          G_NORMALIZE_NFC);
-       else
-               result = NULL;
-
-       gtk_widget_destroy (d);
-
-       return result;
-}
-
-
-GtkWidget*
-_gtk_yesno_dialog_new (GtkWindow        *parent,
-                      GtkDialogFlags    flags,
-                      const char       *message,
-                      const char       *no_button_text,
-                      const char       *yes_button_text)
-{
-       GtkWidget    *d;
-       GtkWidget    *label;
-       GtkWidget    *image;
-       GtkWidget    *hbox;
-       GtkWidget    *button;
-       char         *stock_id = GTK_STOCK_DIALOG_QUESTION;
-
-       d = gtk_dialog_new_with_buttons ("", parent, flags, NULL, NULL);
-       gtk_window_set_resizable (GTK_WINDOW (d), FALSE);
-
-       gtk_container_set_border_width (GTK_CONTAINER (d), 6);
-       gtk_container_set_border_width (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (d))), 6);
-       gtk_box_set_spacing (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (d))), 8);
-
-       /* Add label and image */
-
-       image = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_DIALOG);
-       gtk_misc_set_alignment (GTK_MISC (image), 0.5, 0.0);
-
-       label = gtk_label_new (message);
-       gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
-       gtk_label_set_selectable (GTK_LABEL (label), TRUE);
-
-       hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12);
-       gtk_container_set_border_width (GTK_CONTAINER (hbox), 6);
-
-       gtk_box_pack_start (GTK_BOX (hbox), image,
-                           FALSE, FALSE, 0);
-
-       gtk_box_pack_start (GTK_BOX (hbox), label,
-                           TRUE, TRUE, 0);
-
-       gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (d))),
-                           hbox,
-                           FALSE, FALSE, 0);
-
-       gtk_widget_show_all (hbox);
-
-       /* Add buttons */
-
-       button = create_button (GTK_STOCK_CANCEL, no_button_text);
-       gtk_dialog_add_action_widget (GTK_DIALOG (d),
-                                     button,
-                                     GTK_RESPONSE_CANCEL);
-
-       /**/
-
-       button = create_button (GTK_STOCK_OK, yes_button_text);
-       gtk_dialog_add_action_widget (GTK_DIALOG (d),
-                                     button,
-                                     GTK_RESPONSE_YES);
-
-       /**/
-
-       gtk_dialog_set_default_response (GTK_DIALOG (d), GTK_RESPONSE_YES);
-
-       return d;
-}
+/* -- _gtk_ok_dialog_with_checkbutton_new -- */
 
 
 typedef struct {
@@ -374,75 +198,31 @@ _gtk_ok_dialog_with_checkbutton_new (GtkWindow        *parent,
                                     GSettings        *settings,
                                     const char       *key)
 {
-       GtkWidget *d;
-       GtkWidget *label;
-       GtkWidget *image;
-       GtkWidget *hbox;
-       GtkWidget *button;
-       GtkWidget *check_button;
-       char      *stock_id = GTK_STOCK_DIALOG_INFO;
-       char      *escaped_message, *markup_text;
-       DialogWithButtonData *data;
-
-       d = gtk_dialog_new_with_buttons ("", parent, flags, NULL, NULL);
-       gtk_window_set_resizable (GTK_WINDOW (d), FALSE);
+       GtkWidget               *d;
+       GtkBuilder              *builder;
+       GtkWidget               *check_button;
+       DialogWithButtonData    *data;
 
-       /* Add label and image */
-
-       image = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_DIALOG);
-       gtk_misc_set_alignment (GTK_MISC (image), 0.5, 0.0);
-
-       escaped_message = g_markup_escape_text (message, -1);
-       markup_text = g_strdup_printf ("<span weight=\"bold\" size=\"larger\">%s</span>", escaped_message);
-
-       label = gtk_label_new ("");
-       gtk_label_set_markup (GTK_LABEL (label), markup_text);
-       g_free (markup_text);
-       g_free (escaped_message);
-
-       gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
-       gtk_label_set_selectable (GTK_LABEL (label), TRUE);
-
-       hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12);
-       gtk_container_set_border_width (GTK_CONTAINER (hbox), 6);
-
-       gtk_box_pack_start (GTK_BOX (hbox), image,
-                           FALSE, FALSE, 0);
-
-       gtk_box_pack_start (GTK_BOX (hbox), label,
-                           TRUE, TRUE, 0);
-
-       gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (d))),
-                           hbox,
-                           FALSE, FALSE, 0);
-
-       /* Add checkbutton */
+       d = _gtk_message_dialog_new (parent,
+                                    flags,
+                                    GTK_STOCK_DIALOG_INFO,
+                                    message,
+                                    NULL,
+                                    ok_button_text, GTK_RESPONSE_OK,
+                                    NULL);
+       gtk_dialog_set_default_response (GTK_DIALOG (d), GTK_RESPONSE_OK);
 
-       check_button = gtk_check_button_new_with_mnemonic (check_button_label);
-       gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (d))),
-                           check_button,
-                           FALSE, FALSE, 0);
-       gtk_widget_show (check_button);
+       /* setup the checkbutton */
 
+       builder = g_object_get_data (G_OBJECT (d), "builder");
+       check_button = _gtk_builder_get_widget(builder, "message_checkbutton");
+       gtk_container_add (GTK_CONTAINER (check_button), gtk_label_new_with_mnemonic (check_button_label));
+       gtk_widget_show_all (check_button);
        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button), g_settings_get_boolean (settings, 
key));
 
-       gtk_widget_show_all (hbox);
-
-       /* Add buttons */
-
-       button = create_button (GTK_STOCK_CANCEL, ok_button_text);
-       gtk_dialog_add_action_widget (GTK_DIALOG (d),
-                                     button,
-                                     GTK_RESPONSE_OK);
-
-       /**/
-
-       gtk_dialog_set_default_response (GTK_DIALOG (d), GTK_RESPONSE_YES);
-
        data = g_new0 (DialogWithButtonData, 1);
        data->settings = g_object_ref (settings);
        data->key = g_strdup (key);
-
        g_object_set_data_full (G_OBJECT (d), "settings-data", data, (GDestroyNotify) 
dialog_with_button_data_free);
 
        g_signal_connect (G_OBJECT (check_button),
@@ -570,6 +350,19 @@ _gtk_info_dialog_run (GtkWindow        *parent,
 }
 
 
+void
+_gtk_dialog_add_to_window_group (GtkDialog *dialog)
+{
+       GtkWidget *toplevel;
+
+       g_return_if_fail (dialog != NULL);
+
+       toplevel = gtk_widget_get_toplevel (GTK_WIDGET (dialog));
+       if (gtk_widget_is_toplevel (toplevel) && gtk_window_has_group (GTK_WINDOW (toplevel)))
+               gtk_window_group_add_window (gtk_window_get_group (GTK_WINDOW (toplevel)), GTK_WINDOW 
(dialog));
+}
+
+
 static GdkPixbuf *
 get_themed_icon_pixbuf (GThemedIcon  *icon,
                        int           size,
diff --git a/src/gtk-utils.h b/src/gtk-utils.h
index f9ace9b..b42c752 100644
--- a/src/gtk-utils.h
+++ b/src/gtk-utils.h
@@ -37,28 +37,6 @@ GtkWidget*  _gtk_message_dialog_new        (GtkWindow        *parent,
                                            const char       *first_button_text,
                                            ...);
 GtkWidget*
-_gtk_message_dialog_with_checkbutton_new   (GtkWindow        *parent,
-                                           GtkDialogFlags    flags,
-                                           const char       *stock_id,
-                                           const char       *message,
-                                           const char       *secondary_message,
-                                           const char       *gconf_key,
-                                           const char       *check_button_label,
-                                           const char       *first_button_text,
-                                           ...);
-gchar*      _gtk_request_dialog_run        (GtkWindow        *parent,
-                                           GtkDialogFlags    flags,
-                                           const char       *message,
-                                           const char       *default_value,
-                                           int               max_length,
-                                           const char       *no_button_text,
-                                           const char       *yes_button_text);
-GtkWidget*  _gtk_yesno_dialog_new          (GtkWindow        *parent,
-                                           GtkDialogFlags    flags,
-                                           const char       *message,
-                                           const char       *no_button_text,
-                                           const char       *yes_button_text);
-GtkWidget*
 _gtk_ok_dialog_with_checkbutton_new        (GtkWindow        *parent,
                                            GtkDialogFlags    flags,
                                            const char       *message,
@@ -80,6 +58,8 @@ void        _gtk_error_dialog_run          (GtkWindow        *parent,
 void        _gtk_info_dialog_run           (GtkWindow        *parent,
                                            const gchar      *format,
                                            ...) G_GNUC_PRINTF (2, 3);
+void        _gtk_dialog_add_to_window_group (GtkDialog       *dialog);
+
 GdkPixbuf * _g_icon_get_pixbuf             (GIcon            *icon,
                                            int               size,
                                            GtkIconTheme     *icon_theme);
diff --git a/src/ui/Makefile.am b/src/ui/Makefile.am
index 85e7ae6..9ae838b 100644
--- a/src/ui/Makefile.am
+++ b/src/ui/Makefile.am
@@ -5,6 +5,7 @@ EXTRA_DIST =                    \
        format-options.ui       \
        goobox.css              \
        menu-toolbars.ui        \
+       message-dialog.ui       \
        preferences.ui          \
        properties.ui           \
        ripper.ui
diff --git a/src/ui/message-dialog.ui b/src/ui/message-dialog.ui
new file mode 100644
index 0000000..5f0edc5
--- /dev/null
+++ b/src/ui/message-dialog.ui
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkDialog" id="message_dialog">
+    <property name="can_focus">False</property>
+    <property name="border_width">5</property>
+    <property name="type_hint">dialog</property>
+    <child internal-child="vbox">
+      <object class="GtkBox" id="dialog-vbox4">
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">12</property>
+        <child internal-child="action_area">
+          <object class="GtkButtonBox" id="dialog-action_area4">
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <placeholder/>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkHBox" id="hbox28">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="border_width">5</property>
+            <property name="spacing">12</property>
+            <child>
+              <object class="GtkImage" id="icon_image">
+                <property name="width_request">64</property>
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="yalign">0</property>
+                <property name="stock">gtk-info</property>
+                <property name="pixel_size">48</property>
+                <property name="icon-size">6</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkBox" id="box1">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="orientation">vertical</property>
+                <property name="spacing">12</property>
+                <child>
+                  <object class="GtkLabel" id="message_label">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="xalign">0</property>
+                    <property name="use_underline">True</property>
+                    <property name="selectable">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkCheckButton" id="message_checkbutton">
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">False</property>
+                    <property name="xalign">0</property>
+                    <property name="draw_indicator">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>


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