Example #1
0
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);
}
Example #2
0
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;
}