Choreonoid  1.8
SpinBox.h
Go to the documentation of this file.
1 #ifndef CNOID_BASE_SPINBOX_H
2 #define CNOID_BASE_SPINBOX_H
3 
4 #include <cnoid/Signal>
5 #include <QSpinBox>
6 #include <QDoubleSpinBox>
7 #include <cnoid/stdx/optional>
8 #include "exportdecl.h"
9 
10 namespace cnoid {
11 
12 class CNOID_EXPORT SpinBox : public QSpinBox
13 {
14 public:
15  SpinBox(QWidget* parent = nullptr);
16 
17  SignalProxy<void(int)> sigValueChanged();
18  SignalProxy<void()> sigEditingFinished();
19 
20 private:
21  stdx::optional<Signal<void(int)>> sigValueChanged_;
22  stdx::optional<Signal<void()>> sigEditingFinished_;
23 };
24 
25 class CNOID_EXPORT DoubleSpinBox : public QDoubleSpinBox
26 {
27 public:
28  DoubleSpinBox(QWidget* parent = nullptr);
29 
30  void setUndoRedoKeyInputEnabled(bool on);
31  bool isUndoRedoKeyInputEnabled() const { return isUndoRedoKeyInputEnabled_; }
32 
33  void setValue(double val);
34 
35  SignalProxy<void(double)> sigValueChanged();
36  SignalProxy<void()> sigEditingFinished();
37  SignalProxy<void()> sigEditingFinishedWithValueChange();
38 
39 protected:
40  void onValueChanged(double value);
41  void onEditingFinished();
42  virtual void keyPressEvent(QKeyEvent* event) override;
43 
44 private:
45  stdx::optional<Signal<void(double)>> sigValueChanged_;
46  stdx::optional<Signal<void()>> sigEditingFinished_;
47  stdx::optional<Signal<void()>> sigEditingFinishedWithValueChange_;
48  bool isSettingValueInternally;
49  bool isUndoRedoKeyInputEnabled_;
50  bool valueChangedByLastUserInput;
51 };
52 
53 }
54 
55 #endif
cnoid::DoubleSpinBox
Definition: SpinBox.h:25
cnoid::SpinBox
Definition: SpinBox.h:12
cnoid
Definition: AbstractSceneLoader.h:11
cnoid::Signal
Definition: Signal.h:165
cnoid::DoubleSpinBox::isUndoRedoKeyInputEnabled
bool isUndoRedoKeyInputEnabled() const
Definition: SpinBox.h:31
cnoid::SignalProxy
Definition: Signal.h:470