{
}
+std::list<std::string> Config_FeatureReader::features() const
+{
+ return myFeatures;
+}
+
void Config_FeatureReader::processNode(xmlNodePtr theNode)
{
- Event_ID aMenuItemEvent = Event_Loop::eventByName(myEventGenerated);
+ Events_ID aMenuItemEvent = Events_Loop::eventByName(myEventGenerated);
if (isNode(theNode, NODE_FEATURE, NULL)) {
- Event_Loop* aEvLoop = Event_Loop::loop();
+ Events_Loop* aEvLoop = Events_Loop::loop();
Config_FeatureMessage aMessage(aMenuItemEvent, this);
fillFeature(theNode, aMessage);
+ myFeatures.push_back(getProperty(theNode, _ID));
//If a feature has xml definition for it's widget:
aMessage.setUseInput(hasChild(theNode));
aEvLoop->send(aMessage);
*/
#include <Config_XMLReader.h>
+#include <Config_Keywords.h>
+#include <Config_Common.h>
- #include <Event_Loop.h>
+ #include <Events_Loop.h>
#include <libxml/parser.h>
#include <libxml/tree.h>
/*
* Allows to customize reader's behavior for a node. Virtual.
- * The default implementation does nothing. (In debug mode prints
+ * The default impl does nothing. (In debug mode prints
* some info)
*/
-void Config_XMLReader::processNode(xmlNodePtr aNode)
+void Config_XMLReader::processNode(xmlNodePtr theNode)
{
-#ifdef _DEBUG
- std::cout << "Config_XMLReader::processNode: "
- << aNode->name << " content: "
- << aNode->content << std::endl;
-#endif
+ if (isNode(theNode, NODE_SOURCE, NULL)) {
+ std::string aSourceFile = getProperty(theNode, SOURCE_FILE);
+ Config_XMLReader aSourceReader = Config_XMLReader(aSourceFile);
+ readRecursively(aSourceReader.findRoot());
+ #ifdef _DEBUG
+ std::cout << "Config_XMLReader::sourced node: " << aSourceFile << std::endl;
+ #endif
+ }
}
/*