X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fwidgets%2Fsp-color-scales.cpp;h=2cc4915b8c9ce86fe96748eb7d76bc49b4a4dac6;hb=c9e0770d985a630a8d91eafc97d7c31196ea5ef3;hp=ddfb40a8fd49112285b4c140803d864e63cbabe0;hpb=c87d0307348fcfdc65b6b4ab6999a3cb0de2431f;p=inkscape.git diff --git a/src/widgets/sp-color-scales.cpp b/src/widgets/sp-color-scales.cpp index ddfb40a8f..2cc4915b8 100644 --- a/src/widgets/sp-color-scales.cpp +++ b/src/widgets/sp-color-scales.cpp @@ -101,9 +101,7 @@ ColorScales::ColorScales( SPColorSelector* csel ) _updating( FALSE ), _dragging( FALSE ) { - gint i = 0; - - for (i = 0; i < 5; i++) { + for (gint i = 0; i < 5; i++) { _l[i] = 0; _a[i] = 0; _s[i] = 0; @@ -113,9 +111,7 @@ ColorScales::ColorScales( SPColorSelector* csel ) ColorScales::~ColorScales() { - gint i = 0; - - for (i = 0; i < 5; i++) { + for (gint i = 0; i < 5; i++) { _l[i] = 0; _a[i] = 0; _s[i] = 0; @@ -214,7 +210,7 @@ sp_color_scales_new (void) return GTK_WIDGET (csel); } -void ColorScales::_recalcColor( bool changing ) +void ColorScales::_recalcColor( gboolean changing ) { if ( changing ) { @@ -226,14 +222,19 @@ void ColorScales::_recalcColor( bool changing ) case SP_COLOR_SCALES_MODE_RGB: case SP_COLOR_SCALES_MODE_HSV: _getRgbaFloatv(c); - sp_color_set_rgb_float (&color, c[0], c[1], c[2]); + color.set( c[0], c[1], c[2] ); alpha = c[3]; break; case SP_COLOR_SCALES_MODE_CMYK: + { _getCmykaFloatv( c ); - sp_color_set_cmyk_float (&color, c[0], c[1], c[2], c[3]); + + float rgb[3]; + sp_color_cmyk_to_rgb_floatv( rgb, c[0], c[1], c[2], c[3] ); + color.set( rgb[0], rgb[1], rgb[2] ); alpha = c[4]; break; + } default: g_warning ("file %s: line %d: Illegal color selector mode %d", __FILE__, __LINE__, _mode); break; @@ -268,41 +269,43 @@ void ColorScales::_setRangeLimit( gdouble upper ) } } -void ColorScales::_colorChanged( const SPColor& color, gfloat alpha ) +void ColorScales::_colorChanged() { - gfloat tmp[3]; - gfloat c[5] = {0.0, 0.0, 0.0, 0.0}; - - switch (_mode) { - case SP_COLOR_SCALES_MODE_RGB: - sp_color_get_rgb_floatv (&color, c); - c[3] = alpha; - c[4] = 0.0; - break; - case SP_COLOR_SCALES_MODE_HSV: - sp_color_get_rgb_floatv (&color, tmp); - c[0] = getScaled( _a[0] ); - sp_color_rgb_to_hsl_floatv (c, tmp[0], tmp[1], tmp[2]); - c[3] = alpha; - c[4] = 0.0; - break; - case SP_COLOR_SCALES_MODE_CMYK: - sp_color_get_cmyk_floatv (&color, c); - c[4] = alpha; - break; - default: - g_warning ("file %s: line %d: Illegal color selector mode %d", __FILE__, __LINE__, _mode); - break; - } +#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 ); +#endif + gfloat tmp[3]; + gfloat c[5] = {0.0, 0.0, 0.0, 0.0}; + + switch (_mode) { + case SP_COLOR_SCALES_MODE_RGB: + sp_color_get_rgb_floatv( &_color, c ); + c[3] = _alpha; + c[4] = 0.0; + break; + case SP_COLOR_SCALES_MODE_HSV: + sp_color_get_rgb_floatv( &_color, tmp ); + sp_color_rgb_to_hsl_floatv (c, tmp[0], tmp[1], tmp[2]); + c[3] = _alpha; + c[4] = 0.0; + break; + case SP_COLOR_SCALES_MODE_CMYK: + sp_color_get_cmyk_floatv( &_color, c ); + c[4] = _alpha; + break; + default: + g_warning ("file %s: line %d: Illegal color selector mode %d", __FILE__, __LINE__, _mode); + break; + } - _updating = TRUE; - setScaled( _a[0], c[0] ); - setScaled( _a[1], c[1] ); - setScaled( _a[2], c[2] ); - setScaled( _a[3], c[3] ); - setScaled( _a[4], c[4] ); - _updateSliders( CSC_CHANNELS_ALL ); - _updating = FALSE; + _updating = TRUE; + setScaled( _a[0], c[0] ); + setScaled( _a[1], c[1] ); + setScaled( _a[2], c[2] ); + setScaled( _a[3], c[3] ); + setScaled( _a[4], c[4] ); + _updateSliders( CSC_CHANNELS_ALL ); + _updating = FALSE; } void ColorScales::_getRgbaFloatv( gfloat *rgba ) @@ -528,12 +531,6 @@ guint ColorScales::getSubmode() const void ColorScales::_adjustmentAnyChanged( GtkAdjustment *adjustment, SPColorScales *cs ) { -// TODO check this. It looks questionable: - // if a value is entered between 0 and 1 exclusive, normalize it to (int) 0..255 or 0..100 - if (adjustment->value > 0.0 && adjustment->value < 1.0) { - gtk_adjustment_set_value( adjustment, floor ((adjustment->value) * adjustment->upper + 0.5) ); - } - gint channel = GPOINTER_TO_INT (gtk_object_get_data (GTK_OBJECT (adjustment), "channel")); _adjustmentChanged(cs, channel); @@ -541,6 +538,7 @@ void ColorScales::_adjustmentAnyChanged( GtkAdjustment *adjustment, SPColorScale void ColorScales::_sliderAnyGrabbed( SPColorSlider *slider, SPColorScales *cs ) { + (void)slider; ColorScales* scales = (ColorScales*)(SP_COLOR_SELECTOR(cs)->base); if (!scales->_dragging) { scales->_dragging = TRUE; @@ -551,6 +549,7 @@ void ColorScales::_sliderAnyGrabbed( SPColorSlider *slider, SPColorScales *cs ) void ColorScales::_sliderAnyReleased( SPColorSlider *slider, SPColorScales *cs ) { + (void)slider; ColorScales* scales = (ColorScales*)(SP_COLOR_SELECTOR(cs)->base); if (scales->_dragging) { scales->_dragging = FALSE; @@ -561,6 +560,7 @@ void ColorScales::_sliderAnyReleased( SPColorSlider *slider, SPColorScales *cs ) void ColorScales::_sliderAnyChanged( SPColorSlider *slider, SPColorScales *cs ) { + (void)slider; ColorScales* scales = (ColorScales*)(SP_COLOR_SELECTOR(cs)->base); scales->_recalcColor( TRUE );