Air-Trap 1.0.0
A multiplayer R-Type clone game engine built with C++23 and ECS architecture
Loading...
Searching...
No Matches
Slider.hpp
Go to the documentation of this file.
1/*
2** EPITECH PROJECT, 2025
3** Air-Trap
4** File description:
5** Slider - UI component for value selection
6*/
7
8#pragma once
9
10#include <functional>
11#include "RType/Math/Vec2.hpp"
12
14
19struct Slider {
21 Vec2f size{200.0f, 20.0f};
22 float minValue{0.0f};
23 float maxValue{1.0f};
24 float currentValue{0.5f};
25 std::function<void(float)> onChange;
27 // Visual properties
28 uint8_t trackColor[3]{80, 80, 80};
29 uint8_t fillColor[3]{100, 200, 100};
30 uint8_t handleColor[3]{200, 200, 200};
32 bool isDragging{false};
33 int zIndex{5};
38 float getNormalized() const {
39 return (currentValue - minValue) / (maxValue - minValue);
40 }
41
45 void setNormalized(float normalized) {
46 currentValue = minValue + normalized * (maxValue - minValue);
47 }
48};
49
50} // namespace rtp::ecs::components::ui
Declaration of the 2-dimensional vector class.
File : SpritePreview.hpp License: MIT Author : GitHub Copilot Date : 14/01/2026.
Definition Button.hpp:14
Component for a draggable slider control.
Definition Slider.hpp:19
void setNormalized(float normalized)
Set value from normalized (0-1)
Definition Slider.hpp:45
uint8_t handleColor[3]
RGB color of handle.
Definition Slider.hpp:30
Vec2f position
Position of the slider.
Definition Slider.hpp:20
float currentValue
Current value.
Definition Slider.hpp:24
Vec2f size
Size of the slider.
Definition Slider.hpp:21
uint8_t trackColor[3]
RGB color of track.
Definition Slider.hpp:28
float minValue
Minimum value.
Definition Slider.hpp:22
bool isDragging
Is currently being dragged.
Definition Slider.hpp:32
float maxValue
Maximum value.
Definition Slider.hpp:23
int zIndex
Rendering order.
Definition Slider.hpp:33
std::function< void(float)> onChange
Callback when value changes.
Definition Slider.hpp:25
float getNormalized() const
Get normalized value (0-1)
Definition Slider.hpp:38
uint8_t fillColor[3]
RGB color of filled part.
Definition Slider.hpp:29