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 
00045 public:
00050   KXYSelector( QWidget *parent=0, const char *name=0 );
00054   ~KXYSelector();
00055 
00060   void setValues( int xPos, int yPos );
00064   void setRange( int minX, int minY, int maxX, int maxY );
00065 
00069   int xValue() const {  return xPos; }
00073   int yValue() const {  return yPos; }
00074 
00078   QRect contentsRect() const;
00079 
00080 signals:
00085   void valueChanged( int x, int y );
00086 
00087 protected:
00094   virtual void drawContents( QPainter * );
00099   virtual void drawCursor( QPainter *p, int xp, int yp );
00103   virtual void paintEvent( QPaintEvent *e );
00107   virtual void mousePressEvent( QMouseEvent *e );
00111   virtual void mouseMoveEvent( QMouseEvent *e );
00112 
00113 private:
00114   void setPosition( int xp, int yp );
00115   int px;
00116   int py;
00117   int xPos;
00118   int yPos;
00119   int minX;
00120   int maxX;
00121   int minY;
00122   int maxY;
00123   QPixmap store;
00124 
00125 protected:
00126   virtual void virtual_hook( int id, void* data );
00127 private:
00128   class KXYSelectorPrivate;
00129   KXYSelectorPrivate *d;
00130 };
00131 
00132 
00142 class KSelector : public QWidget, public QRangeControl
00143 {
00144   Q_OBJECT
00145   Q_PROPERTY( int value READ value WRITE setValue )
00146   Q_PROPERTY( int minValue READ minValue WRITE setMinValue )
00147   Q_PROPERTY( int maxValue READ maxValue WRITE setMaxValue )
00148 public:
00149 
00153   KSelector( QWidget *parent=0, const char *name=0 );
00158   KSelector( Orientation o, QWidget *parent = 0L, const char *name = 0L );
00159   /*
00160    * Destructs the widget.
00161    */
00162   ~KSelector();
00163 
00167   Orientation orientation() const
00168   { return _orientation; }
00169 
00173   QRect contentsRect() const;
00174 
00179   void setIndent( bool i )
00180   { _indent = i; }
00184   bool indent() const
00185   { return _indent; }
00186 
00190   void setValue(int value)
00191   { QRangeControl::setValue(value); }
00192 
00196   int value() const
00197   { return QRangeControl::value(); }
00198 
00202   void setMinValue(int value)
00203   { QRangeControl::setMinValue(value); }
00204 
00208   int minValue() const
00209   { return QRangeControl::minValue(); }
00210 
00214   void setMaxValue(int value)
00215   { QRangeControl::setMaxValue(value); }
00216 
00220   int maxValue() const
00221   { return QRangeControl::maxValue(); }
00222 
00223 signals:
00228   void valueChanged( int value );
00229 
00230 protected:
00237   virtual void drawContents( QPainter * );
00245   virtual void drawArrow( QPainter *painter, bool show, const QPoint &pos );
00246 
00250   virtual void valueChange();
00254   virtual void paintEvent( QPaintEvent * );
00258   virtual void mousePressEvent( QMouseEvent *e );
00262   virtual void mouseMoveEvent( QMouseEvent *e );
00263 
00264 private:
00265   QPoint calcArrowPos( int val );
00266   void moveArrow( const QPoint &pos );
00267 
00268   Orientation _orientation;
00269   bool _indent;
00270 
00271 protected:
00272   virtual void virtual_hook( int id, void* data );
00273 private:
00274   class KSelectorPrivate;
00275   KSelectorPrivate *d;
00276 };
00277 
00278 
00284 class KGradientSelector : public KSelector
00285 {
00286   Q_OBJECT
00287 
00288   Q_PROPERTY( QColor firstColor READ firstColor WRITE setFirstColor )
00289   Q_PROPERTY( QColor secondColor READ secondColor WRITE setSecondColor )
00290   Q_PROPERTY( QString firstText READ firstText WRITE setFirstText )
00291   Q_PROPERTY( QString secondText READ secondText WRITE setSecondText )
00292 
00293 public:
00298   KGradientSelector( QWidget *parent=0, const char *name=0 );
00303   KGradientSelector( Orientation o, QWidget *parent=0, const char *name=0 );
00307   ~KGradientSelector();
00311   void setColors( const QColor &col1, const QColor &col2 )
00312   { color1 = col1; color2 = col2; update();}
00313   void setText( const QString &t1, const QString &t2 )
00314   { text1 = t1; text2 = t2; update(); }
00315 
00319   void setFirstColor( const QColor &col )
00320   { color1 = col; update(); }
00321   void setSecondColor( const QColor &col )
00322   { color2 = col; update(); }
00323 
00327   void setFirstText( const QString &t )
00328   { text1 = t; update(); }
00329   void setSecondText( const QString &t )
00330   { text2 = t; update(); }
00331 
00332   const QColor firstColor() const
00333   { return color1; }
00334   const QColor secondColor() const
00335   { return color2; }
00336 
00337   const QString firstText() const
00338   { return text1; }
00339   const QString secondText() const
00340   { return text2; }
00341 
00342 protected:
00346   virtual void drawContents( QPainter * );
00347 
00351   virtual QSize minimumSize() const
00352   { return sizeHint(); }
00353 
00354 private:
00355   void init();
00356   QColor color1;
00357   QColor color2;
00358   QString text1;
00359   QString text2;
00360 
00361 protected:
00362   virtual void virtual_hook( int id, void* data );
00363 private:
00364   class KGradientSelectorPrivate;
00365   KGradientSelectorPrivate *d;
00366 };
00367 
00368 
00369 #endif      // __KSELECT_H__
00370 
KDE Logo
This file is part of the documentation for kdelibs Version 3.1.4.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Sun Feb 27 22:15:05 2005 by doxygen 1.3.4 written by Dimitri van Heesch, © 1997-2001