kdeui Library API Documentation

kselect.h

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., 59 Temple Place - Suite 330, 00017 Boston, MA 02111-1307, USA. 00018 */ 00019 //----------------------------------------------------------------------------- 00020 // Selector widgets for KDE Color Selector, but probably useful for other 00021 // stuff also. 00022 00023 #ifndef __KSELECT_H__ 00024 #define __KSELECT_H__ 00025 00026 #include <qwidget.h> 00027 #include <qrangecontrol.h> 00028 #include <qpixmap.h> 00029 00041 class KXYSelector : public QWidget 00042 { 00043 Q_OBJECT 00044 Q_PROPERTY( int xValue READ xValue WRITE setXValue ) 00045 Q_PROPERTY( int yValue READ yValue WRITE setYValue ) 00046 00047 public: 00052 KXYSelector( QWidget *parent=0, const char *name=0 ); 00056 ~KXYSelector(); 00057 00064 void setValues( int xPos, int yPos ); 00065 00070 void setXValue( int xPos ); 00071 00076 void setYValue( int yPos ); 00077 00081 void setRange( int minX, int minY, int maxX, int maxY ); 00082 00086 int xValue() const { return xPos; } 00090 int yValue() const { return yPos; } 00091 00095 QRect contentsRect() const; 00096 00097 signals: 00102 void valueChanged( int x, int y ); 00103 00104 protected: 00111 virtual void drawContents( QPainter * ); 00116 virtual void drawCursor( QPainter *p, int xp, int yp ); 00117 00118 virtual void paintEvent( QPaintEvent *e ); 00119 virtual void mousePressEvent( QMouseEvent *e ); 00120 virtual void mouseMoveEvent( QMouseEvent *e ); 00121 virtual void wheelEvent( QWheelEvent * ); 00122 00126 void valuesFromPosition( int x, int y, int& xVal, int& yVal ) const; 00127 00128 private: 00129 void setPosition( int xp, int yp ); 00130 int px; 00131 int py; 00132 int xPos; 00133 int yPos; 00134 int minX; 00135 int maxX; 00136 int minY; 00137 int maxY; 00138 QPixmap store; 00139 00140 protected: 00141 virtual void virtual_hook( int id, void* data ); 00142 private: 00143 class KXYSelectorPrivate; 00144 KXYSelectorPrivate *d; 00145 }; 00146 00147 00157 class KSelector : public QWidget, public QRangeControl 00158 { 00159 Q_OBJECT 00160 Q_PROPERTY( int value READ value WRITE setValue ) 00161 Q_PROPERTY( int minValue READ minValue WRITE setMinValue ) 00162 Q_PROPERTY( int maxValue READ maxValue WRITE setMaxValue ) 00163 public: 00164 00168 KSelector( QWidget *parent=0, const char *name=0 ); 00173 KSelector( Orientation o, QWidget *parent = 0L, const char *name = 0L ); 00174 /* 00175 * Destructs the widget. 00176 */ 00177 ~KSelector(); 00178 00182 Orientation orientation() const 00183 { return _orientation; } 00184 00188 QRect contentsRect() const; 00189 00194 void setIndent( bool i ) 00195 { _indent = i; } 00199 bool indent() const 00200 { return _indent; } 00201 00205 void setValue(int value) 00206 { QRangeControl::setValue(value); } 00207 00211 int value() const 00212 { return QRangeControl::value(); } 00213 00217 void setMinValue(int value) 00218 { QRangeControl::setMinValue(value); } 00219 00223 int minValue() const 00224 { return QRangeControl::minValue(); } 00225 00229 void setMaxValue(int value) 00230 { QRangeControl::setMaxValue(value); } 00231 00235 int maxValue() const 00236 { return QRangeControl::maxValue(); } 00237 00238 signals: 00243 void valueChanged( int value ); 00244 00245 protected: 00252 virtual void drawContents( QPainter * ); 00260 virtual void drawArrow( QPainter *painter, bool show, const QPoint &pos ); 00261 00262 virtual void valueChange(); 00263 virtual void paintEvent( QPaintEvent * ); 00264 virtual void mousePressEvent( QMouseEvent *e ); 00265 virtual void mouseMoveEvent( QMouseEvent *e ); 00266 virtual void wheelEvent( QWheelEvent * ); 00267 00268 private: 00269 QPoint calcArrowPos( int val ); 00270 void moveArrow( const QPoint &pos ); 00271 00272 Orientation _orientation; 00273 bool _indent; 00274 00275 protected: 00276 virtual void virtual_hook( int id, void* data ); 00277 private: 00278 class KSelectorPrivate; 00279 KSelectorPrivate *d; 00280 }; 00281 00282 00291 class KGradientSelector : public KSelector 00292 { 00293 Q_OBJECT 00294 00295 Q_PROPERTY( QColor firstColor READ firstColor WRITE setFirstColor ) 00296 Q_PROPERTY( QColor secondColor READ secondColor WRITE setSecondColor ) 00297 Q_PROPERTY( QString firstText READ firstText WRITE setFirstText ) 00298 Q_PROPERTY( QString secondText READ secondText WRITE setSecondText ) 00299 00300 public: 00305 KGradientSelector( QWidget *parent=0, const char *name=0 ); 00310 KGradientSelector( Orientation o, QWidget *parent=0, const char *name=0 ); 00314 ~KGradientSelector(); 00318 void setColors( const QColor &col1, const QColor &col2 ) 00319 { color1 = col1; color2 = col2; update();} 00320 void setText( const QString &t1, const QString &t2 ) 00321 { text1 = t1; text2 = t2; update(); } 00322 00326 void setFirstColor( const QColor &col ) 00327 { color1 = col; update(); } 00328 void setSecondColor( const QColor &col ) 00329 { color2 = col; update(); } 00330 00334 void setFirstText( const QString &t ) 00335 { text1 = t; update(); } 00336 void setSecondText( const QString &t ) 00337 { text2 = t; update(); } 00338 00339 const QColor firstColor() const 00340 { return color1; } 00341 const QColor secondColor() const 00342 { return color2; } 00343 00344 const QString firstText() const 00345 { return text1; } 00346 const QString secondText() const 00347 { return text2; } 00348 00349 protected: 00350 00351 virtual void drawContents( QPainter * ); 00352 virtual QSize minimumSize() const 00353 { return sizeHint(); } 00354 00355 private: 00356 void init(); 00357 QColor color1; 00358 QColor color2; 00359 QString text1; 00360 QString text2; 00361 00362 protected: 00363 virtual void virtual_hook( int id, void* data ); 00364 private: 00365 class KGradientSelectorPrivate; 00366 KGradientSelectorPrivate *d; 00367 }; 00368 00369 00370 #endif // __KSELECT_H__ 00371
KDE Logo
This file is part of the documentation for kdeui Library Version 3.3.1.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sun Oct 17 11:27:31 2004 by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2003