1
0
forked from 0ad/0ad

Updates making CGUI a singleton

This was SVN commit r38.
This commit is contained in:
Gee 2003-11-06 11:54:46 +00:00
parent fd1cd7ab28
commit da6d6c60a9
9 changed files with 46 additions and 22 deletions

View File

@ -140,8 +140,8 @@ void CButton::Draw()
////////// //////////
glPushMatrix(); glPushMatrix();
/// glTranslatef(0.0f, 0.0f, GetBaseSettings().m_Z); glTranslatef(0.0f, 0.0f, GetBaseSettings().m_Z);
glTranslatef(0.0f, 0.0f, 0.0f); /// glTranslatef(0.0f, 0.0f, 0.0f);
// Do this // Do this
glBegin(GL_QUADS); glBegin(GL_QUADS);
@ -151,12 +151,12 @@ void CButton::Draw()
glVertex2i(GetBaseSettings().m_Size.right, GetBaseSettings().m_Size.top); glVertex2i(GetBaseSettings().m_Size.right, GetBaseSettings().m_Size.top);
glEnd(); glEnd();
glDisable(GL_DEPTH_TEST); //glDisable(GL_DEPTH_TEST);
glColor3f(0,0,0); //glColor3f(0,0,0);
/// font.print(GetBaseSettings().m_Size.left + 3, GetBaseSettings().m_Size.top - 15, LEFT, "Object: %s", GetName().c_str()); //font.print(GetBaseSettings().m_Size.left + 3, GetBaseSettings().m_Size.top - 15, LEFT, "Object: %s", GetName().c_str());
glEnable(GL_DEPTH_TEST); //glEnable(GL_DEPTH_TEST);
glPopMatrix(); glPopMatrix();
} }

View File

@ -84,7 +84,7 @@ bool CGUI::HandleEvent(const SDL_Event& ev)
//------------------------------------------------------------------- //-------------------------------------------------------------------
CGUI::CGUI() CGUI::CGUI()
{ {
m_BaseObject = new CButton; // Big todo! m_BaseObject = new CGUIDummyObject;
m_BaseObject->SetGUI(this); m_BaseObject->SetGUI(this);
// This will make this invisible, not add // This will make this invisible, not add
@ -355,7 +355,7 @@ void CGUI::LoadXMLFile(const CStr &Filename)
parser->setDoSchema(false); parser->setDoSchema(false);
// Set cosutomized error handler // Set cosutomized error handler
XercesErrorHandler *errorHandler = new XercesErrorHandler(); CXercesErrorHandler *errorHandler = new CXercesErrorHandler();
parser->setErrorHandler(errorHandler); parser->setErrorHandler(errorHandler);
parser->setCreateEntityReferenceNodes(false); parser->setCreateEntityReferenceNodes(false);

View File

@ -25,7 +25,7 @@ map_Settings CGUIObject::m_SettingsInfo;
// m_SettingsInfo, GeeTODO, I'm not sure if this is // m_SettingsInfo, GeeTODO, I'm not sure if this is
// the appropriate file, but it crashes if it's not // the appropriate file, but it crashes if it's not
// in this file. // in this file.
CGUI g_GUI; //CGUI g_GUI;
//------------------------------------------------------------------- //-------------------------------------------------------------------
// Implementation Macros // Implementation Macros

View File

@ -8,6 +8,9 @@ gee@pyro.nu
All objects are derived from this class, it's an ADT All objects are derived from this class, it's an ADT
so it can't be used per se so it can't be used per se
Also contains a Dummy object which is used for
completely blank objects.
--Usage-- --Usage--
Write about how to use it here Write about how to use it here
@ -35,7 +38,7 @@ gee@pyro.nu
struct SGUISetting; struct SGUISetting;
class CGUI; class CGUI;
extern CGUI g_GUI; //extern CGUI g_GUI;
//-------------------------------------------------------- //--------------------------------------------------------
// Macros // Macros
@ -234,8 +237,8 @@ protected:
// void UpdateObjects(); // void UpdateObjects();
// Get cached mouse x/y from CGUI // Get cached mouse x/y from CGUI
u16 GetMouseX() const; //{ return ((GetGUI())?(GetGUI()->m_MouseX):0); } u16 GetMouseX() const;
u16 GetMouseY() const; //{ return ((GetGUI())?(GetGUI()->m_MouseY):0); } u16 GetMouseY() const;
private: private:
@ -282,4 +285,15 @@ private:
CGUI *m_pGUI; CGUI *m_pGUI;
}; };
//--------------------------------------------------------
// Dummy object used primarily for the root object
// which isn't a *real* object in the GUI.
//--------------------------------------------------------
class CGUIDummyObject : public CGUIObject
{
virtual void HandleMessage(const EGUIMessage &Message) {}
virtual void Draw() {}
};
#endif #endif

View File

