diff options
Diffstat (limited to 'tests/test-slice.c')
-rw-r--r-- | tests/test-slice.c | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/tests/test-slice.c b/tests/test-slice.c new file mode 100644 index 0000000..b7d6f1c --- /dev/null +++ b/tests/test-slice.c @@ -0,0 +1,83 @@ +#include <gtk/gtk.h> +#include "owltreemodelslice.h" + +static GtkTreeModel * +create_tree (void) +{ + GtkTreeModel *model; + GtkTreeIter iter, child; + GtkIconTheme *icons; + + icons = gtk_icon_theme_get_default (); + + model = (GtkTreeModel*)gtk_tree_store_new (2, GDK_TYPE_PIXBUF, G_TYPE_STRING); + gtk_tree_store_append (GTK_TREE_STORE (model), &iter, NULL); + gtk_tree_store_set (GTK_TREE_STORE (model), &iter, + 0, gtk_icon_theme_load_icon (icons, "gnome-applications", 48, 0, NULL), + 1, "Applications", + -1); + gtk_tree_store_append (GTK_TREE_STORE (model), &child, &iter); + gtk_tree_store_set (GTK_TREE_STORE (model), &child, + 0, gtk_icon_theme_load_icon (icons, "sound-juicer", 48, 0, NULL), + 1, "Sound Juicer", + -1); + gtk_tree_store_append (GTK_TREE_STORE (model), &child, &iter); + gtk_tree_store_set (GTK_TREE_STORE (model), &child, + 0, gtk_icon_theme_load_icon (icons, "gnome-terminal", 48, 0, NULL), + 1, "Terminal", + -1); + gtk_tree_store_append (GTK_TREE_STORE (model), &child, &iter); + gtk_tree_store_set (GTK_TREE_STORE (model), &child, + 0, gtk_icon_theme_load_icon (icons, "web-browser", 48, 0, NULL), + 1, "Web Browser", + -1); + + gtk_tree_store_append (GTK_TREE_STORE (model), &iter, NULL); + gtk_tree_store_set (GTK_TREE_STORE (model), &iter, + 0, gtk_icon_theme_load_icon (icons, "gnome-settings", 48, 0, NULL), + 1, "Preferences", + -1); + + return model; +} + +int +main(int argc, char ** argv) +{ + GtkWidget *window, *box, *treeview, *iconview; + GtkTreeModel *model, *slicer; + GtkTreeViewColumn *column; + + gtk_init (&argc, &argv); + + model = create_tree (); + slicer = owl_tree_model_slice_new (model, gtk_tree_path_new_first()); + + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + g_signal_connect (window, "destroy", gtk_main_quit, NULL); + box = gtk_hbox_new (FALSE, 6); + + treeview = gtk_tree_view_new_with_model (model); + column = gtk_tree_view_column_new_with_attributes ("Icon", + gtk_cell_renderer_pixbuf_new (), + "pixbuf", 0, NULL); + gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); + column = gtk_tree_view_column_new_with_attributes ("String", + gtk_cell_renderer_text_new (), + "text", 1, NULL); + gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); + + iconview = gtk_icon_view_new_with_model (slicer); + gtk_icon_view_set_pixbuf_column (GTK_ICON_VIEW (iconview), 0); + gtk_icon_view_set_text_column (GTK_ICON_VIEW (iconview), 1); + + gtk_container_add (GTK_CONTAINER (box), treeview); + gtk_container_add (GTK_CONTAINER (box), iconview); + gtk_container_add (GTK_CONTAINER (window), box); + + gtk_widget_show_all (window); + + gtk_main (); + + return 0; +} |