diff options
Diffstat (limited to 'Project/IOControl.cpp')
-rw-r--r-- | Project/IOControl.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/Project/IOControl.cpp b/Project/IOControl.cpp index 193986e..f40232a 100644 --- a/Project/IOControl.cpp +++ b/Project/IOControl.cpp @@ -270,3 +270,30 @@ bool IOControl::UpdateText() if(!m_glText->IsTextureOK()) return false; return true; } + +void IOControl::SaveElement(rapidxml::xml_document<>& doc, rapidxml::xml_node<>* elementListNode) +{ + auto elementNode = XMLParser::AppendNode(doc, elementListNode, "IO"); + XMLParser::SetNodeAttribute(doc, elementNode, "ID", m_elementID); + + SaveCADProperties(doc, elementNode); + SaveControlNodes(doc, elementNode); + + // Element properties + auto value = XMLParser::AppendNode(doc, elementNode, "Value"); + XMLParser::SetNodeValue(doc, value, m_value); + auto ioFlags = XMLParser::AppendNode(doc, elementNode, "IOFlags"); + XMLParser::SetNodeValue(doc, ioFlags, m_ioFlags); +} + +bool IOControl::OpenElement(rapidxml::xml_node<>* elementNode) +{ + if(!OpenCADProperties(elementNode)) return false; + if(!OpenControlNodes(elementNode)) return false; + + // Element properties + IOControl::IOFlags value = static_cast<IOControl::IOFlags>(XMLParser::GetNodeValueInt(elementNode, "Value")); + SetValue(value); + + return true; +} |