static void init_color (char *name, Preference pref) { GtkWidget *widget; char *key; GdkColor *color; GtkWidget *box; box = glade_xml_get_widget (warlock_xml, name); widget = warlock_color_button_new (); gtk_box_pack_start (GTK_BOX (box), widget, FALSE, TRUE, 0); gtk_box_reorder_child (GTK_BOX (box), widget, 0); key = preferences_get_key (pref); color = preferences_get_color (key); warlock_color_button_set_color (WARLOCK_COLOR_BUTTON (widget), color); if (color != NULL) { g_free (color); } g_signal_connect (widget, "color-set", G_CALLBACK (on_color_button_color_set), GINT_TO_POINTER (pref)); g_free (key); gtk_widget_show (widget); }
static void warlock_color_button_color_changed (GtkColorButton *colorbutton, WarlockColorButton *button) { GdkRGBA color; gtk_color_button_get_rgba (colorbutton, &color); warlock_color_button_set_color (button, &color); g_signal_emit (G_OBJECT (button), warlock_color_button_signals[COLOR_SET_SIGNAL], 0); }