X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=tests%2Ftestcombo.c;h=9a80ed32e18530a8e1d8d214ad62d6bfe2ad978a;hb=HEAD;hp=65e5b5ec91cd91dcae2751a45982d0921cc6102b;hpb=31abdf723aa5af06bd8ea730e9575d2f38ff0a98;p=~andy%2Fgtk diff --git a/tests/testcombo.c b/tests/testcombo.c index 65e5b5ec9..9a80ed32e 100644 --- a/tests/testcombo.c +++ b/tests/testcombo.c @@ -12,9 +12,7 @@ * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * License along with this library. If not, see . */ #include "config.h" #include @@ -31,30 +29,28 @@ static GdkPixbuf * create_color_pixbuf (const char *color) { GdkPixbuf *pixbuf; - GdkColor col; + GdkRGBA rgba; int x; int num; - int rowstride; guchar *pixels, *p; - if (!gdk_color_parse (color, &col)) + if (!gdk_rgba_parse (&rgba, color)) return NULL; pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, 16, 16); - rowstride = gdk_pixbuf_get_rowstride (pixbuf); p = pixels = gdk_pixbuf_get_pixels (pixbuf); num = gdk_pixbuf_get_width (pixbuf) * gdk_pixbuf_get_height (pixbuf); for (x = 0; x < num; x++) { - p[0] = col.red / 65535 * 255; - p[1] = col.green / 65535 * 255; - p[2] = col.blue / 65535 * 255; + p[0] = rgba.red * 255; + p[1] = rgba.green * 255; + p[2] = rgba.blue * 255; p += 3; } @@ -166,8 +162,8 @@ create_tree_blaat (void) store = gtk_tree_store_new (3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_BOOLEAN); - pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_DIALOG_WARNING, - GTK_ICON_SIZE_BUTTON, NULL); + pixbuf = gtk_widget_render_icon_pixbuf (cellview, GTK_STOCK_DIALOG_WARNING, + GTK_ICON_SIZE_BUTTON); gtk_tree_store_append (store, &iter, NULL); gtk_tree_store_set (store, &iter, 0, pixbuf, @@ -175,8 +171,8 @@ create_tree_blaat (void) 2, FALSE, -1); - pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_STOP, - GTK_ICON_SIZE_BUTTON, NULL); + pixbuf = gtk_widget_render_icon_pixbuf (cellview, GTK_STOCK_STOP, + GTK_ICON_SIZE_BUTTON); gtk_tree_store_append (store, &iter2, &iter); gtk_tree_store_set (store, &iter2, 0, pixbuf, @@ -184,8 +180,8 @@ create_tree_blaat (void) 2, FALSE, -1); - pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_NEW, - GTK_ICON_SIZE_BUTTON, NULL); + pixbuf = gtk_widget_render_icon_pixbuf (cellview, GTK_STOCK_NEW, + GTK_ICON_SIZE_BUTTON); gtk_tree_store_append (store, &iter2, &iter); gtk_tree_store_set (store, &iter2, 0, pixbuf, @@ -193,8 +189,8 @@ create_tree_blaat (void) 2, FALSE, -1); - pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_CLEAR, - GTK_ICON_SIZE_BUTTON, NULL); + pixbuf = gtk_widget_render_icon_pixbuf (cellview, GTK_STOCK_CLEAR, + GTK_ICON_SIZE_BUTTON); gtk_tree_store_append (store, &iter, NULL); gtk_tree_store_set (store, &iter, 0, pixbuf, @@ -211,8 +207,8 @@ create_tree_blaat (void) -1); #endif - pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_OPEN, - GTK_ICON_SIZE_BUTTON, NULL); + pixbuf = gtk_widget_render_icon_pixbuf (cellview, GTK_STOCK_OPEN, + GTK_ICON_SIZE_BUTTON); gtk_tree_store_append (store, &iter, NULL); gtk_tree_store_set (store, &iter, 0, pixbuf, @@ -237,8 +233,8 @@ create_empty_list_blaat (void) store = gtk_list_store_new (2, GDK_TYPE_PIXBUF, G_TYPE_STRING); - pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_DIALOG_WARNING, - GTK_ICON_SIZE_BUTTON, NULL); + pixbuf = gtk_widget_render_icon_pixbuf (cellview, GTK_STOCK_DIALOG_WARNING, + GTK_ICON_SIZE_BUTTON); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, pixbuf, @@ -268,24 +264,24 @@ populate_list_blaat (gpointer data) cellview = gtk_cell_view_new (); - pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_STOP, - GTK_ICON_SIZE_BUTTON, NULL); + pixbuf = gtk_widget_render_icon_pixbuf (cellview, GTK_STOCK_STOP, + GTK_ICON_SIZE_BUTTON); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, pixbuf, 1, "gtk-stock-stop", -1); - pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_NEW, - GTK_ICON_SIZE_BUTTON, NULL); + pixbuf = gtk_widget_render_icon_pixbuf (cellview, GTK_STOCK_NEW, + GTK_ICON_SIZE_BUTTON); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, pixbuf, 1, "gtk-stock-new", -1); - pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_CLEAR, - GTK_ICON_SIZE_BUTTON, NULL); + pixbuf = gtk_widget_render_icon_pixbuf (cellview, GTK_STOCK_CLEAR, + GTK_ICON_SIZE_BUTTON); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, pixbuf, @@ -298,8 +294,8 @@ populate_list_blaat (gpointer data) 1, "separator", -1); - pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_OPEN, - GTK_ICON_SIZE_BUTTON, NULL); + pixbuf = gtk_widget_render_icon_pixbuf (cellview, GTK_STOCK_OPEN, + GTK_ICON_SIZE_BUTTON); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, pixbuf, @@ -321,32 +317,32 @@ create_list_blaat (void) store = gtk_list_store_new (2, GDK_TYPE_PIXBUF, G_TYPE_STRING); - pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_DIALOG_WARNING, - GTK_ICON_SIZE_BUTTON, NULL); + pixbuf = gtk_widget_render_icon_pixbuf (cellview, GTK_STOCK_DIALOG_WARNING, + GTK_ICON_SIZE_BUTTON); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, pixbuf, 1, "gtk-stock-dialog-warning", -1); - pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_STOP, - GTK_ICON_SIZE_BUTTON, NULL); + pixbuf = gtk_widget_render_icon_pixbuf (cellview, GTK_STOCK_STOP, + GTK_ICON_SIZE_BUTTON); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, pixbuf, 1, "gtk-stock-stop", -1); - pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_NEW, - GTK_ICON_SIZE_BUTTON, NULL); + pixbuf = gtk_widget_render_icon_pixbuf (cellview, GTK_STOCK_NEW, + GTK_ICON_SIZE_BUTTON); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, pixbuf, 1, "gtk-stock-new", -1); - pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_CLEAR, - GTK_ICON_SIZE_BUTTON, NULL); + pixbuf = gtk_widget_render_icon_pixbuf (cellview, GTK_STOCK_CLEAR, + GTK_ICON_SIZE_BUTTON); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, pixbuf, @@ -359,8 +355,8 @@ create_list_blaat (void) 1, "separator", -1); - pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_OPEN, - GTK_ICON_SIZE_BUTTON, NULL); + pixbuf = gtk_widget_render_icon_pixbuf (cellview, GTK_STOCK_OPEN, + GTK_ICON_SIZE_BUTTON); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, 0, pixbuf, @@ -405,6 +401,47 @@ create_list_long (void) return GTK_TREE_MODEL (store); } +static GtkTreeModel * +create_food_list (void) +{ + GtkTreeIter iter; + GtkListStore *store; + + store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING); + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + 0, "Pepperoni", + 1, "Pizza", + -1); + + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + 0, "Cheese", + 1, "Burger", + -1); + + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + 0, "Pineapple", + 1, "Milkshake", + -1); + + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + 0, "Orange", + 1, "Soda", + -1); + + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + 0, "Club", + 1, "Sandwich", + -1); + + return GTK_TREE_MODEL (store); +} + + /* blaat */ static GtkTreeModel * create_phylogenetic_tree (void) @@ -940,57 +977,57 @@ capital_animation (gpointer data) } static void -setup_combo_entry (GtkWidget *entry_box) +setup_combo_entry (GtkComboBoxText *combo) { - gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box), + gtk_combo_box_text_append_text (combo, "dum de dum"); - gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box), + gtk_combo_box_text_append_text (combo, "la la la"); - gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box), + gtk_combo_box_text_append_text (combo, "la la la dum de dum la la la la la la boom de da la la"); - gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box), + gtk_combo_box_text_append_text (combo, "bloop"); - gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box), + gtk_combo_box_text_append_text (combo, "bleep"); - gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box), + gtk_combo_box_text_append_text (combo, "klaas"); - gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box), + gtk_combo_box_text_append_text (combo, "klaas0"); - gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box), + gtk_combo_box_text_append_text (combo, "klaas1"); - gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box), + gtk_combo_box_text_append_text (combo, "klaas2"); - gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box), + gtk_combo_box_text_append_text (combo, "klaas3"); - gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box), + gtk_combo_box_text_append_text (combo, "klaas4"); - gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box), + gtk_combo_box_text_append_text (combo, "klaas5"); - gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box), + gtk_combo_box_text_append_text (combo, "klaas6"); - gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box), + gtk_combo_box_text_append_text (combo, "klaas7"); - gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box), + gtk_combo_box_text_append_text (combo, "klaas8"); - gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box), + gtk_combo_box_text_append_text (combo, "klaas9"); - gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box), + gtk_combo_box_text_append_text (combo, "klaasa"); - gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box), + gtk_combo_box_text_append_text (combo, "klaasb"); - gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box), + gtk_combo_box_text_append_text (combo, "klaasc"); - gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box), + gtk_combo_box_text_append_text (combo, "klaasd"); - gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box), + gtk_combo_box_text_append_text (combo, "klaase"); - gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box), + gtk_combo_box_text_append_text (combo, "klaasf"); - gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box), + gtk_combo_box_text_append_text (combo, "klaas10"); - gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box), + gtk_combo_box_text_append_text (combo, "klaas11"); - gtk_combo_box_append_text (GTK_COMBO_BOX (entry_box), + gtk_combo_box_text_append_text (combo, "klaas12"); } @@ -1053,33 +1090,47 @@ main (int argc, char **argv) GtkTreeModel *model; GtkTreePath *path; GtkTreeIter iter; - GdkColor color; - GtkListStore *store; + GdkRGBA color; + GtkCellArea *area; gtk_init (&argc, &argv); if (g_getenv ("RTL")) gtk_widget_set_default_direction (GTK_TEXT_DIR_RTL); + if (g_getenv ("LISTMODE")) + { + GtkCssProvider *provider = gtk_css_provider_new (); + + gtk_css_provider_load_from_data (provider, + "* { -GtkComboBox-appears-as-list: true; }", + -1, NULL); + + gtk_style_context_add_provider_for_screen (gdk_screen_get_default (), + GTK_STYLE_PROVIDER (provider), + GTK_STYLE_PROVIDER_PRIORITY_FALLBACK); + + } + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (window), 5); g_signal_connect (window, "destroy", gtk_main_quit, NULL); - mainbox = gtk_vbox_new (FALSE, 2); + mainbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 2); gtk_container_add (GTK_CONTAINER (window), mainbox); /* GtkCellView */ tmp = gtk_frame_new ("GtkCellView"); gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0); - boom = gtk_vbox_new (FALSE, 0); + boom = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (boom), 5); gtk_container_add (GTK_CONTAINER (tmp), boom); cellview = gtk_cell_view_new (); renderer = gtk_cell_renderer_pixbuf_new (); - pixbuf = gtk_widget_render_icon (cellview, GTK_STOCK_DIALOG_WARNING, - GTK_ICON_SIZE_BUTTON, NULL); + pixbuf = gtk_widget_render_icon_pixbuf (cellview, GTK_STOCK_DIALOG_WARNING, + GTK_ICON_SIZE_BUTTON); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (cellview), renderer, @@ -1097,7 +1148,7 @@ main (int argc, char **argv) tmp = gtk_frame_new ("GtkComboBox (list)"); gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0); - boom = gtk_vbox_new (FALSE, 0); + boom = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (boom), 5); gtk_container_add (GTK_CONTAINER (tmp), boom); @@ -1139,7 +1190,7 @@ main (int argc, char **argv) tmp = gtk_frame_new ("GtkComboBox (dynamic list)"); gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0); - boom = gtk_vbox_new (FALSE, 0); + boom = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (boom), 5); gtk_container_add (GTK_CONTAINER (tmp), boom); @@ -1185,7 +1236,7 @@ main (int argc, char **argv) tmp = gtk_frame_new ("GtkComboBox (custom)"); gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0); - boom = gtk_vbox_new (FALSE, 0); + boom = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (boom), 5); gtk_container_add (GTK_CONTAINER (tmp), boom); @@ -1232,10 +1283,11 @@ main (int argc, char **argv) gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (tmp), renderer, "text", 1, NULL); - color.red = 0xffff; - color.blue = 0xffff; + color.red = 1.0; + color.blue = 1.0; color.green = 0; - gtk_cell_view_set_background_color (GTK_CELL_VIEW (tmp), &color); + color.alpha = 1.0; + gtk_cell_view_set_background_rgba (GTK_CELL_VIEW (tmp), &color); displayed_row_changed (GTK_COMBO_BOX (combobox), GTK_CELL_VIEW (tmp)); g_signal_connect (combobox, "changed", G_CALLBACK (displayed_row_changed), tmp); @@ -1245,7 +1297,7 @@ main (int argc, char **argv) tmp = gtk_frame_new ("GtkComboBox (tree)"); gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0); - boom = gtk_vbox_new (FALSE, 0); + boom = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (boom), 5); gtk_container_add (GTK_CONTAINER (tmp), boom); @@ -1290,7 +1342,7 @@ main (int argc, char **argv) tmp = gtk_frame_new ("GtkComboBox (grid mode)"); gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0); - boom = gtk_vbox_new (FALSE, 0); + boom = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (boom), 5); gtk_container_add (GTK_CONTAINER (tmp), boom); @@ -1302,19 +1354,12 @@ main (int argc, char **argv) tmp = gtk_frame_new ("GtkComboBox with entry"); gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0); - boom = gtk_vbox_new (FALSE, 0); + boom = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (boom), 5); gtk_container_add (GTK_CONTAINER (tmp), boom); - store = gtk_list_store_new (1, G_TYPE_STRING); - comboboxtext = g_object_new (GTK_TYPE_COMBO_BOX, - "has-entry", TRUE, - "model", store, - "entry-text-column", 0, - NULL); - g_object_unref (store); - - setup_combo_entry (comboboxtext); + comboboxtext = gtk_combo_box_text_new_with_entry (); + setup_combo_entry (GTK_COMBO_BOX_TEXT (comboboxtext)); gtk_container_add (GTK_CONTAINER (boom), comboboxtext); @@ -1322,7 +1367,7 @@ main (int argc, char **argv) tmp = gtk_frame_new ("What are you ?"); gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0); - boom = gtk_vbox_new (FALSE, 0); + boom = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (boom), 5); gtk_container_add (GTK_CONTAINER (tmp), boom); @@ -1342,12 +1387,11 @@ main (int argc, char **argv) gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), 0); - /* Capitals */ tmp = gtk_frame_new ("Where are you ?"); gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0); - boom = gtk_vbox_new (FALSE, 0); + boom = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (boom), 5); gtk_container_add (GTK_CONTAINER (tmp), boom); @@ -1376,11 +1420,46 @@ main (int argc, char **argv) gdk_threads_add_timeout (1000, (GSourceFunc) capital_animation, model); #endif + /* Aligned Food */ + tmp = gtk_frame_new ("Hungry ?"); + gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0); + + boom = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); + gtk_container_set_border_width (GTK_CONTAINER (boom), 5); + gtk_container_add (GTK_CONTAINER (tmp), boom); + + model = create_food_list (); + combobox = gtk_combo_box_new_with_model (model); + g_object_unref (model); + gtk_container_add (GTK_CONTAINER (boom), combobox); + + area = gtk_cell_layout_get_area (GTK_CELL_LAYOUT (combobox)); + + renderer = gtk_cell_renderer_text_new (); + gtk_cell_area_add_with_properties (area, renderer, + "align", TRUE, + "expand", TRUE, + NULL); + gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combobox), renderer, + "text", 0, + NULL); + + renderer = gtk_cell_renderer_text_new (); + gtk_cell_area_add_with_properties (area, renderer, + "align", TRUE, + "expand", TRUE, + NULL); + gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combobox), renderer, + "text", 1, + NULL); + + gtk_combo_box_set_active (GTK_COMBO_BOX (combobox), 0); + /* Ellipsizing growing combos */ tmp = gtk_frame_new ("Unconstrained Menu"); gtk_box_pack_start (GTK_BOX (mainbox), tmp, FALSE, FALSE, 0); - boom = gtk_vbox_new (FALSE, 0); + boom = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_set_border_width (GTK_CONTAINER (boom), 5); gtk_container_add (GTK_CONTAINER (tmp), boom);