X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fslider.cpp;h=0b1d8b066ee2e992644d9cc0254dc672a6ac8db5;hb=8f6f543758fb1b2b17ae2db519198d420eb9982d;hp=cb24c002b1a497bb5502f81bb566a434d5abd3c6;hpb=c062ca892fc6e10f74a76991b5d4b4349c046b5f;p=libs%2Fgltk.git diff --git a/source/slider.cpp b/source/slider.cpp index cb24c00..0b1d8b0 100644 --- a/source/slider.cpp +++ b/source/slider.cpp @@ -1,3 +1,10 @@ +/* $Id$ + +This file is part of libmspgltk +Copyright © 2007 Mikko Rasa, Mikkosoft Productions +Distributed under the LGPL +*/ + #include "slider.h" namespace Msp { @@ -9,11 +16,12 @@ Slider::Slider(const Resources &r): max(1), value(0), step(0.1) -{ -} +{ } void Slider::set_value(double v) { + double old_value=value; + if(vmax) @@ -24,7 +32,35 @@ void Slider::set_value(double v) value=min+steps*step; } - signal_value_changed.emit(value); + if(value!=old_value) + signal_value_changed.emit(value); +} + +void Slider::set_range(double a, double b) +{ + min=a; + max=b; + set_value(value); +} + +void Slider::set_step(double s) +{ + step=s; + set_value(value); +} + + +Slider::Loader::Loader(Slider &s): + Widget::Loader(s) +{ + add("range", &Slider::min, &Slider::max); + add("step", &Slider::step); + add("value", &Slider::value); +} + +Slider &Slider::Loader::get_object() const +{ + return static_cast(wdg); } } // namespace GLtk