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