From e72f5969db10d88818c2814c3929ddb67ddffc76 Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Wed, 14 Jan 2015 22:04:22 +0100 Subject: Registered properties for the Node class --- src/core/model/Node.cpp | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/core/model/Node.cpp b/src/core/model/Node.cpp index bac420b..7f684ce 100644 --- a/src/core/model/Node.cpp +++ b/src/core/model/Node.cpp @@ -21,6 +21,7 @@ #include #include +#include #include "Node.hpp" @@ -351,8 +352,29 @@ std::vector Node::resolve(const std::string &name, return resolve(std::vector{name}, type); } -/* RTTI type registrations */ +/* Reflection Methods */ + +static Variant getNodeName(const Node *obj) +{ + return Variant::fromString(obj->getName()); +} + +static void setNodeName(const Variant &value, Node *obj) +{ + obj->setName(value.asString()); +} + +static Variant getNodeParent(const Node *obj) +{ + return Variant::fromObject(obj->getParent()); +} -const Rtti RttiTypes::Node{"Node"}; +/* RTTI type registrations */ +namespace RttiTypes { +const Rtti Node = + TypedRttiBuilder("Node") + .property("name", {RttiTypes::String, getNodeName, setNodeName}) + .property("parent", {Node, getNodeParent}); +} } -- cgit v1.2.3