Blame tests/testcombo.c

Packit Service fb6fa5
/* testcombo.c
Packit Service fb6fa5
 * Copyright (C) 2003  Kristian Rietveld
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * This library is free software; you can redistribute it and/or
Packit Service fb6fa5
 * modify it under the terms of the GNU Library General Public
Packit Service fb6fa5
 * License as published by the Free Software Foundation; either
Packit Service fb6fa5
 * version 2 of the License, or (at your option) any later version.
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * This library is distributed in the hope that it will be useful,
Packit Service fb6fa5
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service fb6fa5
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service fb6fa5
 * Library General Public License for more details.
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * You should have received a copy of the GNU Library General Public
Packit Service fb6fa5
 * License along with this library; if not, write to the
Packit Service fb6fa5
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Packit Service fb6fa5
 * Boston, MA 02111-1307, USA.
Packit Service fb6fa5
 */
Packit Service fb6fa5
#include "config.h"
Packit Service fb6fa5
#include <gtk/gtk.h>
Packit Service fb6fa5
Packit Service fb6fa5
#include <string.h>
Packit Service fb6fa5
#include <stdio.h>
Packit Service fb6fa5
Packit Service fb6fa5
/**
Packit Service fb6fa5
 * oh yes, this test app surely has a lot of ugly code
Packit Service fb6fa5
 */
Packit Service fb6fa5
Packit Service fb6fa5
/* grid combo demo */
Packit Service fb6fa5
static GdkPixbuf *
Packit Service fb6fa5
create_color_pixbuf (const char *color)
Packit Service fb6fa5
{
Packit Service fb6fa5
        GdkPixbuf *pixbuf;
Packit Service fb6fa5
        GdkColor col;
Packit Service fb6fa5
Packit Service fb6fa5
        int x;
Packit Service fb6fa5
        int num;
Packit Service fb6fa5
        guchar *pixels, *p;
Packit Service fb6fa5
Packit Service fb6fa5
        if (!gdk_color_parse (color, &col))
Packit Service fb6fa5
                return NULL;
Packit Service fb6fa5
Packit Service fb6fa5
        pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB,
Packit Service fb6fa5
                                 FALSE, 8,
Packit Service fb6fa5
                                 16, 16);
Packit Service fb6fa5
Packit Service fb6fa5
        p = pixels = gdk_pixbuf_get_pixels (pixbuf);
Packit Service fb6fa5
Packit Service fb6fa5
        num = gdk_pixbuf_get_width (pixbuf) *
Packit Service fb6fa5
                gdk_pixbuf_get_height (pixbuf);
Packit Service fb6fa5
Packit Service fb6fa5
        for (x = 0; x < num; x++) {
Packit Service fb6fa5
                p[0] = col.red / 65535.0 * 255;
Packit Service fb6fa5
                p[1] = col.green / 65535.0 * 255;
Packit Service fb6fa5
                p[2] = col.blue / 65535.0 * 255;
Packit Service fb6fa5
                p += 3;
Packit Service fb6fa5
        }
Packit Service fb6fa5
Packit Service fb6fa5
        return pixbuf;
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static GtkWidget *
Packit Service fb6fa5
create_combo_box_grid_demo (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
        GtkWidget *combo;
Packit Service fb6fa5
        GtkTreeIter iter;
Packit Service fb6fa5
        GdkPixbuf *pixbuf;
Packit Service fb6fa5
        GtkCellRenderer *cell = gtk_cell_renderer_pixbuf_new ();
Packit Service fb6fa5
        GtkListStore *store;
Packit Service fb6fa5
Packit Service fb6fa5
        store = gtk_list_store_new (3, GDK_TYPE_PIXBUF, G_TYPE_INT, G_TYPE_INT);
Packit Service fb6fa5
Packit Service fb6fa5
        /* first row */
Packit Service fb6fa5
        pixbuf = create_color_pixbuf ("red");
Packit Service fb6fa5
        gtk_list_store_append (store, &iter);
Packit Service fb6fa5
        gtk_list_store_set (store, &iter,
Packit Service fb6fa5
                            0, pixbuf,
Packit Service fb6fa5
                            1, 1, /* row span */
Packit Service fb6fa5
                            2, 1, /* column span */
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
        g_object_unref (pixbuf);
Packit Service fb6fa5
Packit Service fb6fa5
        pixbuf = create_color_pixbuf ("green");
Packit Service fb6fa5
        gtk_list_store_append (store, &iter);
Packit Service fb6fa5
        gtk_list_store_set (store, &iter,
Packit Service fb6fa5
                            0, pixbuf,
Packit Service fb6fa5
                            1, 1,
Packit Service fb6fa5
                            2, 1,
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
        g_object_unref (pixbuf);
Packit Service fb6fa5
Packit Service fb6fa5
        pixbuf = create_color_pixbuf ("blue");
Packit Service fb6fa5
        gtk_list_store_append (store, &iter);
Packit Service fb6fa5
        gtk_list_store_set (store, &iter,
Packit Service fb6fa5
                            0, pixbuf,
Packit Service fb6fa5
                            1, 1,
Packit Service fb6fa5
                            2, 1,
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
        g_object_unref (pixbuf);
Packit Service fb6fa5
Packit Service fb6fa5
        /* second row */
Packit Service fb6fa5
        pixbuf = create_color_pixbuf ("yellow");
Packit Service fb6fa5
        gtk_list_store_append (store, &iter);
Packit Service fb6fa5
        gtk_list_store_set (store, &iter,
Packit Service fb6fa5
                            0, pixbuf,
Packit Service fb6fa5
                            1, 1,
Packit Service fb6fa5
                            2, 2, /* Span 2 columns */
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
        g_object_unref (pixbuf);
Packit Service fb6fa5
Packit Service fb6fa5
        pixbuf = create_color_pixbuf ("black");
Packit Service fb6fa5
        gtk_list_store_append (store, &iter);
Packit Service fb6fa5
        gtk_list_store_set (store, &iter,
Packit Service fb6fa5
                            0, pixbuf,
Packit Service fb6fa5
                            1, 2, /* Span 2 rows */
Packit Service fb6fa5
                            2, 1,
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
        g_object_unref (pixbuf);
Packit Service fb6fa5
Packit Service fb6fa5
        /* third row */
Packit Service fb6fa5
        pixbuf = create_color_pixbuf ("gray");
Packit Service fb6fa5
        gtk_list_store_append (store, &iter);
Packit Service fb6fa5
        gtk_list_store_set (store, &iter,
Packit Service fb6fa5
                            0, pixbuf,
Packit Service fb6fa5
                            1, 1,
Packit Service fb6fa5
                            2, 1,
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
        g_object_unref (pixbuf);
Packit Service fb6fa5
Packit Service fb6fa5
        pixbuf = create_color_pixbuf ("magenta");
Packit Service fb6fa5
        gtk_list_store_append (store, &iter);
Packit Service fb6fa5
        gtk_list_store_set (store, &iter,
Packit Service fb6fa5
                            0, pixbuf,
Packit Service fb6fa5
                            1, 1,
Packit Service fb6fa5
                            2, 1,
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
        g_object_unref (pixbuf);
Packit Service fb6fa5
Packit Service fb6fa5
        /* Create ComboBox after model to avoid gtk_menu_attach() warnings(?) */
Packit Service fb6fa5
        combo = gtk_combo_box_new_with_model (GTK_TREE_MODEL (store));
Packit Service fb6fa5
        g_object_unref (store);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo),
Packit Service fb6fa5
                                    cell, TRUE);
Packit Service fb6fa5
        gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo),
Packit Service fb6fa5
                                        cell, "pixbuf", 0, NULL);
Packit Service fb6fa5
Packit Service fb6fa5
        /* Set wrap-width != 0 to enforce grid mode */
Packit Service fb6fa5
        gtk_combo_box_set_wrap_width (GTK_COMBO_BOX (combo), 3);
Packit Service fb6fa5
        gtk_combo_box_set_row_span_column (GTK_COMBO_BOX (combo), 1);
Packit Service fb6fa5
        gtk_combo_box_set_column_span_column (GTK_COMBO_BOX (combo), 2);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0);
Packit Service fb6fa5
Packit Service fb6fa5
        return combo;
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
/* blaat */
Packit Service fb6fa5
static GtkTreeModel *
Packit Service fb6fa5
create_tree_blaat (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
        GdkPixbuf *pixbuf;
Packit Service fb6fa5
        GtkWidget *cellview;
Packit Service fb6fa5
        GtkTreeIter iter, iter2;
Packit Service fb6fa5
        GtkTreeStore *store;
Packit Service fb6fa5
Packit Service fb6fa5
        cellview = gtk_cell_view_new ();
Packit Service fb6fa5
Packit Service fb6fa5
	store = gtk_tree_store_new (3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_BOOLEAN);
Packit Service fb6fa5
Packit Service fb6fa5
        pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_DIALOG_WARNING,
Packit Service fb6fa5
                                         GTK_ICON_SIZE_BUTTON, NULL);
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter, NULL);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter,
Packit Service fb6fa5
                            0, pixbuf,
Packit Service fb6fa5
                            1, "gtk-stock-dialog-warning",
Packit Service fb6fa5
			    2, FALSE,
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
        pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_STOP,
Packit Service fb6fa5
                                         GTK_ICON_SIZE_BUTTON, NULL);
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, pixbuf,
Packit Service fb6fa5
                            1, "gtk-stock-stop",
Packit Service fb6fa5
			    2, FALSE,
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
        pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_NEW,
Packit Service fb6fa5
                                         GTK_ICON_SIZE_BUTTON, NULL);
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, pixbuf,
Packit Service fb6fa5
                            1, "gtk-stock-new",
