Add non-notifying versions of slider methods

This commit is contained in:
Nikita Lisitsa 2022-02-19 23:04:36 +03:00
parent 22b3f1d67f
commit 343894d06b
2 changed files with 7 additions and 6 deletions

View file

@ -15,7 +15,7 @@ namespace psemek::ui
bool on_event(mouse_wheel const & e) override;
virtual geom::interval<int> value_range() const { return value_range_; }
virtual void set_value_range(geom::interval<int> i);
virtual void set_value_range(geom::interval<int> i, bool notify = true);
virtual int value() const { return value_; }
virtual void set_value(int v, bool notify = true);
@ -25,7 +25,7 @@ namespace psemek::ui
using on_value_changed_callback = std::function<void(int)>;
void on_value_changed(on_value_changed_callback callback);
void on_value_changed(on_value_changed_callback callback, bool notify = true);
protected:
enum class state_t

View file

@ -80,11 +80,11 @@ namespace psemek::ui
return false;
}
void slider::set_value_range(geom::interval<int> i)
void slider::set_value_range(geom::interval<int> i, bool notify)
{
if (i.empty()) throw std::runtime_error("Empty value range for ui::slider");
value_range_ = i;
set_value(value_);
set_value(value_, notify);
}
void slider::set_value(int v, bool notify)
@ -101,10 +101,11 @@ namespace psemek::ui
}
}
void slider::on_value_changed(on_value_changed_callback callback)
void slider::on_value_changed(on_value_changed_callback callback, bool notify)
{
callback_ = std::move(callback);
post_value_changed();
if (notify)
post_value_changed();
}
geom::interval<float> slider::slider_range() const