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 Fri Feb 18 15:10:19 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003