diff options
| author | Roman Sandu <roma.sandu@gmail.com> | 2026-03-27 04:54:07 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-26 18:54:07 -0700 |
| commit | 0fc019dcfa2ed1834825e9754d47e7948e1745f7 (patch) | |
| tree | c3b06bbb412d48cc6586bea3312274dd70f00761 /libs/JSystem/src/JAHostIO/JAHVirtualNode.cpp | |
| parent | f8cf5458482d7b380f52740289745b8241448559 (diff) | |
JAHostIO and friends (#3131)
Diffstat (limited to 'libs/JSystem/src/JAHostIO/JAHVirtualNode.cpp')
| -rw-r--r-- | libs/JSystem/src/JAHostIO/JAHVirtualNode.cpp | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/libs/JSystem/src/JAHostIO/JAHVirtualNode.cpp b/libs/JSystem/src/JAHostIO/JAHVirtualNode.cpp new file mode 100644 index 0000000000..7275fc70be --- /dev/null +++ b/libs/JSystem/src/JAHostIO/JAHVirtualNode.cpp @@ -0,0 +1,93 @@ +#include <JSystem/JAHostIO/JAHVirtualNode.h> +#include <JSystem/JUtility/JUTAssert.h> +#include <cstring> + +u32 JAHVirtualNode::smVirNodeNum; + +void JAHVirtualNode::virtualMessage(JAHControl& control) { + message(control); + callAllVirtualMessages(control); +} + +void JAHVirtualNode::callAllVirtualMessages(JAHControl& control) { + if (mTree.getNumChildren() == 0) + return; + + for (JSUTreeIterator<JAHVirtualNode> iter = mTree.getFirstChild(); iter != mTree.getEndChild(); + ++iter) + { + iter->message(control); + } +} + +JAHioNode* JAHVirtualNode::getMaster() { + JSUTree<JAHVirtualNode>* it = mTree.getParent(); + while (it->getParent()) + it = it->getParent(); + return (JAHioNode*)it->getObject(); +} + +void JAHVirtualNode::framework() { + onFrame(); + for (JSUTreeIterator<JAHVirtualNode> iter = getVirTree()->getFirstChild(); + iter != getVirTree()->getEndChild(); ++iter) + { + iter->framework(); + } +} + +void JAHVirtualNode::onFrame() {} + +void JAHVirtualNode::currentFramework() { + onCurrentNodeFrame(); + for (JSUTreeIterator<JAHVirtualNode> iter = getVirTree()->getFirstChild(); + iter != getVirTree()->getEndChild(); ++iter) + { + iter->framework(); + } +} + +void JAHVirtualNode::onCurrentNodeFrame() {} + +void JAHVirtualNode::listenVirtualPropertyEvent(JAH_P_Event param_1, u32 param_2) { + propertyEvent(param_1, param_2); + for (JSUTreeIterator<JAHVirtualNode> iter = mTree.getFirstChild(); iter != mTree.getEndChild(); + ++iter) + { + iter->listenVirtualPropertyEvent(param_1, param_2); + } +} + +void JAHVirtualNode::propertyEvent(JAH_P_Event, u32) {} + +void JAHVirtualNode::listenVirtualNodeEvent(JAH_N_Event param_1) { + nodeEvent(param_1); + for (JSUTreeIterator<JAHVirtualNode> iter = mTree.getFirstChild(); iter != mTree.getEndChild(); + ++iter) + { + iter->listenVirtualNodeEvent(param_1); + } +} + +void JAHVirtualNode::nodeEvent(JAH_N_Event) {} + +void JAHVirtualNode::setVirNodeName(const char* name) { + JUT_ASSERT(139, name); + size_t size = strlen(name) + 1; + // clang-format off + JUT_ASSERT(141, size<32); + // clang-format on + strcpy(mName, name); +} + +JAHVirtualNode::JAHVirtualNode(const char* name) : mTree(this) { + if (name) + setVirNodeName(name); + else + setVirNodeName("no name"); + smVirNodeNum += 1; +} + +void JAHVirtualNode::updateNode() { + getMaster()->updateNode(); +} |