Packit Service fb6fa5
			    2, FALSE,
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
        pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_CLEAR,
Packit Service fb6fa5
                                         GTK_ICON_SIZE_BUTTON, NULL);
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter, NULL);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter,
Packit Service fb6fa5
                            0, pixbuf,
Packit Service fb6fa5
                            1, "gtk-stock-clear",
Packit Service fb6fa5
			    2, FALSE,
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
#if 0
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter, NULL);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter,
Packit Service fb6fa5
                            0, NULL,
Packit Service fb6fa5
                            1, "separator",
Packit Service fb6fa5
			    2, TRUE,
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
#endif
Packit Service fb6fa5
Packit Service fb6fa5
        pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_OPEN,
Packit Service fb6fa5
                                         GTK_ICON_SIZE_BUTTON, NULL);
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter, NULL);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter,
Packit Service fb6fa5
                            0, pixbuf,
Packit Service fb6fa5
                            1, "gtk-stock-open",
Packit Service fb6fa5
			    2, FALSE,
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_widget_destroy (cellview);
Packit Service fb6fa5
Packit Service fb6fa5
        return GTK_TREE_MODEL (store);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static GtkTreeModel *
Packit Service fb6fa5
create_empty_list_blaat (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
        GdkPixbuf *pixbuf;
Packit Service fb6fa5
        GtkWidget *cellview;
Packit Service fb6fa5
        GtkTreeIter iter;
Packit Service fb6fa5
        GtkListStore *store;
Packit Service fb6fa5
Packit Service fb6fa5
        cellview = gtk_cell_view_new ();
Packit Service fb6fa5
Packit Service fb6fa5
        store = gtk_list_store_new (2, GDK_TYPE_PIXBUF, G_TYPE_STRING);
Packit Service fb6fa5
Packit Service fb6fa5
        pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_DIALOG_WARNING,
Packit Service fb6fa5
                                         GTK_ICON_SIZE_BUTTON, NULL);
Packit Service fb6fa5
        gtk_list_store_append (store, &iter);
Packit Service fb6fa5
        gtk_list_store_set (store, &iter,
Packit Service fb6fa5
                            0, pixbuf,
Packit Service fb6fa5
                            1, "gtk-stock-dialog-warning",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_widget_destroy (cellview);
Packit Service fb6fa5
Packit Service fb6fa5
        return GTK_TREE_MODEL (store);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
populate_list_blaat (gpointer data)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkComboBox *combo_box = GTK_COMBO_BOX (data);
Packit Service fb6fa5
  GtkListStore *store;
Packit Service fb6fa5
  GdkPixbuf *pixbuf;
Packit Service fb6fa5
  GtkWidget *cellview;
Packit Service fb6fa5
  GtkTreeIter iter;
Packit Service fb6fa5
  
Packit Service fb6fa5
  store = GTK_LIST_STORE (gtk_combo_box_get_model (combo_box));
Packit Service fb6fa5
Packit Service fb6fa5
  gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter);
Packit Service fb6fa5
Packit Service fb6fa5
  if (gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter))
Packit Service fb6fa5
    return;
Packit Service fb6fa5
Packit Service fb6fa5
  cellview = gtk_cell_view_new ();
Packit Service fb6fa5
  
Packit Service fb6fa5
  pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_STOP,
Packit Service fb6fa5
				   GTK_ICON_SIZE_BUTTON, NULL);
Packit Service fb6fa5
  gtk_list_store_append (store, &iter);			       
Packit Service fb6fa5
  gtk_list_store_set (store, &iter,
Packit Service fb6fa5
		      0, pixbuf,
Packit Service fb6fa5
		      1, "gtk-stock-stop",
Packit Service fb6fa5
		      -1);
Packit Service fb6fa5
  
Packit Service fb6fa5
  pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_NEW,
Packit Service fb6fa5
				   GTK_ICON_SIZE_BUTTON, NULL);
Packit Service fb6fa5
  gtk_list_store_append (store, &iter);			       
Packit Service fb6fa5
  gtk_list_store_set (store, &iter,
Packit Service fb6fa5
		      0, pixbuf,
Packit Service fb6fa5
		      1, "gtk-stock-new",
Packit Service fb6fa5
		      -1);
