Symphony Of Empires
piechart.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/piechart.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 <glm/vec2.hpp>
34
#include "eng3d/rectangle.hpp"
35
#include "eng3d/color.hpp"
36
#include "eng3d/ui/widget.hpp"
37
#include "eng3d/primitive.hpp"
38
39
namespace
UI
{
40
class
Context;
43
class
PieChart
:
public
Widget
{
44
public
:
45
PieChart
(
int
x
,
int
y
,
unsigned
w,
unsigned
h, std::vector<ChartData> data = std::vector<ChartData>(),
Widget
* _parent =
nullptr
);
46
PieChart
(
int
x
,
int
y
,
unsigned
w,
unsigned
h,
Widget
* _parent =
nullptr
);
47
virtual
~PieChart
()
override
{}
48
virtual
void
on_render
(
Context
& ctx,
Eng3D::Rect
viewport)
override
;
49
void
set_data
(std::vector<ChartData> data);
50
private
:
51
static
void
on_hover_default(
Widget
& w, glm::ivec2 mouse_pos, glm::ivec2 widget_pos);
52
inline
void
draw_triangle(
float
start_angle,
float
end_angle,
Eng3D::Color
color);
53
std::vector<ChartData> data;
54
Tooltip
* slice_tooltip;
55
float
max = 1.f;
56
};
57
}
UI::Context
The UI context that handles all the ui widgets.
Definition:
ui.hpp:63
UI::PieChart
Piechart widget.
Definition:
piechart.hpp:43
UI::PieChart::PieChart
PieChart(int x, int y, unsigned w, unsigned h, std::vector< ChartData > data=std::vector< ChartData >(), Widget *_parent=nullptr)
UI::PieChart::~PieChart
virtual ~PieChart() override
Definition:
piechart.hpp:47
UI::PieChart::on_render
virtual void on_render(Context &ctx, Eng3D::Rect viewport) override
Definition:
piechart.cpp:87
UI::PieChart::set_data
void set_data(std::vector< ChartData > data)
Definition:
piechart.cpp:52
UI::Tooltip
Tooltip widget, used entirely for hovering purpouses, don't use any other widget for hovering unless ...
Definition:
tooltip.hpp:38
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
Definition:
game_state.hpp:117
Eng3D::Color
Primitive color type used through the engine.
Definition:
color.hpp:32
Eng3D::Rectangle
Definition:
rectangle.hpp:31
eng3d
src
ui
piechart.hpp
Generated by
1.9.1