X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=base%2Fdali-toolkit%2Finternal%2Fbuilder%2Fbuilder-signals.cpp;h=40428e34aaf0dab8c585f0f3608c76147a840ae9;hp=3124c46559580602cb01289fc2e309541629a566;hb=b7118cd60dccec726fa77b5fc496289ecb9a9ac0;hpb=fc6a26b5914e2a4db7bc2b0eded44e77c0347a4d diff --git a/base/dali-toolkit/internal/builder/builder-signals.cpp b/base/dali-toolkit/internal/builder/builder-signals.cpp index 3124c46..40428e3 100644 --- a/base/dali-toolkit/internal/builder/builder-signals.cpp +++ b/base/dali-toolkit/internal/builder/builder-signals.cpp @@ -29,7 +29,7 @@ namespace Toolkit { namespace Internal { -extern Animation CreateAnimation( const TreeNode& child ); +extern Animation CreateAnimation( const TreeNode& child, Dali::Toolkit::Internal::Builder* const builder ); extern bool SetPropertyFromNode( const TreeNode& node, Property::Value& value ); } } @@ -49,7 +49,7 @@ struct ChildActorAction std::string actorName; std::string actionName; std::string childAlias; - std::vector parameters; + PropertyValueContainer parameters; void operator()(void) { @@ -110,7 +110,7 @@ struct GenericAction { std::string actorName; std::string actionName; - std::vector parameters; + PropertyValueContainer parameters; void operator()(void) { @@ -126,11 +126,12 @@ struct GenericAction // Delay an animation play; ie wait as its not on stage yet struct DelayedAnimationPlay { - Toolkit::JsonParser memento; + OptionalChild animNode; + Dali::IntrusivePtr builder; void operator()(void) { - Animation anim = Toolkit::Internal::CreateAnimation(*memento.GetRoot()); + Animation anim = Toolkit::Internal::CreateAnimation(*animNode, builder.Get() ); if(anim) { anim.Play(); @@ -194,7 +195,7 @@ Property::Value GetPropertyValue(const TreeNode &child) * Gets Parmeter list from child * params is be cleared before insertion */ -void GetParameters(const TreeNode &child, std::vector ¶ms) +void GetParameters(const TreeNode& child, PropertyValueContainer& params) { if( OptionalChild c = IsChild(child, "parameters") ) { @@ -222,7 +223,7 @@ void DoNothing(void) {}; /** * Get an action as boost function callback */ -boost::function GetAction(const TreeNode &root, const TreeNode &child, Actor actor, boost::function quitAction) +boost::function GetAction(const TreeNode &root, const TreeNode &child, Actor actor, boost::function quitAction, Dali::Toolkit::Internal::Builder* const builder) { OptionalString childActorName(IsString( IsChild(&child, "child-actor")) ); OptionalString actorName(IsString( IsChild(&child, "actor")) ); @@ -279,7 +280,8 @@ boost::function GetAction(const TreeNode &root, const TreeNode &chi if( OptionalChild animNode = IsChild(*animations, *animationName) ) { DelayedAnimationPlay action; - action.memento = Toolkit::JsonParser::New(*animNode); + action.animNode = animNode; + action.builder = builder; // @todo; put constants into the map callback = action; } @@ -322,15 +324,10 @@ float GetConditionArg0(const TreeNode &child) { f = IsFloat( IsChild(child, "min") ); } + DALI_ASSERT_ALWAYS(f && "Notification condition for arg0 not specified"); - if(f) - { - return *f; - } - else - { - return 0.f; - } + + return *f; } /** @@ -344,15 +341,10 @@ float GetConditionArg1(const TreeNode &child) { f = IsFloat( IsChild(child, "max") ); } + DALI_ASSERT_ALWAYS(f && "Notification condition for arg1 not specified"); - if(f) - { - return *f; - } - else - { - return 0.f; - } + + return *f; } @@ -366,13 +358,13 @@ namespace Toolkit namespace Internal { -Actor SetupSignalAction(const TreeNode &child, Actor actor); -Actor SetupPropertyNotification(const TreeNode &child, Actor actor); +Actor SetupSignalAction(const TreeNode &child, Actor actor, Dali::Toolkit::Internal::Builder* const builder ); +Actor SetupPropertyNotification(const TreeNode &child, Actor actor, Dali::Toolkit::Internal::Builder* const builder ); /** * Setup signals and actions on an actor */ -Actor SetupSignalAction(ConnectionTracker* tracker, const TreeNode &root, const TreeNode &child, Actor actor, boost::function quitAction) +Actor SetupSignalAction(ConnectionTracker* tracker, const TreeNode &root, const TreeNode &child, Actor actor, boost::function quitAction, Dali::Toolkit::Internal::Builder* const builder ) { DALI_ASSERT_ALWAYS(actor); @@ -389,7 +381,7 @@ Actor SetupSignalAction(ConnectionTracker* tracker, const TreeNode &root, const OptionalString name( IsString( IsChild( key_child.second, "name")) ); DALI_ASSERT_ALWAYS(name && "Signal must have a name"); - boost::function callback = GetAction(root, key_child.second, actor, quitAction); + boost::function callback = GetAction(root, key_child.second, actor, quitAction, builder ); actor.ConnectSignal(tracker, *name, callback); } @@ -401,7 +393,7 @@ Actor SetupSignalAction(ConnectionTracker* tracker, const TreeNode &root, const /** * Setup Property notifications for an actor */ -Actor SetupPropertyNotification(ConnectionTracker* tracker, const TreeNode &root, const TreeNode &child, Actor actor, boost::function quitAction) +Actor SetupPropertyNotification(ConnectionTracker* tracker, const TreeNode &root, const TreeNode &child, Actor actor, boost::function quitAction, Dali::Toolkit::Internal::Builder* const builder ) { DALI_ASSERT_ALWAYS(actor); @@ -415,7 +407,7 @@ Actor SetupPropertyNotification(ConnectionTracker* tracker, const TreeNode &root // Actor actions reference by pointer because of circular reference actor->signal // So this callback should only go onto the actor maintained list. - boost::function callback = GetAction(root, key_child.second, actor, quitAction); + boost::function callback = GetAction(root, key_child.second, actor, quitAction, builder ); OptionalString prop(IsString( IsChild(key_child.second, "property")) ); DALI_ASSERT_ALWAYS(prop && "Notification signal must specify a property");