• Skip to content
  • Skip to link menu
KDE 3.5 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

kdeui

kcolordialog.h

Go to the documentation of this file.
00001 /* This file is part of the KDE libraries
00002     Copyright (C) 1997 Martin Jones (mjones@kde.org)
00003 
00004     This library is free software; you can redistribute it and/or
00005     modify it under the terms of the GNU Library General Public
00006     License as published by the Free Software Foundation; either
00007     version 2 of the License, or (at your option) any later version.
00008 
00009     This library is distributed in the hope that it will be useful,
00010     but WITHOUT ANY WARRANTY; without even the implied warranty of
00011     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012     Library General Public License for more details.
00013 
00014     You should have received a copy of the GNU Library General Public License
00015     along with this library; see the file COPYING.LIB.  If not, write to
00016     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00017     Boston, MA 02110-1301, USA.
00018 */
00019 //----------------------------------------------------------------------
00020 // KDE color selection dialog.
00021 
00022 // layout management added Oct 1997 by Mario Weilguni
00023 // <mweilguni@sime.com>
00024 
00025 #ifndef KDELIBS_KCOLORDIALOG_H
00026 #define KDELIBS_KCOLORDIALOG_H
00027 
00028 #ifdef Q_WS_QWS
00029 // FIXME(E): Do we need the KColorDialog extra functionality in Qt Embedded?
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:
00225   QString i18n_customColors; 
00226 
00227   QString i18n_recentColors; 
00228   QString i18n_namedColors;
00229   QComboBox *combo;
00230   KColorCells *cells;
00231   QScrollView *sv;
00232   KListBox *mNamedColorList;
00233   KPalette *mPalette;
00234   int mMinWidth;
00235   int mCols;
00236 
00237 private:
00238 
00239   virtual void setPalette(const QPalette& p) { QWidget::setPalette(p); }
00240 protected:
00241   virtual void virtual_hook( int id, void* data );
00242 private:
00243   class KPaletteTablePrivate;
00244   KPaletteTablePrivate *d;
00245 };
00246 
00247 
00253 class KDEUI_EXPORT KColorCells : public QGridView
00254 {
00255   Q_OBJECT
00256 public:
00257   KColorCells( QWidget *parent, int rows, int cols );
00258   ~KColorCells();
00259 
00260   void setColor( int colNum, const QColor &col );
00261   QColor color( int indx ) const
00262   { return colors[indx]; }
00263   int numCells() const
00264   { return numRows() * numCols(); }
00265 
00266   void setShading(bool _shade) { shade = _shade; }
00267 
00268   void setAcceptDrags(bool _acceptDrags) { acceptDrags = _acceptDrags; }
00269 
00270   int getSelected() const
00271   { return selected; }
00272 
00273   signals:
00274   void colorSelected( int col );
00275   void colorDoubleClicked( int col );
00276 
00277 protected:
00278   virtual void paintCell( QPainter *painter, int row, int col );
00279   virtual void resizeEvent( QResizeEvent * );
00280   virtual void mouseReleaseEvent( QMouseEvent * );
00281   virtual void mousePressEvent( QMouseEvent * );
00282   virtual void mouseMoveEvent( QMouseEvent * );
00283   virtual void dragEnterEvent( QDragEnterEvent *);
00284   virtual void dropEvent( QDropEvent *);
00285   virtual void mouseDoubleClickEvent( QMouseEvent * );
00286 
00287   int posToCell(const QPoint &pos, bool ignoreBorders=false);
00288 
00289   QColor *colors;
00290   bool inMouse;
00291   QPoint mPos;
00292   int   selected;
00293   bool shade;
00294   bool acceptDrags;
00295 
00296 protected:
00297   virtual void virtual_hook( int id, void* data );
00298 private:
00299   class KColorCellsPrivate;
00300   KColorCellsPrivate *d;
00301 };
00302 
00311 class KDEUI_EXPORT KColorPatch : public QFrame
00312 {
00313   Q_OBJECT
00314 public:
00315   KColorPatch( QWidget *parent );
00316   virtual ~KColorPatch();
00317 
00318   void setColor( const QColor &col );
00319 
00320 signals:
00321   void colorChanged( const QColor&);
00322 
00323 protected:
00324   virtual void drawContents( QPainter *painter );
00325   virtual void mouseMoveEvent( QMouseEvent * );
00326   virtual void dragEnterEvent( QDragEnterEvent *);
00327   virtual void dropEvent( QDropEvent *);
00328 
00329 private:
00330   QColor color;
00331   uint pixel;
00332   int colContext;
00333 
00334 protected:
00335   virtual void virtual_hook( int id, void* data );
00336 private:
00337   class KColorPatchPrivate;
00338   KColorPatchPrivate *d;
00339 };
00340 
00377 class KDEUI_EXPORT KColorDialog : public KDialogBase
00378 {
00379   Q_OBJECT
00380 
00381   public:
00385     KColorDialog( QWidget *parent = 0L, const char *name = 0L,
00386           bool modal = false );
00390     ~KColorDialog();
00391 
00395     QColor color() const;
00396 
00405     static int getColor( QColor &theColor, QWidget *parent=0L );
00406 
00419     static int getColor( QColor &theColor, const QColor& defaultColor, QWidget *parent=0L );
00420 
00424     static QColor grabColor(const QPoint &p);
00425 
00432     void setDefaultColor( const QColor& defaultCol );
00433 
00437     QColor defaultColor() const;
00438 
00439   public slots:
00443     void setColor( const QColor &col );
00444 
00445   signals:
00451     void colorSelected( const QColor &col );
00452 
00453   private slots:
00454     void slotRGBChanged( void );
00455     void slotHSVChanged( void );
00456     void slotHtmlChanged( void );
00457     void slotHSChanged( int, int );
00458     void slotVChanged( int );
00459     void slotColorSelected( const QColor &col );
00460     void slotColorSelected( const QColor &col, const QString &name );
00461     void slotColorDoubleClicked( const QColor &col, const QString &name );
00462     void slotColorPicker();
00463     void slotAddToCustomColors();
00464     void slotDefaultColorClicked();
00468     void slotWriteSettings();
00469 
00470   private:
00474     void readSettings();
00475 
00476     void setRgbEdit( const KColor &col );
00477     void setHsvEdit( const KColor &col );
00478     void setHtmlEdit( const KColor &col );
00479     void _setColor( const KColor &col, const QString &name=QString::null );
00480     void showColor( const KColor &color, const QString &name );
00481 
00482   protected:
00483     virtual void mouseReleaseEvent( QMouseEvent * );
00484     virtual void keyPressEvent( QKeyEvent * );
00485     virtual bool eventFilter( QObject *obj, QEvent *ev );
00486 
00487   protected:
00488     virtual void virtual_hook( int id, void* data );
00489   private:
00490     class KColorDialogPrivate;
00491     KColorDialogPrivate *d;
00492 };
00493 
00494 #endif      // !Q_WS_QWS
00495 #endif      // KDELIBS_KCOLORDIALOG_H
00496 

kdeui

Skip menu "kdeui"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

API Reference

Skip menu "API Reference"
  • dcop
  • DNSSD
  • interfaces
  • Kate
  • kconf_update
  • KDECore
  • KDED
  • kdefx
  • KDEsu
  • kdeui
  • KDocTools
  • KHTML
  • KImgIO
  • KInit
  • kio
  • kioslave
  • KJS
  • KNewStuff
  • KParts
  • KUtils
Generated for API Reference by doxygen 1.5.9
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal