summaryrefslogtreecommitdiff
path: root/gui.cpp
blob: 8824237d4ba9b56352aa4f30836f6eb9e3cb5688 (plain)
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);
}