Packit Service fb6fa5
  
Packit Service fb6fa5
  pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_CLEAR,
Packit Service fb6fa5
				   GTK_ICON_SIZE_BUTTON, NULL);
Packit Service fb6fa5
  gtk_list_store_append (store, &iter);
Packit Service fb6fa5
  gtk_list_store_set (store, &iter,
Packit Service fb6fa5
		      0, pixbuf,
Packit Service fb6fa5
		      1, "gtk-stock-clear",
Packit Service fb6fa5
		      -1);
Packit Service fb6fa5
  
Packit Service fb6fa5
  gtk_list_store_append (store, &iter);
Packit Service fb6fa5
  gtk_list_store_set (store, &iter,
Packit Service fb6fa5
		      0, NULL,
Packit Service fb6fa5
		      1, "separator",
Packit Service fb6fa5
		      -1);
Packit Service fb6fa5
  
Packit Service fb6fa5
  pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_OPEN,
Packit Service fb6fa5
				   GTK_ICON_SIZE_BUTTON, NULL);
Packit Service fb6fa5
  gtk_list_store_append (store, &iter);
Packit Service fb6fa5
  gtk_list_store_set (store, &iter,
Packit Service fb6fa5
		      0, pixbuf,
Packit Service fb6fa5
		      1, "gtk-stock-open",
Packit Service fb6fa5
		      -1);
Packit Service fb6fa5
  
Packit Service fb6fa5
  gtk_widget_destroy (cellview);  
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static GtkTreeModel *
Packit Service fb6fa5
create_list_blaat (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
        GdkPixbuf *pixbuf;
Packit Service fb6fa5
        GtkWidget *cellview;
Packit Service fb6fa5
        GtkTreeIter iter;
Packit Service fb6fa5
        GtkListStore *store;
Packit Service fb6fa5
Packit Service fb6fa5
        cellview = gtk_cell_view_new ();
Packit Service fb6fa5
Packit Service fb6fa5
        store = gtk_list_store_new (2, GDK_TYPE_PIXBUF, G_TYPE_STRING);
Packit Service fb6fa5
Packit Service fb6fa5
        pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_DIALOG_WARNING,
Packit Service fb6fa5
                                         GTK_ICON_SIZE_BUTTON, NULL);
Packit Service fb6fa5
        gtk_list_store_append (store, &iter);
Packit Service fb6fa5
        gtk_list_store_set (store, &iter,
Packit Service fb6fa5
                            0, pixbuf,
Packit Service fb6fa5
                            1, "gtk-stock-dialog-warning",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
        pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_STOP,
Packit Service fb6fa5
                                         GTK_ICON_SIZE_BUTTON, NULL);
Packit Service fb6fa5
        gtk_list_store_append (store, &iter);			       
Packit Service fb6fa5
        gtk_list_store_set (store, &iter,
Packit Service fb6fa5
                            0, pixbuf,
Packit Service fb6fa5
                            1, "gtk-stock-stop",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
        pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_NEW,
Packit Service fb6fa5
                                         GTK_ICON_SIZE_BUTTON, NULL);
Packit Service fb6fa5
        gtk_list_store_append (store, &iter);			       
Packit Service fb6fa5
        gtk_list_store_set (store, &iter,
Packit Service fb6fa5
                            0, pixbuf,
Packit Service fb6fa5
                            1, "gtk-stock-new",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
        pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_CLEAR,
Packit Service fb6fa5
                                         GTK_ICON_SIZE_BUTTON, NULL);
Packit Service fb6fa5
        gtk_list_store_append (store, &iter);
Packit Service fb6fa5
        gtk_list_store_set (store, &iter,
Packit Service fb6fa5
                            0, pixbuf,
Packit Service fb6fa5
                            1, "gtk-stock-clear",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_list_store_append (store, &iter);
Packit Service fb6fa5
        gtk_list_store_set (store, &iter,
Packit Service fb6fa5
                            0, NULL,
Packit Service fb6fa5
                            1, "separator",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
        pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_OPEN,
Packit Service fb6fa5
                                         GTK_ICON_SIZE_BUTTON, NULL);
Packit Service fb6fa5
        gtk_list_store_append (store, &iter);
Packit Service fb6fa5
        gtk_list_store_set (store, &iter,
Packit Service fb6fa5
                            0, pixbuf,
Packit Service fb6fa5
                            1, "gtk-stock-open",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_widget_destroy (cellview);
Packit Service fb6fa5
Packit Service fb6fa5
        return GTK_TREE_MODEL (store);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
/* blaat */
Packit Service fb6fa5
static GtkTreeModel *
Packit Service fb6fa5
create_phylogenetic_tree (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
        GtkTreeIter iter, iter2, iter3;
Packit Service fb6fa5
        GtkTreeStore *store;
Packit Service fb6fa5
Packit Service fb6fa5
	store = gtk_tree_store_new (1,G_TYPE_STRING);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter, NULL);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter,
Packit Service fb6fa5
                            0, "Eubacteria",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Aquifecales",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Thermotogales",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Thermodesulfobacterium",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Thermus-Deinococcus group",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Chloroflecales",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Cyanobacteria",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Firmicutes",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Leptospirillium Group",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Synergistes",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Chlorobium-Flavobacteria group",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Chlamydia-Verrucomicrobia group",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter3, &iter2);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter3,
Packit Service fb6fa5
                            0, "Verrucomicrobia",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter3, &iter2);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter3,
Packit Service fb6fa5
                            0, "Chlamydia",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Flexistipes",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Fibrobacter group",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "spirocheteus",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Proteobacteria",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter3, &iter2);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter3,
Packit Service fb6fa5
                            0, "alpha",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter3, &iter2);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter3,
Packit Service fb6fa5
                            0, "beta",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter3, &iter2);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter3,
Packit Service fb6fa5
                            0, "delta ",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter3, &iter2);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter3,
Packit Service fb6fa5
                            0, "epsilon",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter3, &iter2);  
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter3,
Packit Service fb6fa5
                            0, "gamma ",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter, NULL);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter,
Packit Service fb6fa5
                            0, "Eukaryotes",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Metazoa",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Bilateria",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Myxozoa",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Cnidaria",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Ctenophora",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Placozoa",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Porifera",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "choanoflagellates",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Fungi",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Microsporidia",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Aleveolates",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Stramenopiles",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Rhodophyta",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Viridaeplantae",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "crytomonads et al",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter, NULL);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter,
Packit Service fb6fa5
                            0, "Archaea ",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Korarchaeota",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Crenarchaeota",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);			       
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2,
Packit Service fb6fa5
                            0, "Buryarchaeota",
Packit Service fb6fa5
                            -1);
Packit Service fb6fa5
Packit Service fb6fa5
        return GTK_TREE_MODEL (store);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
