Add LabeledSlider class.

This commit is contained in:
2025-06-13 13:57:28 -05:00
parent 4415e3c6b4
commit 3a0901693e
3 changed files with 55 additions and 0 deletions

View File

@@ -32,6 +32,10 @@ namespace JUI {
}
FpsGraph() : JUI::ImageRect() {
BGColor(Colors::Transparent);
BorderColor(Colors::Transparent);
for (int i = 0; i < sample_history; i++) {
Plot({i / 1.f, 0.f}, Colors::Black);
}
@@ -75,6 +79,13 @@ namespace JUI {
Content(canvas);
}
void SetupAsPseudoDockedElementAtBottomOfScreen()
{
this->Size({100_percent, 50_px});
this->AnchorPoint({1, 1});
this->Position({100_percent, 100_percent});
}
std::vector<DataPoint> data;
JGL::RenderTarget* canvas;

View File

@@ -0,0 +1,18 @@
#include <JUI/Widgets/Slider.hpp>
#include <JUI/Base/TextBase.hpp>
namespace JUI {
class LabeledSlider : public Slider, public TextBase {
public:
LabeledSlider();
explicit LabeledSlider(Widget* parent);
void Draw() override;
void Update(float elapsed) override;
protected:
private:
};
}

View File

@@ -0,0 +1,26 @@
#include <JUI/Widgets/LabeledSlider.hpp>
JUI::LabeledSlider::LabeledSlider(): Slider(), TextBase() {
}
JUI::LabeledSlider::LabeledSlider(Widget *parent): LabeledSlider() {
this->Parent(parent);
}
void JUI::LabeledSlider::Draw() {
Slider::Draw();
auto abs_pos = this->GetAbsolutePosition();
auto abs_size = this->GetAbsoluteSize();
auto pos_pad = GetAbsolutePaddingTopLeft();
auto size_pad = GetAbsolutePaddingBottomRight();
TextBase::Draw(abs_pos + pos_pad, abs_size - size_pad);
}
void JUI::LabeledSlider::Update(float elapsed) {
Slider::Update(elapsed);
TextBase::Update(elapsed);
}