1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
#include "gui.h"
#include "video.h"
#include <boost/format.hpp>
using namespace CEGUI;
GUI::GUI() {
OpenGLRenderer::bootstrapSystem();
DefaultResourceProvider* rp = static_cast<DefaultResourceProvider*>
(System::getSingleton().getResourceProvider());
rp->setResourceGroupDirectory("schemes", "GUI/");
rp->setResourceGroupDirectory("imagesets", "GUI/");
rp->setResourceGroupDirectory("fonts", "fonts/");
rp->setResourceGroupDirectory("layouts", "GUI/");
rp->setResourceGroupDirectory("looknfeels", "GUI/");
Imageset::setDefaultResourceGroup("imagesets");
Font::setDefaultResourceGroup("fonts");
Scheme::setDefaultResourceGroup("schemes");
WidgetLookManager::setDefaultResourceGroup("looknfeels");
WindowManager::setDefaultResourceGroup("layouts");
SchemeManager::getSingleton().create( "VanillaSkin.scheme" );
FontManager::getSingleton().create("VeraMono.font");
System::getSingleton().setDefaultFont( "VeraMono" );
System::getSingleton().setDefaultMouseCursor( "Vanilla-Images", "MouseArrow" );
WindowManager& wmgr(WindowManager::getSingleton());
root = wmgr.createWindow("DefaultWindow", "root");
System::getSingleton().setGUISheet(root);
wnd = static_cast<FrameWindow*>(wmgr.createWindow("Vanilla/FrameWindow", "foo"));
root->addChildWindow(wnd);
wnd->setPosition(UVector2(UDim(.25, 0), UDim(.25, 0)));
wnd->setSize(UVector2(UDim(.5, 0), UDim(.5, 0)));
wnd->setText("foobar");
btn = static_cast<PushButton*>(wmgr.createWindow("Vanilla/Button", "button"));
wnd->addChildWindow(btn);
btn->setPosition(UVector2(UDim(0, 0), UDim(.9, 0)));
btn->setSize(UVector2(UDim(.3, 0), UDim(.1, 0)));
btn->setText("buttan");
/* radius */
radius_lbl = wmgr.createWindow("Vanilla/StaticText", "radius_lbl");
wnd->addChildWindow(radius_lbl);
radius_lbl->setPosition(UVector2(UDim(0, 0), UDim(0, 0)));
radius_lbl->setSize(UVector2(UDim(.2, 0), UDim(.1, 0)));
radius_lbl->setText("Radius");
radius_sb = static_cast<Scrollbar*>(wmgr.createWindow("Vanilla/HorizontalScrollbar", "radius_sb"));
wnd->addChildWindow(radius_sb);
radius_sb->setPosition(UVector2(UDim(.2, 0), UDim(0, 0)));
radius_sb->setSize(UVector2(UDim(.65, 0), UDim(.1, 0)));
radius_sb->setDocumentSize(50.0);
radius_sb_lbl = wmgr.createWindow("Vanilla/StaticText", "radius_sb_lbl");
wnd->addChildWindow(radius_sb_lbl);
radius_sb_lbl->setPosition(UVector2(UDim(.85, 0), UDim(0, 0)));
radius_sb_lbl->setSize(UVector2(UDim(.15, 0), UDim(.1, 0)));
/* focus */
focus_lbl = wmgr.createWindow("Vanilla/StaticText", "focus_lbl");
wnd->addChildWindow(focus_lbl);
focus_lbl->setPosition(UVector2(UDim(0, 0), UDim(.1, 0)));
focus_lbl->setSize(UVector2(UDim(.2, 0), UDim(.1, 0)));
focus_lbl->setText("Focus");
focus_sb = static_cast<Scrollbar*>(wmgr.createWindow("Vanilla/HorizontalScrollbar", "focus_sb"));
wnd->addChildWindow(focus_sb);
focus_sb->setPosition(UVector2(UDim(.2, 0), UDim(.1, 0)));
focus_sb->setSize(UVector2(UDim(.65, 0), UDim(.1, 0)));
focus_sb->setDocumentSize(2.0);
focus_sb->setStepSize(.1);
focus_sb_lbl = wmgr.createWindow("Vanilla/StaticText", "focus_sb_lbl");
wnd->addChildWindow(focus_sb_lbl);
focus_sb_lbl->setPosition(UVector2(UDim(.85, 0), UDim(.1, 0)));
focus_sb_lbl->setSize(UVector2(UDim(.15, 0), UDim(.1, 0)));
/* strength */
strength_lbl = wmgr.createWindow("Vanilla/StaticText", "strength_lbl");
wnd->addChildWindow(strength_lbl);
strength_lbl->setPosition(UVector2(UDim(0, 0), UDim(.2, 0)));
strength_lbl->setSize(UVector2(UDim(.2, 0), UDim(.1, 0)));
strength_lbl->setText("Strength");
strength_sb = static_cast<Scrollbar*>(wmgr.createWindow("Vanilla/HorizontalScrollbar", "strength_sb"));
wnd->addChildWindow(strength_sb);
strength_sb->setPosition(UVector2(UDim(.2, 0), UDim(.2, 0)));
strength_sb->setSize(UVector2(UDim(.65, 0), UDim(.1, 0)));
strength_sb->setDocumentSize(1.0);
strength_sb->setStepSize(.1);
strength_sb_lbl = wmgr.createWindow("Vanilla/StaticText", "strength_sb_lbl");
wnd->addChildWindow(strength_sb_lbl);
strength_sb_lbl->setPosition(UVector2(UDim(.85, 0), UDim(.2, 0)));
strength_sb_lbl->setSize(UVector2(UDim(.15, 0), UDim(.1, 0)));
}
GUI::~GUI() {
delete root;
delete wnd;
delete btn;
delete radius_lbl;
delete radius_sb;
delete radius_sb_lbl;
delete focus_lbl;
delete focus_sb;
delete focus_sb_lbl;
delete strength_lbl;
delete strength_sb;
delete strength_sb_lbl;
}
void GUI::render() {
radius_sb_lbl->setText((boost::format("%.2f") % radius_sb->getScrollPosition()).str().c_str());
focus_sb_lbl->setText((boost::format("%.2f") % focus_sb->getScrollPosition()).str().c_str());
strength_sb_lbl->setText((boost::format("%.2f") % strength_sb->getScrollPosition()).str().c_str());
/* Disable depth testing to avoid cursor bugginess. */
glDisable(GL_DEPTH_TEST);
System::getSingleton().renderGUI();
glEnable(GL_DEPTH_TEST);
}
|