/* blaat */
Packit Service fb6fa5
static GtkTreeModel *
Packit Service fb6fa5
create_capital_tree (void)
Packit Service fb6fa5
{
Packit Service fb6fa5
        GtkTreeIter iter, iter2;
Packit Service fb6fa5
        GtkTreeStore *store;
Packit Service fb6fa5
Packit Service fb6fa5
	store = gtk_tree_store_new (1, G_TYPE_STRING);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter, NULL);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter, 0, "A - B", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Albany", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Annapolis", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Atlanta", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Augusta", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Austin", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Baton Rouge", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Bismarck", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Boise", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Boston", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter, NULL);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter, 0, "C - D", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Carson City", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Charleston", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Cheyenne", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Columbia", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Columbus", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Concord", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Denver", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Des Moines", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Dover", -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter, NULL);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter, 0, "E - J", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Frankfort", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Harrisburg", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Hartford", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Helena", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Honolulu", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Indianapolis", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Jackson", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Jefferson City", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Juneau", -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter, NULL);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter, 0, "K - O", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Lansing", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Lincoln", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Little Rock", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Madison", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Montgomery", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Montpelier", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Nashville", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Oklahoma City", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Olympia", -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter, NULL);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter, 0, "P - S", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Phoenix", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Pierre", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Providence", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Raleigh", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Richmond", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Sacramento", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Salem", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Salt Lake City", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Santa Fe", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Springfield", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "St. Paul", -1);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter, NULL);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter, 0, "T - Z", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Tallahassee", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Topeka", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_tree_store_append (store, &iter2, &iter);
Packit Service fb6fa5
        gtk_tree_store_set (store, &iter2, 0, "Trenton", -1);
Packit Service fb6fa5
Packit Service fb6fa5
        return GTK_TREE_MODEL (store);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
capital_sensitive (GtkCellLayout   *cell_layout,
Packit Service fb6fa5
		   GtkCellRenderer *cell,
Packit Service fb6fa5
		   GtkTreeModel    *tree_model,
Packit Service fb6fa5
		   GtkTreeIter     *iter,
Packit Service fb6fa5
		   gpointer         data)
