sp-color-scales.cpp revision 537bf552d5baf82841a2fd3a43c8e9f232cb7bc7
e9b6af083e34e2397a8ddbe9781920733d09d151Ted Gould * bulia byak <buliabyak@users.sf.net>
c57da20fee24a6e5b368730153d72eabe26425b2buliabyakstatic void sp_color_scales_class_init (SPColorScalesClass *klass);
c57da20fee24a6e5b368730153d72eabe26425b2buliabyakstatic void sp_color_scales_init (SPColorScales *cs);
c57da20fee24a6e5b368730153d72eabe26425b2buliabyakstatic void sp_color_scales_destroy (GtkObject *object);
c57da20fee24a6e5b368730153d72eabe26425b2buliabyakstatic void sp_color_scales_show_all (GtkWidget *widget);
c57da20fee24a6e5b368730153d72eabe26425b2buliabyakstatic void sp_color_scales_hide_all (GtkWidget *widget);
c57da20fee24a6e5b368730153d72eabe26425b2buliabyakstatic const gchar *sp_color_scales_hue_map (void);
c57da20fee24a6e5b368730153d72eabe26425b2buliabyak 0, /* n_preallocs */
c57da20fee24a6e5b368730153d72eabe26425b2buliabyak type = g_type_register_static (SP_TYPE_COLOR_SELECTOR,
c57da20fee24a6e5b368730153d72eabe26425b2buliabyak "SPColorScales",
c57da20fee24a6e5b368730153d72eabe26425b2buliabyak static_cast< GTypeFlags > (0) );
c57da20fee24a6e5b368730153d72eabe26425b2buliabyaksp_color_scales_class_init (SPColorScalesClass *klass)
c57da20fee24a6e5b368730153d72eabe26425b2buliabyak static const gchar* nameset[] = {N_("RGB"), N_("HSL"), N_("CMYK"), 0};
c57da20fee24a6e5b368730153d72eabe26425b2buliabyak parent_class = SP_COLOR_SELECTOR_CLASS (g_type_class_peek_parent (klass));
c57da20fee24a6e5b368730153d72eabe26425b2buliabyak widget_class->show_all = sp_color_scales_show_all;
c57da20fee24a6e5b368730153d72eabe26425b2buliabyak widget_class->hide_all = sp_color_scales_hide_all;
c57da20fee24a6e5b368730153d72eabe26425b2buliabyak SP_COLOR_SELECTOR(cs)->base = new ColorScales( SP_COLOR_SELECTOR(cs) );
c57da20fee24a6e5b368730153d72eabe26425b2buliabyak gtk_box_pack_start (GTK_BOX (_csel), t, TRUE, TRUE, 0);
c57da20fee24a6e5b368730153d72eabe26425b2buliabyak /* Create components */
c57da20fee24a6e5b368730153d72eabe26425b2buliabyak for (i = 0; i < static_cast< gint > (G_N_ELEMENTS(_a)) ; i++) {
c57da20fee24a6e5b368730153d72eabe26425b2buliabyak gtk_misc_set_alignment (GTK_MISC (_l[i]), 1.0, 0.5);
c57da20fee24a6e5b368730153d72eabe26425b2buliabyak gtk_table_attach (GTK_TABLE (t), _l[i], 0, 1, i, i + 1, GTK_FILL, GTK_FILL, XPAD, YPAD);
c57da20fee24a6e5b368730153d72eabe26425b2buliabyak /* Adjustment */
c57da20fee24a6e5b368730153d72eabe26425b2buliabyak _a[i] = (GtkAdjustment *) gtk_adjustment_new (0.0, 0.0, _rangeLimit, 1.0, 10.0, 10.0);
c57da20fee24a6e5b368730153d72eabe26425b2buliabyak /* Slider */
c57da20fee24a6e5b368730153d72eabe26425b2buliabyak gtk_table_attach (GTK_TABLE (t), _s[i], 1, 2, i, i + 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)GTK_FILL, XPAD, YPAD);
c57da20fee24a6e5b368730153d72eabe26425b2buliabyak /* Spinbutton */
c57da20fee24a6e5b368730153d72eabe26425b2buliabyak _b[i] = gtk_spin_button_new (GTK_ADJUSTMENT (_a[i]), 1.0, 0);
c57da20fee24a6e5b368730153d72eabe26425b2buliabyak gtk_label_set_mnemonic_widget (GTK_LABEL(_l[i]), _b[i]);
c57da20fee24a6e5b368730153d72eabe26425b2buliabyak gtk_table_attach (GTK_TABLE (t), _b[i], 2, 3, i, i + 1, (GtkAttachOptions)0, (GtkAttachOptions)0, XPAD, YPAD);
c57da20fee24a6e5b368730153d72eabe26425b2buliabyak /* Attach channel value to adjustment */
c57da20fee24a6e5b368730153d72eabe26425b2buliabyak g_object_set_data (G_OBJECT (_a[i]), "channel", GINT_TO_POINTER (i));
c57da20fee24a6e5b368730153d72eabe26425b2buliabyak /* Signals */
c57da20fee24a6e5b368730153d72eabe26425b2buliabyak g_signal_connect (G_OBJECT (_a[i]), "value_changed",
sp_color_scales_new (void)
if ( changing )
switch (_mode) {
case SP_COLOR_SCALES_MODE_RGB:
case SP_COLOR_SCALES_MODE_HSV:
_getRgbaFloatv(c);
_getCmykaFloatv( c );
return val;
#ifdef DUMP_CHANGE_INFO
g_message("ColorScales::_colorChanged( this=%p, %f, %f, %f, %f)", this, _color.v.c[0], _color.v.c[1], _color.v.c[2], _alpha );
switch (_mode) {
case SP_COLOR_SCALES_MODE_RGB:
case SP_COLOR_SCALES_MODE_HSV:
switch (_mode) {
case SP_COLOR_SCALES_MODE_RGB:
case SP_COLOR_SCALES_MODE_HSV:
sp_color_cmyk_to_rgb_floatv (rgba, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3]));
switch (_mode) {
case SP_COLOR_SCALES_MODE_RGB:
case SP_COLOR_SCALES_MODE_HSV:
_getRgbaFloatv(c);
return rgba;
switch (mode) {
case SP_COLOR_SCALES_MODE_RGB:
case SP_COLOR_SCALES_MODE_HSV:
return _mode;
switch ( submode )
switch ( _mode )
case SP_COLOR_SCALES_MODE_HSV:
case SP_COLOR_SCALES_MODE_RGB:
submode = 0;
return submode;
(void)slider;
(void)slider;
(void)slider;
#ifdef SPCS_PREVIEW
switch (_mode) {
case SP_COLOR_SCALES_MODE_RGB:
case SP_COLOR_SCALES_MODE_HSV:
sp_color_cmyk_to_rgb_floatv (rgb0, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3]));
if ( !_updating )
#ifdef SPCS_PREVIEW
static const gchar *
sp_color_scales_hue_map (void)
if (!map) {
gchar *p;
gint h;
p = map;
return map;