3
GUIFrame::GUIFrame() : GUIPanel("GUI MAIN PANEL")
9
bool GUIFrame::loadXMLSettings(const TiXmlElement *element)
11
if(!XMLArbiter::inspectElementInfo(element, "Panel"))
12
return Logger::writeErrorLog("Need a Panel node in the xml file");
14
bool defaultFont = true;
16
for(const TiXmlElement *child = element->FirstChildElement();
18
child = child->NextSiblingElement() )
20
std::string elementName = child->Value();
22
if(!elementName.size())
25
if(elementName == "Font")
27
int fontIndex = GUIFontManager::addFont(child);
28
if(defaultFont && fontIndex >= 0)
30
GUIFontManager::setDefaultFont(fontIndex);
36
if(elementName == "Texture")
38
if(elementsTexture.loadXMLSettings(child))
40
GUITexCoordDescriptor::setTextureHeight(elementsTexture.getHeight());
41
GUITexCoordDescriptor::setTextureWidth(elementsTexture.getWidth());
46
if(elementName == "TexCoordsDesc")
48
GUITexCoordDescriptor descriptor;
49
descriptor.loadXMLSettings(child);
50
addOrReplaceTexCoordsInfo(descriptor);
54
return GUIPanel::loadXMLSettings(element);
57
void GUIFrame::render(float tick)
66
for(t = 0; t < elements.size(); t++)
67
elements[t]->forceUpdate(true);
71
for(t = 0; t < elements.size(); t++)
72
elements[t]->render(tick);
75
void GUIFrame::addOrReplaceTexCoordsInfo(GUITexCoordDescriptor &info)
77
for(size_t t = 0; t < texCoords.size(); t++)
78
if(texCoords[t].getType() == info.getType())
80
texCoords[t].setTexCoords(info.getTexCoords());
83
texCoords.push_back(info);
86
GUITexCoordDescriptor *GUIFrame::getTexCoordsInfo(int type)
88
for(size_t t = 0; t < texCoords.size(); t++)
89
if(texCoords[t].getType() == type)
94
void GUIFrame::setGUIEventListener(GUIEventListener *listener_)
99
GUIEventListener *GUIFrame::getEventsListener()
104
void GUIFrame::setElementsTexture(const char* texturePath)
106
elementsTexture.load2D(texturePath);
109
void GUIFrame::setElementsTexture(const Texture &texture)
111
elementsTexture = texture;
114
Texture *GUIFrame::getElementsTexture()
116
return !elementsTexture.getID() ? NULL : &elementsTexture;
119
void GUIFrame::enableGUITexture()
121
if(elementsTexture.getID())
122
elementsTexture.activate();
125
void GUIFrame::disableGUITexture()
127
elementsTexture.deactivate();
130
void GUIFrame::forceUpdate(bool update)
132
updateCount = update ? getTreeHeight() + 1 : 0;
135
void GUIFrame::clear()
137
elementsTexture.destroy();
142
const Tuple4i &GUIFrame::getWindowBounds()
144
windowBounds.set(0, 0, int(dimensions.x), int(dimensions.y));
148
GUIFrame::~GUIFrame()