From 2f631bf0569ea2eeef13f5cdf6d77a95099be8ef Mon Sep 17 00:00:00 2001 From: Adeel Kazmi Date: Wed, 4 Jan 2017 18:07:41 +0000 Subject: [PATCH] (Actor) Add enumeration setting support to various properties Before, you could only set these enumeration value properties as strings which is quite annoying from code. Change-Id: I566bd962c1bbcc43abdf15786e5c06065969ce60 --- automated-tests/src/dali/utc-Dali-Actor.cpp | 72 ++++++++++++++++++++++++++++- dali/internal/event/actors/actor-impl.cpp | 22 ++++----- 2 files changed, 82 insertions(+), 12 deletions(-) diff --git a/automated-tests/src/dali/utc-Dali-Actor.cpp b/automated-tests/src/dali/utc-Dali-Actor.cpp index 4683448..b5f360a 100644 --- a/automated-tests/src/dali/utc-Dali-Actor.cpp +++ b/automated-tests/src/dali/utc-Dali-Actor.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * Copyright (c) 2017 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -2864,6 +2864,16 @@ int UtcDaliRelayoutProperties_ResizePolicies(void) DALI_TEST_EQUALS( actor.GetProperty( Actor::Property::WIDTH_RESIZE_POLICY ).Get< std::string >(), widthPolicy, TEST_LOCATION ); DALI_TEST_EQUALS( actor.GetProperty( Actor::Property::HEIGHT_RESIZE_POLICY ).Get< std::string >(), heightPolicy, TEST_LOCATION ); + // Set individual dimensions using enums + ResizePolicy::Type widthPolicyEnum = ResizePolicy::USE_ASSIGNED_SIZE; + ResizePolicy::Type heightPolicyEnum = ResizePolicy::SIZE_RELATIVE_TO_PARENT; + + actor.SetProperty( Actor::Property::WIDTH_RESIZE_POLICY, widthPolicyEnum ); + actor.SetProperty( Actor::Property::HEIGHT_RESIZE_POLICY, heightPolicyEnum ); + + DALI_TEST_EQUALS( static_cast< int >( actor.GetResizePolicy( Dimension::WIDTH ) ), static_cast< int >( widthPolicyEnum ), TEST_LOCATION ); + DALI_TEST_EQUALS( static_cast< int >( actor.GetResizePolicy( Dimension::HEIGHT ) ), static_cast< int >( heightPolicyEnum ), TEST_LOCATION ); + END_TEST; } @@ -3359,6 +3369,66 @@ int UtcDaliActorDrawModePropertyAsString(void) END_TEST; } +int UtcDaliActorColorModePropertyAsEnum(void) +{ + TestApplication application; + + Actor actor = Actor::New(); + + actor.SetProperty( Actor::Property::COLOR_MODE, USE_OWN_COLOR ); + DALI_TEST_EQUALS( actor.GetColorMode(), USE_OWN_COLOR, TEST_LOCATION ); + + actor.SetProperty( Actor::Property::COLOR_MODE, USE_PARENT_COLOR ); + DALI_TEST_EQUALS( actor.GetColorMode(), USE_PARENT_COLOR, TEST_LOCATION ); + + actor.SetProperty( Actor::Property::COLOR_MODE, USE_OWN_MULTIPLY_PARENT_COLOR ); + DALI_TEST_EQUALS( actor.GetColorMode(), USE_OWN_MULTIPLY_PARENT_COLOR, TEST_LOCATION ); + + actor.SetProperty( Actor::Property::COLOR_MODE, USE_OWN_MULTIPLY_PARENT_ALPHA ); + DALI_TEST_EQUALS( actor.GetColorMode(), USE_OWN_MULTIPLY_PARENT_ALPHA, TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliActorPositionInheritancePropertyAsEnum(void) +{ + TestApplication application; + + Actor actor = Actor::New(); + + actor.SetProperty( Actor::Property::POSITION_INHERITANCE, INHERIT_PARENT_POSITION ); + DALI_TEST_EQUALS( actor.GetPositionInheritanceMode(), INHERIT_PARENT_POSITION, TEST_LOCATION ); + + actor.SetProperty( Actor::Property::POSITION_INHERITANCE, USE_PARENT_POSITION ); + DALI_TEST_EQUALS( actor.GetPositionInheritanceMode(), USE_PARENT_POSITION, TEST_LOCATION ); + + actor.SetProperty( Actor::Property::POSITION_INHERITANCE, USE_PARENT_POSITION_PLUS_LOCAL_POSITION ); + DALI_TEST_EQUALS( actor.GetPositionInheritanceMode(), USE_PARENT_POSITION_PLUS_LOCAL_POSITION, TEST_LOCATION ); + + actor.SetProperty( Actor::Property::POSITION_INHERITANCE, DONT_INHERIT_POSITION ); + DALI_TEST_EQUALS( actor.GetPositionInheritanceMode(), DONT_INHERIT_POSITION, TEST_LOCATION ); + + END_TEST; +} + +int UtcDaliActorDrawModePropertyAsEnum(void) +{ + TestApplication application; + + Actor actor = Actor::New(); + + actor.SetProperty( Actor::Property::DRAW_MODE, DrawMode::NORMAL ); + DALI_TEST_EQUALS( actor.GetDrawMode(), DrawMode::NORMAL, TEST_LOCATION ); + + actor.SetProperty( Actor::Property::DRAW_MODE, DrawMode::OVERLAY_2D ); + DALI_TEST_EQUALS( actor.GetDrawMode(), DrawMode::OVERLAY_2D, TEST_LOCATION ); + + actor.SetProperty( Actor::Property::DRAW_MODE, DrawMode::STENCIL ); + DALI_TEST_EQUALS( actor.GetDrawMode(), DrawMode::STENCIL, TEST_LOCATION ); + + END_TEST; +} + int UtcDaliActorAddRendererP(void) { tet_infoline("Testing Actor::AddRenderer"); diff --git a/dali/internal/event/actors/actor-impl.cpp b/dali/internal/event/actors/actor-impl.cpp index a3ca220..9a10eab 100644 --- a/dali/internal/event/actors/actor-impl.cpp +++ b/dali/internal/event/actors/actor-impl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. + * Copyright (c) 2017 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -2563,8 +2563,8 @@ void Actor::SetDefaultProperty( Property::Index index, const Property::Value& pr case Dali::Actor::Property::COLOR_MODE: { - ColorMode mode; - if ( Scripting::GetEnumeration< ColorMode >( property.Get< std::string >().c_str(), COLOR_MODE_TABLE, COLOR_MODE_TABLE_COUNT, mode ) ) + ColorMode mode = mColorMode; + if ( Scripting::GetEnumerationProperty< ColorMode >( property, COLOR_MODE_TABLE, COLOR_MODE_TABLE_COUNT, mode ) ) { SetColorMode( mode ); } @@ -2573,8 +2573,8 @@ void Actor::SetDefaultProperty( Property::Index index, const Property::Value& pr case Dali::Actor::Property::POSITION_INHERITANCE: { - PositionInheritanceMode mode; - if( Scripting::GetEnumeration< PositionInheritanceMode >( property.Get< std::string >().c_str(), POSITION_INHERITANCE_MODE_TABLE, POSITION_INHERITANCE_MODE_TABLE_COUNT, mode ) ) + PositionInheritanceMode mode = mPositionInheritanceMode; + if( Scripting::GetEnumerationProperty< PositionInheritanceMode >( property, POSITION_INHERITANCE_MODE_TABLE, POSITION_INHERITANCE_MODE_TABLE_COUNT, mode ) ) { SetPositionInheritanceMode( mode ); } @@ -2583,8 +2583,8 @@ void Actor::SetDefaultProperty( Property::Index index, const Property::Value& pr case Dali::Actor::Property::DRAW_MODE: { - DrawMode::Type mode; - if( Scripting::GetEnumeration< DrawMode::Type >( property.Get< std::string >().c_str(), DRAW_MODE_TABLE, DRAW_MODE_TABLE_COUNT, mode ) ) + DrawMode::Type mode = mDrawMode; + if( Scripting::GetEnumerationProperty< DrawMode::Type >( property, DRAW_MODE_TABLE, DRAW_MODE_TABLE_COUNT, mode ) ) { SetDrawMode( mode ); } @@ -2599,8 +2599,8 @@ void Actor::SetDefaultProperty( Property::Index index, const Property::Value& pr case Dali::Actor::Property::WIDTH_RESIZE_POLICY: { - ResizePolicy::Type type; - if( Scripting::GetEnumeration< ResizePolicy::Type >( property.Get< std::string >().c_str(), RESIZE_POLICY_TABLE, RESIZE_POLICY_TABLE_COUNT, type ) ) + ResizePolicy::Type type = static_cast< ResizePolicy::Type >( -1 ); // Set to invalid number so it definitely gets set. + if( Scripting::GetEnumerationProperty< ResizePolicy::Type >( property, RESIZE_POLICY_TABLE, RESIZE_POLICY_TABLE_COUNT, type ) ) { SetResizePolicy( type, Dimension::WIDTH ); } @@ -2609,8 +2609,8 @@ void Actor::SetDefaultProperty( Property::Index index, const Property::Value& pr case Dali::Actor::Property::HEIGHT_RESIZE_POLICY: { - ResizePolicy::Type type; - if( Scripting::GetEnumeration< ResizePolicy::Type >( property.Get< std::string >().c_str(), RESIZE_POLICY_TABLE, RESIZE_POLICY_TABLE_COUNT, type ) ) + ResizePolicy::Type type = static_cast< ResizePolicy::Type >( -1 ); // Set to invalid number so it definitely gets set. + if( Scripting::GetEnumerationProperty< ResizePolicy::Type >( property, RESIZE_POLICY_TABLE, RESIZE_POLICY_TABLE_COUNT, type ) ) { SetResizePolicy( type, Dimension::HEIGHT ); } -- 2.7.4