lib

koColorChooser.h
1/* This file is part of the KDE project
2 Copyright (c) 1999 Matthias Elter (me@kde.org)
3 Copyright (c) 2001-2002 Igor Jansen (rm@kde.org)
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details.
14
15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 * Boston, MA 02110-1301, USA.
19*/
20
21#ifndef __ko_ColorChooser_h__
22#define __ko_ColorChooser_h__
23
24#include <tqwidget.h>
25#include "koColor.h"
26
27class KoFrameButton;
28class TQGridLayout;
29class TQTabWidget;
30class RGBWidget;
31class HSVWidget;
32class CMYKWidget;
33class LABWidget;
34class GreyWidget;
35class KoColor;
36class KoColorSlider;
37class TQLabel;
38class TQSpinBox;
39class KHSSelector;
40class KColorPatch;
41class ColorWidget;
42
43class KoColorChooser : public TQWidget
44{
45 TQ_OBJECT
46
47public:
48 KoColorChooser(TQWidget *parent = 0L, const char *name = 0L);
49
50 const KoColor &color() const {return mColor; }
51
52public slots:
53 void slotChangeColor(const KoColor &c);
54 void slotChangeColor(const TQColor &c);
55
56signals:
57 void colorChanged(const KoColor &c);
58
59protected slots:
60 void slotChangeXY(int h, int s);
61
62private slots:
63 void childColorChanged(const KoColor& c);
64 void slotCurrentChanged(TQWidget *current);
65
66private:
67 ColorWidget *m_current;
68 KoColor mColor;
69 TQTabWidget *m_tab;
70 TQGridLayout *mGrid;
71 KoFrameButton *btnRGB;
72 KoFrameButton *btnHSV;
73 KoFrameButton *btnCMYK;
74 KoFrameButton *btnLAB;
75 KoFrameButton *btnGrey;
76 RGBWidget *mRGBWidget;
77 HSVWidget *mHSVWidget;
78 TQWidget *mCMYKWidget;
79 LABWidget *mLABWidget;
80 GreyWidget *mGreyWidget;
81 KHSSelector *mColorSelector;
82};
83
84class ColorWidget : public TQWidget {
85 TQ_OBJECT
86
87
88public:
89 ColorWidget(TQWidget *parent = 0);
90 virtual ~ColorWidget();
91
92public slots:
93 virtual void slotChangeColor(const KoColor& c);
94 virtual void slotChangeColor(const TQColor& c);
95 virtual void slotRefreshColor() = 0;
96
97protected:
98 KoColor mColor;
99};
100
101class RGBWidget : public ColorWidget
102{
103 TQ_OBJECT
104
105public:
106 RGBWidget(TQWidget *parent = 0L);
107 virtual ~RGBWidget() {}
108
109public slots:
110 virtual void slotRefreshColor();
111
112protected slots:
113 void slotRSliderChanged(int r);
114 void slotGSliderChanged(int g);
115 void slotBSliderChanged(int b);
116
117 void slotRInChanged(int r);
118 void slotGInChanged(int g);
119 void slotBInChanged(int b);
120
121 void slotPatchChanged(const TQColor& clr);
122
123signals:
124 void colorChanged(const KoColor &c);
125
126private:
127 KoColorSlider *mRSlider;
128 KoColorSlider *mGSlider;
129 KoColorSlider *mBSlider;
130 TQLabel *mRLabel;
131 TQLabel *mGLabel;
132 TQLabel *mBLabel;
133 TQSpinBox *mRIn;
134 TQSpinBox *mGIn;
135 TQSpinBox *mBIn;
136 KColorPatch *mColorPatch;
137};
138
139class HSVWidget : public ColorWidget
140{
141 TQ_OBJECT
142
143public:
144 HSVWidget(TQWidget *parent = 0L);
145 virtual ~HSVWidget() {}
146
147public slots:
148 virtual void slotRefreshColor();
149
150protected slots:
151 void slotHSliderChanged(int h);
152 void slotSSliderChanged(int s);
153 void slotVSliderChanged(int v);
154
155 void slotHInChanged(int h);
156 void slotSInChanged(int s);
157 void slotVInChanged(int v);
158
159 void slotPatchChanged(const TQColor& clr);
160
161signals:
162 void colorChanged(const KoColor &c);
163
164private:
165 KoColorSlider *mHSlider;
166 KoColorSlider *mSSlider;
167 KoColorSlider *mVSlider;
168 TQLabel *mHLabel;
169 TQLabel *mSLabel;
170 TQLabel *mVLabel;
171 TQSpinBox *mHIn;
172 TQSpinBox *mSIn;
173 TQSpinBox *mVIn;
174 KColorPatch *mColorPatch;
175};
176
177class GreyWidget : public ColorWidget
178{
179 TQ_OBJECT
180
181public:
182 GreyWidget(TQWidget *parent = 0L);
183 virtual ~GreyWidget() {}
184
185public slots:
186 virtual void slotRefreshColor();
187
188protected slots:
189 void slotVSliderChanged(int v);
190 void slotVInChanged(int v);
191 void slotPatchChanged(const TQColor& clr);
192
193signals:
194 void colorChanged(const KoColor &c);
195
196protected:
197 KoColorSlider *mVSlider;
198 TQLabel *mVLabel;
199 TQSpinBox *mVIn;
200 KColorPatch *mColorPatch;
201};
202
203class LABWidget : public ColorWidget
204{
205 TQ_OBJECT
206
207public:
208 LABWidget(TQWidget *parent = 0L);
209 virtual ~LABWidget() {}
210
211public slots:
212 virtual void slotRefreshColor();
213
214protected slots:
215 void slotLSliderChanged(int l);
216 void slotASliderChanged(int a);
217 void slotBSliderChanged(int b);
218
219 void slotLInChanged(int l);
220 void slotAInChanged(int a);
221 void slotBInChanged(int b);
222
223 void slotPatchChanged(const TQColor& clr);
224
225signals:
226 void colorChanged(const KoColor &c);
227
228private:
229 KoColorSlider *mLSlider;
230 KoColorSlider *mASlider;
231 KoColorSlider *mBSlider;
232 TQLabel *mLLabel;
233 TQLabel *mALabel;
234 TQLabel *mBLabel;
235 TQSpinBox *mLIn;
236 TQSpinBox *mAIn;
237 TQSpinBox *mBIn;
238 KColorPatch *mColorPatch;
239};
240
241#endif
242