X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=tests%2Ftestcombochange.c;h=7cbb8e7b9297684b0509759972d756ea2461e711;hb=a6d741b6a46f78e4a71cdcaf8cd42ce19846dba8;hp=f673a4066964705cb9f253af19197ae0e2065191;hpb=80581c3011871fa000433a881554ffc1e9363468;p=~andy%2Fgtk diff --git a/tests/testcombochange.c b/tests/testcombochange.c index f673a4066..7cbb8e7b9 100644 --- a/tests/testcombochange.c +++ b/tests/testcombochange.c @@ -1,4 +1,24 @@ -#include +/* testcombochange.c + * Copyright (C) 2004 Red Hat, Inc. + * Author: Owen Taylor + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * 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. + */ + +#include "config.h" #include #include @@ -9,18 +29,14 @@ GArray *contents; static char next_value = 'A'; static void -test_init () +test_init (void) { - if (g_file_test ("../gdk-pixbuf/libpixbufloader-pnm.la", - G_FILE_TEST_EXISTS)) - { - g_setenv ("GDK_PIXBUF_MODULE_FILE", "../gdk-pixbuf/gdk-pixbuf.loaders", TRUE); - g_setenv ("GTK_IM_MODULE_FILE", "../modules/input/gtk.immodules", TRUE); - } + if (g_file_test ("../modules/input/immodules.cache", G_FILE_TEST_EXISTS)) + g_setenv ("GTK_IM_MODULE_FILE", "../modules/input/immodules.cache", TRUE); } static void -log (const char *fmt, +combochange_log (const char *fmt, ...) { GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text_view)); @@ -74,16 +90,9 @@ create_combo (const char *name, { GtkCellRenderer *cell_renderer; GtkWidget *combo; - char *rc_string; - - rc_string = g_strdup_printf ("style \"%s-style\" {\n" - " GtkComboBox::appears-as-list = %d\n" - "}\n" - "\n" - "widget \"*.%s\" style \"%s-style\"", - name, is_list, name, name); - gtk_rc_parse_string (rc_string); - g_free (rc_string); + GtkCssProvider *provider; + GtkStyleContext *context; + gchar *css_data; combo = gtk_combo_box_new_with_model (GTK_TREE_MODEL (model)); cell_renderer = gtk_cell_renderer_text_new (); @@ -92,7 +101,19 @@ create_combo (const char *name, "text", 0, NULL); gtk_widget_set_name (combo, name); - + + context = gtk_widget_get_style_context (combo); + + provider = gtk_css_provider_new (); + css_data = g_strdup_printf ("#%s { -GtkComboBox-appears-as-list: %s }", + name, is_list ? "true" : "false"); + gtk_css_provider_load_from_data (provider, css_data, -1, NULL); + g_free (css_data); + + gtk_style_context_add_provider (context, + GTK_STYLE_PROVIDER (provider), + GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + return combo; } @@ -120,7 +141,7 @@ on_insert (void) g_array_insert_val (contents, insert_pos, new_value); - log ("Inserted '%c' at position %d", new_value[0], insert_pos); + combochange_log ("Inserted '%c' at position %d", new_value[0], insert_pos); } static void @@ -141,7 +162,7 @@ on_delete (void) old_val = g_array_index (contents, char, delete_pos); g_array_remove_index (contents, delete_pos); - log ("Deleted '%c' from position %d", old_val, delete_pos); + combochange_log ("Deleted '%c' from position %d", old_val, delete_pos); } static void @@ -175,7 +196,7 @@ on_reorder (void) g_array_free (contents, TRUE); contents = new_contents; - log ("Reordered array"); + combochange_log ("Reordered array"); g_free (shuffle_array); } @@ -208,12 +229,13 @@ on_animate (void) { n_animations += 20; - timer = g_timeout_add (1000, (GSourceFunc) animation_timer, NULL); + timer = gdk_threads_add_timeout (1000, (GSourceFunc) animation_timer, NULL); } int main (int argc, char **argv) { + GtkWidget *content_area; GtkWidget *dialog; GtkWidget *scrolled_window; GtkWidget *hbox; @@ -233,15 +255,17 @@ main (int argc, char **argv) contents = g_array_new (FALSE, FALSE, sizeof (char)); dialog = gtk_dialog_new_with_buttons ("GtkComboBox model changes", - NULL, GTK_DIALOG_NO_SEPARATOR, + NULL, 0, GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, NULL); - - hbox = gtk_hbox_new (FALSE, 12); + + content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); + + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); gtk_container_set_border_width (GTK_CONTAINER (hbox), 12); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), hbox, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (content_area), hbox, TRUE, TRUE, 0); - combo_vbox = gtk_vbox_new (FALSE, 8); + combo_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_box_pack_start (GTK_BOX (hbox), combo_vbox, FALSE, FALSE, 0); label = gtk_label_new (NULL); @@ -277,7 +301,7 @@ main (int argc, char **argv) gtk_container_add (GTK_CONTAINER (scrolled_window), text_view); - button_vbox = gtk_vbox_new (FALSE, 8); + button_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8); gtk_box_pack_start (GTK_BOX (hbox), button_vbox, FALSE, FALSE, 0); gtk_window_set_default_size (GTK_WINDOW (dialog), 500, 300);