static void create_icon_list(void) { TestGnomeApp *app; GtkWidget *sw; GtkWidget *iconlist; GdkPixbuf *pix; int i; app = create_newwin(TRUE,"testGNOME","Icon List"); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); bonobo_window_set_contents (BONOBO_WINDOW (app->app), sw); gtk_widget_set_size_request (sw, 430, 300); gtk_widget_show (sw); iconlist = gnome_icon_list_new (80, NULL, GNOME_ICON_LIST_IS_EDITABLE); gtk_container_add (GTK_CONTAINER (sw), iconlist); g_signal_connect (iconlist, "select_icon", G_CALLBACK (select_icon), NULL); g_signal_connect (iconlist, "unselect_icon", G_CALLBACK (unselect_icon), NULL); GTK_WIDGET_SET_FLAGS(iconlist, GTK_CAN_FOCUS); pix = gdk_pixbuf_new_from_xpm_data ((const gchar **)bomb_xpm); gtk_widget_grab_focus (iconlist); gnome_icon_list_freeze (GNOME_ICON_LIST (iconlist)); for (i = 0; i < 30; i++) { gnome_icon_list_append_pixbuf (GNOME_ICON_LIST(iconlist), pix, "bomb.xpm", "Foo"); gnome_icon_list_append_pixbuf (GNOME_ICON_LIST(iconlist), pix, "bomb.xpm", "Bar"); gnome_icon_list_append_pixbuf (GNOME_ICON_LIST(iconlist), pix, "bomb.xpm", "LaLa"); } gnome_icon_list_append (GNOME_ICON_LIST(iconlist), "non-existant.png", "No Icon"); gnome_icon_list_set_selection_mode (GNOME_ICON_LIST (iconlist), GTK_SELECTION_EXTENDED); gnome_icon_list_thaw (GNOME_ICON_LIST (iconlist)); gtk_widget_show (iconlist); gtk_widget_show(app->app); }
gint main (gint argc, gchar **argv) { GnomeProgram *program; GtkWidget *window, *scrolled_window, *icon_list, *vbox, *button; GSList *ids, *list; gint i; program = gnome_program_init ("testiconlist", "0.0", LIBGNOMEUI_MODULE, argc, argv, NULL); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size (GTK_WINDOW (window), 400, 300); vbox = gtk_vbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (window), vbox); scrolled_window = gtk_scrolled_window_new (NULL, NULL); gtk_box_pack_start (GTK_BOX (vbox), scrolled_window, TRUE, TRUE, 0); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window), GTK_SHADOW_ETCHED_IN); icon_list = gnome_icon_list_new (80, NULL, GNOME_ICON_LIST_IS_EDITABLE); gtk_container_add (GTK_CONTAINER (scrolled_window), icon_list); g_signal_connect (icon_list, "select_icon", G_CALLBACK (select_icon), NULL); g_signal_connect (icon_list, "unselect_icon", G_CALLBACK (unselect_icon), NULL); gnome_icon_list_set_selection_mode (GNOME_ICON_LIST (icon_list), GTK_SELECTION_EXTENDED); ids = gtk_stock_list_ids (); gnome_icon_list_append_pixbuf (GNOME_ICON_LIST (icon_list), gtk_widget_render_icon (icon_list, GTK_STOCK_OK, GTK_ICON_SIZE_BUTTON, NULL), "slirpe", "What happens if we have a long long line here?"); gnome_icon_list_append_pixbuf (GNOME_ICON_LIST (icon_list), gtk_widget_render_icon (icon_list, GTK_STOCK_OK, GTK_ICON_SIZE_BUTTON, NULL), "slirpe", "What happens if we have a longlonglongword here?"); for (list = ids, i = 0; list; list = list->next, i++) { gchar *name = list->data; if (i > 2) break; gnome_icon_list_append_pixbuf (GNOME_ICON_LIST (icon_list), gtk_widget_render_icon (icon_list, name, GTK_ICON_SIZE_BUTTON, NULL), name, "Sliff! السلام عليكم"); g_free (name); } button = gtk_button_new_from_stock (GTK_STOCK_QUIT); gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0); gtk_widget_show_all (window); gtk_main (); g_object_unref (program); return 0; }