Packit Service fb6fa5
{
Packit Service fb6fa5
  gboolean sensitive;
Packit Service fb6fa5
Packit Service fb6fa5
  sensitive = !gtk_tree_model_iter_has_child (tree_model, iter);
Packit Service fb6fa5
Packit Service fb6fa5
  g_object_set (cell, "sensitive", sensitive, NULL);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static gboolean
Packit Service fb6fa5
capital_animation (gpointer data)
Packit Service fb6fa5
{
Packit Service fb6fa5
  static gint insert_count = 0;
Packit Service fb6fa5
  GtkTreeModel *model = GTK_TREE_MODEL (data);
Packit Service fb6fa5
  GtkTreePath *path;
Packit Service fb6fa5
  GtkTreeIter iter, parent;
Packit Service fb6fa5
Packit Service fb6fa5
  switch (insert_count % 8)
Packit Service fb6fa5
    {
Packit Service fb6fa5
    case 0:
Packit Service fb6fa5
      gtk_tree_store_insert (GTK_TREE_STORE (model), &iter, NULL, 0);
Packit Service fb6fa5
      gtk_tree_store_set (GTK_TREE_STORE (model), 
Packit Service fb6fa5
			  &iter,
Packit Service fb6fa5
			  0, "Europe", -1);
Packit Service fb6fa5
      break;
Packit Service fb6fa5
Packit Service fb6fa5
    case 1:
Packit Service fb6fa5
      path = gtk_tree_path_new_from_indices (0, -1);
Packit Service fb6fa5
      gtk_tree_model_get_iter (model, &parent, path);
Packit Service fb6fa5
      gtk_tree_path_free (path);
Packit Service fb6fa5
      gtk_tree_store_insert (GTK_TREE_STORE (model), &iter, &parent, 0);
Packit Service fb6fa5
      gtk_tree_store_set (GTK_TREE_STORE (model), 
Packit Service fb6fa5
			  &iter,
Packit Service fb6fa5
			  0, "Berlin", -1);
Packit Service fb6fa5
      break;
Packit Service fb6fa5
Packit Service fb6fa5
    case 2:
Packit Service fb6fa5
      path = gtk_tree_path_new_from_indices (0, -1);
Packit Service fb6fa5
      gtk_tree_model_get_iter (model, &parent, path);
Packit Service fb6fa5
      gtk_tree_path_free (path);
Packit Service fb6fa5
      gtk_tree_store_insert (GTK_TREE_STORE (model), &iter, &parent, 1);
Packit Service fb6fa5
      gtk_tree_store_set (GTK_TREE_STORE (model), 
Packit Service fb6fa5
			  &iter,
Packit Service fb6fa5
			  0, "London", -1);
Packit Service fb6fa5
      break;
Packit Service fb6fa5
Packit Service fb6fa5
    case 3:
Packit Service fb6fa5
      path = gtk_tree_path_new_from_indices (0, -1);
Packit Service fb6fa5
      gtk_tree_model_get_iter (model, &parent, path);
Packit Service fb6fa5
      gtk_tree_path_free (path);
Packit Service fb6fa5
      gtk_tree_store_insert (GTK_TREE_STORE (model), &iter, &parent, 2);
Packit Service fb6fa5
      gtk_tree_store_set (GTK_TREE_STORE (model), 
Packit Service fb6fa5
			  &iter,
Packit Service fb6fa5
			  0, "Paris", -1);
Packit Service fb6fa5
      break;
Packit Service fb6fa5
Packit Service fb6fa5
    case 4:
Packit Service fb6fa5
      path = gtk_tree_path_new_from_indices (0, 2, -1);
Packit Service fb6fa5
      gtk_tree_model_get_iter (model, &iter, path);
Packit Service fb6fa5
      gtk_tree_path_free (path);
Packit Service fb6fa5
      gtk_tree_store_remove (GTK_TREE_STORE (model), &iter);
Packit Service fb6fa5
      break;
Packit Service fb6fa5
Packit Service fb6fa5
    case 5:
Packit Service fb6fa5
      path = gtk_tree_path_new_from_indices (0, 1, -1);
Packit Service fb6fa5
      gtk_tree_model_get_iter (model, &iter, path);
Packit Service fb6fa5
      gtk_tree_path_free (path);
Packit Service fb6fa5
      gtk_tree_store_remove (GTK_TREE_STORE (model), &iter);
Packit Service fb6fa5
      break;
Packit Service fb6fa5
Packit Service fb6fa5
    case 6:
Packit Service fb6fa5
      path = gtk_tree_path_new_from_indices (0, 0, -1);
Packit Service fb6fa5
      gtk_tree_model_get_iter (model, &iter, path);
Packit Service fb6fa5
      gtk_tree_path_free (path);
Packit Service fb6fa5
      gtk_tree_store_remove (GTK_TREE_STORE (model), &iter);
Packit Service fb6fa5
      break;
Packit Service fb6fa5
Packit Service fb6fa5
    case 7:
Packit Service fb6fa5
      path = gtk_tree_path_new_from_indices (0, -1);
Packit Service fb6fa5
      gtk_tree_model_get_iter (model, &iter, path);
Packit Service fb6fa5
      gtk_tree_path_free (path);
Packit Service fb6fa5
      gtk_tree_store_remove (GTK_TREE_STORE (model), &iter);
Packit Service fb6fa5
      break;
Packit Service fb6fa5
Packit Service fb6fa5
    default: ;
Packit Service fb6fa5
Packit Service fb6fa5
    }
Packit Service fb6fa5
  insert_count++;
Packit Service fb6fa5
Packit Service fb6fa5
  return TRUE;
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
setup_combo_entry (GtkComboBoxText *combo)
Packit Service fb6fa5
{
Packit Service fb6fa5
  gtk_combo_box_text_append_text (combo,
Packit Service fb6fa5
				   "dum de dum");
Packit Service fb6fa5
  gtk_combo_box_text_append_text (combo,
Packit Service fb6fa5
				   "la la la");
Packit Service fb6fa5
  gtk_combo_box_text_append_text (combo,
Packit Service fb6fa5
				   "la la la dum de dum la la la la la la boom de da la la");
Packit Service fb6fa5
  gtk_combo_box_text_append_text (combo,
Packit Service fb6fa5
				   "bloop");
Packit Service fb6fa5
  gtk_combo_box_text_append_text (combo,
Packit Service fb6fa5
				   "bleep");
Packit Service fb6fa5
  gtk_combo_box_text_append_text (combo,
Packit Service fb6fa5
				   "klaas");
Packit Service fb6fa5
  gtk_combo_box_text_append_text (combo,
Packit Service fb6fa5
				   "klaas0");
Packit Service fb6fa5
  gtk_combo_box_text_append_text (combo,
Packit Service fb6fa5
				   "klaas1");
Packit Service fb6fa5
  gtk_combo_box_text_append_text (combo,
Packit Service fb6fa5
				   "klaas2");
Packit Service fb6fa5
  gtk_combo_box_text_append_text (combo,
Packit Service fb6fa5
				   "klaas3");
Packit Service fb6fa5
  gtk_combo_box_text_append_text (combo,
Packit Service fb6fa5
				   "klaas4");
Packit Service fb6fa5
  gtk_combo_box_text_append_text (combo,
Packit Service fb6fa5
				   "klaas5");
Packit Service fb6fa5
  gtk_combo_box_text_append_text (combo,
Packit Service fb6fa5
				   "klaas6");
Packit Service fb6fa5
  gtk_combo_box_text_append_text (combo,
Packit Service fb6fa5
				   "klaas7");
Packit Service fb6fa5
  gtk_combo_box_text_append_text (combo,
Packit Service fb6fa5
				   "klaas8");
Packit Service fb6fa5
  gtk_combo_box_text_append_text (combo,
Packit Service fb6fa5
				   "klaas9");
Packit Service fb6fa5
  gtk_combo_box_text_append_text (combo,
Packit Service fb6fa5
				   "klaasa");
Packit Service fb6fa5
  gtk_combo_box_text_append_text (combo,
Packit Service fb6fa5
				   "klaasb");
Packit Service fb6fa5
  gtk_combo_box_text_append_text (combo,
Packit Service fb6fa5
				   "klaasc");
Packit Service fb6fa5
  gtk_combo_box_text_append_text (combo,
Packit Service fb6fa5
				   "klaasd");
Packit Service fb6fa5
  gtk_combo_box_text_append_text (combo,
Packit Service fb6fa5
				   "klaase");
Packit Service fb6fa5
  gtk_combo_box_text_append_text (combo,
Packit Service fb6fa5
				   "klaasf");
Packit Service fb6fa5
  gtk_combo_box_text_append_text (combo,
Packit Service fb6fa5
				   "klaas10");
Packit Service fb6fa5
  gtk_combo_box_text_append_text (combo,
Packit Service fb6fa5
				   "klaas11");
Packit Service fb6fa5
  gtk_combo_box_text_append_text (combo,
Packit Service fb6fa5
				   "klaas12");
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
set_sensitive (GtkCellLayout   *cell_layout,
Packit Service fb6fa5
	       GtkCellRenderer *cell,
Packit Service fb6fa5
	       GtkTreeModel    *tree_model,
Packit Service fb6fa5
	       GtkTreeIter     *iter,
Packit Service fb6fa5
	       gpointer         data)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkTreePath *path;
Packit Service fb6fa5
  gint *indices;
Packit Service fb6fa5
  gboolean sensitive;
Packit Service fb6fa5
Packit Service fb6fa5
  path = gtk_tree_model_get_path (tree_model, iter);
Packit Service fb6fa5
  indices = gtk_tree_path_get_indices (path);
Packit Service fb6fa5
  sensitive = indices[0] != 1;
Packit Service fb6fa5
  gtk_tree_path_free (path);
Packit Service fb6fa5
Packit Service fb6fa5
  g_object_set (cell, "sensitive", sensitive, NULL);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static gboolean
Packit Service fb6fa5
is_separator (GtkTreeModel *model,
Packit Service fb6fa5
	      GtkTreeIter  *iter,
Packit Service fb6fa5
	      gpointer      data)
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkTreePath *path;
Packit Service fb6fa5
  gboolean result;
Packit Service fb6fa5
Packit Service fb6fa5
  path = gtk_tree_model_get_path (model, iter);
Packit Service fb6fa5
  result = gtk_tree_path_get_indices (path)[0] == 4;
Packit Service fb6fa5
  gtk_tree_path_free (path);
Packit Service fb6fa5
Packit Service fb6fa5
  return result;
Packit Service fb6fa5
  
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
static void
Packit Service fb6fa5
displayed_row_changed (GtkComboBox *combo,
Packit Service fb6fa5
                       GtkCellView *cell)
Packit Service fb6fa5
{
Packit Service fb6fa5
  gint row;
Packit Service fb6fa5
  GtkTreePath *path;
Packit Service fb6fa5
Packit Service fb6fa5
  row = gtk_combo_box_get_active (combo);
Packit Service fb6fa5
  path = gtk_tree_path_new_from_indices (row, -1);
Packit Service fb6fa5
  gtk_cell_view_set_displayed_row (cell, path);
Packit Service fb6fa5
  gtk_tree_path_free (path);
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
int
Packit Service fb6fa5
main (int argc, char **argv)
Packit Service fb6fa5
{
Packit Service fb6fa5
        GtkWidget *window, *cellview, *mainbox;
Packit Service fb6fa5
        GtkWidget *combobox, *comboboxtext, *comboboxgrid;
Packit Service fb6fa5
        GtkWidget *tmp, *boom;
Packit Service fb6fa5
        GtkCellRenderer *renderer;
Packit Service fb6fa5
        GdkPixbuf *pixbuf;
Packit Service fb6fa5
        GtkTreeModel *model;
Packit Service fb6fa5
	GtkTreePath *path;
Packit Service fb6fa5
	GtkTreeIter iter;
Packit Service fb6fa5
        GdkColor color;
Packit Service fb6fa5
        gint i;
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_init (&argc, &argv);
Packit Service fb6fa5
Packit Service fb6fa5
	if (g_getenv ("RTL"))
Packit Service fb6fa5
	  gtk_widget_set_default_direction (GTK_TEXT_DIR_RTL);
Packit Service fb6fa5
Packit Service fb6fa5
        window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
Packit Service fb6fa5
        gtk_container_set_border_width (GTK_CONTAINER (window), 5);
Packit Service fb6fa5
        g_signal_connect (window, "destroy", gtk_main_quit, NULL);
Packit Service fb6fa5
Packit Service fb6fa5
        mainbox = gtk_vbox_new (FALSE, 2);
Packit Service fb6fa5
        gtk_container_add (GTK_CONTAINER (window), mainbox);
Packit Service fb6fa5
Packit Service fb6fa5
        /* GtkCellView */
Packit Service fb6fa5
        tmp = gtk_frame_new ("GtkCellView");
Packit Service fb6fa5
        gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0);
Packit Service fb6fa5
Packit Service fb6fa5
        boom = gtk_vbox_new (FALSE, 0);
Packit Service fb6fa5
        gtk_container_set_border_width (GTK_CONTAINER (boom), 5);
Packit Service fb6fa5
        gtk_container_add (GTK_CONTAINER (tmp), boom);
Packit Service fb6fa5
Packit Service fb6fa5
        cellview = gtk_cell_view_new ();
Packit Service fb6fa5
        renderer = gtk_cell_renderer_pixbuf_new ();
Packit Service fb6fa5
        pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_DIALOG_WARNING,
Packit Service fb6fa5
                                         GTK_ICON_SIZE_BUTTON, NULL);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (cellview),
Packit Service fb6fa5
                                    renderer,
Packit Service fb6fa5
                                    FALSE);
Packit Service fb6fa5
        g_object_set (renderer, "pixbuf", pixbuf, NULL);
Packit Service fb6fa5
Packit Service fb6fa5
        renderer = gtk_cell_renderer_text_new ();
Packit Service fb6fa5
        gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (cellview),
Packit Service fb6fa5
                                    renderer,
Packit Service fb6fa5
                                    TRUE);
Packit Service fb6fa5
        g_object_set (renderer, "text", "la la la", NULL);
Packit Service fb6fa5
        gtk_container_add (GTK_CONTAINER (boom), cellview);
Packit Service fb6fa5
Packit Service fb6fa5
        /* GtkComboBox list */
Packit Service fb6fa5
        tmp = gtk_frame_new ("GtkComboBox (list)");
Packit Service fb6fa5
        gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0);
