Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

qwt_abstract_slider.h

00001 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
00002  * Qwt Widget Library
00003  * Copyright (C) 1997   Josef Wilgen
00004  * Copyright (C) 2002   Uwe Rathmann
00005  * 
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the Qwt License, Version 1.0
00008  *****************************************************************************/
00009 
00010 #ifndef QWT_ABSTRACT_SLIDER_H
00011 #define QWT_ABSTRACT_SLIDER_H
00012 
00013 #include <qwidget.h>
00014 #include "qwt_global.h"
00015 #include "qwt_double_range.h"
00016 
00028 class QWT_EXPORT QwtAbstractSlider : public QWidget, public QwtDoubleRange
00029 {
00030     Q_OBJECT 
00031     Q_PROPERTY( bool readOnly READ isReadOnly WRITE setReadOnly )
00032     Q_PROPERTY( bool valid READ isValid WRITE setValid )
00033     Q_PROPERTY( double mass READ mass WRITE setMass )
00034 #ifndef Q_MOC_RUN // Qt3 moc
00035 #define QWT_PROPERTY Q_PROPERTY
00036     Q_PROPERTY( Orientation orientation 
00037         READ orientation WRITE setOrientation )
00038 #else // Qt4 moc
00039 // MOC_SKIP_BEGIN
00040     Q_PROPERTY( Qt::Orientation orientation 
00041         READ orientation WRITE setOrientation )
00042 // MOC_SKIP_END
00043 #endif
00044 
00045 public:
00046     enum ScrollMode { ScrNone, ScrMouse, 
00047         ScrTimer, ScrDirect, ScrPage };
00048     
00049     explicit QwtAbstractSlider(Qt::Orientation, QWidget *parent = NULL);
00050     virtual ~QwtAbstractSlider();
00051 
00052     void setUpdateTime(int t);
00053     void stopMoving();
00054     void setTracking(bool enable);
00055     
00056     virtual void setMass(double val);
00057     virtual double mass() const;
00058 
00059 #if QT_VERSION >= 0x040000
00060     virtual void setOrientation(Qt::Orientation o);
00061     Qt::Orientation orientation() const;
00062 #else
00063     virtual void setOrientation(Orientation o);
00064     Orientation orientation() const;
00065 #endif
00066 
00067     bool isReadOnly() const;
00068 
00069     /* 
00070         Wrappers for QwtDblRange::isValid/QwtDblRange::setValid made
00071         to be available as Q_PROPERTY in the designer.
00072     */
00073 
00077     bool isValid() const { return QwtDoubleRange::isValid(); }
00078 
00082     void setValid(bool valid) { QwtDoubleRange::setValid(valid); }
00083 
00084 public slots:
00085     virtual void setValue(double val);
00086     virtual void fitValue(double val);
00087     virtual void incValue(int steps);
00088 
00089     virtual void setReadOnly(bool); 
00090 
00091 signals:
00092 
00101     void valueChanged(double value);
00102 
00107     void sliderPressed();
00108 
00114     void sliderReleased();
00120     void sliderMoved(double value);
00121     
00122 protected:
00123     void setPosition(const QPoint &p);
00124     virtual void valueChange();
00125 
00126     virtual void timerEvent(QTimerEvent *e);
00127     virtual void mousePressEvent(QMouseEvent *e);
00128     virtual void mouseReleaseEvent(QMouseEvent *e);
00129     virtual void mouseMoveEvent(QMouseEvent *e);
00130     virtual void keyPressEvent(QKeyEvent *e);
00131     virtual void wheelEvent(QWheelEvent *e);
00132 
00141     virtual double getValue(const QPoint & p) = 0;
00167     virtual void getScrollMode( const QPoint &p,
00168                   int &scrollMode, int &direction) = 0;
00169 
00170     void setMouseOffset(double);
00171     double mouseOffset() const;
00172 
00173     int scrollMode() const;
00174 
00175 private:
00176     void buttonReleased();
00177 
00178     class PrivateData;
00179     PrivateData *d_data;
00180 };
00181 
00182 #endif

Generated on Wed Aug 31 23:02:29 2005 for Qwt User's Guide by  doxygen 1.4.1