X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=tests%2Ftesticonview.c;h=325622800b2c578adb12e9e94233d25c544b4d6f;hb=9d0febc9a64a5bfb0fcfc3a88de4757f6c1ff090;hp=e5e5b244eee106af11af2c08c9315552bfd2dd91;hpb=3e77a18b4a9c898f4a5b87cbca005e4041189fef;p=~andy%2Fgtk diff --git a/tests/testiconview.c b/tests/testiconview.c index e5e5b244e..325622800 100644 --- a/tests/testiconview.c +++ b/tests/testiconview.c @@ -12,9 +12,7 @@ * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * License along with this library. If not, see . */ #include @@ -34,6 +32,7 @@ fill_model (GtkTreeModel *model) char *str, *str2; GtkTreeIter iter; GtkListStore *store = GTK_LIST_STORE (model); + gint32 size; pixbuf = gdk_pixbuf_new_from_file ("gnome-textfile.png", NULL); @@ -51,11 +50,15 @@ fill_model (GtkTreeModel *model) while (i < NUMBER_OF_ITEMS - 1) { + GdkPixbuf *pb; + size = g_random_int_range (20, 70); + pb = gdk_pixbuf_scale_simple (pixbuf, size, size, GDK_INTERP_NEAREST); + str = g_strdup_printf ("Icon %d", i); str2 = g_strdup_printf ("Icon %d", i); gtk_list_store_prepend (store, &iter); gtk_list_store_set (store, &iter, - 0, pixbuf, + 0, pb, 1, str, 2, i, 3, str2, @@ -329,14 +332,26 @@ static void do_popup_menu (GtkWidget *icon_list, GdkEventButton *event) { + GtkIconView *icon_view = GTK_ICON_VIEW (icon_list); GtkWidget *menu; GtkWidget *menuitem; - GtkTreePath *path; + GtkTreePath *path = NULL; int button, event_time; ItemData *data; + GList *list; - path = gtk_icon_view_get_path_at_pos (GTK_ICON_VIEW (icon_list), - event->x, event->y); + if (event) + path = gtk_icon_view_get_path_at_pos (icon_view, event->x, event->y); + else + { + list = gtk_icon_view_get_selected_items (icon_view); + + if (list) + { + path = (GtkTreePath*)list->data; + g_list_free_full (list, (GDestroyNotify) gtk_tree_path_free); + } + } if (!path) return; @@ -344,7 +359,7 @@ do_popup_menu (GtkWidget *icon_list, menu = gtk_menu_new (); data = g_new0 (ItemData, 1); - data->icon_list = GTK_ICON_VIEW (icon_list); + data->icon_list = icon_view; data->path = path; g_object_set_data_full (G_OBJECT (menu), "item-path", data, (GDestroyNotify)free_item_data); @@ -415,10 +430,10 @@ main (gint argc, gchar **argv) window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size (GTK_WINDOW (window), 700, 400); - vbox = gtk_vbox_new (FALSE, 0); + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER (window), vbox); - paned = gtk_hpaned_new (); + paned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); gtk_box_pack_start (GTK_BOX (vbox), paned, TRUE, TRUE, 0); icon_list = gtk_icon_view_new (); @@ -502,22 +517,22 @@ main (gint argc, gchar **argv) #endif /* Allow DND between the icon view and the tree view */ - gtk_icon_view_enable_model_drag_source (icon_list, + gtk_icon_view_enable_model_drag_source (GTK_ICON_VIEW (icon_list), GDK_BUTTON1_MASK, item_targets, G_N_ELEMENTS (item_targets), GDK_ACTION_MOVE); - gtk_icon_view_enable_model_drag_dest (icon_list, + gtk_icon_view_enable_model_drag_dest (GTK_ICON_VIEW (icon_list), item_targets, G_N_ELEMENTS (item_targets), GDK_ACTION_MOVE); - gtk_tree_view_enable_model_drag_source (tv, + gtk_tree_view_enable_model_drag_source (GTK_TREE_VIEW (tv), GDK_BUTTON1_MASK, item_targets, G_N_ELEMENTS (item_targets), GDK_ACTION_MOVE); - gtk_tree_view_enable_model_drag_dest (tv, + gtk_tree_view_enable_model_drag_dest (GTK_TREE_VIEW (tv), item_targets, G_N_ELEMENTS (item_targets), GDK_ACTION_MOVE); @@ -540,48 +555,48 @@ main (gint argc, gchar **argv) gtk_paned_add2 (GTK_PANED (paned), scrolled_window); - bbox = gtk_hbutton_box_new (); + bbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_button_box_set_layout (GTK_BUTTON_BOX (bbox), GTK_BUTTONBOX_START); gtk_box_pack_start (GTK_BOX (vbox), bbox, FALSE, FALSE, 0); button = gtk_button_new_with_label ("Add some"); g_signal_connect (button, "clicked", G_CALLBACK (add_some), icon_list); - gtk_box_pack_start_defaults (GTK_BOX (bbox), button); + gtk_box_pack_start (GTK_BOX (bbox), button, TRUE, TRUE, 0); button = gtk_button_new_with_label ("Add many"); g_signal_connect (button, "clicked", G_CALLBACK (add_many), icon_list); - gtk_box_pack_start_defaults (GTK_BOX (bbox), button); + gtk_box_pack_start (GTK_BOX (bbox), button, TRUE, TRUE, 0); button = gtk_button_new_with_label ("Add large"); g_signal_connect (button, "clicked", G_CALLBACK (add_large), icon_list); - gtk_box_pack_start_defaults (GTK_BOX (bbox), button); + gtk_box_pack_start (GTK_BOX (bbox), button, TRUE, TRUE, 0); button = gtk_button_new_with_label ("Remove selected"); g_signal_connect (button, "clicked", G_CALLBACK (foreach_selected_remove), icon_list); - gtk_box_pack_start_defaults (GTK_BOX (bbox), button); + gtk_box_pack_start (GTK_BOX (bbox), button, TRUE, TRUE, 0); button = gtk_button_new_with_label ("Swap"); g_signal_connect (button, "clicked", G_CALLBACK (swap_rows), icon_list); - gtk_box_pack_start_defaults (GTK_BOX (bbox), button); + gtk_box_pack_start (GTK_BOX (bbox), button, TRUE, TRUE, 0); - bbox = gtk_hbutton_box_new (); + bbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_button_box_set_layout (GTK_BUTTON_BOX (bbox), GTK_BUTTONBOX_START); gtk_box_pack_start (GTK_BOX (vbox), bbox, FALSE, FALSE, 0); button = gtk_button_new_with_label ("Select all"); g_signal_connect (button, "clicked", G_CALLBACK (select_all), icon_list); - gtk_box_pack_start_defaults (GTK_BOX (bbox), button); + gtk_box_pack_start (GTK_BOX (bbox), button, TRUE, TRUE, 0); button = gtk_button_new_with_label ("Unselect all"); g_signal_connect (button, "clicked", G_CALLBACK (unselect_all), icon_list); - gtk_box_pack_start_defaults (GTK_BOX (bbox), button); - + gtk_box_pack_start (GTK_BOX (bbox), button, TRUE, TRUE, 0); + button = gtk_button_new_with_label ("Select nonexisting"); g_signal_connect (button, "clicked", G_CALLBACK (select_nonexisting), icon_list); - gtk_box_pack_start_defaults (GTK_BOX (bbox), button); + gtk_box_pack_start (GTK_BOX (bbox), button, TRUE, TRUE, 0); icon_list = gtk_icon_view_new (); - + scrolled_window = gtk_scrolled_window_new (NULL, NULL); gtk_container_add (GTK_CONTAINER (scrolled_window), icon_list); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),