Symphony Of Empires
progress_bar.hpp
Go to the documentation of this file.
1
// Symphony of Empires
2
// Copyright (C) 2021, Symphony of Empires contributors
3
//
4
// This program is free software: you can redistribute it and/or modify
5
// it under the terms of the GNU General Public License as published by
6
// the Free Software Foundation, either version 3 of the License, or
7
// (at your option) any later version.
8
//
9
// This program is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
// GNU General Public License for more details.
13
//
14
// You should have received a copy of the GNU General Public License
15
// along with this program. If not, see <https://www.gnu.org/licenses/>.
16
//
17
// ----------------------------------------------------------------------------
18
// Name:
19
// eng3d/ui/progress_bar.hpp
20
//
21
// Abstract:
22
// Does some important stuff.
23
// ----------------------------------------------------------------------------
24
25
#pragma once
26
27
#include <cstddef>
28
#include <deque>
29
#include <functional>
30
#include <vector>
31
#include <string>
32
33
#include "eng3d/ui/widget.hpp"
34
35
namespace
UI
{
36
class
Context;
39
enum class
Direction
{
40
LEFT_TO_RIGHT
,
41
RIGHT_TO_LEFT
,
42
TOP_TO_BOTTOM
,
43
BOTTOM_TO_TOP
44
};
45
46
class
ProgressBar
:
public
Widget
{
47
float
value = 0.f;
48
public
:
49
ProgressBar
(
int
x
,
int
y
,
unsigned
w,
unsigned
h,
float
min
,
float
max
,
Widget
* _parent =
nullptr
);
50
virtual
~ProgressBar
()
override
{}
51
virtual
void
on_render
(
UI::Context
& ctx,
Eng3D::Rect
viewport)
override
;
52
inline
void
set_value
(
const
float
_value) {
53
value = glm::clamp(_value,
min
,
max
);
54
}
55
56
inline
float
get_value
()
const
{
57
return
value;
58
}
59
60
float
min
= 0.f,
max
= 1.f;
61
UI::Direction
direction
=
UI::Direction::LEFT_TO_RIGHT
;
62
};
63
}
UI::Context
The UI context that handles all the ui widgets.
Definition:
ui.hpp:63
UI::ProgressBar
Definition:
progress_bar.hpp:46
UI::ProgressBar::max
float max
Definition:
progress_bar.hpp:60
UI::ProgressBar::on_render
virtual void on_render(UI::Context &ctx, Eng3D::Rect viewport) override
Definition:
progress_bar.cpp:44
UI::ProgressBar::ProgressBar
ProgressBar(int x, int y, unsigned w, unsigned h, float min, float max, Widget *_parent=nullptr)
Definition:
progress_bar.cpp:36
UI::ProgressBar::min
float min
Definition:
progress_bar.hpp:60
UI::ProgressBar::set_value
void set_value(const float _value)
Definition:
progress_bar.hpp:52
UI::ProgressBar::direction
UI::Direction direction
Definition:
progress_bar.hpp:61
UI::ProgressBar::~ProgressBar
virtual ~ProgressBar() override
Definition:
progress_bar.hpp:50
UI::ProgressBar::get_value
float get_value() const
Definition:
progress_bar.hpp:56
UI::Widget
The master widget all the other widgets inherit from, do not use directly instead use one of the many...
Definition:
widget.hpp:176
UI::Widget::y
int y
Definition:
widget.hpp:322
UI::Widget::x
int x
Definition:
widget.hpp:322
UI::Direction
Direction
Progressbar widget.
Definition:
progress_bar.hpp:39
UI::Direction::RIGHT_TO_LEFT
@ RIGHT_TO_LEFT
UI::Direction::LEFT_TO_RIGHT
@ LEFT_TO_RIGHT
UI::Direction::BOTTOM_TO_TOP
@ BOTTOM_TO_TOP
UI::Direction::TOP_TO_BOTTOM
@ TOP_TO_BOTTOM
UI
Definition:
game_state.hpp:117
Eng3D::Rectangle
Definition:
rectangle.hpp:31
eng3d
src
ui
progress_bar.hpp
Generated by
1.9.1