kcolordialog.h
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
This file is part of the documentation for kdeui Library Version 3.2.2.