| 2858 void *pidgin_make_mini_dialog(PurpleConnection *gc, const char *icon_name, |
2858 void *pidgin_make_mini_dialog(PurpleConnection *gc, const char *icon_name, |
| 2859 const char *primary, const char *secondary, |
2859 const char *primary, const char *secondary, |
| 2860 void *user_data, ...) |
2860 void *user_data, ...) |
| 2861 { |
2861 { |
| 2862 GtkWidget *vbox; |
2862 GtkWidget *vbox; |
| 2863 GtkWidget *hbox; |
2863 GtkWidget *hbox; |
| 2864 GtkWidget *hbox2; |
2864 GtkWidget *hbox2; |
| 2865 GtkWidget *label; |
2865 GtkWidget *label; |
| 2866 GtkWidget *button; |
2866 GtkWidget *button; |
| 2867 GtkWidget *img = NULL; |
2867 GtkWidget *img = NULL; |
| 2868 GtkSizeGroup *sg = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); |
2868 GtkSizeGroup *sg = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); |
| 2869 char label_text[2048]; |
2869 char label_text[2048]; |
| 2870 const char *button_text; |
2870 const char *button_text; |
| 2871 GCallback callback; |
2871 GCallback callback; |
| 2872 char *primary_esc, *secondary_esc; |
2872 char *primary_esc, *secondary_esc = NULL; |
| 2873 va_list args; |
2873 va_list args; |
| 2874 static gboolean first_call = TRUE; |
2874 static gboolean first_call = TRUE; |
| 2875 |
2875 |
| 2876 img = gtk_image_new_from_stock(icon_name, gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL)); |
2876 img = gtk_image_new_from_stock(icon_name, gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL)); |
| 2877 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); |
2877 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); |
| 2878 |
2878 |
| 2879 vbox = gtk_vbox_new(FALSE,0); |
2879 vbox = gtk_vbox_new(FALSE,0); |
| 2880 gtk_container_set_border_width(GTK_CONTAINER(vbox), PIDGIN_HIG_BOX_SPACE); |
2880 gtk_container_set_border_width(GTK_CONTAINER(vbox), PIDGIN_HIG_BOX_SPACE); |
| 2881 |
2881 |
| 2882 g_object_set_data(G_OBJECT(vbox), "gc" ,gc); |
2882 g_object_set_data(G_OBJECT(vbox), "gc" ,gc); |
| 2883 minidialogs = g_slist_prepend(minidialogs, vbox); |
2883 minidialogs = g_slist_prepend(minidialogs, vbox); |
| 2884 g_signal_connect(G_OBJECT(vbox), "destroy", G_CALLBACK(alert_killed_cb), NULL); |
2884 g_signal_connect(G_OBJECT(vbox), "destroy", G_CALLBACK(alert_killed_cb), NULL); |
| 2885 |
2885 |
| 2888 purple_signal_connect(purple_connections_get_handle(), "signed-off", |
2888 purple_signal_connect(purple_connections_get_handle(), "signed-off", |
| 2889 pidgin_utils_get_handle(), |
2889 pidgin_utils_get_handle(), |
| 2890 PURPLE_CALLBACK(connection_signed_off_cb), NULL); |
2890 PURPLE_CALLBACK(connection_signed_off_cb), NULL); |
| 2891 } |
2891 } |
| 2892 |
2892 |
| 2893 hbox = gtk_hbox_new(FALSE, 0); |
2893 hbox = gtk_hbox_new(FALSE, 0); |
| 2894 gtk_container_add(GTK_CONTAINER(vbox), hbox); |
2894 gtk_container_add(GTK_CONTAINER(vbox), hbox); |
| 2895 |
2895 |
| 2896 if (img != NULL) |
2896 if (img != NULL) |
| 2897 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); |
2897 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); |
| 2898 |
2898 |
| 2899 primary_esc = g_markup_escape_text(primary, -1); |
2899 primary_esc = g_markup_escape_text(primary, -1); |
| 2900 |
2900 |
| 2901 if (secondary) |
2901 if (secondary) |
| 2902 secondary_esc = g_markup_escape_text(secondary, -1); |
2902 secondary_esc = g_markup_escape_text(secondary, -1); |
| 2903 g_snprintf(label_text, sizeof(label_text), |
2903 g_snprintf(label_text, sizeof(label_text), |
| 2904 "<span weight=\"bold\" size=\"smaller\">%s</span>%s<span size=\"smaller\">%s</span>", |
2904 "<span weight=\"bold\" size=\"smaller\">%s</span>%s<span size=\"smaller\">%s</span>", |
| 2905 primary_esc, secondary ? "\n" : "", secondary?secondary_esc:""); |
2905 primary_esc, secondary ? "\n" : "", secondary_esc ? secondary_esc : ""); |
| 2906 g_free(primary_esc); |
2906 g_free(primary_esc); |
| |
2907 g_free(secondary_esc); |
| 2907 label = gtk_label_new(NULL); |
2908 label = gtk_label_new(NULL); |
| 2908 gtk_widget_set_size_request(label, purple_prefs_get_int(PIDGIN_PREFS_ROOT "/blist/width")-25,-1); |
2909 gtk_widget_set_size_request(label, purple_prefs_get_int(PIDGIN_PREFS_ROOT "/blist/width")-25,-1); |
| 2909 gtk_label_set_markup(GTK_LABEL(label), label_text); |
2910 gtk_label_set_markup(GTK_LABEL(label), label_text); |
| 2910 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
2911 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
| 2911 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
2912 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
| 2912 gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0); |
2913 gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0); |
| 2913 |
2914 |
| 2914 hbox2 = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE); |
2915 hbox2 = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE); |
| 2915 gtk_box_pack_start(GTK_BOX(vbox), hbox2, FALSE, FALSE, 0); |
2916 gtk_box_pack_start(GTK_BOX(vbox), hbox2, FALSE, FALSE, 0); |
| 2916 |
2917 |
| 2917 va_start(args, user_data); |
2918 va_start(args, user_data); |