#include "aww-color-tool-button.h" static void color_changed_cb (AwwColorToolButton *self, gpointer user_data) { GdkColor *color; char *spec; color = NULL; g_object_get (G_OBJECT (self), "color", &color, NULL); if (color) { spec = gdk_color_to_string (color); gdk_color_free (color), color = NULL; } else { spec = g_strdup ("none"); } printf ("%s() %s\n", __FUNCTION__, spec); g_free (spec), spec = NULL; } int main (int argc, char **argv) { GtkWidget *window; GtkWidget *vbox; GtkWidget *toolbar; GtkToolItem *savebtn; GtkWidget *combo; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); g_signal_connect (G_OBJECT (window), "delete-event", G_CALLBACK (gtk_main_quit), NULL); vbox = gtk_vbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (window), vbox); toolbar = gtk_toolbar_new (); gtk_box_pack_start_defaults (GTK_BOX (vbox), toolbar); savebtn = gtk_tool_button_new_from_stock (GTK_STOCK_SAVE); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), savebtn, -1); combo = (GtkWidget *) g_object_new (AWW_TYPE_COLOR_TOOL_BUTTON, NULL); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), GTK_TOOL_ITEM (combo), -1); g_signal_connect (G_OBJECT (combo), "color-changed", G_CALLBACK (color_changed_cb), NULL); gtk_widget_show_all (window); gtk_main (); return 0; }