X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fslider.cpp;h=7123458c0e41b7268ce44b7c556543dfd2af9aa1;hb=319cde3c06181ba1c3619567525002926d8b4889;hp=dacd826630bc670cb364f8fa0d27c27f005cdc64;hpb=c435423919a20a87d100e1ee4cd1fc6ce223040c;p=libs%2Fgltk.git diff --git a/source/slider.cpp b/source/slider.cpp index dacd826..7123458 100644 --- a/source/slider.cpp +++ b/source/slider.cpp @@ -1,17 +1,9 @@ -/* $Id$ - -This file is part of libmspgltk -Copyright © 2007 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - #include "slider.h" namespace Msp { namespace GLtk { -Slider::Slider(const Resources &r): - Widget(r), +Slider::Slider(): min(0), max(1), value(0), @@ -22,40 +14,44 @@ Slider::Slider(const Resources &r): void Slider::set_value(double v) { - double old_value=value; + double old_value = value; if(vmax) - value=max; + value = max; else { - unsigned steps=static_cast((v-min)/step+0.5); - value=min+steps*step; + unsigned steps = static_cast((v-min)/step+0.5); + value = min+steps*step; } if(value!=old_value) + { signal_value_changed.emit(value); + rebuild(); + } } void Slider::set_range(double a, double b) { - min=a; - max=b; + min = a; + max = b; set_value(value); } void Slider::set_step(double s) { - step=s; + step = s; set_value(value); } void Slider::start_drag(int p) { - dragging=true; - drag_start_pos=p; - drag_start_value=value; + dragging = true; + drag_start_pos = p; + drag_start_value = value; + set_state(ACTIVE); } void Slider::drag(int p) @@ -66,22 +62,18 @@ void Slider::drag(int p) void Slider::end_drag() { - dragging=false; + dragging = false; + clear_state(ACTIVE); } Slider::Loader::Loader(Slider &s): - Widget::Loader(s) + DataFile::DerivedObjectLoader(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 } // namespace Msp