Packit Service fb6fa5
Packit Service fb6fa5
        boom = gtk_vbox_new (FALSE, 0);
Packit Service fb6fa5
        gtk_container_set_border_width (GTK_CONTAINER (boom), 5);
Packit Service fb6fa5
        gtk_container_add (GTK_CONTAINER (tmp), boom);
Packit Service fb6fa5
Packit Service fb6fa5
        model = create_list_blaat ();
Packit Service fb6fa5
        combobox = gtk_combo_box_new_with_model (model);
Packit Service fb6fa5
	gtk_combo_box_set_add_tearoffs (GTK_COMBO_BOX (combobox), TRUE);
Packit Service fb6fa5
        g_object_unref (model);
Packit Service fb6fa5
        gtk_container_add (GTK_CONTAINER (boom), combobox);
Packit Service fb6fa5
Packit Service fb6fa5
        renderer = gtk_cell_renderer_pixbuf_new ();
Packit Service fb6fa5
        gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combobox),
Packit Service fb6fa5
                                    renderer,
Packit Service fb6fa5
                                    FALSE);
Packit Service fb6fa5
        gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combobox), renderer,
Packit Service fb6fa5
                                        "pixbuf", 0,
Packit Service fb6fa5
                                        NULL);
Packit Service fb6fa5
	gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combobox),
Packit Service fb6fa5
					    renderer,
Packit Service fb6fa5
					    set_sensitive,
Packit Service fb6fa5
					    NULL, NULL);
Packit Service fb6fa5
Packit Service fb6fa5
        renderer = gtk_cell_renderer_text_new ();
Packit Service fb6fa5
        gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combobox),
Packit Service fb6fa5
                                    renderer,
Packit Service fb6fa5
                                    TRUE);
Packit Service fb6fa5
        gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combobox), renderer,
Packit Service fb6fa5
                                        "text", 1,
Packit Service fb6fa5
                                        NULL);
Packit Service fb6fa5
	gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combobox),
Packit Service fb6fa5
					    renderer,
Packit Service fb6fa5
					    set_sensitive,
Packit Service fb6fa5
					    NULL, NULL);
Packit Service fb6fa5
	gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (combobox), 
Packit Service fb6fa5
					      is_separator, NULL, NULL);
Packit Service fb6fa5
						
Packit Service fb6fa5
        gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), 0);
Packit Service fb6fa5
Packit Service fb6fa5
        /* GtkComboBox dynamic list */
Packit Service fb6fa5
        tmp = gtk_frame_new ("GtkComboBox (dynamic list)");
Packit Service fb6fa5
        gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0);
Packit Service fb6fa5
Packit Service fb6fa5
        boom = gtk_vbox_new (FALSE, 0);
Packit Service fb6fa5
        gtk_container_set_border_width (GTK_CONTAINER (boom), 5);
Packit Service fb6fa5
        gtk_container_add (GTK_CONTAINER (tmp), boom);
Packit Service fb6fa5
Packit Service fb6fa5
        model = create_empty_list_blaat ();
Packit Service fb6fa5
        combobox = gtk_combo_box_new_with_model (model);
Packit Service fb6fa5
	g_signal_connect (combobox, "notify::popup-shown", 
Packit Service fb6fa5
			  G_CALLBACK (populate_list_blaat), combobox);
Packit Service fb6fa5
Packit Service fb6fa5
	gtk_combo_box_set_add_tearoffs (GTK_COMBO_BOX (combobox), TRUE);
Packit Service fb6fa5
        g_object_unref (model);
Packit Service fb6fa5
        gtk_container_add (GTK_CONTAINER (boom), combobox);
Packit Service fb6fa5
Packit Service fb6fa5
        renderer = gtk_cell_renderer_pixbuf_new ();
Packit Service fb6fa5
        gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combobox),
Packit Service fb6fa5
                                    renderer,
Packit Service fb6fa5
                                    FALSE);
Packit Service fb6fa5
        gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combobox), renderer,
Packit Service fb6fa5
                                        "pixbuf", 0,
Packit Service fb6fa5
                                        NULL);
Packit Service fb6fa5
	gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combobox),
Packit Service fb6fa5
					    renderer,
Packit Service fb6fa5
					    set_sensitive,
Packit Service fb6fa5
					    NULL, NULL);
Packit Service fb6fa5
Packit Service fb6fa5
        renderer = gtk_cell_renderer_text_new ();
