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