GUI
include
GUISystem.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2017 by Maciej Wiecierzewski
3
*/
4
5
#ifndef GUISYSTEM_H
6
#define GUISYSTEM_H
7
8
#include <forward_list>
9
#include <map>
10
#include <string>
11
12
#include "
Button.h
"
13
#include "
EditBox.h
"
14
#include "
Event.h
"
15
#include "
EventQueue.h
"
16
#include "
Handle.h
"
17
#include "
Renderer.h
"
18
#include "
Scrollbar.h
"
19
#include "
TextField.h
"
20
#include "
Widget.h
"
21
23
24
namespace
gui
25
{
26
27
typedef
std::function<Widget*(GUISystem*)>
CreateWidget
;
28
typedef
std::function<EventObject*(EventObject*)>
CreateEventObject
;
29
31
32
class
GUISystem
33
{
34
public
:
35
typedef
std::map<EventType, CreateEventObject>
Map
;
36
37
GUISystem
();
38
~GUISystem
();
39
45
void
setRenderer
(
Renderer
*
renderer
);
46
52
Renderer
*
getRenderer
() {
return
renderer
; }
53
57
void
render
();
58
65
void
addEventType
(
EventType
eventType, CreateEventObject createFunc);
66
70
void
handleEvents
();
71
74
void
mouseMove
(
int
x,
int
y);
75
78
void
mouseButtonUp
();
79
82
void
mouseButtonDown
();
83
86
void
keyChar
(
int
unichar);
87
90
void
keyDown
(
int
keyCode);
91
102
Handle<Button>
addButton
(
int
x,
int
y,
int
w,
int
h, std::string text);
103
114
Handle<TextField>
addTextField
(
int
x,
int
y,
int
w,
int
h, std::string text);
115
126
Handle<EditBox>
addEditBox
(
int
x,
int
y,
int
w,
int
h,
bool
multiline =
false
);
127
137
Handle<Scrollbar>
addScrollbar
(
int
x,
int
y,
int
w,
int
h);
138
146
Handle<Widget>
addWidget
(CreateWidget createWidget,
bool
setEventQueue);
147
154
Event
createEvent
(
EventType
eventType);
155
162
Event
cloneEvent
(
const
Event
& event);
163
171
EventObject
*
createNull
(
EventObject
* obj = NULL) {
return
NULL; };
172
179
EventObject
*
createEventObject
(
EventObject
* obj = NULL);
180
187
EventObject
*
createMouseEvent
(
EventObject
* obj = NULL);
188
194
EventObject
*
createKeyboardEvent
(
EventObject
* obj = NULL);
195
196
int
mouseX
;
197
int
mouseY
;
198
199
protected
:
200
201
private
:
202
Renderer
*
renderer
;
203
std::forward_list<Widget*>
widgets
;
204
Map
createEvtObjFuncs
;
205
EventQueue
eventQueue
;
206
207
Widget
*
focus
;
208
};
209
210
}
211
212
#endif // GUISYSTEM_H
Generated on Sat Feb 11 2017 20:22:31 for GUI by
1.8.13