Packit Service fb6fa5
        gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combobox),
Packit Service fb6fa5
                                    renderer,
Packit Service fb6fa5
                                    TRUE);
Packit Service fb6fa5
        gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combobox), renderer,
Packit Service fb6fa5
                                        "text", 1,
Packit Service fb6fa5
                                        NULL);
Packit Service fb6fa5
	gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combobox),
Packit Service fb6fa5
					    renderer,
Packit Service fb6fa5
					    set_sensitive,
Packit Service fb6fa5
					    NULL, NULL);
Packit Service fb6fa5
	gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (combobox), 
Packit Service fb6fa5
					      is_separator, NULL, NULL);
Packit Service fb6fa5
						
Packit Service fb6fa5
        gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), 0);
Packit Service fb6fa5
	gtk_combo_box_set_title (GTK_COMBO_BOX (combobox), "Dynamic list");
Packit Service fb6fa5
Packit Service fb6fa5
        /* GtkComboBox custom entry */
Packit Service fb6fa5
        tmp = gtk_frame_new ("GtkComboBox (custom)");
Packit Service fb6fa5
        gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0);
Packit Service fb6fa5
Packit Service fb6fa5
        boom = gtk_vbox_new (FALSE, 0);
Packit Service fb6fa5
        gtk_container_set_border_width (GTK_CONTAINER (boom), 5);
Packit Service fb6fa5
        gtk_container_add (GTK_CONTAINER (tmp), boom);
Packit Service fb6fa5
Packit Service fb6fa5
        model = create_list_blaat ();
Packit Service fb6fa5
        combobox = gtk_combo_box_new_with_model (model);
Packit Service fb6fa5
	gtk_combo_box_set_add_tearoffs (GTK_COMBO_BOX (combobox), TRUE);
Packit Service fb6fa5
        g_object_unref (model);
Packit Service fb6fa5
        gtk_container_add (GTK_CONTAINER (boom), combobox);
Packit Service fb6fa5
Packit Service fb6fa5
        renderer = gtk_cell_renderer_pixbuf_new ();
Packit Service fb6fa5
        gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combobox),
Packit Service fb6fa5
                                    renderer,
Packit Service fb6fa5
                                    FALSE);
Packit Service fb6fa5
        gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combobox), renderer,
Packit Service fb6fa5
                                        "pixbuf", 0,
Packit Service fb6fa5
                                        NULL);
Packit Service fb6fa5
	gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combobox),
Packit Service fb6fa5
					    renderer,
Packit Service fb6fa5
					    set_sensitive,
Packit Service fb6fa5
					    NULL, NULL);
Packit Service fb6fa5
Packit Service fb6fa5
        renderer = gtk_cell_renderer_text_new ();
Packit Service fb6fa5
        gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combobox),
Packit Service fb6fa5
                                    renderer,
Packit Service fb6fa5
                                    TRUE);
Packit Service fb6fa5
        gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combobox), renderer,
Packit Service fb6fa5
                                        "text", 1,
Packit Service fb6fa5
                                        NULL);
Packit Service fb6fa5
	gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combobox),
Packit Service fb6fa5
					    renderer,
Packit Service fb6fa5
					    set_sensitive,
Packit Service fb6fa5
					    NULL, NULL);
Packit Service fb6fa5
	gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (combobox), 
Packit Service fb6fa5
					      is_separator, NULL, NULL);
Packit Service fb6fa5
						
Packit Service fb6fa5
        gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), 0);
Packit Service fb6fa5
Packit Service fb6fa5
        tmp = gtk_cell_view_new ();
Packit Service fb6fa5
        gtk_widget_show (tmp);
Packit Service fb6fa5
        gtk_cell_view_set_model (GTK_CELL_VIEW (tmp), model);
Packit Service fb6fa5
Packit Service fb6fa5
        renderer = gtk_cell_renderer_text_new ();
Packit Service fb6fa5
        gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (tmp), renderer, TRUE);
Packit Service fb6fa5
        gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (tmp), renderer,
Packit Service fb6fa5
                                        "text", 1,
Packit Service fb6fa5
                                        NULL);
Packit Service fb6fa5
        color.red = 0xffff;
Packit Service fb6fa5
        color.blue = 0xffff;
Packit Service fb6fa5
        color.green = 0;
Packit Service fb6fa5
        gtk_cell_view_set_background_color (GTK_CELL_VIEW (tmp), &color;;
Packit Service fb6fa5
        displayed_row_changed (GTK_COMBO_BOX (combobox), GTK_CELL_VIEW (tmp));
Packit Service fb6fa5
        g_signal_connect (combobox, "changed", G_CALLBACK (displayed_row_changed), tmp); 
Packit Service fb6fa5
           
Packit Service fb6fa5
        gtk_container_add (GTK_CONTAINER (combobox), tmp);
Packit Service fb6fa5
Packit Service fb6fa5
        /* GtkComboBox tree */
Packit Service fb6fa5
        tmp = gtk_frame_new ("GtkComboBox (tree)");
Packit Service fb6fa5
        gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0);
Packit Service fb6fa5
Packit Service fb6fa5
        boom = gtk_vbox_new (FALSE, 0);
Packit Service fb6fa5
        gtk_container_set_border_width (GTK_CONTAINER (boom), 5);
Packit Service fb6fa5
        gtk_container_add (GTK_CONTAINER (tmp), boom);
Packit Service fb6fa5
Packit Service fb6fa5
        model = create_tree_blaat ();
Packit Service fb6fa5
        combobox = gtk_combo_box_new_with_model (model);
Packit Service fb6fa5
	gtk_combo_box_set_add_tearoffs (GTK_COMBO_BOX (combobox), TRUE);
Packit Service fb6fa5
        g_object_unref (model);
Packit Service fb6fa5
        gtk_container_add (GTK_CONTAINER (boom), combobox);
Packit Service fb6fa5
Packit Service fb6fa5
        renderer = gtk_cell_renderer_pixbuf_new ();
Packit Service fb6fa5
        gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combobox),
Packit Service fb6fa5
                                    renderer,
Packit Service fb6fa5
                                    FALSE);
Packit Service fb6fa5
        gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combobox), renderer,
Packit Service fb6fa5
                                        "pixbuf", 0,
Packit Service fb6fa5
                                        NULL);
Packit Service fb6fa5
	gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combobox),
Packit Service fb6fa5
					    renderer,
Packit Service fb6fa5
					    set_sensitive,
Packit Service fb6fa5
					    NULL, NULL);
Packit Service fb6fa5
Packit Service fb6fa5
        renderer = gtk_cell_renderer_text_new ();
Packit Service fb6fa5
        gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combobox),
Packit Service fb6fa5
                                    renderer,
Packit Service fb6fa5
                                    TRUE);
Packit Service fb6fa5
        gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combobox), renderer,
Packit Service fb6fa5
                                        "text", 1,
Packit Service fb6fa5
                                        NULL);
Packit Service fb6fa5
	gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combobox),
