kselect.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __KSELECT_H__
00024 #define __KSELECT_H__
00025
00026 #include <qwidget.h>
00027 #include <qrangecontrol.h>
00028 #include <qpixmap.h>
00029
00030 #include <kdelibs_export.h>
00031
00043 class KDEUI_EXPORT KXYSelector : public QWidget
00044 {
00045 Q_OBJECT
00046 Q_PROPERTY( int xValue READ xValue WRITE setXValue )
00047 Q_PROPERTY( int yValue READ yValue WRITE setYValue )
00048
00049 public:
00054 KXYSelector( QWidget *parent=0, const char *name=0 );
00058 ~KXYSelector();
00059
00066 void setValues( int xPos, int yPos );
00067
00072 void setXValue( int xPos );
00073
00078 void setYValue( int yPos );
00079
00083 void setRange( int minX, int minY, int maxX, int maxY );
00084
00088 int xValue() const { return xPos; }
00092 int yValue() const { return yPos; }
00093
00097 QRect contentsRect() const;
00098
00099 signals:
00104 void valueChanged( int x, int y );
00105
00106 protected:
00113 virtual void drawContents( QPainter * );
00118 virtual void drawCursor( QPainter *p, int xp, int yp );
00119
00120 virtual void paintEvent( QPaintEvent *e );
00121 virtual void mousePressEvent( QMouseEvent *e );
00122 virtual void mouseMoveEvent( QMouseEvent *e );
00123 virtual void wheelEvent( QWheelEvent * );
00124
00128 void valuesFromPosition( int x, int y, int& xVal, int& yVal ) const;
00129
00130 private:
00131 void setPosition( int xp, int yp );
00132 int px;
00133 int py;
00134 int xPos;
00135 int yPos;
00136 int minX;
00137 int maxX;
00138 int minY;
00139 int maxY;
00140 QPixmap store;
00141
00142 protected:
00143 virtual void virtual_hook( int id, void* data );
00144 private:
00145 class KXYSelectorPrivate;
00146 KXYSelectorPrivate *d;
00147 };
00148
00149
00159 class KDEUI_EXPORT KSelector : public QWidget, public QRangeControl
00160 {
00161 Q_OBJECT
00162 Q_PROPERTY( int value READ value WRITE setValue )
00163 Q_PROPERTY( int minValue READ minValue WRITE setMinValue )
00164 Q_PROPERTY( int maxValue READ maxValue WRITE setMaxValue )
00165 public:
00166
00170 KSelector( QWidget *parent=0, const char *name=0 );
00175 KSelector( Orientation o, QWidget *parent = 0L, const char *name = 0L );
00176
00177
00178
00179 ~KSelector();
00180
00184 Orientation orientation() const
00185 { return _orientation; }
00186
00190 QRect contentsRect() const;
00191
00196 void setIndent( bool i )
00197 { _indent = i; }
00201 bool indent() const
00202 { return _indent; }
00203
00207 void setValue(int value)
00208 { QRangeControl::setValue(value); }
00209
00213 int value() const
00214 { return QRangeControl::value(); }
00215
00219 void setMinValue(int value)
00220 { QRangeControl::setMinValue(value); }
00221
00225 int minValue() const
00226 { return QRangeControl::minValue(); }
00227
00231 void setMaxValue(int value)
00232 { QRangeControl::setMaxValue(value); }
00233
00237 int maxValue() const
00238 { return QRangeControl::maxValue(); }
00239
00240 signals:
00245 void valueChanged( int value );
00246
00247 protected:
00254 virtual void drawContents( QPainter * );
00262 virtual void drawArrow( QPainter *painter, bool show, const QPoint &pos );
00263
00264 virtual void valueChange();
00265 virtual void paintEvent( QPaintEvent * );
00266 virtual void mousePressEvent( QMouseEvent *e );
00267 virtual void mouseMoveEvent( QMouseEvent *e );
00268 virtual void wheelEvent( QWheelEvent * );
00269
00270 private:
00271 QPoint calcArrowPos( int val );
00272 void moveArrow( const QPoint &pos );
00273
00274 Orientation _orientation;
00275 bool _indent;
00276
00277 protected:
00278 virtual void virtual_hook( int id, void* data );
00279 private:
00280 class KSelectorPrivate;
00281 KSelectorPrivate *d;
00282 };
00283
00284
00293 class KDEUI_EXPORT KGradientSelector : public KSelector
00294 {
00295 Q_OBJECT
00296
00297 Q_PROPERTY( QColor firstColor READ firstColor WRITE setFirstColor )
00298 Q_PROPERTY( QColor secondColor READ secondColor WRITE setSecondColor )
00299 Q_PROPERTY( QString firstText READ firstText WRITE setFirstText )
00300 Q_PROPERTY( QString secondText READ secondText WRITE setSecondText )
00301
00302 public:
00307 KGradientSelector( QWidget *parent=0, const char *name=0 );
00312 KGradientSelector( Orientation o, QWidget *parent=0, const char *name=0 );
00316 ~KGradientSelector();
00320 void setColors( const QColor &col1, const QColor &col2 )
00321 { color1 = col1; color2 = col2; update();}
00322 void setText( const QString &t1, const QString &t2 )
00323 { text1 = t1; text2 = t2; update(); }
00324
00328 void setFirstColor( const QColor &col )
00329 { color1 = col; update(); }
00330 void setSecondColor( const QColor &col )
00331 { color2 = col; update(); }
00332
00336 void setFirstText( const QString &t )
00337 { text1 = t; update(); }
00338 void setSecondText( const QString &t )
00339 { text2 = t; update(); }
00340
00341 const QColor firstColor() const
00342 { return color1; }
00343 const QColor secondColor() const
00344 { return color2; }
00345
00346 const QString firstText() const
00347 { return text1; }
00348 const QString secondText() const
00349 { return text2; }
00350
00351 protected:
00352
00353 virtual void drawContents( QPainter * );
00354 virtual QSize minimumSize() const
00355 { return sizeHint(); }
00356
00357 private:
00358 void init();
00359 QColor color1;
00360 QColor color2;
00361 QString text1;
00362 QString text2;
00363
00364 protected:
00365 virtual void virtual_hook( int id, void* data );
00366 private:
00367 class KGradientSelectorPrivate;
00368 KGradientSelectorPrivate *d;
00369 };
00370
00371
00372 #endif // __KSELECT_H__
00373
|