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 //UNIX, WIN32
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 KDEUI_EXPORT 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;
00102 class KDEUI_EXPORT KValueSelector :
public KSelector
00103 {
00104 Q_OBJECT
00105
00106
public:
00110 KValueSelector(
QWidget *parent=0,
const char *name=0 );
00114 KValueSelector( Orientation o,
QWidget *parent = 0,
const char *name = 0 );
00115
00116
int hue()
const
00117
{
return _hue; }
00118
void setHue(
int h )
00119 { _hue = h; }
00120
int saturation()
const
00121
{
return _sat; }
00122
void setSaturation(
int s )
00123 { _sat = s; }
00124
00125
void updateContents();
00126
protected:
00131
virtual void drawPalette(
QPixmap *pixmap );
00132
virtual void resizeEvent(
QResizeEvent * );
00133
00139
virtual void drawContents(
QPainter *painter );
00140
00141
private:
00142
int _hue;
00143
int _sat;
00144
QPixmap pixmap;
00145
00146
protected:
00147
virtual void virtual_hook(
int id,
void* data );
00148
private:
00149
class KValueSelectorPrivate;
00150 KValueSelectorPrivate *d;
00151 };
00152
00153
00164 class KDEUI_EXPORT KColor :
public QColor
00165 {
00166
public:
00167 KColor();
00168 KColor(
const KColor &col);
00169 KColor(
const QColor &col);
00170
00171 KColor& operator=(
const KColor& col);
00172
00173
bool operator==(
const KColor& col)
const;
00174
00175
void setHsv(
int _h,
int _s,
int _v);
00176
void setRgb(
int _r,
int _g,
int _b);
00177
00178
void rgb(
int *_r,
int *_g,
int *_b)
const;
00179
void hsv(
int *_h,
int *_s,
int *_v)
const;
00180
protected:
00181
int h;
00182
int s;
00183
int v;
00184
int r;
00185
int g;
00186
int b;
00187
00188
private:
00189
class KColorPrivate;
00190 KColorPrivate *d;
00191 };
00192
00198 class KDEUI_EXPORT KPaletteTable :
public QWidget
00199 {
00200 Q_OBJECT
00201
public:
00202 KPaletteTable(
QWidget *parent,
int minWidth=210,
int cols = 16);
00203 ~KPaletteTable();
00204
void addToCustomColors(
const QColor &);
00205
void addToRecentColors(
const QColor &);
00206
QString palette()
const;
00207
public slots:
00208
void setPalette(
const QString &paletteName);
00209 signals:
00210
void colorSelected(
const QColor &,
const QString & );
00211
void colorDoubleClicked(
const QColor &,
const QString & );
00212
00213
protected slots:
00214
void slotColorCellSelected(
int );
00215
void slotColorCellDoubleClicked(
int );
00216
void slotColorTextSelected(
const QString &colorText );
00217
void slotSetPalette(
const QString &_paletteName );
00218
void slotShowNamedColorReadError(
void );
00219
00220
protected:
00221
void readNamedColor(
void );
00222
00223
protected:
00224
QString i18n_customColors;
00225
QString i18n_recentColors;
00226
QString i18n_namedColors;
00227
QComboBox *combo;
00228
KColorCells *cells;
00229
QScrollView *sv;
00230
KListBox *mNamedColorList;
00231
KPalette *mPalette;
00232
int mMinWidth;
00233
int mCols;
00234
00235
private:
00236
00237
virtual void setPalette(
const QPalette& p) { QWidget::setPalette(p); }
00238
protected:
00239
virtual void virtual_hook(
int id,
void* data );
00240
private:
00241
class KPaletteTablePrivate;
00242 KPaletteTablePrivate *d;
00243 };
00244
00245
00251 class KDEUI_EXPORT KColorCells :
public QGridView
00252 {
00253 Q_OBJECT
00254
public:
00255 KColorCells(
QWidget *parent,
int rows,
int cols );
00256 ~KColorCells();
00257
00258
void setColor(
int colNum,
const QColor &col );
00259
QColor color(
int indx )
const
00260
{
return colors[indx]; }
00261
int numCells()
const
00262
{
return numRows() * numCols(); }
00263
00264
void setShading(
bool _shade) { shade = _shade; }
00265
00266
void setAcceptDrags(
bool _acceptDrags) { acceptDrags = _acceptDrags; }
00267
00268
int getSelected()
const
00269
{
return selected; }
00270
00271 signals:
00272
void colorSelected(
int col );
00273
void colorDoubleClicked(
int col );
00274
00275
protected:
00276
virtual void paintCell(
QPainter *painter,
int row,
int col );
00277
virtual void resizeEvent(
QResizeEvent * );
00278
virtual void mouseReleaseEvent(
QMouseEvent * );
00279
virtual void mousePressEvent(
QMouseEvent * );
00280
virtual void mouseMoveEvent(
QMouseEvent * );
00281
virtual void dragEnterEvent(
QDragEnterEvent *);
00282
virtual void dropEvent(
QDropEvent *);
00283
virtual void mouseDoubleClickEvent(
QMouseEvent * );
00284
00285
int posToCell(
const QPoint &pos,
bool ignoreBorders=
false);
00286
00287
QColor *colors;
00288
bool inMouse;
00289
QPoint mPos;
00290
int selected;
00291
bool shade;
00292
bool acceptDrags;
00293
00294
protected:
00295
virtual void virtual_hook(
int id,
void* data );
00296
private:
00297
class KColorCellsPrivate;
00298 KColorCellsPrivate *d;
00299 };
00300
00309 class KDEUI_EXPORT KColorPatch :
public QFrame
00310 {
00311 Q_OBJECT
00312
public:
00313 KColorPatch(
QWidget *parent );
00314
virtual ~KColorPatch();
00315
00316
void setColor(
const QColor &col );
00317
00318 signals:
00319
void colorChanged(
const QColor&);
00320
00321
protected:
00322
virtual void drawContents(
QPainter *painter );
00323
virtual void mouseMoveEvent(
QMouseEvent * );
00324
virtual void dragEnterEvent(
QDragEnterEvent *);
00325
virtual void dropEvent(
QDropEvent *);
00326
00327
private:
00328
QColor color;
00329 uint pixel;
00330
int colContext;
00331
00332
protected:
00333
virtual void virtual_hook(
int id,
void* data );
00334
private:
00335
class KColorPatchPrivate;
00336 KColorPatchPrivate *d;
00337 };
00338
00375 class KDEUI_EXPORT KColorDialog :
public KDialogBase
00376 {
00377 Q_OBJECT
00378
00379
public:
00383 KColorDialog(
QWidget *parent = 0L,
const char *name = 0L,
00384
bool modal =
false );
00388 ~KColorDialog();
00389
00393
QColor color()
const;
00394
00403
static int getColor(
QColor &theColor,
QWidget *parent=0L );
00404
00417
static int getColor(
QColor &theColor,
const QColor& defaultColor,
QWidget *parent=0L );
00418
00422
static QColor grabColor(
const QPoint &p);
00423
00430
void setDefaultColor(
const QColor& defaultCol );
00431
00435
QColor defaultColor()
const;
00436
00437
public slots:
00441
void setColor(
const QColor &col );
00442
00443 signals:
00449
void colorSelected(
const QColor &col );
00450
00451
private slots:
00452
void slotRGBChanged(
void );
00453
void slotHSVChanged(
void );
00454
void slotHtmlChanged(
void );
00455
void slotHSChanged(
int,
int );
00456
void slotVChanged(
int );
00457
void slotColorSelected(
const QColor &col );
00458
void slotColorSelected(
const QColor &col,
const QString &name );
00459
void slotColorDoubleClicked(
const QColor &col,
const QString &name );
00460
void slotColorPicker();
00461
void slotAddToCustomColors();
00462
void slotDefaultColorClicked();
00466
void slotWriteSettings();
00467
00468
private:
00472
void readSettings();
00473
00474
void setRgbEdit(
const KColor &col );
00475
void setHsvEdit(
const KColor &col );
00476
void setHtmlEdit(
const KColor &col );
00477
void _setColor(
const KColor &col,
const QString &name=QString::null );
00478
void showColor(
const KColor &color,
const QString &name );
00479
00480
protected:
00481
virtual void mouseReleaseEvent(
QMouseEvent * );
00482
virtual void keyPressEvent(
QKeyEvent * );
00483
virtual bool eventFilter(
QObject *obj,
QEvent *ev );
00484
00485
protected:
00486
virtual void virtual_hook(
int id,
void* data );
00487
private:
00488
class KColorDialogPrivate;
00489 KColorDialogPrivate *d;
00490 };
00491
00492
#endif // !Q_WS_QWS
00493
#endif // __KCOLORDIALOG_H__
00494