Mercurial > pidgin.yaz
comparison pidgin/gtksmiley.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 | 351d07aefb09 |
children | e2c6e4fc3c84 |
comparison
equal
deleted
inserted
replaced
31815:d169a587901f | 31816:917c597beb97 |
---|---|
772 gtk_drag_finish(dc, FALSE, FALSE, t); | 772 gtk_drag_finish(dc, FALSE, FALSE, t); |
773 } | 773 } |
774 | 774 |
775 static GtkWidget *smiley_list_create(SmileyManager *dialog) | 775 static GtkWidget *smiley_list_create(SmileyManager *dialog) |
776 { | 776 { |
777 GtkWidget *sw; | |
778 GtkWidget *treeview; | 777 GtkWidget *treeview; |
779 GtkTreeSelection *sel; | 778 GtkTreeSelection *sel; |
780 GtkTargetEntry te[3] = { | 779 GtkTargetEntry te[3] = { |
781 {"text/plain", 0, 0}, | 780 {"text/plain", 0, 0}, |
782 {"text/uri-list", 0, 1}, | 781 {"text/uri-list", 0, 1}, |
783 {"STRING", 0, 2} | 782 {"STRING", 0, 2} |
784 }; | 783 }; |
785 | 784 |
786 sw = gtk_scrolled_window_new(NULL, NULL); | |
787 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), | |
788 GTK_POLICY_AUTOMATIC, | |
789 GTK_POLICY_AUTOMATIC); | |
790 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), | |
791 GTK_SHADOW_IN); | |
792 gtk_widget_show(sw); | |
793 | |
794 /* Create the list model */ | 785 /* Create the list model */ |
795 dialog->model = gtk_list_store_new(N_COL, | 786 dialog->model = gtk_list_store_new(N_COL, |
796 GDK_TYPE_PIXBUF, /* ICON */ | 787 GDK_TYPE_PIXBUF, /* ICON */ |
797 G_TYPE_STRING, /* SHORTCUT */ | 788 G_TYPE_STRING, /* SHORTCUT */ |
798 G_TYPE_OBJECT /* SMILEY */ | 789 G_TYPE_OBJECT /* SMILEY */ |
805 gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(dialog->model), SHORTCUT, GTK_SORT_ASCENDING); | 796 gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(dialog->model), SHORTCUT, GTK_SORT_ASCENDING); |
806 g_object_unref(G_OBJECT(dialog->model)); | 797 g_object_unref(G_OBJECT(dialog->model)); |
807 | 798 |
808 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); | 799 sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); |
809 gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE); | 800 gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE); |
810 gtk_container_add(GTK_CONTAINER(sw), treeview); | |
811 | 801 |
812 g_signal_connect(G_OBJECT(sel), "changed", G_CALLBACK(smile_selected_cb), dialog); | 802 g_signal_connect(G_OBJECT(sel), "changed", G_CALLBACK(smile_selected_cb), dialog); |
813 g_signal_connect(G_OBJECT(treeview), "row_activated", G_CALLBACK(smiley_edit_cb), dialog); | 803 g_signal_connect(G_OBJECT(treeview), "row_activated", G_CALLBACK(smiley_edit_cb), dialog); |
814 | 804 |
815 gtk_drag_dest_set(treeview, | 805 gtk_drag_dest_set(treeview, |
820 gtk_widget_show(treeview); | 810 gtk_widget_show(treeview); |
821 | 811 |
822 add_columns(treeview, dialog); | 812 add_columns(treeview, dialog); |
823 populate_smiley_list(dialog); | 813 populate_smiley_list(dialog); |
824 | 814 |
825 return sw; | 815 return pidgin_make_scrollable(treeview, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC, GTK_SHADOW_IN, -1, -1); |
826 } | 816 } |
827 | 817 |
828 static void refresh_list() | 818 static void refresh_list() |
829 { | 819 { |
830 populate_smiley_list(smiley_manager); | 820 populate_smiley_list(smiley_manager); |