]> git.tdb.fi Git - libs/gui.git/blobdiff - source/input/smoothcontrol.h
Add decorations for things which should be exported from the library
[libs/gui.git] / source / input / smoothcontrol.h
index f16177b2b2ea0076dc176ab9b0f7da76ec747506..16dc7e6cae73f5a737ea93f1971fcb4db0364224 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef MSP_INPUT_SMOOTHCONTROL_H_
 #define MSP_INPUT_SMOOTHCONTROL_H_
 
+#include <msp/graphics/mspgui_api.h>
 #include "control.h"
 
 namespace Msp {
@@ -14,22 +15,22 @@ Two smooth controls can also be paired to each other.  Motion on one control of
 the pair will cause negative motion on the other.  This works best when the
 controls are bound to the opposite sides of the same axis.
 */
-class SmoothControl: public Control
+class MSPGUI_API SmoothControl: public Control
 {
 public:
        sigc::signal<void, float> signal_motion;
 
 private:
-       float value;
-       SmoothControl *paired_ctrl;
-       float dead_zone;
-       float threshold;
+       float value = 0.0f;
+       SmoothControl *paired_ctrl = nullptr;
+       float dead_zone = 0.1f;
+       float threshold = 0.9f;
 
 public:
-       SmoothControl();
+       SmoothControl() = default;
        SmoothControl(const ControlSource &);
        SmoothControl(Device &, ControlSrcType, unsigned);
-       virtual ~SmoothControl();
+       ~SmoothControl();
 
        /// Sets the dead zone value.  Any value below this will be treated as 0.
        void set_dead_zone(float);
@@ -45,9 +46,9 @@ public:
        float get_value() const { return value; }
 
 private:
-       virtual void on_press();
-       virtual void on_release();
-       virtual void on_motion(float, float);
+       void on_press() override;
+       void on_release() override;
+       void on_motion(float, float) override;
 };
 
 } // namespace Input