diff --git a/libs/ui/include/psemek/ui/progress_bar.hpp b/libs/ui/include/psemek/ui/progress_bar.hpp index 2c66609a..48b6ceac 100644 --- a/libs/ui/include/psemek/ui/progress_bar.hpp +++ b/libs/ui/include/psemek/ui/progress_bar.hpp @@ -1,19 +1,19 @@ #pragma once -#include +#include #include namespace psemek::ui { struct progress_bar - : element + : single_container { virtual float value() const { return value_; } virtual void set_value(float value); - virtual struct label * label() { return nullptr; } - virtual struct label const * label() const { return nullptr; } + virtual struct label * label(); + virtual struct label const * label() const; private: float value_ = 0.f; diff --git a/libs/ui/source/progress_bar.cpp b/libs/ui/source/progress_bar.cpp index 618b6538..47867a44 100644 --- a/libs/ui/source/progress_bar.cpp +++ b/libs/ui/source/progress_bar.cpp @@ -10,4 +10,14 @@ namespace psemek::ui value_ = geom::clamp(value, {0.f, 1.f}); } + label * progress_bar::label() + { + return dynamic_cast(child().get()); + } + + label const * progress_bar::label() const + { + return dynamic_cast(child().get()); + } + }