]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/slider.h
Convert all list containers to vectors
[libs/gltk.git] / source / slider.h
index b6041af96480320c8fa5643a313c6cdb96958b69..057b194a2c532d7d96f9a96c421a63b2f21bb84f 100644 (file)
@@ -2,6 +2,7 @@
 #define MSP_GLTK_SLIDER_H_
 
 #include <sigc++/sigc++.h>
+#include "mspgltk_api.h"
 #include "widget.h"
 
 namespace Msp {
@@ -12,10 +13,10 @@ Sliders are used to adjust numeric values visually.  This class provides the
 common interface and logic for sliders but can't be instantiated.  Use HSlider
 or VSlider depending on which direction you want the slider to be in.
 */
-class Slider: public Widget
+class MSPGLTK_API Slider: public Widget
 {
 public:
-       class Loader: public DataFile::DerivedObjectLoader<Slider, Widget::Loader>
+       class MSPGLTK_API Loader: public DataFile::DerivedObjectLoader<Slider, Widget::Loader>
        {
        public:
                Loader(Slider &);
@@ -33,17 +34,20 @@ public:
 
 protected:
        Direction dir;
-       double min, max;
-       double value;
-       double step;
-
-       bool dragging;
-       double drag_start_pos;
-       double drag_start_value;
-       unsigned drag_area_size;
-       unsigned drag_area_offset;
-       unsigned slider_size;
-       unsigned total_margin;
+       double min = 0.0;
+       double max = 1.0;
+       double value = 0.0;
+       double step = 0.1;
+       double page_size = 0.25;
+
+       bool dragging = false;
+       double drag_start_pos = 0.0;
+       double drag_start_value = 0.0;
+       unsigned drag_area_size = 0;
+       unsigned drag_area_offset = 0;
+       unsigned slider_min_size = 1;
+       unsigned slider_size = 1;
+       unsigned total_margin = 0;
 
        Slider(Direction);
 
@@ -51,37 +55,38 @@ public:
        void set_value(double);
        void set_range(double, double);
        void set_step(double);
+       void set_page_size(double);
        double get_value() const { return value; }
 
 protected:
-       virtual void autosize_special(const Part &, Geometry &) const;
-       virtual void rebuild_special(const Part &);
+       void autosize_special(const Part &, Geometry &) const override;
+       void rebuild_special(const Part &) override;
 
 public:
-       virtual void button_press(int, int, unsigned);
-       virtual void button_release(int, int, unsigned);
-       virtual void pointer_motion(int, int);
+       void button_press(int, int, unsigned) override;
+       void button_release(int, int, unsigned) override;
+       void pointer_motion(int, int) override;
 
 protected:
-       virtual void on_size_change();
-       virtual void on_style_change();
+       void on_size_change() override;
+       void on_style_change() override;
 };
 
 
-class VSlider: public Slider
+class MSPGLTK_API VSlider: public Slider
 {
 public:
        VSlider(): Slider(VERTICAL) { }
 
-       virtual const char *get_class() const { return "vslider"; }
+       const char *get_class() const override { return "vslider"; }
 };
 
-class HSlider: public Slider
+class MSPGLTK_API HSlider: public Slider
 {
 public:
        HSlider(): Slider(HORIZONTAL) { }
 
-       virtual const char *get_class() const { return "hslider"; }
+       const char *get_class() const override { return "hslider"; }
 };
 
 } // namespace GLtk