summaryrefslogtreecommitdiff
path: root/libs/JSystem/src/JAHostIO/JAHFrameNode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/JSystem/src/JAHostIO/JAHFrameNode.cpp')
-rw-r--r--libs/JSystem/src/JAHostIO/JAHFrameNode.cpp93
1 files changed, 93 insertions, 0 deletions
diff --git a/libs/JSystem/src/JAHostIO/JAHFrameNode.cpp b/libs/JSystem/src/JAHostIO/JAHFrameNode.cpp
new file mode 100644
index 0000000000..6b4d0d68fc
--- /dev/null
+++ b/libs/JSystem/src/JAHostIO/JAHFrameNode.cpp
@@ -0,0 +1,93 @@
+#include <JSystem/JAHostIO/JAHFrameNode.h>
+#include <JSystem/JAHostIO/JAHVirtualNode.h>
+#include <JSystem/JAHostIO/JAHioMessage.h>
+#include <JSystem/JAHostIO/JAHioMgr.h>
+
+JAHFrameNode::JAHFrameNode(const char* name)
+ : JAHioNode(name), mTree((JAHVirtualNode*)this), mFrameNodeLink(this) {}
+
+void JAHFrameNode::genMessage(JORMContext* context) {
+ JAHControl control(context, this);
+ callAllVirtualMessages(control);
+ message(control);
+ if (JAHSingletonBase<JAHioMgr>::getIns()->getNodeSysType() == 0)
+ generateTempChildren(context);
+ else
+ generateRealChildren(context);
+}
+
+void JAHFrameNode::callAllVirtualMessages(JAHControl& control) {
+ if (mTree.getNumChildren() == 0)
+ return;
+
+ for (JSUTreeIterator<JAHVirtualNode> iter = mTree.getFirstChild(); iter != mTree.getEndChild();
+ ++iter)
+ {
+ iter->message(control);
+ }
+}
+
+void JAHFrameNode::appendVirNode(JAHVirtualNode* node) {
+ mTree.appendChild(node->getVirTree());
+}
+
+void JAHFrameNode::listenPropertyEvent(const JORPropertyEvent* event) {
+ for (JSUTreeIterator<JAHVirtualNode> iter = mTree.getFirstChild(); iter != mTree.getEndChild();
+ ++iter)
+ {
+ iter->listenVirtualPropertyEvent(JAH_P_EVENT0, (u32)event->id);
+ }
+
+ JAHioNode::listenPropertyEvent(event);
+
+ for (JSUTreeIterator<JAHVirtualNode> iter = mTree.getFirstChild(); iter != mTree.getEndChild();
+ ++iter)
+ {
+ iter->listenVirtualPropertyEvent(JAH_P_EVENT1, (u32)event->id);
+ }
+}
+
+void JAHFrameNode::listenNodeEvent(const JORNodeEvent* event) {
+ JAHioNode::listenNodeEvent(event);
+ if (event->field_0x0 == 3) {
+ for (JSUTreeIterator<JAHVirtualNode> iter = mTree.getFirstChild();
+ iter != mTree.getEndChild(); ++iter)
+ iter->listenVirtualNodeEvent(JAH_N_EVENT0);
+ } else if (event->field_0x0 == 4) {
+ for (JSUTreeIterator<JAHVirtualNode> iter = mTree.getFirstChild();
+ iter != mTree.getEndChild(); ++iter)
+ iter->listenVirtualNodeEvent(JAH_N_EVENT1);
+ } else if (event->field_0x0 == 5) {
+ for (JSUTreeIterator<JAHVirtualNode> iter = mTree.getFirstChild();
+ iter != mTree.getEndChild(); ++iter)
+ iter->listenVirtualNodeEvent(JAH_N_EVENT2);
+ }
+}
+
+void JAHFrameNode::framework() {
+ onFrame();
+ if (mTree.getNumChildren() != 0) {
+ int i = 0; // unused?
+ for (JSUTreeIterator<JAHVirtualNode> iter = mTree.getFirstChild();
+ iter != mTree.getEndChild(); ++iter)
+ {
+ iter->framework();
+ }
+ }
+}
+
+void JAHFrameNode::onFrame() {}
+
+void JAHFrameNode::currentFramework() {
+ onCurrentNodeFrame();
+ if (mTree.getNumChildren() != 0) {
+ int i = 0; // unused?
+ for (JSUTreeIterator<JAHVirtualNode> iter = mTree.getFirstChild();
+ iter != mTree.getEndChild(); ++iter)
+ {
+ iter->currentFramework();
+ }
+ }
+}
+
+void JAHFrameNode::onCurrentNodeFrame() {}