From 5f70c6172335ed31d8cad34e3dd2bbd817c2c6d5 Mon Sep 17 00:00:00 2001 From: lisyarus Date: Tue, 20 Jul 2021 14:03:28 +0300 Subject: [PATCH] Support ui::slider::set_value without issuing callback --- libs/ui/include/psemek/ui/slider.hpp | 2 +- libs/ui/source/slider.cpp | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/libs/ui/include/psemek/ui/slider.hpp b/libs/ui/include/psemek/ui/slider.hpp index 0eb28bcf..27fdd8a7 100644 --- a/libs/ui/include/psemek/ui/slider.hpp +++ b/libs/ui/include/psemek/ui/slider.hpp @@ -18,7 +18,7 @@ namespace psemek::ui virtual void set_value_range(geom::interval i); virtual int value() const { return value_; } - virtual void set_value(int v); + virtual void set_value(int v, bool notify = true); using on_value_changed_callback = std::function; diff --git a/libs/ui/source/slider.cpp b/libs/ui/source/slider.cpp index 1fd868d9..25adf4f3 100644 --- a/libs/ui/source/slider.cpp +++ b/libs/ui/source/slider.cpp @@ -83,13 +83,14 @@ namespace psemek::ui set_value(value_); } - void slider::set_value(int v) + void slider::set_value(int v, bool notify) { v = geom::clamp(v, value_range_); if (value_ != v) { value_ = v; - post_value_changed(); + if (notify) + post_value_changed(); } }