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_COUNTER_H 00013 #define QWT_COUNTER_H 00014 00015 #include <qwidget.h> 00016 #include "qwt_global.h" 00017 #include "qwt_double_range.h" 00018 00060 class QWT_EXPORT QwtCounter : public QWidget, public QwtDoubleRange 00061 { 00062 Q_OBJECT 00063 00064 Q_PROPERTY( int numButtons READ numButtons WRITE setNumButtons ) 00065 Q_PROPERTY( double basicstep READ step WRITE setStep ) 00066 Q_PROPERTY( double minValue READ minVal WRITE setMinValue ) 00067 Q_PROPERTY( double maxValue READ maxVal WRITE setMaxValue ) 00068 Q_PROPERTY( int stepButton1 READ stepButton1 WRITE setStepButton1 ) 00069 Q_PROPERTY( int stepButton2 READ stepButton2 WRITE setStepButton2 ) 00070 Q_PROPERTY( int stepButton3 READ stepButton3 WRITE setStepButton3 ) 00071 Q_PROPERTY( double value READ value WRITE setValue ) 00072 Q_PROPERTY( bool editable READ editable WRITE setEditable ) 00073 00074 public: 00079 enum Button 00080 { 00081 Button1, 00082 Button2, 00083 Button3, 00084 ButtonCnt 00085 }; 00086 00087 explicit QwtCounter(QWidget *parent = NULL); 00088 #if QT_VERSION < 0x040000 00089 explicit QwtCounter(QWidget *parent, const char *name); 00090 #endif 00091 virtual ~QwtCounter(); 00092 00093 bool editable() const; 00094 void setEditable(bool); 00095 00096 void setNumButtons(int n); 00097 int numButtons() const; 00098 00099 void setIncSteps(QwtCounter::Button btn, int nSteps); 00100 int incSteps(QwtCounter::Button btn) const; 00101 00102 virtual void setValue(double); 00103 virtual QSize sizeHint() const; 00104 00105 virtual void polish(); 00106 00107 // a set of dummies to help the designer 00108 00109 double step() const; 00110 void setStep(double s); 00111 double minVal() const; 00112 void setMinValue(double m); 00113 double maxVal() const; 00114 void setMaxValue(double m); 00115 void setStepButton1(int nSteps); 00116 int stepButton1() const; 00117 void setStepButton2(int nSteps); 00118 int stepButton2() const; 00119 void setStepButton3(int nSteps); 00120 int stepButton3() const; 00121 virtual double value() const; 00122 00123 signals: 00128 void buttonReleased (double value); 00129 00134 void valueChanged (double value); 00135 00136 protected: 00137 virtual bool event(QEvent *); 00138 virtual void wheelEvent(QWheelEvent *); 00139 virtual void keyPressEvent(QKeyEvent *); 00140 virtual void rangeChange(); 00141 00142 private slots: 00143 void btnReleased(); 00144 void btnClicked(); 00145 void textChanged(); 00146 00147 private: 00148 void initCounter(); 00149 void updateButtons(); 00150 void showNum(double); 00151 virtual void valueChange(); 00152 00153 class PrivateData; 00154 PrivateData *d_data; 00155 }; 00156 00157 #endif