1 #ifndef CNOID_BASE_SPINBOX_H
2 #define CNOID_BASE_SPINBOX_H
4 #include <cnoid/Signal>
6 #include <QDoubleSpinBox>
7 #include <cnoid/stdx/optional>
8 #include "exportdecl.h"
12 class CNOID_EXPORT
SpinBox :
public QSpinBox
15 SpinBox(QWidget* parent =
nullptr);
21 stdx::optional<
Signal<void(
int)>> sigValueChanged_;
22 stdx::optional<
Signal<void()>> sigEditingFinished_;
30 void setUndoRedoKeyInputEnabled(
bool on);
33 void setValue(
double val);
37 SignalProxy<void()> sigEditingFinishedWithValueChange();
40 void onValueChanged(
double value);
41 void onEditingFinished();
42 virtual void keyPressEvent(QKeyEvent* event)
override;
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;