00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "CEGUIConfig_xmlHandler.h"
00027 #include "CEGUIExceptions.h"
00028 #include "CEGUISystem.h"
00029 #include "CEGUIXmlHandlerHelper.h"
00030
00031 #include "xercesc/sax2/SAX2XMLReader.hpp"
00032 #include "xercesc/sax2/XMLReaderFactory.hpp"
00033
00034
00035
00036 namespace CEGUI
00037 {
00038
00039
00040
00041 const String Config_xmlHandler::CEGUIConfigElement( (utf8*)"CEGUIConfig" );
00042 const char Config_xmlHandler::ConfigLogfileAttribute[] = "Logfile";
00043 const char Config_xmlHandler::ConfigSchemeAttribute[] = "Scheme";
00044 const char Config_xmlHandler::ConfigLayoutAttribute[] = "Layout";
00045 const char Config_xmlHandler::ConfigDefaultFontAttribute[] = "DefaultFont";
00046 const char Config_xmlHandler::ConfigInitScriptAttribute[] = "InitScript";
00047 const char Config_xmlHandler::ConfigTerminateScriptAttribute[] = "TerminateScript";
00048 const char Config_xmlHandler::ConfigDefaultResourceGroupAttribute[] = "DefaultResourceGroup";
00049
00050 void Config_xmlHandler::startElement(const XMLCh* const uri, const XMLCh* const localname, const XMLCh* const qname, const XERCES_CPP_NAMESPACE::Attributes& attrs)
00051 {
00052 XERCES_CPP_NAMESPACE_USE
00053 String element(XmlHandlerHelper::transcodeXmlCharToString(localname));
00054
00055
00056 if (element == CEGUIConfigElement)
00057 {
00058 d_logFilename = XmlHandlerHelper::getAttributeValueAsString(attrs, ConfigLogfileAttribute);
00059 d_schemeFilename = XmlHandlerHelper::getAttributeValueAsString(attrs, ConfigSchemeAttribute);
00060 d_layoutFilename = XmlHandlerHelper::getAttributeValueAsString(attrs, ConfigLayoutAttribute);
00061 d_initScriptFilename = XmlHandlerHelper::getAttributeValueAsString(attrs, ConfigInitScriptAttribute);
00062 d_termScriptFilename = XmlHandlerHelper::getAttributeValueAsString(attrs, ConfigTerminateScriptAttribute);
00063 d_defaultFontName = XmlHandlerHelper::getAttributeValueAsString(attrs, ConfigDefaultFontAttribute);
00064 d_defaultResourceGroup = XmlHandlerHelper::getAttributeValueAsString(attrs, ConfigDefaultResourceGroupAttribute);
00065 }
00066
00067 else
00068 {
00069 String message("Config_xmlHandler::startElement - Unexpected data was found while parsing the configuration file: '" + element + "' is unknown.");
00070
00071
00072 throw message.c_str();
00073 }
00074
00075 }
00076
00077
00078 void Config_xmlHandler::warning(const XERCES_CPP_NAMESPACE::SAXParseException &exc)
00079 {
00080 throw(exc);
00081 }
00082
00083 void Config_xmlHandler::error(const XERCES_CPP_NAMESPACE::SAXParseException &exc)
00084 {
00085 throw(exc);
00086 }
00087
00088 void Config_xmlHandler::fatalError(const XERCES_CPP_NAMESPACE::SAXParseException &exc)
00089 {
00090 throw(exc);
00091 }
00092
00093 }