00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
#ifndef __KCOLORDIALOG_H__
00026
#define __KCOLORDIALOG_H__
00027
00028
#ifdef Q_WS_QWS
00029
00030
#include <qcolordialog.h>
00031
#define KColorDialog QColorDialog
00032
#else
00033
#include <kdialogbase.h>
00034
#include <qframe.h>
00035
#include <qpixmap.h>
00036
#include <qgridview.h>
00037
00038
#include "kselect.h"
00039
00040
class QComboBox;
00041
class QLineEdit;
00042
class KListBox;
00043
class KPalette;
00044
class KColorCells;
00045
00046
00058 class KHSSelector :
public KXYSelector
00059 {
00060 Q_OBJECT
00061
00062
public:
00066
KHSSelector(
QWidget *parent=0,
const char *name=0 );
00067
00068
protected:
00073
virtual void drawPalette(
QPixmap *pixmap );
00074
virtual void resizeEvent(
QResizeEvent * );
00075
00081
virtual void drawContents(
QPainter *painter );
00082
00083
private:
00084
void updateContents();
00085
QPixmap pixmap;
00086
00087
protected:
00088
virtual void virtual_hook(
int id,
void* data );
00089
private:
00090
class KHSSelectorPrivate;
00091 KHSSelectorPrivate *d;
00092 };
00093
00094
00095
class KValueSelectorPrivate;
00103 class KValueSelector :
public KSelector
00104 {
00105 Q_OBJECT
00106
00107
public:
00111
KValueSelector(
QWidget *parent=0,
const char *name=0 );
00115
KValueSelector( Orientation o,
QWidget *parent = 0,
const char *name = 0 );
00116
00117
int hue()
const
00118
{
return _hue; }
00119
void setHue(
int h )
00120 { _hue = h; }
00121
int saturation()
const
00122
{
return _sat; }
00123
void setSaturation(
int s )
00124 { _sat = s; }
00125
00126
void updateContents();
00127
protected:
00132
virtual void drawPalette(
QPixmap *pixmap );
00133
virtual void resizeEvent(
QResizeEvent * );
00134
00140
virtual void drawContents(
QPainter *painter );
00141
00142
private:
00143
int _hue;
00144
int _sat;
00145
QPixmap pixmap;
00146
00147
protected:
00148
virtual void virtual_hook(
int id,
void* data );
00149
private:
00150
class KValueSelectorPrivate;
00151 KValueSelectorPrivate *d;
00152 };
00153
00154
00162 class KColor :
public QColor
00163 {
00164
public:
00165
KColor();
00166
KColor(
const KColor &col);
00167
KColor(
const QColor &col);
00168
00169
KColor& operator=(
const KColor& col);
00170
00171
bool operator==(
const KColor& col)
const;
00172
00173
void setHsv(
int _h,
int _s,
int _v);
00174
void setRgb(
int _r,
int _g,
int _b);
00175
00176
void rgb(
int *_r,
int *_g,
int *_b)
const;
00177
void hsv(
int *_h,
int *_s,
int *_v)
const;
00178
protected:
00179
int h;
00180
int s;
00181
int v;
00182
int r;
00183
int g;
00184
int b;
00185
00186
private:
00187
class KColorPrivate;
00188 KColorPrivate *d;
00189 };
00190
00196 class KPaletteTable :
public QWidget
00197 {
00198 Q_OBJECT
00199
public:
00200
KPaletteTable(
QWidget *parent,
int minWidth=210,
int cols = 16);
00201 ~
KPaletteTable();
00202
void addToCustomColors(
const QColor &);
00203
void addToRecentColors(
const QColor &);
00204
QString palette()
const;
00205
public slots:
00206
void setPalette(
const QString &paletteName);
00207 signals:
00208
void colorSelected(
const QColor &,
const QString & );
00209
void colorDoubleClicked(
const QColor &,
const QString & );
00210
00211
protected slots:
00212
void slotColorCellSelected(
int );
00213
void slotColorCellDoubleClicked(
int );
00214
void slotColorTextSelected(
const QString &colorText );
00215
void slotSetPalette(
const QString &_paletteName );
00216
void slotShowNamedColorReadError(
void );
00217
00218
protected:
00219
void readNamedColor(
void );
00220
00221
protected:
00222
QString i18n_customColors;
00223
QString i18n_recentColors;
00224
QString i18n_namedColors;
00225
QComboBox *combo;
00226
KColorCells *cells;
00227
QScrollView *sv;
00228
KListBox *mNamedColorList;
00229
KPalette *mPalette;
00230
int mMinWidth;
00231
int mCols;
00232
00233
private:
00234
00235
virtual void setPalette(
const QPalette& p) { QWidget::setPalette(p); }
00236
protected:
00237
virtual void virtual_hook(
int id,
void* data );
00238
private:
00239
class KPaletteTablePrivate;
00240 KPaletteTablePrivate *d;
00241 };
00242
00243
00249 class KColorCells :
public QGridView
00250 {
00251 Q_OBJECT
00252
public:
00253
KColorCells(
QWidget *parent,
int rows,
int cols );
00254 ~
KColorCells();
00255
00256
void setColor(
int colNum,
const QColor &col );
00257
QColor color(
int indx )
const
00258
{
return colors[indx]; }
00259
int numCells()
const
00260
{
return numRows() * numCols(); }
00261
00262
void setShading(
bool _shade) { shade = _shade; }
00263
00264
void setAcceptDrags(
bool _acceptDrags) { acceptDrags = _acceptDrags; }
00265
00266
int getSelected()
const
00267
{
return selected; }
00268
00269 signals:
00270
void colorSelected(
int col );
00271
void colorDoubleClicked(
int col );
00272
00273
protected:
00274
virtual void paintCell(
QPainter *painter,
int row,
int col );
00275
virtual void resizeEvent(
QResizeEvent * );
00276
virtual void mouseReleaseEvent(
QMouseEvent * );
00277
virtual void mousePressEvent(
QMouseEvent * );
00278
virtual void mouseMoveEvent(
QMouseEvent * );
00279
virtual void dragEnterEvent(
QDragEnterEvent *);
00280
virtual void dropEvent(
QDropEvent *);
00281
virtual void mouseDoubleClickEvent(
QMouseEvent * );
00282
00283
int posToCell(
const QPoint &pos,
bool ignoreBorders=
false);
00284
00285
QColor *colors;
00286
bool inMouse;
00287
QPoint mPos;
00288
int selected;
00289
bool shade;
00290
bool acceptDrags;
00291
00292
protected:
00293
virtual void virtual_hook(
int id,
void* data );
00294
private:
00295
class KColorCellsPrivate;
00296 KColorCellsPrivate *d;
00297 };
00298
00306 class KColorPatch :
public QFrame
00307 {
00308 Q_OBJECT
00309
public:
00310
KColorPatch(
QWidget *parent );
00311
virtual ~
KColorPatch();
00312
00313
void setColor(
const QColor &col );
00314
00315 signals:
00316
void colorChanged(
const QColor&);
00317
00318
protected:
00319
virtual void drawContents(
QPainter *painter );
00320
virtual void mouseMoveEvent(
QMouseEvent * );
00321
virtual void dragEnterEvent(
QDragEnterEvent *);
00322
virtual void dropEvent(
QDropEvent *);
00323
00324
private:
00325
QColor color;
00326 uint pixel;
00327
int colContext;
00328
00329
protected:
00330
virtual void virtual_hook(
int id,
void* data );
00331
private:
00332
class KColorPatchPrivate;
00333 KColorPatchPrivate *d;
00334 };
00335
00373 class KColorDialog :
public KDialogBase
00374 {
00375 Q_OBJECT
00376
00377
public:
00381
KColorDialog(
QWidget *parent = 0L,
const char *name = 0L,
00382
bool modal =
false );
00386
~KColorDialog();
00387
00391
QColor color()
const;
00392
00401
static int getColor(
QColor &theColor,
QWidget *parent=0L );
00402
00415
static int getColor(
QColor &theColor,
const QColor&
defaultColor,
QWidget *parent=0L );
00416
00420
static QColor grabColor(
const QPoint &p);
00421
00428
void setDefaultColor(
const QColor& defaultCol );
00429
00433
QColor defaultColor()
const;
00434
00435
public slots:
00439
void setColor(
const QColor &col );
00440
00441 signals:
00447
void colorSelected(
const QColor &col );
00448
00449
private slots:
00450
void slotRGBChanged(
void );
00451
void slotHSVChanged(
void );
00452
void slotHtmlChanged(
void );
00453
void slotHSChanged(
int,
int );
00454
void slotVChanged(
int );
00455
void slotColorSelected(
const QColor &col );
00456
void slotColorSelected(
const QColor &col,
const QString &name );
00457
void slotColorDoubleClicked(
const QColor &col,
const QString &name );
00458
void slotColorPicker();
00459
void slotAddToCustomColors();
00460
void slotDefaultColorClicked();
00464
void slotWriteSettings();
00465
00466
private:
00470
void readSettings();
00471
00472
void setRgbEdit(
const KColor &col );
00473
void setHsvEdit(
const KColor &col );
00474
void setHtmlEdit(
const KColor &col );
00475
void _setColor(
const KColor &col,
const QString &name=QString::null );
00476
void showColor(
const KColor &
color,
const QString &name );
00477
00478
protected:
00479
virtual void mouseReleaseEvent(
QMouseEvent * );
00480
virtual void keyPressEvent(
QKeyEvent * );
00481
virtual bool eventFilter(
QObject *obj,
QEvent *ev );
00482
00483
protected:
00484
virtual void virtual_hook(
int id,
void* data );
00485
private:
00486
class KColorDialogPrivate;
00487 KColorDialogPrivate *d;
00488 };
00489
00490
#endif // Q_WS_QWS
00491
#endif // __KCOLORDIALOG_H__
00492