@ -38,6 +38,10 @@ class CGUIObject;
//-------------------------------------------------------- //--------------------------------------------------------
// Macros // Macros
//-------------------------------------------------------- //--------------------------------------------------------
// Global CGUI
#define g_GUI CGUI::GetSingleton()
// Temp // Temp
#define CInput nemInput #define CInput nemInput
#define CStr std::string #define CStr std::string

View File

@ -9,6 +9,9 @@ gee@pyro.nu
using namespace std; using namespace std;
//--------------------------------------------------------
// Utilities implementation
//--------------------------------------------------------
CGUIObject * CInternalCGUIAccessorBase::GetObjectPointer(CGUI &GUIinstance, const CStr &Object) CGUIObject * CInternalCGUIAccessorBase::GetObjectPointer(CGUI &GUIinstance, const CStr &Object)
{ {
// if (!GUIinstance.ObjectExists(Object)) // if (!GUIinstance.ObjectExists(Object))

View File

@ -17,14 +17,14 @@ gee@pyro.nu
XERCES_CPP_NAMESPACE_USE XERCES_CPP_NAMESPACE_USE
void XercesErrorHandler::warning(const SAXParseException&) void CXercesErrorHandler::warning(const SAXParseException&)
{ {
// //
// Ignore all warnings. // Ignore all warnings.
// //
} }
void XercesErrorHandler::error(const SAXParseException& toCatch) void CXercesErrorHandler::error(const SAXParseException& toCatch)
{ {
char * buf = XMLString::transcode(toCatch.getMessage()); char * buf = XMLString::transcode(toCatch.getMessage());
fSawErrors = true; fSawErrors = true;
@ -39,7 +39,7 @@ void XercesErrorHandler::error(const SAXParseException& toCatch)
/// g_nemLog(" Error: %s", XMLString::transcode(toCatch.getMessage())); /// g_nemLog(" Error: %s", XMLString::transcode(toCatch.getMessage()));
} }
void XercesErrorHandler::fatalError(const SAXParseException& toCatch) void CXercesErrorHandler::fatalError(const SAXParseException& toCatch)
{ {
char * buf = XMLString::transcode(toCatch.getMessage()); char * buf = XMLString::transcode(toCatch.getMessage());
fSawErrors = true; fSawErrors = true;
@ -55,7 +55,7 @@ void XercesErrorHandler::fatalError(const SAXParseException& toCatch)
/// g_nemLog(" Error: %s", XMLString::transcode(toCatch.getMessage())); /// g_nemLog(" Error: %s", XMLString::transcode(toCatch.getMessage()));
} }
void XercesErrorHandler::resetErrors() void CXercesErrorHandler::resetErrors()
{ {
fSawErrors = false; fSawErrors = false;
} }

View File

@ -25,18 +25,18 @@ gee@pyro.nu
#include <iostream> #include <iostream>
class XercesErrorHandler : public XERCES_CPP_NAMESPACE::ErrorHandler class CXercesErrorHandler : public XERCES_CPP_NAMESPACE::ErrorHandler
{ {
public: public:
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
// Constructors and Destructor // Constructors and Destructor
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
XercesErrorHandler() : CXercesErrorHandler() :
fSawErrors(false) fSawErrors(false)
{ {
} }
~XercesErrorHandler() ~CXercesErrorHandler()
{ {
} }
@ -66,7 +66,7 @@ private:
bool fSawErrors; bool fSawErrors;
}; };
inline bool XercesErrorHandler::getSawErrors() const inline bool CXercesErrorHandler::getSawErrors() const
{ {
return fSawErrors; return fSawErrors;
} }

View File

@ -164,7 +164,9 @@ glColor3f(1.0f, 1.0f, 1.0f);
glMatrixMode(GL_PROJECTION); glMatrixMode(GL_PROJECTION);
glPushMatrix(); glPushMatrix();
glLoadIdentity(); glLoadIdentity();
glOrtho(0., xres, 0., yres, -1., 1.); ////// janwas: I changed to some more for the GUI, we can talk about how to set this up
glOrtho(0., xres, 0., yres, -1000., 1.);
//////
glMatrixMode(GL_MODELVIEW); glMatrixMode(GL_MODELVIEW);
glPushMatrix(); glPushMatrix();
@ -229,8 +231,8 @@ int main(int argc, char* argv[])
detect(); detect();
///// janwas: place this wherever ///// janwas: place this wherever
new CGUI; // we should have a place for all singleton news
g_GUI.Initialize(); g_GUI.Initialize();
g_GUI.LoadXMLFile("hello.xml"); g_GUI.LoadXMLFile("hello.xml");
//g_GUI.LoadXMLFile("sprite1.xml"); //g_GUI.LoadXMLFile("sprite1.xml");
///// /////
@ -305,6 +307,7 @@ in_add_handler(terr_handler);
///// Janwas place this wherever ///// Janwas place this wherever
g_GUI.Destroy(); g_GUI.Destroy();
delete CGUI::GetSingletonPtr(); // again, we should have all singleton deletes somewhere
///// /////
return 0; return 0;