www.pudn.com > zfxcengine-0.1.0.zip > ceGUISystem.cpp
// $Id: ceGUISystem.cpp,v 1.2 2005/08/27 11:44:43 kimmi Exp $
////////////////////////////////////////////////////////////////////////////////
//
// Module: GUI
// File: ceGuiSystem.cpp
// Created: 17.08.2005
// Author: Kim Kulling aka kimmi
// Licence: See licence file in root
// Last Mod: $Id: ceGUISystem.cpp,v 1.2 2005/08/27 11:44:43 kimmi Exp $
//
////////////////////////////////////////////////////////////////////////////////
#include "GUI/ceGUISystem.h"
#include "GUI/ceFont.h"
#include "GUI/ceGUIElementFactory.h"
namespace ZFXCE {
namespace GUI {
//------------------------------------------------------------------------------
ceGUISystem::ceGUISystem()
{
PUSH_FUNCTION;
m_eState = ceIDefaultSystem::DOWN;
m_pParentSystem = NULL;
m_pGUIFactory = NULL;
// Set state to inited
m_eState = ceIDefaultSystem::INIT;
}
//------------------------------------------------------------------------------
ceGUISystem::~ceGUISystem()
{
PUSH_FUNCTION;
delete m_pGUIFactory;
m_pGUIFactory = NULL;
}
//------------------------------------------------------------------------------
void ceGUISystem::InitSystem()
{
PUSH_FUNCTION;
if (m_eState != ceIDefaultSystem::INIT)
return;
m_eState = ceIDefaultSystem::UP;
}
//------------------------------------------------------------------------------
void ceGUISystem::ShutdownSystem()
{
PUSH_FUNCTION;
if (ceIDefaultSystem::UP != m_eState)
return;
m_eState = ceIDefaultSystem::DOWN;
}
//------------------------------------------------------------------------------
void ceGUISystem::SetParent(ceIDefaultSystem *pParentSystem)
{
PUSH_FUNCTION;
ce_assert (NULL != pParentSystem);
m_pParentSystem = pParentSystem;
}
//------------------------------------------------------------------------------
ceGUIElementFactory* ceGUISystem::GetGUIElementFactory()
{
PUSH_FUNCTION;
if (NULL == m_pGUIFactory) {
m_pGUIFactory = new ceGUIElementFactory();
ce_assert (NULL != m_pGUIFactory);
}
return m_pGUIFactory;
}
//------------------------------------------------------------------------------
ceFont *ceGUISystem::CreateFontGUIElement(const char *pText,
const char *pTexture, const size_t sSize)
{
PUSH_FUNCTION;
ceFont *pFont = (ceFont*) GetGUIElementFactory()->CreateInstance(CE_GUITEXT);
pFont->Load(pTexture);
size_t sizex = 0, sizey=0;
if (NULL == pTexture)
sizex = sizey = 16;
else
sizey = sizex = sSize;
pFont->SetText(pText, (int) sizex, (int) sizey);
return pFont;
}
//------------------------------------------------------------------------------
} // Namespace GUI
} // Namespace ZFXCE