Eneboo - Documentación para desarrolladores
|
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 // vim: expandtab 00011 00012 #ifndef QWT_SLIDER_H 00013 #define QWT_SLIDER_H 00014 00015 #include "qwt_global.h" 00016 #include "qwt_abstract_scale.h" 00017 #include "qwt_abstract_slider.h" 00018 00019 class QwtScaleDraw; 00020 00034 class QWT_EXPORT QwtSlider : public QwtAbstractSlider, public QwtAbstractScale 00035 { 00036 Q_OBJECT 00037 Q_ENUMS( ScalePos ) 00038 Q_ENUMS( BGSTYLE ) 00039 Q_PROPERTY( ScalePos scalePosition READ scalePosition 00040 WRITE setScalePosition ) 00041 Q_PROPERTY( BGSTYLE bgStyle READ bgStyle WRITE setBgStyle ) 00042 Q_PROPERTY( int thumbLength READ thumbLength WRITE setThumbLength ) 00043 Q_PROPERTY( int thumbWidth READ thumbWidth WRITE setThumbWidth ) 00044 Q_PROPERTY( int borderWidth READ borderWidth WRITE setBorderWidth ) 00045 00046 public: 00047 00056 enum ScalePos 00057 { 00058 NoScale, 00059 00060 LeftScale, 00061 RightScale, 00062 TopScale, 00063 BottomScale 00064 }; 00065 00070 enum BGSTYLE 00071 { 00072 BgTrough = 0x1, 00073 BgSlot = 0x2, 00074 BgBoth = BgTrough | BgSlot 00075 }; 00076 00077 explicit QwtSlider(QWidget *parent, 00078 Qt::Orientation = Qt::Horizontal, 00079 ScalePos = NoScale, BGSTYLE bgStyle = BgTrough); 00080 #if QT_VERSION < 0x040000 00081 explicit QwtSlider(QWidget *parent, const char *name); 00082 #endif 00083 00084 virtual ~QwtSlider(); 00085 00086 virtual void setOrientation(Qt::Orientation); 00087 00088 void setBgStyle(BGSTYLE); 00089 BGSTYLE bgStyle() const; 00090 00091 void setScalePosition(ScalePos s); 00092 ScalePos scalePosition() const; 00093 00094 int thumbLength() const; 00095 int thumbWidth() const; 00096 int borderWidth() const; 00097 00098 void setThumbLength(int l); 00099 void setThumbWidth(int w); 00100 void setBorderWidth(int bw); 00101 void setMargins(int x, int y); 00102 00103 virtual QSize sizeHint() const; 00104 virtual QSize minimumSizeHint() const; 00105 00106 void setScaleDraw(QwtScaleDraw *); 00107 const QwtScaleDraw *scaleDraw() const; 00108 00109 protected: 00110 virtual double getValue(const QPoint &p); 00111 virtual void getScrollMode(const QPoint &p, 00112 int &scrollMode, int &direction); 00113 00114 void draw(QPainter *p, const QRect& update_rect); 00115 virtual void drawSlider (QPainter *p, const QRect &r); 00116 virtual void drawThumb(QPainter *p, const QRect &, int pos); 00117 00118 virtual void resizeEvent(QResizeEvent *e); 00119 virtual void paintEvent (QPaintEvent *e); 00120 00121 virtual void valueChange(); 00122 virtual void rangeChange(); 00123 virtual void scaleChange(); 00124 virtual void fontChange(const QFont &oldFont); 00125 00126 void layoutSlider( bool update = true ); 00127 int xyPosition(double v) const; 00128 00129 QwtScaleDraw *scaleDraw(); 00130 00131 private: 00132 void initSlider(Qt::Orientation, ScalePos scalePos, BGSTYLE bgStyle); 00133 00134 class PrivateData; 00135 PrivateData *d_data; 00136 }; 00137 00138 #endif