22#include "ko_rgb_widget.h"
34#include <koFrameButton.h>
35#include <koColorSlider.h>
36#include <kcolordialog.h>
38KoRGBWidget::KoRGBWidget(TQWidget *parent,
const char *name) : super(parent,
name)
41 m_ColorButton -> setFixedSize(m_ColorButton->sizeHint());
42 TQGridLayout *mGrid =
new TQGridLayout(
this, 3, 5, 5, 2);
45 mRSlider =
new KoColorSlider(
this);
46 mRSlider->setMaximumHeight(20);
47 mRSlider->slotSetRange(0, 255);
48 mRSlider->setFocusPolicy( TQWidget::ClickFocus );
50 mGSlider =
new KoColorSlider(
this);
51 mGSlider->setMaximumHeight(20);
52 mGSlider->slotSetRange(0, 255);
53 mGSlider->setFocusPolicy( TQWidget::ClickFocus );
55 mBSlider =
new KoColorSlider(
this);
56 mBSlider->setMaximumHeight(20);
57 mBSlider->slotSetRange(0, 255);
58 mBSlider->setFocusPolicy( TQWidget::ClickFocus );
61 mRLabel =
new TQLabel(
"R:",
this);
62 mRLabel->setFixedWidth(12);
63 mRLabel->setFixedHeight(20);
64 mGLabel =
new TQLabel(
"G:",
this);
65 mGLabel->setFixedWidth(12);
66 mGLabel->setFixedHeight(20);
67 mBLabel =
new TQLabel(
"B:",
this);
68 mBLabel->setFixedWidth(12);
69 mBLabel->setFixedHeight(20);
72 mRIn =
new TQSpinBox(0, 255, 1,
this);
73 mRIn->setFixedWidth(50);
74 mRIn->setFixedHeight(20);
75 mRIn->setFocusPolicy( TQWidget::ClickFocus );
76 TQToolTip::add( mRIn, i18n(
"Red" ) );
78 mGIn =
new TQSpinBox(0, 255, 1,
this);
79 mGIn->setFixedWidth(50);
80 mGIn->setFixedHeight(20);
81 mGIn->setFocusPolicy( TQWidget::ClickFocus );
82 TQToolTip::add( mGIn, i18n(
"Green" ) );
84 mBIn =
new TQSpinBox(0, 255, 1,
this);
85 mBIn->setFixedWidth(50);
86 mBIn->setFixedHeight(20);
87 mBIn->setFocusPolicy( TQWidget::ClickFocus );
88 TQToolTip::add( mBIn, i18n(
"Blue" ) );
90 mGrid->addMultiCellWidget(m_ColorButton, 0, 3, 0, 0, TQt::AlignTop);
91 mGrid->addWidget(mRLabel, 0, 1);
92 mGrid->addWidget(mGLabel, 1, 1);
93 mGrid->addWidget(mBLabel, 2, 1);
94 mGrid->addMultiCellWidget(mRSlider, 0, 0, 2, 3);
95 mGrid->addMultiCellWidget(mGSlider, 1, 1, 2, 3);
96 mGrid->addMultiCellWidget(mBSlider, 2, 2, 2, 3);
97 mGrid->addWidget(mRIn, 0, 4);
98 mGrid->addWidget(mGIn, 1, 4);
99 mGrid->addWidget(mBIn, 2, 4);
101 connect(m_ColorButton, TQ_SIGNAL(fgChanged(
const TQColor &)),
this, TQ_SLOT(slotFGColorSelected(
const TQColor &)));
102 connect(m_ColorButton, TQ_SIGNAL(bgChanged(
const TQColor &)),
this, TQ_SLOT(slotBGColorSelected(
const TQColor &)));
103 connect(m_ColorButton, TQ_SIGNAL(currentChanged(KDualColorButton::DualColor)),
this, TQ_SLOT(currentChanged(KDualColorButton::DualColor)));
106 connect(mRSlider, TQ_SIGNAL(valueChanged(
int)),
this, TQ_SLOT(slotRChanged(
int)));
107 connect(mGSlider, TQ_SIGNAL(valueChanged(
int)),
this, TQ_SLOT(slotGChanged(
int)));
108 connect(mBSlider, TQ_SIGNAL(valueChanged(
int)),
this, TQ_SLOT(slotBChanged(
int)));
111 connect(mRIn, TQ_SIGNAL(valueChanged(
int)),
this, TQ_SLOT(slotRChanged(
int)));
112 connect(mGIn, TQ_SIGNAL(valueChanged(
int)),
this, TQ_SLOT(slotGChanged(
int)));
113 connect(mBIn, TQ_SIGNAL(valueChanged(
int)),
this, TQ_SLOT(slotBChanged(
int)));
115 update(TQt::black, TQt::white);
118void KoRGBWidget::slotRChanged(
int r)
120 if (m_ColorButton->current() == KDualColorButton::Foreground)
121 slotFGColorSelected( TQColor(r, m_fgColor.green(), m_fgColor.blue()));
123 slotBGColorSelected( TQColor(r, m_bgColor.green(), m_bgColor.blue()));
126void KoRGBWidget::slotGChanged(
int g)
128 if (m_ColorButton->current() == KDualColorButton::Foreground)
129 slotFGColorSelected( TQColor( m_fgColor.red(), g, m_fgColor.blue()));
131 slotBGColorSelected( TQColor( m_bgColor.red(), g, m_bgColor.blue()));;
134void KoRGBWidget::slotBChanged(
int b)
136 if (m_ColorButton->current() == KDualColorButton::Foreground)
137 slotFGColorSelected( TQColor( m_fgColor.red(), m_fgColor.green(), b));
139 slotBGColorSelected( TQColor( m_bgColor.red(), m_bgColor.green(), b));
142void KoRGBWidget::setFgColor(
const TQColor & c)
145 slotFGColorSelected(c);
149void KoRGBWidget::setBgColor(
const TQColor & c)
152 slotBGColorSelected(c);
156void KoRGBWidget::update(
const TQColor fgColor,
const TQColor bgColor)
162 TQColor color = (m_ColorButton->current() == KDualColorButton::Foreground)? m_fgColor : m_bgColor;
165 int g = color.green();
166 int b = color.blue();
168 mRSlider->blockSignals(
true);
169 mRIn->blockSignals(
true);
170 mGSlider->blockSignals(
true);
171 mGIn->blockSignals(
true);
172 mBSlider->blockSignals(
true);
173 mBIn->blockSignals(
true);
175 mRSlider->slotSetColor1(TQColor(0, g, b));
176 mRSlider->slotSetColor2(TQColor(255, g, b));
177 mRSlider->slotSetValue(r);
180 mGSlider->slotSetColor1(TQColor(r, 0, b));
181 mGSlider->slotSetColor2(TQColor(r, 255, b));
182 mGSlider->slotSetValue(g);
185 mBSlider->slotSetColor1(TQColor(r, g, 0));
186 mBSlider->slotSetColor2(TQColor(r, g, 255));
187 mBSlider->slotSetValue(b);
190 mRSlider->blockSignals(
false);
191 mRIn->blockSignals(
false);
192 mGSlider->blockSignals(
false);
193 mGIn->blockSignals(
false);
194 mBSlider->blockSignals(
false);
195 mBIn->blockSignals(
false);
198void KoRGBWidget::slotFGColorSelected(
const TQColor& c)
201 disconnect(m_ColorButton, TQ_SIGNAL(fgChanged(
const TQColor &)),
this, TQ_SLOT(slotFGColorSelected(
const TQColor &)));
202 m_ColorButton->setForeground( m_fgColor );
203 connect(m_ColorButton, TQ_SIGNAL(fgChanged(
const TQColor &)),
this, TQ_SLOT(slotFGColorSelected(
const TQColor &)));
205 update( m_fgColor, m_bgColor);
206 emit sigFgColorChanged(m_fgColor);
209void KoRGBWidget::slotBGColorSelected(
const TQColor& c)
213 disconnect(m_ColorButton, TQ_SIGNAL(bgChanged(
const TQColor &)),
this, TQ_SLOT(slotBGColorSelected(
const TQColor &)));
214 m_ColorButton->setBackground( m_bgColor );
215 connect(m_ColorButton, TQ_SIGNAL(bgChanged(
const TQColor &)),
this, TQ_SLOT(slotBGColorSelected(
const TQColor &)));
217 update(m_fgColor, m_bgColor);
218 emit sigBgColorChanged(m_bgColor);
221void KoRGBWidget::currentChanged(KDualColorButton::DualColor s)
223 if(s == KDualColorButton::Foreground)
224 slotFGColorSelected(m_ColorButton->currentColor());
226 slotBGColorSelected(m_ColorButton->currentColor());
227 emit sigModeChanged( s );
230void KoRGBWidget::setMode(KDualColorButton::DualColor s)
232 m_ColorButton->setCurrent( s );
235#include "ko_rgb_widget.moc"
const char * name(StdAction id)