Mercurial > pidgin
comparison pidgin/gtkutils.c @ 16574:814be4aa9dc6
Plug leak.
author | Daniel Atallah <daniel.atallah@gmail.com> |
---|---|
date | Sat, 28 Apr 2007 06:04:15 +0000 |
parents | 5e47b3427b28 |
children | a86d398435ea |
comparison
equal
deleted
inserted
replaced
16572:390987ecddf3 | 16574:814be4aa9dc6 |
---|---|
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); |