]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/slider.cpp
Rework how widget ownership works in Container
[libs/gltk.git] / source / slider.cpp
index 70798af9c24a814f262777d5dbc0064912cb2096..b860d7d8410af507729487bfc45723eb804b20e1 100644 (file)
@@ -9,18 +9,7 @@ namespace Msp {
 namespace GLtk {
 
 Slider::Slider(Direction d):
-       dir(d),
-       min(0),
-       max(1),
-       value(0),
-       step(0.1),
-       page_size(0.25),
-       dragging(false),
-       drag_area_size(0),
-       drag_area_offset(0),
-       slider_min_size(1),
-       slider_size(1),
-       total_margin(0)
+       dir(d)
 { }
 
 void Slider::set_value(double v)
@@ -33,7 +22,7 @@ void Slider::set_value(double v)
                value = max;
        else
        {
-               unsigned steps = static_cast<unsigned>((v-min)/step+0.5);
+               double steps = round((v-min)/step);
                value = min+steps*step;
        }
 
@@ -106,7 +95,7 @@ void Slider::rebuild_special(const Part &part)
                slider_size = (dir==HORIZONTAL ? rgeom.w : rgeom.h);
 
                GL::MeshBuilder bld(part_cache.create_mesh(part, *graphic->get_texture()));
-               bld.matrix() *= GL::Matrix::translation(sgeom.x+rgeom.x, sgeom.y+rgeom.y, 0);
+               bld.transform(GL::Matrix::translation(sgeom.x+rgeom.x, sgeom.y+rgeom.y, 0));
                graphic->build(rgeom.w, rgeom.h, bld);
        }
 }
@@ -164,7 +153,7 @@ void Slider::on_style_change()
        if(!style)
                return;
 
-       if(const Part *slider_part = style->get_part("slider"))
+       if(const Part *slider_part = style->find_part("slider"))
        {
                const Geometry &pgeom = slider_part->get_geometry();
                const Sides &margin = slider_part->get_margin();