Mercurial > pidgin
diff gtk/gtknotify.c @ 14803:967c39d78bc4
[gaim-migrate @ 17568]
I'm an idiot.
committer: Tailor Script <tailor@pidgin.im>
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Mon, 23 Oct 2006 19:43:45 +0000 |
parents | 4138063d89c9 |
children | 94adee1cba70 |
line wrap: on
line diff
--- a/gtk/gtknotify.c Mon Oct 23 19:05:14 2006 +0000 +++ b/gtk/gtknotify.c Mon Oct 23 19:43:45 2006 +0000 @@ -196,138 +196,84 @@ g_list_free(row); } - static void * gaim_gtk_notify_message(GaimNotifyMsgType type, const char *title, - const char *primary, const char *secondary) + const char *primary, const char *secondary) { - GtkStyle *style; - GdkColor color; - GtkWidget *ebox; - GtkWidget *vbox; - GtkWidget *hbox; - GtkWidget *bbox; - GtkWidget *label; - GtkWidget *button; - GtkWidget *alignment; - GtkWidget *img = NULL; - GtkStockItem close_item; - char label_text[2048]; - const char *icon_name = NULL; - char *primary_esc, *secondary_esc; + GtkWidget *dialog; + GtkWidget *hbox; + GtkWidget *label; + GtkWidget *img = NULL; + char label_text[2048]; + const char *icon_name = NULL; + char *primary_esc, *secondary_esc; - switch (type) - { - case GAIM_NOTIFY_MSG_ERROR: - icon_name = GAIM_STOCK_DIALOG_ERROR; - break; + switch (type) + { + case GAIM_NOTIFY_MSG_ERROR: + icon_name = GAIM_STOCK_DIALOG_ERROR; + break; - case GAIM_NOTIFY_MSG_WARNING: - icon_name = GAIM_STOCK_DIALOG_WARNING; - break; + case GAIM_NOTIFY_MSG_WARNING: + icon_name = GAIM_STOCK_DIALOG_WARNING; + break; - case GAIM_NOTIFY_MSG_INFO: - icon_name = GAIM_STOCK_DIALOG_INFO; - break; - - default: - icon_name = NULL; - break; - } + case GAIM_NOTIFY_MSG_INFO: + icon_name = GAIM_STOCK_DIALOG_INFO; + break; - if (icon_name != NULL) - { - img = gtk_image_new_from_stock(icon_name, GTK_ICON_SIZE_BUTTON); - gtk_misc_set_alignment(GTK_MISC(img), 0, 0); - } + default: + icon_name = NULL; + break; + } - ebox = gtk_event_box_new(); - vbox = gtk_vbox_new(FALSE,0); - gtk_container_set_border_width(GTK_CONTAINER(vbox), 6); - color.red = 65535; - // gtk_widget_modify_bg(ebox, GTK_STATE_NORMAL, &(vbox->style->base[GTK_STATE_SELECTED])); - gtk_container_add(GTK_CONTAINER(ebox),vbox); - - hbox = gtk_hbox_new(FALSE, 0); - gtk_container_add(GTK_CONTAINER(vbox), hbox); + if (icon_name != NULL) + { + img = gtk_image_new_from_stock(icon_name, GTK_ICON_SIZE_DIALOG); + gtk_misc_set_alignment(GTK_MISC(img), 0, 0); + } - if (img != NULL) - gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); - primary_esc = g_markup_escape_text(primary, -1); - if (secondary) - secondary_esc = g_markup_escape_text(secondary, -1); - g_snprintf(label_text, sizeof(label_text), - "<span weight=\"bold\" size=\"smaller\">%s</span>%s<span size=\"smaller\">%s</span>", - primary_esc, - secondary ? "\n" : "", - secondary ? secondary_esc : ""); - g_free(primary_esc); - label = gtk_label_new(NULL); - gtk_widget_modify_text(vbox, GTK_STATE_NORMAL, &(label->style->white)); - gtk_label_set_markup(GTK_LABEL(label), label_text); - gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); - gtk_misc_set_alignment(GTK_MISC(label), 0, 0); - gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0); -#if GTK_CHECK_VERSION(2,6,0) - g_object_set(label, "ellipsize", PANGO_ELLIPSIZE_END, NULL); -#endif -#if 0 - if (secondary) { - secondary_esc = g_markup_escape_text(secondary, -1); - g_snprintf(label_text, sizeof(label_text), - "<span size=\"smaller\">%s</span>", - secondary_esc); - g_free(secondary_esc); - label = gtk_label_new(NULL); - gtk_label_set_markup(GTK_LABEL(label), label_text); - gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); - gtk_misc_set_alignment(GTK_MISC(label), 0, 0); - gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0); -#if GTK_CHECK_VERSION(2,6,0) - g_object_set(label, "ellipsize", PANGO_ELLIPSIZE_END, NULL); -#endif - } -#endif - bbox = gtk_hbutton_box_new(); - gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0); - gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END); + dialog = gtk_dialog_new_with_buttons(title ? title : GAIM_ALERT_TITLE, + NULL, 0, GTK_STOCK_CLOSE, + GTK_RESPONSE_CLOSE, NULL); + + gtk_window_set_role(GTK_WINDOW(dialog), "notify_dialog"); + + g_signal_connect(G_OBJECT(dialog), "response", + G_CALLBACK(message_response_cb), dialog); + + gtk_container_set_border_width(GTK_CONTAINER(dialog), GAIM_HIG_BORDER); + gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); + gtk_dialog_set_has_separator(GTK_DIALOG(dialog), FALSE); + gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog)->vbox), GAIM_HIG_BORDER); + gtk_container_set_border_width(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), GAIM_HIG_BOX_SPACE); + + hbox = gtk_hbox_new(FALSE, GAIM_HIG_BORDER); + gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), hbox); - button = gtk_button_new(); - g_signal_connect_swapped(G_OBJECT(button), "activate", gtk_widget_destroy, ebox); - alignment = gtk_alignment_new(0.5, 0.5, 0, 0); - gtk_container_add(GTK_CONTAINER(button), alignment); + if (img != NULL) + gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); - hbox = gtk_hbox_new(FALSE, 0); - gtk_container_add(GTK_CONTAINER(alignment), hbox); - - img = gtk_image_new_from_stock(GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU); - gtk_misc_set_alignment(GTK_MISC(img), 0.5, 0.5); - gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); + primary_esc = g_markup_escape_text(primary, -1); + secondary_esc = (secondary != NULL) ? g_markup_escape_text(secondary, -1) : NULL; + g_snprintf(label_text, sizeof(label_text), + "<span weight=\"bold\" size=\"larger\">%s</span>\n\n%s", + primary_esc, (secondary ? secondary_esc : "")); + g_free(primary_esc); + g_free(secondary_esc); - gtk_stock_lookup(GTK_STOCK_CLOSE, &close_item); - g_snprintf(label_text, sizeof(label_text), - "<span size=\"smaller\">%s</span>", close_item.label); - label = gtk_label_new(NULL); - gtk_misc_set_alignment(GTK_MISC(img), 0.5, 0.5); - gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); + label = gtk_label_new(NULL); - gtk_stock_lookup(GTK_STOCK_CLOSE, &close_item); - g_snprintf(label_text, sizeof(label_text), - "<span size=\"smaller\">%s</span>", close_item.label); - label = gtk_label_new(NULL); - gtk_misc_set_alignment(GTK_MISC(img), 0.5, 0.5); - gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), label_text); - gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); + gtk_label_set_markup(GTK_LABEL(label), label_text); + gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); + gtk_misc_set_alignment(GTK_MISC(label), 0, 0); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); - gtk_container_add(GTK_CONTAINER(bbox), button); + gtk_widget_show_all(dialog); - gtk_widget_show_all(ebox); - gaim_gtk_blist_add_alert(ebox); - - return ebox; + return dialog; } - static void selection_changed_cb(GtkTreeSelection *sel, GaimMailDialog *dialog) {