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);
    }
Example #2
0
/**
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
    }
}