Add ui::progress_bar
This commit is contained in:
parent
ad53fdd7a4
commit
390df41f30
4 changed files with 39 additions and 0 deletions
|
|
@ -14,6 +14,7 @@
|
|||
#include <psemek/ui/slider.hpp>
|
||||
#include <psemek/ui/spinbox.hpp>
|
||||
#include <psemek/ui/scroller.hpp>
|
||||
#include <psemek/ui/progress_bar.hpp>
|
||||
|
||||
#include <psemek/gfx/texture.hpp>
|
||||
|
||||
|
|
@ -45,6 +46,7 @@ namespace psemek::ui
|
|||
// 3 - right
|
||||
virtual std::shared_ptr<button> make_arrow_button(int direction);
|
||||
virtual std::shared_ptr<scroller> make_scroller();
|
||||
virtual std::shared_ptr<progress_bar> make_progress_bar();
|
||||
|
||||
virtual ~element_factory() {}
|
||||
};
|
||||
|
|
|
|||
22
libs/ui/include/psemek/ui/progress_bar.hpp
Normal file
22
libs/ui/include/psemek/ui/progress_bar.hpp
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
#pragma once
|
||||
|
||||
#include <psemek/ui/element.hpp>
|
||||
#include <psemek/ui/label.hpp>
|
||||
|
||||
namespace psemek::ui
|
||||
{
|
||||
|
||||
struct progress_bar
|
||||
: element
|
||||
{
|
||||
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; }
|
||||
|
||||
private:
|
||||
float value_ = 0.f;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
@ -119,4 +119,6 @@ namespace psemek::ui
|
|||
|
||||
std::shared_ptr<scroller> element_factory::make_scroller() { return nullptr; }
|
||||
|
||||
std::shared_ptr<progress_bar> element_factory::make_progress_bar() { return nullptr; }
|
||||
|
||||
}
|
||||
|
|
|
|||
13
libs/ui/source/progress_bar.cpp
Normal file
13
libs/ui/source/progress_bar.cpp
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
#include <psemek/ui/progress_bar.hpp>
|
||||
|
||||
#include <psemek/geom/interval.hpp>
|
||||
|
||||
namespace psemek::ui
|
||||
{
|
||||
|
||||
void progress_bar::set_value(float value)
|
||||
{
|
||||
value_ = geom::clamp(value, {0.f, 1.f});
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue