Mercurial > pidgin.yaz
comparison pidgin/gtkimhtmltoolbar.c @ 31816:917c597beb97
Add pidgin_make_scrollable and use it. Cleans up a bunch of duplicate code. Net code loss of 180 lines. Fixes #13073.
committer: John Bailey <rekkanoryo@rekkanoryo.org>
author | Gabriel Schulhof <nix@go-nix.ca> |
---|---|
date | Sat, 08 Jan 2011 03:45:42 +0000 |
parents | abaff1dd6548 |
children | 7281d151e492 3e7a7e14af62 |
comparison
equal
deleted
inserted
replaced
31815:d169a587901f | 31816:917c597beb97 |
---|---|
856 smiley_table = gtk_label_new(_("This theme has no available smileys.")); | 856 smiley_table = gtk_label_new(_("This theme has no available smileys.")); |
857 gtk_widget_add_events(dialog, GDK_KEY_PRESS_MASK | GDK_BUTTON_PRESS_MASK); | 857 gtk_widget_add_events(dialog, GDK_KEY_PRESS_MASK | GDK_BUTTON_PRESS_MASK); |
858 g_signal_connect(G_OBJECT(dialog), "button-press-event", (GCallback)smiley_dialog_input_cb, toolbar); | 858 g_signal_connect(G_OBJECT(dialog), "button-press-event", (GCallback)smiley_dialog_input_cb, toolbar); |
859 } | 859 } |
860 | 860 |
861 scrolled = gtk_scrolled_window_new (NULL, NULL); | 861 |
862 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW (scrolled), GTK_SHADOW_NONE); | 862 scrolled = pidgin_make_scrollable(smiley_table, GTK_POLICY_NEVER, GTK_POLICY_NEVER, GTK_SHADOW_NONE, -1, -1); |
863 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (scrolled), | |
864 GTK_POLICY_NEVER, GTK_POLICY_NEVER); | |
865 gtk_box_pack_start(GTK_BOX(vbox), scrolled, TRUE, TRUE, 0); | 863 gtk_box_pack_start(GTK_BOX(vbox), scrolled, TRUE, TRUE, 0); |
866 gtk_widget_show(scrolled); | |
867 | |
868 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled), smiley_table); | |
869 gtk_widget_show(smiley_table); | 864 gtk_widget_show(smiley_table); |
870 | 865 |
871 viewport = gtk_widget_get_parent(smiley_table); | 866 viewport = gtk_widget_get_parent(smiley_table); |
872 gtk_viewport_set_shadow_type(GTK_VIEWPORT(viewport), GTK_SHADOW_NONE); | 867 gtk_viewport_set_shadow_type(GTK_VIEWPORT(viewport), GTK_SHADOW_NONE); |
873 | 868 |
888 * enabled only after setting the desired size of the window. If we do either of | 883 * enabled only after setting the desired size of the window. If we do either of |
889 * these tasks before now, GTK+ miscalculates the required size, and erronously | 884 * these tasks before now, GTK+ miscalculates the required size, and erronously |
890 * makes one or both scrollbars visible (sometimes). | 885 * makes one or both scrollbars visible (sometimes). |
891 * I too think this hack is gross. But I couldn't find a better way -- sadrul */ | 886 * I too think this hack is gross. But I couldn't find a better way -- sadrul */ |
892 gtk_window_set_resizable(GTK_WINDOW(dialog), TRUE); | 887 gtk_window_set_resizable(GTK_WINDOW(dialog), TRUE); |
893 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (scrolled), | 888 g_object_set(G_OBJECT(scrolled), |
894 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); | 889 "hscrollbar-policy", GTK_POLICY_AUTOMATIC, |
890 "vscrollbar-policy", GTK_POLICY_AUTOMATIC, | |
891 NULL); | |
895 | 892 |
896 #ifdef _WIN32 | 893 #ifdef _WIN32 |
897 winpidgin_ensure_onscreen(dialog); | 894 winpidgin_ensure_onscreen(dialog); |
898 #endif | 895 #endif |
899 | 896 |