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

qwt_knob.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_KNOB_H
00011 #define QWT_KNOB_H
00012 
00013 #include "qwt_global.h"
00014 #include "qwt_abstract_slider.h"
00015 #include "qwt_abstract_scale.h"
00016 
00032 class QWT_EXPORT QwtKnob : public QwtAbstractSlider, public QwtAbstractScale
00033 {
00034     Q_OBJECT 
00035     Q_ENUMS (Symbol)
00036     Q_PROPERTY( int knobWidth READ knobWidth WRITE setKnobWidth )
00037     Q_PROPERTY( int borderWidth READ borderWidth WRITE setBorderWidth )
00038     Q_PROPERTY( double totalAngle READ totalAngle WRITE setTotalAngle )
00039     Q_PROPERTY( Symbol symbol READ symbol WRITE setSymbol )
00040 
00041 public:
00047     enum Symbol { Line, Dot };
00048 
00049     explicit QwtKnob(QWidget* parent = NULL);
00050     virtual ~QwtKnob();
00051 
00052     void setKnobWidth(int w);
00053     int knobWidth() const;
00054 
00055     void setTotalAngle (double angle);
00056     double totalAngle() const;
00057 
00058     void setBorderWidth(int bw);
00059     int borderWidth() const;
00060 
00061     void setSymbol(Symbol);
00062     Symbol symbol() const;
00063 
00064     virtual QSize sizeHint() const;
00065     virtual QSize minimumSizeHint() const;
00066     
00067 protected:
00068     virtual void paintEvent(QPaintEvent *e);
00069     virtual void resizeEvent(QResizeEvent *e);
00070 
00071     void draw(QPainter *p, const QRect& ur);
00072     void drawKnob(QPainter *p, const QRect &r);
00073     void drawMarker(QPainter *p, double arc, const QColor &c);
00074 
00075 private:
00076     void layoutKnob( bool update = true );
00077     double getValue(const QPoint &p);
00078     void getScrollMode( const QPoint &p, int &scrollMode, int &direction );
00079     void recalcAngle();
00080     
00081     virtual void valueChange();
00082     virtual void rangeChange();
00083     virtual void scaleChange();
00084     virtual void fontChange(const QFont &oldFont);
00085 
00086     class PrivateData;
00087     PrivateData *d_data;
00088 };
00089 
00090 #endif

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