
/*
 * gcc -Wall gtk_tc_read.c -o gtk_tc_read `pkg-config gtk+-2.0 --cflags --libs`
 *
 * pasp@users.sf.net, 22.09.2007
 *
 */

#include <glib.h>
#include <glib/gprintf.h>
#include <gtk/gtk.h>

int
main(int argc, char **argv) {

GtkWidget *main_window;

GtkStateType s_types[5] = {
    GTK_STATE_NORMAL, GTK_STATE_ACTIVE, GTK_STATE_PRELIGHT, GTK_STATE_SELECTED, GTK_STATE_INSENSITIVE
};

gchar *str_types[5] = {
    "GTK_STATE_NORMAL", "GTK_STATE_ACTIVE", "GTK_STATE_PRELIGHT", "GTK_STATE_SELECTED", "GTK_STATE_INSENSITIVE"
};

gchar *str_mode[4] = { "FG", "BG", "BASE", "TEXT" };

GdkColor *color;
gint i, j;

    gtk_init (&argc, &argv);

    main_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_widget_realize (main_window);

    for (j=0; j < 4; j++) {

        g_printf("%s\n", str_mode[j]);

        for (i=0; i < 5; i++) {
            switch (j) {
                case 0:
                    color = &main_window->style->fg[s_types[i]];
                    break;
                case 1:
                    color = &main_window->style->bg[s_types[i]];
                    break;
                case 2:
                    color = &main_window->style->base[s_types[i]];
                    break;
                case 3:
                    color = &main_window->style->text[s_types[i]];
                    break;
            }

            g_printf("%s:\t#%02X%02X%02X\n", str_types[i], color->red * 256 / 65536,
                     color->green * 256 / 65536, color->blue * 256 / 65536);
        }

        g_printf("\n");
    }

    gtk_widget_destroy (main_window);
    return 0;
}


