comparison gtk/gtkutils.c @ 15034:8c5c4d7d53a5

[gaim-migrate @ 17817] minor graphical tweaks committer: Tailor Script <tailor@pidgin.im>
author Sean Egan <seanegan@gmail.com>
date Thu, 23 Nov 2006 22:35:32 +0000
parents ca46f41aa433
children 51f3c0df6ab4
comparison
equal deleted inserted replaced
15033:b28f5caf9445 15034:8c5c4d7d53a5
2881 const char *primary, const char *secondary, 2881 const char *primary, const char *secondary,
2882 void *user_data, ...) 2882 void *user_data, ...)
2883 { 2883 {
2884 GtkWidget *vbox; 2884 GtkWidget *vbox;
2885 GtkWidget *hbox; 2885 GtkWidget *hbox;
2886 GtkWidget *bbox; 2886 GtkWidget *hbox2;
2887 GtkWidget *label; 2887 GtkWidget *label;
2888 GtkWidget *button; 2888 GtkWidget *button;
2889 GtkWidget *img = NULL; 2889 GtkWidget *img = NULL;
2890 GtkSizeGroup *sg = gtk_size_group_new(GTK_SIZE_GROUP_BOTH);
2890 char label_text[2048]; 2891 char label_text[2048];
2891 const char *button_text; 2892 const char *button_text;
2892 GCallback callback; 2893 GCallback callback;
2893 char *primary_esc, *secondary_esc; 2894 char *primary_esc, *secondary_esc;
2894 va_list args; 2895 va_list args;
2924 g_snprintf(label_text, sizeof(label_text), 2925 g_snprintf(label_text, sizeof(label_text),
2925 "<span weight=\"bold\" size=\"smaller\">%s</span>%s<span size=\"smaller\">%s</span>", 2926 "<span weight=\"bold\" size=\"smaller\">%s</span>%s<span size=\"smaller\">%s</span>",
2926 primary_esc, secondary ? "\n" : "", secondary?secondary_esc:""); 2927 primary_esc, secondary ? "\n" : "", secondary?secondary_esc:"");
2927 g_free(primary_esc); 2928 g_free(primary_esc);
2928 label = gtk_label_new(NULL); 2929 label = gtk_label_new(NULL);
2930 gtk_widget_set_size_request(label, gaim_prefs_get_int("/gaim/gtk/blist/width")-16,-1);
2929 gtk_widget_modify_text(vbox, GTK_STATE_NORMAL, &(label->style->white)); 2931 gtk_widget_modify_text(vbox, GTK_STATE_NORMAL, &(label->style->white));
2930 gtk_label_set_markup(GTK_LABEL(label), label_text); 2932 gtk_label_set_markup(GTK_LABEL(label), label_text);
2931 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); 2933 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
2932 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); 2934 gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
2933 gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0); 2935 gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0);
2934 #if GTK_CHECK_VERSION(2,6,0) 2936 #if GTK_CHECK_VERSION(2,6,0)
2935 g_object_set(label, "ellipsize", PANGO_ELLIPSIZE_END, NULL); 2937 // g_object_set(label, "ellipsize", PANGO_ELLIPSIZE_END, NULL);
2936 #endif 2938 #endif
2937 2939
2938 bbox = gtk_hbutton_box_new(); 2940 hbox2 = gtk_hbox_new(FALSE, 6);
2939 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0); 2941 gtk_box_pack_start(GTK_BOX(vbox), hbox2, FALSE, FALSE, 0);
2940 gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);
2941 gtk_box_set_spacing(GTK_BOX(bbox), 6);
2942 2942
2943 va_start(args, user_data); 2943 va_start(args, user_data);
2944 while ((button_text = va_arg(args, char*))) { 2944 while ((button_text = va_arg(args, char*))) {
2945 callback = va_arg(args, GCallback); 2945 callback = va_arg(args, GCallback);
2946 button = gtk_button_new(); 2946 button = gtk_button_new();
2947 gtk_container_set_border_width(GTK_CONTAINER(button), 0); 2947
2948 if (callback) 2948 if (callback)
2949 g_signal_connect_swapped(G_OBJECT(button), "clicked", callback, user_data); 2949 g_signal_connect_swapped(G_OBJECT(button), "clicked", callback, user_data);
2950 g_signal_connect_swapped(G_OBJECT(button), "clicked", G_CALLBACK(gtk_widget_destroy), vbox); 2950 g_signal_connect_swapped(G_OBJECT(button), "clicked", G_CALLBACK(gtk_widget_destroy), vbox);
2951 hbox = gtk_hbox_new(FALSE, 0); 2951 hbox = gtk_hbox_new(FALSE, 0);
2952 gtk_container_add(GTK_CONTAINER(button), hbox); 2952 gtk_container_add(GTK_CONTAINER(button), hbox);
2953 gtk_container_set_border_width(GTK_CONTAINER(hbox), 3);
2953 g_snprintf(label_text, sizeof(label_text), 2954 g_snprintf(label_text, sizeof(label_text),
2954 "<span size=\"smaller\">%s</span>", button_text); 2955 "<span size=\"smaller\">%s</span>", button_text);
2955 label = gtk_label_new(NULL); 2956 label = gtk_label_new(NULL);
2956 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), label_text); 2957 gtk_label_set_markup_with_mnemonic(GTK_LABEL(label), label_text);
2957 gtk_misc_set_alignment(GTK_MISC(label), 0.5, 0.5); 2958 gtk_misc_set_alignment(GTK_MISC(label), 0.5, 0.5);
2958 gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0); 2959 gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0);
2959 gtk_container_add(GTK_CONTAINER(bbox), button); 2960 gtk_box_pack_end(GTK_CONTAINER(hbox2), button, FALSE, FALSE, 0);
2961 gtk_size_group_add_widget(sg, button);
2960 } 2962 }
2961 va_end(args); 2963 va_end(args);
2962 2964
2963 return vbox; 2965 return vbox;
2964 } 2966 }