00001 /********************************************************************************/ 00002 /* */ 00003 /* Netrinjo-Engine - a library for game-development */ 00004 /* Copyright (C) 2005 by Tobias Nadler */ 00005 /* */ 00006 /* This library is free software; you can redistribute it and/or */ 00007 /* modify it under the terms of the GNU Lesser General Public */ 00008 /* License as published by the Free Software Foundation; either */ 00009 /* version 2.1 of the License, or (at your option) any later version. */ 00010 /* */ 00011 /* This library is distributed in the hope that it will be useful, */ 00012 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ 00013 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */ 00014 /* Lesser General Public License for more details. */ 00015 /* */ 00016 /* You should have received a copy of the GNU Lesser General Public */ 00017 /* License along with this library; if not, write to the Free Software */ 00018 /* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ 00019 /* */ 00020 /********************************************************************************/ 00021 00022 #ifndef XMLAPP_H 00023 #define XMLAPP_H 00024 00025 #include "tinyxml.h" 00026 #include "basicapp.h" 00027 #include "basicobject.h" 00028 00085 00086 #define E_APP_NOXML 1 00087 00097 class XmlApp: public BasicApp 00098 { 00099 public: 00108 DECLSPEC XmlApp( int argc, char *argv[], const char *xmlfile = NULL); 00109 virtual DECLSPEC ~XmlApp(); 00110 00119 DECLSPEC int init(const char *fn = NULL); 00121 virtual DECLSPEC void destroy(); 00123 virtual DECLSPEC long mainLoop(); 00129 TiXmlHandle getXmlHandle() {return TiXmlHandle(xmlData);} 00135 TiXmlHandle getXmlHandleUser() {return TiXmlHandle(xmlUser);} 00136 00137 static void quitApplication(void*,BasicObject*,void*) 00138 { 00139 ((XmlApp*)the)->destroy(); 00140 } 00141 protected: 00142 virtual DECLSPEC void onInit(); 00143 private: 00144 static void onExit(); 00145 00146 TiXmlDocument xmlDoc, xmlUserdoc; 00147 TiXmlElement *xmlUser; 00148 // must be true as long as the mainloop is not entered! 00149 bool bStopped; 00150 }; 00151 00152 #endif