8 * oh yes, this test app surely has a lot of ugly code
13 create_color_pixbuf (const char *color)
23 if (!gdk_color_parse (color, &col))
26 pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB,
30 rowstride = gdk_pixbuf_get_rowstride (pixbuf);
31 p = pixels = gdk_pixbuf_get_pixels (pixbuf);
33 num = gdk_pixbuf_get_width (pixbuf) *
34 gdk_pixbuf_get_height (pixbuf);
36 for (x = 0; x < num; x++) {
37 p[0] = col.red / 65535 * 255;
38 p[1] = col.green / 65535 * 255;
39 p[2] = col.blue / 65535 * 255;
47 create_combo_box_grid_demo (void)
51 GtkCellRenderer *cell = gtk_cell_renderer_pixbuf_new ();
54 store = gtk_list_store_new (1, GDK_TYPE_PIXBUF);
56 combo = gtk_combo_box_new_with_model (GTK_TREE_MODEL (store));
57 gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo),
59 gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo),
60 cell, "pixbuf", 0, NULL);
61 gtk_combo_box_set_wrap_width (GTK_COMBO_BOX (combo),
65 gtk_list_store_append (store, &iter);
66 gtk_list_store_set (store, &iter,
67 0, create_color_pixbuf ("red"),
70 gtk_list_store_append (store, &iter);
71 gtk_list_store_set (store, &iter,
72 0, create_color_pixbuf ("green"),
75 gtk_list_store_append (store, &iter);
76 gtk_list_store_set (store, &iter,
77 0, create_color_pixbuf ("blue"),
81 gtk_list_store_append (store, &iter);
82 gtk_list_store_set (store, &iter,
83 0, create_color_pixbuf ("yellow"),
86 gtk_list_store_append (store, &iter);
87 gtk_list_store_set (store, &iter,
88 0, create_color_pixbuf ("black"),
91 gtk_list_store_append (store, &iter);
92 gtk_list_store_set (store, &iter,
93 0, create_color_pixbuf ("white"),
97 gtk_list_store_append (store, &iter);
98 gtk_list_store_set (store, &iter,
99 0, create_color_pixbuf ("gray"),
102 gtk_list_store_append (store, &iter);
103 gtk_list_store_set (store, &iter,
104 0, create_color_pixbuf ("snow"),
107 gtk_list_store_append (store, &iter);
108 gtk_list_store_set (store, &iter,
109 0, create_color_pixbuf ("magenta"),
112 g_object_unref (store);
114 gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0);
120 static GtkTreeModel *
121 create_tree_blaat (void)
125 GtkTreeIter iter, iter2;
128 cellview = gtk_cell_view_new ();
130 store = gtk_tree_store_new (3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_BOOLEAN);
132 pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_DIALOG_WARNING,
133 GTK_ICON_SIZE_BUTTON, NULL);
134 gtk_tree_store_append (store, &iter, NULL);
135 gtk_tree_store_set (store, &iter,
137 1, "gtk-stock-dialog-warning",
141 pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_STOP,
142 GTK_ICON_SIZE_BUTTON, NULL);
143 gtk_tree_store_append (store, &iter2, &iter);
144 gtk_tree_store_set (store, &iter2,
150 pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_NEW,
151 GTK_ICON_SIZE_BUTTON, NULL);
152 gtk_tree_store_append (store, &iter2, &iter);
153 gtk_tree_store_set (store, &iter2,
159 pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_CLEAR,
160 GTK_ICON_SIZE_BUTTON, NULL);
161 gtk_tree_store_append (store, &iter, NULL);
162 gtk_tree_store_set (store, &iter,
164 1, "gtk-stock-clear",
169 gtk_tree_store_append (store, &iter, NULL);
170 gtk_tree_store_set (store, &iter,
177 pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_OPEN,
178 GTK_ICON_SIZE_BUTTON, NULL);
179 gtk_tree_store_append (store, &iter, NULL);
180 gtk_tree_store_set (store, &iter,
186 gtk_widget_destroy (cellview);
188 return GTK_TREE_MODEL (store);
191 static GtkTreeModel *
192 create_list_blaat (void)
199 cellview = gtk_cell_view_new ();
201 store = gtk_list_store_new (2, GDK_TYPE_PIXBUF, G_TYPE_STRING);
203 pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_DIALOG_WARNING,
204 GTK_ICON_SIZE_BUTTON, NULL);
205 gtk_list_store_append (store, &iter);
206 gtk_list_store_set (store, &iter,
208 1, "gtk-stock-dialog-warning",
211 pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_STOP,
212 GTK_ICON_SIZE_BUTTON, NULL);
213 gtk_list_store_append (store, &iter);
214 gtk_list_store_set (store, &iter,
219 pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_NEW,
220 GTK_ICON_SIZE_BUTTON, NULL);
221 gtk_list_store_append (store, &iter);
222 gtk_list_store_set (store, &iter,
227 pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_CLEAR,
228 GTK_ICON_SIZE_BUTTON, NULL);
229 gtk_list_store_append (store, &iter);
230 gtk_list_store_set (store, &iter,
232 1, "gtk-stock-clear",
235 gtk_list_store_append (store, &iter);
236 gtk_list_store_set (store, &iter,
241 pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_OPEN,
242 GTK_ICON_SIZE_BUTTON, NULL);
243 gtk_list_store_append (store, &iter);
244 gtk_list_store_set (store, &iter,
249 gtk_widget_destroy (cellview);
251 return GTK_TREE_MODEL (store);
255 static GtkTreeModel *
256 create_phylogenetic_tree (void)
258 GtkTreeIter iter, iter2, iter3;
261 store = gtk_tree_store_new (1,G_TYPE_STRING);
263 gtk_tree_store_append (store, &iter, NULL);
264 gtk_tree_store_set (store, &iter,
268 gtk_tree_store_append (store, &iter2, &iter);
269 gtk_tree_store_set (store, &iter2,
273 gtk_tree_store_append (store, &iter2, &iter);
274 gtk_tree_store_set (store, &iter2,
278 gtk_tree_store_append (store, &iter2, &iter);
279 gtk_tree_store_set (store, &iter2,
280 0, "Thermodesulfobacterium",
283 gtk_tree_store_append (store, &iter2, &iter);
284 gtk_tree_store_set (store, &iter2,
285 0, "Thermus-Deinococcus group",
288 gtk_tree_store_append (store, &iter2, &iter);
289 gtk_tree_store_set (store, &iter2,
293 gtk_tree_store_append (store, &iter2, &iter);
294 gtk_tree_store_set (store, &iter2,
298 gtk_tree_store_append (store, &iter2, &iter);
299 gtk_tree_store_set (store, &iter2,
303 gtk_tree_store_append (store, &iter2, &iter);
304 gtk_tree_store_set (store, &iter2,
305 0, "Leptospirillium Group",
308 gtk_tree_store_append (store, &iter2, &iter);
309 gtk_tree_store_set (store, &iter2,
312 gtk_tree_store_append (store, &iter2, &iter);
313 gtk_tree_store_set (store, &iter2,
314 0, "Chlorobium-Flavobacteria group",
316 gtk_tree_store_append (store, &iter2, &iter);
317 gtk_tree_store_set (store, &iter2,
318 0, "Chlamydia-Verrucomicrobia group",
321 gtk_tree_store_append (store, &iter3, &iter2);
322 gtk_tree_store_set (store, &iter3,
323 0, "Verrucomicrobia",
325 gtk_tree_store_append (store, &iter3, &iter2);
326 gtk_tree_store_set (store, &iter3,
330 gtk_tree_store_append (store, &iter2, &iter);
331 gtk_tree_store_set (store, &iter2,
336 gtk_tree_store_append (store, &iter2, &iter);
337 gtk_tree_store_set (store, &iter2,
338 0, "Fibrobacter group",
342 gtk_tree_store_append (store, &iter2, &iter);
343 gtk_tree_store_set (store, &iter2,
348 gtk_tree_store_append (store, &iter2, &iter);
349 gtk_tree_store_set (store, &iter2,
354 gtk_tree_store_append (store, &iter3, &iter2);
355 gtk_tree_store_set (store, &iter3,
360 gtk_tree_store_append (store, &iter3, &iter2);
361 gtk_tree_store_set (store, &iter3,
366 gtk_tree_store_append (store, &iter3, &iter2);
367 gtk_tree_store_set (store, &iter3,
372 gtk_tree_store_append (store, &iter3, &iter2);
373 gtk_tree_store_set (store, &iter3,
378 gtk_tree_store_append (store, &iter3, &iter2);
379 gtk_tree_store_set (store, &iter3,
384 gtk_tree_store_append (store, &iter, NULL);
385 gtk_tree_store_set (store, &iter,
390 gtk_tree_store_append (store, &iter2, &iter);
391 gtk_tree_store_set (store, &iter2,
396 gtk_tree_store_append (store, &iter2, &iter);
397 gtk_tree_store_set (store, &iter2,
402 gtk_tree_store_append (store, &iter2, &iter);
403 gtk_tree_store_set (store, &iter2,
408 gtk_tree_store_append (store, &iter2, &iter);
409 gtk_tree_store_set (store, &iter2,
414 gtk_tree_store_append (store, &iter2, &iter);
415 gtk_tree_store_set (store, &iter2,
420 gtk_tree_store_append (store, &iter2, &iter);
421 gtk_tree_store_set (store, &iter2,
426 gtk_tree_store_append (store, &iter2, &iter);
427 gtk_tree_store_set (store, &iter2,
432 gtk_tree_store_append (store, &iter2, &iter);
433 gtk_tree_store_set (store, &iter2,
434 0, "choanoflagellates",
438 gtk_tree_store_append (store, &iter2, &iter);
439 gtk_tree_store_set (store, &iter2,
444 gtk_tree_store_append (store, &iter2, &iter);
445 gtk_tree_store_set (store, &iter2,
450 gtk_tree_store_append (store, &iter2, &iter);
451 gtk_tree_store_set (store, &iter2,
456 gtk_tree_store_append (store, &iter2, &iter);
457 gtk_tree_store_set (store, &iter2,
462 gtk_tree_store_append (store, &iter2, &iter);
463 gtk_tree_store_set (store, &iter2,
468 gtk_tree_store_append (store, &iter2, &iter);
469 gtk_tree_store_set (store, &iter2,
474 gtk_tree_store_append (store, &iter2, &iter);
475 gtk_tree_store_set (store, &iter2,
476 0, "crytomonads et al",
480 gtk_tree_store_append (store, &iter, NULL);
481 gtk_tree_store_set (store, &iter,
486 gtk_tree_store_append (store, &iter2, &iter);
487 gtk_tree_store_set (store, &iter2,
492 gtk_tree_store_append (store, &iter2, &iter);
493 gtk_tree_store_set (store, &iter2,
498 gtk_tree_store_append (store, &iter2, &iter);
499 gtk_tree_store_set (store, &iter2,
503 return GTK_TREE_MODEL (store);
508 static GtkTreeModel *
509 create_capital_tree (void)
511 GtkTreeIter iter, iter2;
514 store = gtk_tree_store_new (1, G_TYPE_STRING);
516 gtk_tree_store_append (store, &iter, NULL);
517 gtk_tree_store_set (store, &iter, 0, "A - B", -1);
519 gtk_tree_store_append (store, &iter2, &iter);
520 gtk_tree_store_set (store, &iter2, 0, "Albany", -1);
522 gtk_tree_store_append (store, &iter2, &iter);
523 gtk_tree_store_set (store, &iter2, 0, "Annapolis", -1);
525 gtk_tree_store_append (store, &iter2, &iter);
526 gtk_tree_store_set (store, &iter2, 0, "Atlanta", -1);
528 gtk_tree_store_append (store, &iter2, &iter);
529 gtk_tree_store_set (store, &iter2, 0, "Augusta", -1);
531 gtk_tree_store_append (store, &iter2, &iter);
532 gtk_tree_store_set (store, &iter2, 0, "Austin", -1);
534 gtk_tree_store_append (store, &iter2, &iter);
535 gtk_tree_store_set (store, &iter2, 0, "Baton Rouge", -1);
537 gtk_tree_store_append (store, &iter2, &iter);
538 gtk_tree_store_set (store, &iter2, 0, "Bismarck", -1);
540 gtk_tree_store_append (store, &iter2, &iter);
541 gtk_tree_store_set (store, &iter2, 0, "Boise", -1);
543 gtk_tree_store_append (store, &iter2, &iter);
544 gtk_tree_store_set (store, &iter2, 0, "Boston", -1);
546 gtk_tree_store_append (store, &iter, NULL);
547 gtk_tree_store_set (store, &iter, 0, "C - D", -1);
549 gtk_tree_store_append (store, &iter2, &iter);
550 gtk_tree_store_set (store, &iter2, 0, "Carson City", -1);
552 gtk_tree_store_append (store, &iter2, &iter);
553 gtk_tree_store_set (store, &iter2, 0, "Charleston", -1);
555 gtk_tree_store_append (store, &iter2, &iter);
556 gtk_tree_store_set (store, &iter2, 0, "Cheyenne", -1);
558 gtk_tree_store_append (store, &iter2, &iter);
559 gtk_tree_store_set (store, &iter2, 0, "Columbia", -1);
561 gtk_tree_store_append (store, &iter2, &iter);
562 gtk_tree_store_set (store, &iter2, 0, "Columbus", -1);
564 gtk_tree_store_append (store, &iter2, &iter);
565 gtk_tree_store_set (store, &iter2, 0, "Concord", -1);
567 gtk_tree_store_append (store, &iter2, &iter);
568 gtk_tree_store_set (store, &iter2, 0, "Denver", -1);
570 gtk_tree_store_append (store, &iter2, &iter);
571 gtk_tree_store_set (store, &iter2, 0, "Des Moines", -1);
573 gtk_tree_store_append (store, &iter2, &iter);
574 gtk_tree_store_set (store, &iter2, 0, "Dover", -1);
577 gtk_tree_store_append (store, &iter, NULL);
578 gtk_tree_store_set (store, &iter, 0, "E - J", -1);
580 gtk_tree_store_append (store, &iter2, &iter);
581 gtk_tree_store_set (store, &iter2, 0, "Frankfort", -1);
583 gtk_tree_store_append (store, &iter2, &iter);
584 gtk_tree_store_set (store, &iter2, 0, "Harrisburg", -1);
586 gtk_tree_store_append (store, &iter2, &iter);
587 gtk_tree_store_set (store, &iter2, 0, "Hartford", -1);
589 gtk_tree_store_append (store, &iter2, &iter);
590 gtk_tree_store_set (store, &iter2, 0, "Helena", -1);
592 gtk_tree_store_append (store, &iter2, &iter);
593 gtk_tree_store_set (store, &iter2, 0, "Honolulu", -1);
595 gtk_tree_store_append (store, &iter2, &iter);
596 gtk_tree_store_set (store, &iter2, 0, "Indianapolis", -1);
598 gtk_tree_store_append (store, &iter2, &iter);
599 gtk_tree_store_set (store, &iter2, 0, "Jackson", -1);
601 gtk_tree_store_append (store, &iter2, &iter);
602 gtk_tree_store_set (store, &iter2, 0, "Jefferson City", -1);
604 gtk_tree_store_append (store, &iter2, &iter);
605 gtk_tree_store_set (store, &iter2, 0, "Juneau", -1);
608 gtk_tree_store_append (store, &iter, NULL);
609 gtk_tree_store_set (store, &iter, 0, "K - O", -1);
611 gtk_tree_store_append (store, &iter2, &iter);
612 gtk_tree_store_set (store, &iter2, 0, "Lansing", -1);
614 gtk_tree_store_append (store, &iter2, &iter);
615 gtk_tree_store_set (store, &iter2, 0, "Lincoln", -1);
617 gtk_tree_store_append (store, &iter2, &iter);
618 gtk_tree_store_set (store, &iter2, 0, "Little Rock", -1);
620 gtk_tree_store_append (store, &iter2, &iter);
621 gtk_tree_store_set (store, &iter2, 0, "Madison", -1);
623 gtk_tree_store_append (store, &iter2, &iter);
624 gtk_tree_store_set (store, &iter2, 0, "Montgomery", -1);
626 gtk_tree_store_append (store, &iter2, &iter);
627 gtk_tree_store_set (store, &iter2, 0, "Montpelier", -1);
629 gtk_tree_store_append (store, &iter2, &iter);
630 gtk_tree_store_set (store, &iter2, 0, "Nashville", -1);
632 gtk_tree_store_append (store, &iter2, &iter);
633 gtk_tree_store_set (store, &iter2, 0, "Oklahoma City", -1);
635 gtk_tree_store_append (store, &iter2, &iter);
636 gtk_tree_store_set (store, &iter2, 0, "Olympia", -1);
639 gtk_tree_store_append (store, &iter, NULL);
640 gtk_tree_store_set (store, &iter, 0, "P - S", -1);
642 gtk_tree_store_append (store, &iter2, &iter);
643 gtk_tree_store_set (store, &iter2, 0, "Phoenix", -1);
645 gtk_tree_store_append (store, &iter2, &iter);
646 gtk_tree_store_set (store, &iter2, 0, "Pierre", -1);
648 gtk_tree_store_append (store, &iter2, &iter);
649 gtk_tree_store_set (store, &iter2, 0, "Providence", -1);
651 gtk_tree_store_append (store, &iter2, &iter);
652 gtk_tree_store_set (store, &iter2, 0, "Raleigh", -1);
654 gtk_tree_store_append (store, &iter2, &iter);
655 gtk_tree_store_set (store, &iter2, 0, "Richmond", -1);
657 gtk_tree_store_append (store, &iter2, &iter);
658 gtk_tree_store_set (store, &iter2, 0, "Sacramento", -1);
660 gtk_tree_store_append (store, &iter2, &iter);
661 gtk_tree_store_set (store, &iter2, 0, "Salem", -1);
663 gtk_tree_store_append (store, &iter2, &iter);
664 gtk_tree_store_set (store, &iter2, 0, "Salt Lake City", -1);
666 gtk_tree_store_append (store, &iter2, &iter);
667 gtk_tree_store_set (store, &iter2, 0, "Santa Fe", -1);
669 gtk_tree_store_append (store, &iter2, &iter);
670 gtk_tree_store_set (store, &iter2, 0, "Springfield", -1);
672 gtk_tree_store_append (store, &iter2, &iter);
673 gtk_tree_store_set (store, &iter2, 0, "St. Paul", -1);
676 gtk_tree_store_append (store, &iter, NULL);
677 gtk_tree_store_set (store, &iter, 0, "T - Z", -1);
679 gtk_tree_store_append (store, &iter2, &iter);
680 gtk_tree_store_set (store, &iter2, 0, "Tallahassee", -1);
682 gtk_tree_store_append (store, &iter2, &iter);
683 gtk_tree_store_set (store, &iter2, 0, "Topeka", -1);
685 gtk_tree_store_append (store, &iter2, &iter);
686 gtk_tree_store_set (store, &iter2, 0, "Trenton", -1);
688 return GTK_TREE_MODEL (store);
692 capital_sensitive (GtkCellLayout *cell_layout,
693 GtkCellRenderer *cell,
694 GtkTreeModel *tree_model,
700 sensitive = !gtk_tree_model_iter_has_child (tree_model, iter);
702 g_object_set (cell, "sensitive", sensitive, NULL);
706 capital_animation (gpointer data)
708 static gint insert_count = 0;
709 GtkTreeModel *model = GTK_TREE_MODEL (data);
711 GtkTreeIter iter, parent;
713 switch (insert_count % 8)
716 gtk_tree_store_insert (GTK_TREE_STORE (model), &iter, NULL, 0);
717 gtk_tree_store_set (GTK_TREE_STORE (model),
723 path = gtk_tree_path_new_from_indices (0, -1);
724 gtk_tree_model_get_iter (model, &parent, path);
725 gtk_tree_path_free (path);
726 gtk_tree_store_insert (GTK_TREE_STORE (model), &iter, &parent, 0);
727 gtk_tree_store_set (GTK_TREE_STORE (model),
733 path = gtk_tree_path_new_from_indices (0, -1);
734 gtk_tree_model_get_iter (model, &parent, path);
735 gtk_tree_path_free (path);
736 gtk_tree_store_insert (GTK_TREE_STORE (model), &iter, &parent, 1);
737 gtk_tree_store_set (GTK_TREE_STORE (model),
743 path = gtk_tree_path_new_from_indices (0, -1);
744 gtk_tree_model_get_iter (model, &parent, path);
745 gtk_tree_path_free (path);
746 gtk_tree_store_insert (GTK_TREE_STORE (model), &iter, &parent, 2);
747 gtk_tree_store_set (GTK_TREE_STORE (model),
753 path = gtk_tree_path_new_from_indices (0, 2, -1);
754 gtk_tree_model_get_iter (model, &iter, path);
755 gtk_tree_path_free (path);
756 gtk_tree_store_remove (GTK_TREE_STORE (model), &iter);
760 path = gtk_tree_path_new_from_indices (0, 1, -1);
761 gtk_tree_model_get_iter (model, &iter, path);
762 gtk_tree_path_free (path);
763 gtk_tree_store_remove (GTK_TREE_STORE (model), &iter);
767 path = gtk_tree_path_new_from_indices (0, 0, -1);
768 gtk_tree_model_get_iter (model, &iter, path);
769 gtk_tree_path_free (path);
770 gtk_tree_store_remove (GTK_TREE_STORE (model), &iter);
774 path = gtk_tree_path_new_from_indices (0, -1);
775 gtk_tree_model_get_iter (model, &iter, path);
776 gtk_tree_path_free (path);
777 gtk_tree_store_remove (GTK_TREE_STORE (model), &iter);
789 setup_combo_entry (GtkWidget *entry_box)
791 gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box),
793 gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box),
795 gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box),
796 "la la la dum de dum la la la la la la boom de da la la");
797 gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box),
799 gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box),
801 gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box),
803 gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box),
805 gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box),
807 gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box),
809 gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box),
811 gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box),
813 gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box),
815 gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box),
817 gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box),
819 gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box),
821 gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box),
823 gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box),
825 gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box),
827 gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box),
829 gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box),
831 gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box),
833 gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box),
835 gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box),
837 gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box),
839 gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box),
844 set_sensitive (GtkCellLayout *cell_layout,
845 GtkCellRenderer *cell,
846 GtkTreeModel *tree_model,
854 path = gtk_tree_model_get_path (tree_model, iter);
855 indices = gtk_tree_path_get_indices (path);
856 sensitive = indices[0] != 1;
857 gtk_tree_path_free (path);
859 g_object_set (cell, "sensitive", sensitive, NULL);
863 is_separator (GtkTreeModel *model,
870 path = gtk_tree_model_get_path (model, iter);
871 result = gtk_tree_path_get_indices (path)[0] == 4;
872 gtk_tree_path_free (path);
879 main (int argc, char **argv)
881 GtkWidget *window, *cellview, *mainbox;
882 GtkWidget *combobox, *comboboxtext, *comboboxgrid;
883 GtkWidget *tmp, *boom;
884 GtkCellRenderer *renderer;
887 GValue value = {0, };
891 gtk_init (&argc, &argv);
893 if (g_getenv ("RTL"))
894 gtk_widget_set_default_direction (GTK_TEXT_DIR_RTL);
896 window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
897 gtk_container_set_border_width (GTK_CONTAINER (window), 5);
898 g_signal_connect (window, "destroy", gtk_main_quit, NULL);
900 mainbox = gtk_vbox_new (FALSE, 2);
901 gtk_container_add (GTK_CONTAINER (window), mainbox);
904 tmp = gtk_frame_new ("GtkCellView");
905 gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0);
907 boom = gtk_vbox_new (FALSE, 0);
908 gtk_container_set_border_width (GTK_CONTAINER (boom), 5);
909 gtk_container_add (GTK_CONTAINER (tmp), boom);
911 cellview = gtk_cell_view_new ();
912 renderer = gtk_cell_renderer_pixbuf_new ();
913 pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_DIALOG_WARNING,
914 GTK_ICON_SIZE_BUTTON, NULL);
916 gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (cellview),
919 g_value_init (&value, GDK_TYPE_PIXBUF);
920 g_value_set_instance (&value, pixbuf);
921 gtk_cell_view_set_values (GTK_CELL_VIEW (cellview),
925 g_value_unset (&value);
927 renderer = gtk_cell_renderer_text_new ();
928 gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (cellview),
931 g_value_init (&value, G_TYPE_STRING);
932 g_value_set_string (&value, "la la la");
933 gtk_cell_view_set_values (GTK_CELL_VIEW (cellview),
937 g_value_unset (&value);
938 gtk_container_add (GTK_CONTAINER (boom), cellview);
940 /* GtkComboBox list */
941 tmp = gtk_frame_new ("GtkComboBox (list)");
942 gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0);
944 boom = gtk_vbox_new (FALSE, 0);
945 gtk_container_set_border_width (GTK_CONTAINER (boom), 5);
946 gtk_container_add (GTK_CONTAINER (tmp), boom);
948 model = create_list_blaat ();
949 combobox = gtk_combo_box_new_with_model (model);
950 gtk_combo_box_set_add_tearoffs (GTK_COMBO_BOX (combobox), TRUE);
951 g_object_unref (model);
952 gtk_container_add (GTK_CONTAINER (boom), combobox);
954 renderer = gtk_cell_renderer_pixbuf_new ();
955 gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combobox),
958 gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combobox), renderer,
961 gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combobox),
966 renderer = gtk_cell_renderer_text_new ();
967 gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combobox),
970 gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combobox), renderer,
973 gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combobox),
977 gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (combobox),
978 is_separator, NULL, NULL);
980 gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), 0);
982 /* GtkComboBox tree */
983 tmp = gtk_frame_new ("GtkComboBox (tree)");
984 gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0);
986 boom = gtk_vbox_new (FALSE, 0);
987 gtk_container_set_border_width (GTK_CONTAINER (boom), 5);
988 gtk_container_add (GTK_CONTAINER (tmp), boom);
990 model = create_tree_blaat ();
991 combobox = gtk_combo_box_new_with_model (model);
992 gtk_combo_box_set_add_tearoffs (GTK_COMBO_BOX (combobox), TRUE);
993 g_object_unref (model);
994 gtk_container_add (GTK_CONTAINER (boom), combobox);
996 renderer = gtk_cell_renderer_pixbuf_new ();
997 gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combobox),
1000 gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combobox), renderer,
1003 gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combobox),
1008 renderer = gtk_cell_renderer_text_new ();
1009 gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combobox),
1012 gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combobox), renderer,
1015 gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combobox),
1019 gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (combobox),
1020 is_separator, NULL, NULL);
1022 gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), 0);
1024 g_timeout_add (1000, (GSourceFunc) animation_timer, model);
1027 /* GtkComboBox (grid mode) */
1028 tmp = gtk_frame_new ("GtkComboBox (grid mode)");
1029 gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0);
1031 boom = gtk_vbox_new (FALSE, 0);
1032 gtk_container_set_border_width (GTK_CONTAINER (boom), 5);
1033 gtk_container_add (GTK_CONTAINER (tmp), boom);
1035 comboboxgrid = create_combo_box_grid_demo ();
1036 gtk_box_pack_start (GTK_BOX (boom), comboboxgrid, FALSE, FALSE, 0);
1039 /* GtkComboBoxEntry */
1040 tmp = gtk_frame_new ("GtkComboBoxEntry");
1041 gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0);
1043 boom = gtk_vbox_new (FALSE, 0);
1044 gtk_container_set_border_width (GTK_CONTAINER (boom), 5);
1045 gtk_container_add (GTK_CONTAINER (tmp), boom);
1047 comboboxtext = gtk_combo_box_entry_new_text ();
1048 setup_combo_entry (comboboxtext);
1049 gtk_container_add (GTK_CONTAINER (boom), comboboxtext);
1052 /* Phylogenetic tree */
1053 tmp = gtk_frame_new ("What are you ?");
1054 gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0);
1056 boom = gtk_vbox_new (FALSE, 0);
1057 gtk_container_set_border_width (GTK_CONTAINER (boom), 5);
1058 gtk_container_add (GTK_CONTAINER (tmp), boom);
1060 model = create_phylogenetic_tree ();
1061 combobox = gtk_combo_box_new_with_model (model);
1062 gtk_combo_box_set_add_tearoffs (GTK_COMBO_BOX (combobox), TRUE);
1063 g_object_unref (model);
1064 gtk_container_add (GTK_CONTAINER (boom), combobox);
1066 renderer = gtk_cell_renderer_text_new ();
1067 gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combobox),
1070 gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combobox), renderer,
1074 gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), 0);
1078 tmp = gtk_frame_new ("Where are you ?");
1079 gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0);
1081 boom = gtk_vbox_new (FALSE, 0);
1082 gtk_container_set_border_width (GTK_CONTAINER (boom), 5);
1083 gtk_container_add (GTK_CONTAINER (tmp), boom);
1085 model = create_capital_tree ();
1086 combobox = gtk_combo_box_new_with_model (model);
1087 gtk_combo_box_set_add_tearoffs (GTK_COMBO_BOX (combobox), TRUE);
1088 g_object_unref (model);
1089 gtk_container_add (GTK_CONTAINER (boom), combobox);
1090 renderer = gtk_cell_renderer_text_new ();
1091 gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combobox),
1094 gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combobox), renderer,
1097 gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combobox),
1101 path = gtk_tree_path_new_from_indices (0, 8, -1);
1102 gtk_tree_model_get_iter (model, &iter, path);
1103 gtk_tree_path_free (path);
1104 gtk_combo_box_set_active_iter (GTK_COMBO_BOX (combobox), &iter);
1107 g_timeout_add (1000, (GSourceFunc) capital_animation, model);
1110 gtk_widget_show_all (window);