+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
/*
* Config_WidgetAPI.cpp
*
#include <libxml/parser.h>
#include <libxml/tree.h>
+#include <string>
Config_WidgetAPI::Config_WidgetAPI(std::string theRawXml)
{
myCurrentNode = xmlDocGetRootElement(myDoc);
}
-
Config_WidgetAPI::~Config_WidgetAPI()
{
xmlFreeDoc(myDoc);
xmlNodePtr aNextNode = myCurrentNode;
do {
aNextNode = aNextNode->next;
- } while(aNextNode && !isElementNode(aNextNode));
+ } while (aNextNode && !isElementNode(aNextNode));
- if(!aNextNode) {
+ if (!aNextNode) {
toParentWidget();
return false;
}
bool Config_WidgetAPI::toChildWidget()
{
- if(myCurrentNode && hasChild(myCurrentNode)) {
+ if (myCurrentNode && hasChild(myCurrentNode)) {
myCurrentNode = myCurrentNode->children;
- while(!isElementNode(myCurrentNode)) {
+ while (myCurrentNode && !isElementNode(myCurrentNode)) {
myCurrentNode = myCurrentNode->next;
- }
- return true;
+ }
+ return myCurrentNode != NULL;
}
return false;
}
bool Config_WidgetAPI::toParentWidget()
{
- if(myCurrentNode) {
+ if (myCurrentNode) {
myCurrentNode = myCurrentNode->parent;
}
return myCurrentNode != NULL;
}
-std::string Config_WidgetAPI::widgetType()
+std::string Config_WidgetAPI::widgetType() const
{
std::string result = "";
- if(myCurrentNode) {
+ if (myCurrentNode) {
result = std::string((char *) myCurrentNode->name);
}
return result;
}
-bool Config_WidgetAPI::isContainerWidget()
+bool Config_WidgetAPI::isGroupBoxWidget() const
{
return isNode(myCurrentNode, WDG_GROUP, WDG_CHECK_GROUP,
- NULL);
+ NULL);
}
-bool Config_WidgetAPI::isPagedWidget()
+bool Config_WidgetAPI::isPagedWidget() const
{
return isNode(myCurrentNode, WDG_TOOLBOX, WDG_SWITCH,
- NULL);
+ NULL);
}
-std::string Config_WidgetAPI::getProperty(const char* thePropName)
+std::string Config_WidgetAPI::getProperty(const char* thePropName) const
{
- std::string result = "";
- char* aPropChars = (char*) xmlGetProp(myCurrentNode, BAD_CAST thePropName);
- if (!aPropChars || aPropChars[0] == 0)
- return result;
- result = std::string(aPropChars);
- return result;
+ return ::getProperty(myCurrentNode, thePropName);
+}
+
+bool Config_WidgetAPI::getBooleanAttribute(const char* theAttributeName, bool theDefault) const
+{
+ return ::getBooleanAttribute(myCurrentNode, theAttributeName, theDefault);
}
-std::string Config_WidgetAPI::widgetId()
+std::string Config_WidgetAPI::widgetId() const
{
- return getProperty("id");
+ return getProperty(_ID);
}
-std::string Config_WidgetAPI::widgetTooltip()
+std::string Config_WidgetAPI::widgetIcon() const
{
- return getProperty("tooltip");
+ return getProperty(ATTR_ICON);
}
-std::string Config_WidgetAPI::widgetIcon()
+std::string Config_WidgetAPI::widgetLabel() const
{
- return getProperty("icon");
+ return getProperty(ATTR_LABEL);
}
-std::string Config_WidgetAPI::widgetLabel()
+std::string Config_WidgetAPI::widgetTooltip() const
{
- return getProperty("label");
+ return getProperty(ATTR_TOOLTIP);
}