summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gtk-utils.c73
1 files changed, 50 insertions, 23 deletions
diff --git a/src/gtk-utils.c b/src/gtk-utils.c
index 3e1594e..56ba99b 100644
--- a/src/gtk-utils.c
+++ b/src/gtk-utils.c
@@ -204,6 +204,7 @@ _gtk_request_dialog_run (GtkWindow *parent,
GtkWidget *entry;
GtkWidget *button;
GtkWidget *content_area;
+ GtkWidget *action_area;
char *stock_id;
char *result;
@@ -211,42 +212,50 @@ _gtk_request_dialog_run (GtkWindow *parent,
dialog = gtk_dialog_new_with_buttons (title, parent, flags, NULL);
content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
+ action_area = gtk_dialog_get_action_area (GTK_DIALOG (dialog));
/* Add label and image */
image = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_DIALOG);
+#if GTK_CHECK_VERSION (3, 0, 0)
+ gtk_widget_set_halign (image, GTK_ALIGN_CENTER);
+ gtk_widget_set_valign (image, GTK_ALIGN_START);
+#else
gtk_misc_set_alignment (GTK_MISC (image), 0.5, 0.0);
+#endif
- label = gtk_label_new (message);
+ label = gtk_label_new_with_mnemonic (message);
gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
gtk_label_set_selectable (GTK_LABEL (label), FALSE);
+#if GTK_CHECK_VERSION (3, 0, 0)
+ gtk_widget_set_halign (label, GTK_ALIGN_START);
+ gtk_widget_set_valign (label, GTK_ALIGN_START);
+#else
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.0);
+#endif
entry = gtk_entry_new ();
- gtk_widget_set_size_request (entry, 250, -1);
+ gtk_entry_set_width_chars (GTK_ENTRY (entry), 50);
gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE);
gtk_entry_set_max_length (GTK_ENTRY (entry), max_length);
gtk_entry_set_text (GTK_ENTRY (entry), default_value);
+ gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry);
- hbox = gtk_hbox_new (FALSE, 24);
- vbox = gtk_vbox_new (FALSE, 6);
+ hbox = gtk_hbox_new (FALSE, 12);
+ vbox = gtk_vbox_new (FALSE, 12);
+ gtk_container_set_border_width (GTK_CONTAINER (dialog), 5);
gtk_container_set_border_width (GTK_CONTAINER (hbox), 5);
- 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 (vbox), label,
- FALSE, FALSE, 0);
-
- gtk_box_pack_start (GTK_BOX (vbox), entry,
- FALSE, FALSE, 0);
+ gtk_box_set_spacing (GTK_BOX (content_area), 14); /* 14 + 2 * 5 = 24 */
+ gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
+ gtk_box_set_spacing (GTK_BOX (vbox), 6);
- gtk_box_pack_start (GTK_BOX (content_area),
- hbox,
- 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 (vbox), label, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (content_area), hbox, FALSE, FALSE, 0);
gtk_widget_show_all (hbox);
@@ -362,6 +371,7 @@ _gtk_error_dialog_new (GtkWindow *parent,
GtkWidget *scrolled = NULL;
GtkWidget *expander;
GtkWidget *content_area;
+ GtkWidget *action_area;
GtkTextBuffer *text_buf;
GtkTextIter iter;
char *stock_id;
@@ -382,16 +392,27 @@ _gtk_error_dialog_new (GtkWindow *parent,
content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
- gtk_widget_set_size_request (dialog, 500, -1);
+ action_area = gtk_dialog_get_action_area (GTK_DIALOG (dialog));
/* Add label and image */
image = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_DIALOG);
+#if GTK_CHECK_VERSION (3, 0, 0)
+ gtk_widget_set_halign (image, GTK_ALIGN_CENTER);
+ gtk_widget_set_valign (image, GTK_ALIGN_START);
+#else
gtk_misc_set_alignment (GTK_MISC (image), 0.5, 0.0);
+#endif
label = gtk_label_new ("");
gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
gtk_label_set_selectable (GTK_LABEL (label), TRUE);
+#if GTK_CHECK_VERSION (3, 0, 0)
+ gtk_widget_set_halign (label, GTK_ALIGN_START);
+ gtk_widget_set_valign (label, GTK_ALIGN_START);
+#else
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.0);
+#endif
escaped_message = g_markup_escape_text (primary_text, -1);
if (secondary_text != NULL) {
@@ -403,7 +424,7 @@ _gtk_error_dialog_new (GtkWindow *parent,
va_end (args);
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\n",
+ markup_text = g_strdup_printf ("<span weight=\"bold\" size=\"larger\">%s</span>\n\n%s",
escaped_message,
escaped_secondary_message);
@@ -417,6 +438,8 @@ _gtk_error_dialog_new (GtkWindow *parent,
g_free (escaped_message);
if (view_output) {
+ gtk_widget_set_size_request (dialog, 500, -1);
+
/* Expander */
expander = gtk_expander_new_with_mnemonic (_("Command _Line Output"));
@@ -458,7 +481,6 @@ _gtk_error_dialog_new (GtkWindow *parent,
}
vbox = gtk_vbox_new (FALSE, 6);
- gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
hbox = gtk_hbox_new (FALSE, 12);
gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0);
@@ -471,9 +493,14 @@ _gtk_error_dialog_new (GtkWindow *parent,
gtk_box_pack_start (GTK_BOX (vbox), expander, TRUE, TRUE, 0);
}
- gtk_box_pack_start (GTK_BOX (content_area),
- vbox,
- FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (content_area), vbox, FALSE, FALSE, 0);
+
+ gtk_container_set_border_width (GTK_CONTAINER (dialog), 5);
+ gtk_container_set_border_width (GTK_CONTAINER (hbox), 5);
+ gtk_box_set_spacing (GTK_BOX (content_area), 14); /* 14 + 2 * 5 = 24 */
+ gtk_container_set_border_width (GTK_CONTAINER (action_area), 5);
+ gtk_box_set_spacing (GTK_BOX (action_area), 6);
+
gtk_widget_show_all (vbox);
return dialog;