summaryrefslogtreecommitdiffstats
path: root/Project/IOControl.cpp
diff options
context:
space:
mode:
authorThales Lima Oliveira <thaleslima.ufu@gmail.com>2018-01-04 19:11:08 -0200
committerThales Lima Oliveira <thaleslima.ufu@gmail.com>2018-01-04 19:11:08 -0200
commit76df1de5e2307229da9870306e4a1031170aaadf (patch)
tree6d7144e9982a824474279f02574c918ce8fa0e9d /Project/IOControl.cpp
parentcef9e14b989a3ba19321e4fe215ada2ee3998037 (diff)
downloadPSP.git-76df1de5e2307229da9870306e4a1031170aaadf.tar.gz
PSP.git-76df1de5e2307229da9870306e4a1031170aaadf.tar.xz
PSP.git-76df1de5e2307229da9870306e4a1031170aaadf.zip
Control elements file handling reorganized
Diffstat (limited to 'Project/IOControl.cpp')
-rw-r--r--Project/IOControl.cpp27
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;
+}