+/* blaat */
+static GtkTreeModel *
+create_phylogenetic_tree ()
+{
+ GtkTreeIter iter, iter2, iter3;
+ GtkTreeStore *store;
+
+ store = gtk_tree_store_new (1,G_TYPE_STRING);
+
+ gtk_tree_store_append (store, &iter, NULL);
+ gtk_tree_store_set (store, &iter,
+ 0, "Eubacteria",
+ -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Aquifecales",
+ -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Thermotogales",
+ -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Thermodesulfobacterium",
+ -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Thermus-Deinococcus group",
+ -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Chloroflecales",
+ -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Cyanobacteria",
+ -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Firmicutes",
+ -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Leptospirillium Group",
+ -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Synergistes",
+ -1);
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Chlorobium-Flavobacteria group",
+ -1);
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Chlamydia-Verrucomicrobia group",
+ -1);
+
+ gtk_tree_store_append (store, &iter3, &iter2);
+ gtk_tree_store_set (store, &iter3,
+ 0, "Verrucomicrobia",
+ -1);
+ gtk_tree_store_append (store, &iter3, &iter2);
+ gtk_tree_store_set (store, &iter3,
+ 0, "Chlamydia",
+ -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Flexistipes",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Fibrobacter group",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "spirocheteus",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Proteobacteria",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter3, &iter2);
+ gtk_tree_store_set (store, &iter3,
+ 0, "alpha",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter3, &iter2);
+ gtk_tree_store_set (store, &iter3,
+ 0, "beta",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter3, &iter2);
+ gtk_tree_store_set (store, &iter3,
+ 0, "delta ",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter3, &iter2);
+ gtk_tree_store_set (store, &iter3,
+ 0, "epsilon",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter3, &iter2);
+ gtk_tree_store_set (store, &iter3,
+ 0, "gamma ",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter, NULL);
+ gtk_tree_store_set (store, &iter,
+ 0, "Eukaryotes",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Metazoa",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Bilateria",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Myxozoa",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Cnidaria",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Ctenophora",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Placozoa",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Porifera",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "choanoflagellates",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Fungi",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Microsporidia",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Aleveolates",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Stramenopiles",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Rhodophyta",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Viridaeplantae",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "crytomonads et al",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter, NULL);
+ gtk_tree_store_set (store, &iter,
+ 0, "Archaea ",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Korarchaeota",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Crenarchaeota",
+ -1);
+
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2,
+ 0, "Buryarchaeota",
+ -1);
+
+ return GTK_TREE_MODEL (store);
+}
+
+
+/* blaat */
+static GtkTreeModel *
+create_capital_tree ()
+{
+ GtkTreeIter iter, iter2;
+ GtkTreeStore *store;
+
+ store = gtk_tree_store_new (1, G_TYPE_STRING);
+
+ gtk_tree_store_append (store, &iter, NULL);
+ gtk_tree_store_set (store, &iter, 0, "A - B", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Albany", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Annapolis", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Atlanta", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Augusta", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Austin", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Baton Rouge", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Bismarck", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Boise", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Boston", -1);
+
+ gtk_tree_store_append (store, &iter, NULL);
+ gtk_tree_store_set (store, &iter, 0, "C - D", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Carson City", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Charleston", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Cheyenne", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Columbia", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Columbus", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Concord", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Denver", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Des Moines", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Dover", -1);
+
+
+ gtk_tree_store_append (store, &iter, NULL);
+ gtk_tree_store_set (store, &iter, 0, "E - J", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Frankfort", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Harrisburg", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Hartford", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Helena", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Honolulu", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Indianapolis", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Jackson", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Jefferson City", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Juneau", -1);
+
+
+ gtk_tree_store_append (store, &iter, NULL);
+ gtk_tree_store_set (store, &iter, 0, "K - O", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Lansing", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Lincoln", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Little Rock", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Madison", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Montgomery", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Montpelier", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Nashville", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Oklahoma City", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Olympia", -1);
+
+
+ gtk_tree_store_append (store, &iter, NULL);
+ gtk_tree_store_set (store, &iter, 0, "P - S", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Phoenix", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Pierre", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Providence", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Raleigh", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Richmond", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Sacramento", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Salem", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Salt Lake City", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Santa Fe", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Springfield", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "St. Paul", -1);
+
+
+ gtk_tree_store_append (store, &iter, NULL);
+ gtk_tree_store_set (store, &iter, 0, "T - Z", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Tallahassee", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Topeka", -1);
+
+ gtk_tree_store_append (store, &iter2, &iter);
+ gtk_tree_store_set (store, &iter2, 0, "Trenton", -1);
+
+ return GTK_TREE_MODEL (store);
+}
+
+static void
+capital_sensitive (GtkCellLayout *cell_layout,
+ GtkCellRenderer *cell,
+ GtkTreeModel *tree_model,
+ GtkTreeIter *iter,
+ gpointer data)
+{
+ gboolean sensitive;
+
+ sensitive = !gtk_tree_model_iter_has_child (tree_model, iter);
+
+ g_object_set (cell, "sensitive", sensitive, NULL);
+}
+
+static gboolean
+capital_animation (gpointer data)
+{
+ static gint insert_count = 0;
+ GtkTreeModel *model = GTK_TREE_MODEL (data);
+ GtkTreePath *path;
+ GtkTreeIter iter, parent;
+
+ switch (insert_count % 8)
+ {
+ case 0:
+ gtk_tree_store_insert (GTK_TREE_STORE (model), &iter, NULL, 0);
+ gtk_tree_store_set (GTK_TREE_STORE (model),
+ &iter,
+ 0, "Europe", -1);
+ break;
+
+ case 1:
+ path = gtk_tree_path_new_from_indices (0, -1);
+ gtk_tree_model_get_iter (model, &parent, path);
+ gtk_tree_path_free (path);
+ gtk_tree_store_insert (GTK_TREE_STORE (model), &iter, &parent, 0);
+ gtk_tree_store_set (GTK_TREE_STORE (model),
+ &iter,
+ 0, "Berlin", -1);
+ break;
+
+ case 2:
+ path = gtk_tree_path_new_from_indices (0, -1);
+ gtk_tree_model_get_iter (model, &parent, path);
+ gtk_tree_path_free (path);
+ gtk_tree_store_insert (GTK_TREE_STORE (model), &iter, &parent, 1);
+ gtk_tree_store_set (GTK_TREE_STORE (model),
+ &iter,
+ 0, "London", -1);
+ break;
+
+ case 3:
+ path = gtk_tree_path_new_from_indices (0, -1);
+ gtk_tree_model_get_iter (model, &parent, path);
+ gtk_tree_path_free (path);
+ gtk_tree_store_insert (GTK_TREE_STORE (model), &iter, &parent, 2);
+ gtk_tree_store_set (GTK_TREE_STORE (model),
+ &iter,
+ 0, "Paris", -1);
+ break;
+
+ case 4:
+ path = gtk_tree_path_new_from_indices (0, 2, -1);
+ gtk_tree_model_get_iter (model, &iter, path);
+ gtk_tree_path_free (path);
+ gtk_tree_store_remove (GTK_TREE_STORE (model), &iter);
+ break;
+
+ case 5:
+ path = gtk_tree_path_new_from_indices (0, 1, -1);
+ gtk_tree_model_get_iter (model, &iter, path);
+ gtk_tree_path_free (path);
+ gtk_tree_store_remove (GTK_TREE_STORE (model), &iter);
+ break;
+
+ case 6:
+ path = gtk_tree_path_new_from_indices (0, 0, -1);
+ gtk_tree_model_get_iter (model, &iter, path);
+ gtk_tree_path_free (path);
+ gtk_tree_store_remove (GTK_TREE_STORE (model), &iter);
+ break;
+
+ case 7:
+ path = gtk_tree_path_new_from_indices (0, -1);
+ gtk_tree_model_get_iter (model, &iter, path);
+ gtk_tree_path_free (path);
+ gtk_tree_store_remove (GTK_TREE_STORE (model), &iter);
+ break;
+
+ default: ;
+
+ }
+ insert_count++;
+
+ return TRUE;
+}
+