source: pacpusframework/branches/2.0-beta1/include/extlib/qwt-5.2.1/qwt_counter.h@ 89

Last change on this file since 89 was 89, checked in by morasjul, 11 years ago

PACPUS 2.0 Beta deployed in new branch

Major changes:
-Add communication interface between components
-Add examples for communications interface (TestComponents)
-Move to Qt5 support

  • Property svn:executable set to *
File size: 4.6 KB
Line 
1/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
2 * Qwt Widget Library
3 * Copyright (C) 1997 Josef Wilgen
4 * Copyright (C) 2002 Uwe Rathmann
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the Qwt License, Version 1.0
8 *****************************************************************************/
9
10// vim: expandtab
11
12#ifndef QWT_COUNTER_H
13#define QWT_COUNTER_H
14
15#include <qwidget.h>
16#include "qwt_global.h"
17#include "qwt_double_range.h"
18
19/*!
20 \brief The Counter Widget
21
22 A Counter consists of a label displaying a number and
23 one ore more (up to three) push buttons on each side
24 of the label which can be used to increment or decrement
25 the counter's value.
26
27 A Counter has a range from a minimum value to a maximum value
28 and a step size. The range can be specified using
29 QwtDblRange::setRange().
30 The counter's value is an integer multiple of the step size.
31 The number of steps by which a button increments or decrements
32 the value can be specified using QwtCounter::setIncSteps().
33 The number of buttons can be changed with
34 QwtCounter::setNumButtons().
35
36 Holding the space bar down with focus on a button is the
37 fastest method to step through the counter values.
38 When the counter underflows/overflows, the focus is set
39 to the smallest up/down button and counting is disabled.
40 Counting is re-enabled on a button release event (mouse or
41 space bar).
42
43 Example:
44\code
45#include "../include/qwt_counter.h>
46
47QwtCounter *cnt;
48
49cnt = new QwtCounter(parent, name);
50
51cnt->setRange(0.0, 100.0, 1.0); // From 0.0 to 100, step 1.0
52cnt->setNumButtons(2); // Two buttons each side
53cnt->setIncSteps(QwtCounter::Button1, 1); // Button 1 increments 1 step
54cnt->setIncSteps(QwtCounter::Button2, 20); // Button 2 increments 20 steps
55
56connect(cnt, SIGNAL(valueChanged(double)), my_class, SLOT(newValue(double)));
57\endcode
58 */
59
60class QWT_EXPORT QwtCounter : public QWidget, public QwtDoubleRange
61{
62 Q_OBJECT
63
64 Q_PROPERTY( int numButtons READ numButtons WRITE setNumButtons )
65 Q_PROPERTY( double basicstep READ step WRITE setStep )
66 Q_PROPERTY( double minValue READ minVal WRITE setMinValue )
67 Q_PROPERTY( double maxValue READ maxVal WRITE setMaxValue )
68 Q_PROPERTY( int stepButton1 READ stepButton1 WRITE setStepButton1 )
69 Q_PROPERTY( int stepButton2 READ stepButton2 WRITE setStepButton2 )
70 Q_PROPERTY( int stepButton3 READ stepButton3 WRITE setStepButton3 )
71 Q_PROPERTY( double value READ value WRITE setValue )
72 Q_PROPERTY( bool editable READ editable WRITE setEditable )
73
74public:
75 /*!
76 Button index
77 */
78
79 enum Button
80 {
81 Button1,
82 Button2,
83 Button3,
84 ButtonCnt
85 };
86
87 explicit QwtCounter(QWidget *parent = NULL);
88#if QT_VERSION < 0x040000
89 explicit QwtCounter(QWidget *parent, const char *name);
90#endif
91 virtual ~QwtCounter();
92
93 bool editable() const;
94 void setEditable(bool);
95
96 void setNumButtons(int n);
97 int numButtons() const;
98
99 void setIncSteps(QwtCounter::Button btn, int nSteps);
100 int incSteps(QwtCounter::Button btn) const;
101
102 virtual void setValue(double);
103 virtual QSize sizeHint() const;
104
105 virtual void polish();
106
107 // a set of dummies to help the designer
108
109 double step() const;
110 void setStep(double s);
111 double minVal() const;
112 void setMinValue(double m);
113 double maxVal() const;
114 void setMaxValue(double m);
115 void setStepButton1(int nSteps);
116 int stepButton1() const;
117 void setStepButton2(int nSteps);
118 int stepButton2() const;
119 void setStepButton3(int nSteps);
120 int stepButton3() const;
121 virtual double value() const;
122
123signals:
124 /*!
125 This signal is emitted when a button has been released
126 \param value The new value
127 */
128 void buttonReleased (double value);
129
130 /*!
131 This signal is emitted when the counter's value has changed
132 \param value The new value
133 */
134 void valueChanged (double value);
135
136protected:
137 virtual bool event(QEvent *);
138 virtual void wheelEvent(QWheelEvent *);
139 virtual void keyPressEvent(QKeyEvent *);
140 virtual void rangeChange();
141
142private slots:
143 void btnReleased();
144 void btnClicked();
145 void textChanged();
146
147private:
148 void initCounter();
149 void updateButtons();
150 void showNum(double);
151 virtual void valueChange();
152
153 class PrivateData;
154 PrivateData *d_data;
155};
156
157#endif
Note: See TracBrowser for help on using the repository browser.