Packit Service fb6fa5
					    renderer,
Packit Service fb6fa5
					    set_sensitive,
Packit Service fb6fa5
					    NULL, NULL);
Packit Service fb6fa5
	gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (combobox), 
Packit Service fb6fa5
					      is_separator, NULL, NULL);
Packit Service fb6fa5
						
Packit Service fb6fa5
        gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), 0);
Packit Service fb6fa5
#if 0
Packit Service fb6fa5
	g_timeout_add (1000, (GSourceFunc) animation_timer, model);
Packit Service fb6fa5
#endif
Packit Service fb6fa5
Packit Service fb6fa5
        /* GtkComboBox (grid mode) */
Packit Service fb6fa5
        tmp = gtk_frame_new ("GtkComboBox (grid mode)");
Packit Service fb6fa5
        gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0);
Packit Service fb6fa5
Packit Service fb6fa5
        boom = gtk_vbox_new (FALSE, 0);
Packit Service fb6fa5
        gtk_container_set_border_width (GTK_CONTAINER (boom), 5);
Packit Service fb6fa5
        gtk_container_add (GTK_CONTAINER (tmp), boom);
Packit Service fb6fa5
Packit Service fb6fa5
        comboboxgrid = create_combo_box_grid_demo ();
Packit Service fb6fa5
        gtk_box_pack_start (GTK_BOX (boom), comboboxgrid, FALSE, FALSE, 0);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        /* GtkComboBoxEntry */
Packit Service fb6fa5
        tmp = gtk_frame_new ("GtkComboBox with entry");
Packit Service fb6fa5
        gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0);
Packit Service fb6fa5
Packit Service fb6fa5
        boom = gtk_vbox_new (FALSE, 0);
Packit Service fb6fa5
        gtk_container_set_border_width (GTK_CONTAINER (boom), 5);
Packit Service fb6fa5
        gtk_container_add (GTK_CONTAINER (tmp), boom);
Packit Service fb6fa5
Packit Service fb6fa5
        comboboxtext = gtk_combo_box_text_new_with_entry ();
Packit Service fb6fa5
        setup_combo_entry (GTK_COMBO_BOX_TEXT (comboboxtext));
Packit Service fb6fa5
        gtk_container_add (GTK_CONTAINER (boom), comboboxtext);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        /* Phylogenetic tree */
Packit Service fb6fa5
        tmp = gtk_frame_new ("What are you ?");
Packit Service fb6fa5
        gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0);
Packit Service fb6fa5
Packit Service fb6fa5
        boom = gtk_vbox_new (FALSE, 0);
Packit Service fb6fa5
        gtk_container_set_border_width (GTK_CONTAINER (boom), 5);
Packit Service fb6fa5
        gtk_container_add (GTK_CONTAINER (tmp), boom);
Packit Service fb6fa5
Packit Service fb6fa5
        model = create_phylogenetic_tree ();
Packit Service fb6fa5
        combobox = gtk_combo_box_new_with_model (model);
Packit Service fb6fa5
	gtk_combo_box_set_add_tearoffs (GTK_COMBO_BOX (combobox), TRUE);
Packit Service fb6fa5
        g_object_unref (model);
Packit Service fb6fa5
        gtk_container_add (GTK_CONTAINER (boom), combobox);
Packit Service fb6fa5
Packit Service fb6fa5
        renderer = gtk_cell_renderer_text_new ();
Packit Service fb6fa5
        gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combobox),
Packit Service fb6fa5
                                    renderer,
Packit Service fb6fa5
                                    TRUE);
Packit Service fb6fa5
        gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combobox), renderer,
Packit Service fb6fa5
                                        "text", 0,
Packit Service fb6fa5
                                        NULL);
Packit Service fb6fa5
	
Packit Service fb6fa5
        gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), 0);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
        /* Capitals */
Packit Service fb6fa5
        tmp = gtk_frame_new ("Where are you ?");
Packit Service fb6fa5
        gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0);
Packit Service fb6fa5
Packit Service fb6fa5
        boom = gtk_vbox_new (FALSE, 0);
Packit Service fb6fa5
        gtk_container_set_border_width (GTK_CONTAINER (boom), 5);
Packit Service fb6fa5
        gtk_container_add (GTK_CONTAINER (tmp), boom);
Packit Service fb6fa5
Packit Service fb6fa5
        model = create_capital_tree ();
Packit Service fb6fa5
	combobox = gtk_combo_box_new_with_model (model);
Packit Service fb6fa5
	gtk_combo_box_set_add_tearoffs (GTK_COMBO_BOX (combobox), TRUE);
Packit Service fb6fa5
        g_object_unref (model);
Packit Service fb6fa5
        gtk_container_add (GTK_CONTAINER (boom), combobox);
Packit Service fb6fa5
        renderer = gtk_cell_renderer_text_new ();
Packit Service fb6fa5
        gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combobox),
Packit Service fb6fa5
                                    renderer,
Packit Service fb6fa5
                                    TRUE);
Packit Service fb6fa5
        gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combobox), renderer,
Packit Service fb6fa5
                                        "text", 0,
Packit Service fb6fa5
                                        NULL);
Packit Service fb6fa5
	gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combobox),
Packit Service fb6fa5
					    renderer,
Packit Service fb6fa5
					    capital_sensitive,
Packit Service fb6fa5
					    NULL, NULL);
Packit Service fb6fa5
	path = gtk_tree_path_new_from_indices (0, 8, -1);
Packit Service fb6fa5
	gtk_tree_model_get_iter (model, &iter, path);
Packit Service fb6fa5
	gtk_tree_path_free (path);
Packit Service fb6fa5
        gtk_combo_box_set_active_iter (GTK_COMBO_BOX (combobox), &iter);
Packit Service fb6fa5
Packit Service fb6fa5
        tmp = gtk_frame_new ("Looong");
Packit Service fb6fa5
        gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0);
Packit Service fb6fa5
        combobox = gtk_combo_box_text_new ();
Packit Service fb6fa5
        for (i = 0; i < 200; i++)
Packit Service fb6fa5
          {
Packit Service fb6fa5
            gchar *text = g_strdup_printf ("Item %d", i);
Packit Service fb6fa5
            gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combobox), text);
Packit Service fb6fa5
            g_free (text);
Packit Service fb6fa5
          }
Packit Service fb6fa5
        gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), 53);
Packit Service fb6fa5
        gtk_container_add (GTK_CONTAINER (tmp), combobox);
Packit Service fb6fa5
Packit Service fb6fa5
#if 1
Packit Service fb6fa5
	gdk_threads_add_timeout (1000, (GSourceFunc) capital_animation, model);
Packit Service fb6fa5
#endif
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_widget_show_all (window);
Packit Service fb6fa5
Packit Service fb6fa5
        gtk_main ();
Packit Service fb6fa5
Packit Service fb6fa5
        return 0;
Packit Service fb6fa5
}
Packit Service fb6fa5
Packit Service fb6fa5
/* vim:expandtab
Packit Service fb6fa5
 */