void iUserControlColorChooser::updateWidgets() { _valueChooserH->setValue(_colorHSV._r * 255.0f); _valueChooserS->setValue(_colorHSV._g * 255.0f); _valueChooserV->setValue(_colorHSV._b * 255.0f); _valueChooserR->setValue(_colorRGBA._r * 255.0f); _valueChooserG->setValue(_colorRGBA._g * 255.0f); _valueChooserB->setValue(_colorRGBA._b * 255.0f); _valueChooserA->setValue(_colorRGBA._a * 255.0f); _valueChooserRExpanded->setValue(_colorRGBA._r * 255.0f); _valueChooserGExpanded->setValue(_colorRGBA._g * 255.0f); _valueChooserBExpanded->setValue(_colorRGBA._b * 255.0f); _valueChooserAExpanded->setValue(_colorRGBA._a * 255.0f); _sliderH->setValue(_colorHSV._r * 255.0f); _sliderS->setValue(_colorHSV._g * 255.0f); _sliderV->setValue(_colorHSV._b * 255.0f); _sliderR->setValue(_colorRGBA._r * 255.0f); _sliderG->setValue(_colorRGBA._g * 255.0f); _sliderB->setValue(_colorRGBA._b * 255.0f); _sliderA->setValue(_colorRGBA._a * 255.0f); updateColorViews(); _colorChanged(_colorRGBA); }
/** Called from the outside to set the color; optionally emits signal (only when called from downstream, e.g. the RGBA value field, but not from the rest of the program) */ void ColorSelector::setColorAlpha( const SPColor& color, gfloat alpha, bool emit ) { #ifdef DUMP_CHANGE_INFO g_message("ColorSelector::setColorAlpha( this=%p, %f, %f, %f, %s, %f, %s) in %s", this, color.v.c[0], color.v.c[1], color.v.c[2], (color.icc?color.icc->colorProfile.c_str():"<null>"), alpha, (emit?"YES":"no"), FOO_NAME(_csel)); #endif g_return_if_fail( _csel != NULL ); g_return_if_fail( ( 0.0 <= alpha ) && ( alpha <= 1.0 ) ); #ifdef DUMP_CHANGE_INFO g_message("---- ColorSelector::setColorAlpha virgin:%s !close:%s alpha is:%s in %s", (virgin?"YES":"no"), (!color.isClose( _color, _epsilon )?"YES":"no"), ((fabs((_alpha) - (alpha)) >= _epsilon )?"YES":"no"), FOO_NAME(_csel) ); #endif if ( virgin || !color.isClose( _color, _epsilon ) || (fabs((_alpha) - (alpha)) >= _epsilon )) { virgin = false; _color = color; _alpha = alpha; _colorChanged(); if (emit) { gtk_signal_emit(GTK_OBJECT(_csel), csel_signals[CHANGED]); } #ifdef DUMP_CHANGE_INFO } else { g_message("++++ ColorSelector::setColorAlpha color:%08x ==> _color:%08X isClose:%s in %s", color.toRGBA32(alpha), _color.toRGBA32(_alpha), (color.isClose( _color, _epsilon )?"YES":"no"), FOO_NAME(_csel)); #endif } }