diff options
Diffstat (limited to 'deco/config/colorpicker.cpp')
| -rw-r--r-- | deco/config/colorpicker.cpp | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/deco/config/colorpicker.cpp b/deco/config/colorpicker.cpp new file mode 100644 index 0000000..c5301c1 --- /dev/null +++ b/deco/config/colorpicker.cpp @@ -0,0 +1,126 @@ +#include "colorpicker.h" +#include <tqcolor.h> +#include <tqlayout.h> +#include <tqslider.h> +#include <tqspinbox.h> + +ColorPicker::ColorPicker(TQWidget* parent, const char* name) : TQGroupBox( parent, name){ +// box = new TQGroupBox(parent); +// setFrameShape(TQFrame::GroupBoxPanel); +// setFrameShadow(TQFrame::Sunken); + setColumnLayout(0, TQt::Vertical ); + layout()->setSpacing( 6 ); + layout()->setMargin( 11 ); + + TQVBoxLayout *vLayout = new TQVBoxLayout(layout()); +// gridLayout->setAlignment( TQt::AlignTop ); + + TQHBoxLayout *redLayout = new TQHBoxLayout(); + redSlider = new TQSlider(0, 255, 1, 0, TQt::Horizontal, this, "redSlider"); + redLayout->addWidget(redSlider); + + redValue = new TQSpinBox(0,255,1,this); + redValue->setValue(0); + redLayout->addWidget(redValue); + + vLayout->addLayout(redLayout); + + TQHBoxLayout *greenLayout = new TQHBoxLayout(); + greenSlider = new TQSlider(0, 255, 1, 0, TQt::Horizontal, this, "greenSlider"); + greenLayout->addWidget(greenSlider); + + greenValue = new TQSpinBox(0,255,1,this); + greenValue->setValue(0); + greenLayout->addWidget(greenValue); + + vLayout->addLayout(greenLayout); + + TQHBoxLayout *blueLayout = new TQHBoxLayout(); + blueSlider = new TQSlider(0, 255, 1, 0, TQt::Horizontal, this, "blueSlider"); + blueLayout->addWidget(blueSlider); + + blueValue = new TQSpinBox(0,255,1,this); + blueValue->setValue(0); + blueLayout->addWidget(blueValue); + + vLayout->addLayout(blueLayout); + +// resize( TQSize(350, 100).expandedTo(minimumSizeHint()) ); + + //connections + connect(redSlider, SIGNAL(valueChanged (int)), this, SLOT(setRed(int))); + connect(greenSlider, SIGNAL(valueChanged (int)), this, SLOT(setGreen(int))); + connect(blueSlider, SIGNAL(valueChanged (int)), this, SLOT(setBlue(int))); + connect(redValue, SIGNAL(valueChanged (int)), this, SLOT(setRed(int))); + connect(greenValue, SIGNAL(valueChanged (int)), this, SLOT(setGreen(int))); + connect(blueValue, SIGNAL(valueChanged (int)), this, SLOT(setBlue(int))); +} + +ColorPicker::~ColorPicker(){ +} + +void ColorPicker::setColor(TQColor color){ + redSlider->blockSignals(true); + redSlider->setValue( color.red() ); + redSlider->blockSignals(false); + redValue->blockSignals(true); + redValue->setValue(redSlider->value()); + redValue->blockSignals(false); + greenSlider->blockSignals(true); + greenSlider->setValue( color.green() ); + greenSlider->blockSignals(false); + greenValue->blockSignals(true); + greenValue->setValue(greenSlider->value()); + greenValue->blockSignals(false); + blueSlider->blockSignals(true); + blueSlider->setValue( color.blue() ); + blueSlider->blockSignals(false); + blueValue->blockSignals(true); + blueValue->setValue(blueSlider->value()); + blueValue->blockSignals(false); + emit colorChanged(color); +} + +void ColorPicker::setRed(int red){ + redSlider->blockSignals(true); + redSlider->setValue( red ); + redSlider->blockSignals(false); + redValue->blockSignals(true); + redValue->setValue(red); + redValue->blockSignals(false); + emit colorChanged(TQColor(red, greenSlider->value(), blueSlider->value())); +} + +void ColorPicker::setGreen(int green){ + greenSlider->blockSignals(true); + greenSlider->setValue( green ); + greenSlider->blockSignals(false); + greenValue->blockSignals(true); + greenValue->setValue(green); + greenValue->blockSignals(false); + emit colorChanged(TQColor(redSlider->value(), green, blueSlider->value())); +} + +void ColorPicker::setBlue(int blue){ + blueSlider->blockSignals(true); + blueSlider->setValue( blue ); + blueSlider->blockSignals(false); + blueValue->blockSignals(true); + blueValue->setValue(blue); + blueValue->blockSignals(false); + emit colorChanged(TQColor(redSlider->value(), greenSlider->value(), blue)); +} + +TQColor ColorPicker::Color(){ + return TQColor(redSlider->value(), greenSlider->value(), blueSlider->value()); +} + +void ColorPicker::reset(){ + setColor(color_); +} + +void ColorPicker::init(){ + color_ = Color(); +} + +#include "colorpicker.moc" |
