X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Fdali-toolkit-test-utils%2Fdummy-control.cpp;h=7ca109cec9d8b2423a10134b5d1f4c4dac78ac02;hp=e8c266db44b7400d5a6f7612e9f82e948c4724db;hb=ca99959003c0445d5afb437e2be26361dff51623;hpb=675f5551ef3c7ca20ec45c36b865a5092883af43 diff --git a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/dummy-control.cpp b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/dummy-control.cpp index e8c266d..7ca109c 100644 --- a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/dummy-control.cpp +++ b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/dummy-control.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 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. @@ -19,8 +19,7 @@ #include #include -#include -#include +#include namespace Dali { @@ -68,9 +67,21 @@ BaseHandle Create() DALI_TYPE_REGISTRATION_BEGIN( Toolkit::DummyControl, Toolkit::Control, Create ); DALI_TYPE_REGISTRATION_END() -Dali::PropertyRegistration dummyControlVisualProperty( +Dali::PropertyRegistration dummyControlVisualProperty01( typeRegistration, "testVisual", Dali::Toolkit::DummyControl::Property::TEST_VISUAL, Dali::Property::MAP, &Dali::Toolkit::DummyControlImpl::SetProperty, &Dali::Toolkit::DummyControlImpl::GetProperty ); +Dali::PropertyRegistration dummyControlVisualProperty02( + typeRegistration, "testVisual2", Dali::Toolkit::DummyControl::Property::TEST_VISUAL2, Dali::Property::MAP, &Dali::Toolkit::DummyControlImpl::SetProperty, &Dali::Toolkit::DummyControlImpl::GetProperty ); + +Dali::PropertyRegistration dummyControlVisualProperty03( + typeRegistration, "foregroundVisual", Dali::Toolkit::DummyControl::Property::FOREGROUND_VISUAL, Dali::Property::MAP, &Dali::Toolkit::DummyControlImpl::SetProperty, &Dali::Toolkit::DummyControlImpl::GetProperty ); + +Dali::PropertyRegistration dummyControlVisualProperty04( + typeRegistration, "focusVisual", Dali::Toolkit::DummyControl::Property::FOCUS_VISUAL, Dali::Property::MAP, &Dali::Toolkit::DummyControlImpl::SetProperty, &Dali::Toolkit::DummyControlImpl::GetProperty ); + +Dali::PropertyRegistration dummyControlVisualProperty05( + typeRegistration, "labelVisual", Dali::Toolkit::DummyControl::Property::LABEL_VISUAL, Dali::Property::MAP, &Dali::Toolkit::DummyControlImpl::SetProperty, &Dali::Toolkit::DummyControlImpl::GetProperty ); + } DummyControl DummyControlImpl::New() @@ -82,7 +93,7 @@ DummyControl DummyControlImpl::New() } DummyControlImpl::DummyControlImpl() -: Control( ControlBehaviour( REQUIRES_TOUCH_EVENTS | REQUIRES_HOVER_EVENTS | REQUIRES_STYLE_CHANGE_SIGNALS ) ), +: Control( ControlBehaviour( REQUIRES_STYLE_CHANGE_SIGNALS ) ), mCustomSlot1Called(false) { } @@ -93,7 +104,7 @@ DummyControlImpl::~DummyControlImpl() void DummyControlImpl::RegisterVisual( Property::Index index, Toolkit::Visual::Base visual ) { - Control::RegisterVisual( index, visual ); + DevelControl::RegisterVisual( *this, index, visual ); VisualIndices::iterator iter = std::find( mRegisteredVisualIndices.begin(), mRegisteredVisualIndices.end(), index ); if( iter == mRegisteredVisualIndices.end() ) @@ -104,7 +115,7 @@ void DummyControlImpl::RegisterVisual( Property::Index index, Toolkit::Visual::B void DummyControlImpl::RegisterVisual( Property::Index index, Toolkit::Visual::Base visual, bool enabled ) { - Control::RegisterVisual( index, visual, enabled ); + DevelControl::RegisterVisual( *this, index, visual, enabled ); VisualIndices::iterator iter = std::find( mRegisteredVisualIndices.begin(), mRegisteredVisualIndices.end(), index ); if( iter == mRegisteredVisualIndices.end() ) @@ -115,56 +126,98 @@ void DummyControlImpl::RegisterVisual( Property::Index index, Toolkit::Visual::B void DummyControlImpl::UnregisterVisual( Property::Index index ) { - Control::UnregisterVisual( index ); + DevelControl::UnregisterVisual( *this, index ); + + VisualIndices::iterator iter = std::find( mRegisteredVisualIndices.begin(), mRegisteredVisualIndices.end(), index ); + if( iter != mRegisteredVisualIndices.end() ) + { + mRegisteredVisualIndices.erase(iter); + } } Toolkit::Visual::Base DummyControlImpl::GetVisual( Property::Index index ) { - return Control::GetVisual( index ); + return DevelControl::GetVisual( *this, index ); } void DummyControlImpl::EnableVisual( Property::Index index, bool enabled ) { - Control::EnableVisual( index, enabled ); + DevelControl::EnableVisual( *this, index, enabled ); } bool DummyControlImpl::IsVisualEnabled( Property::Index index ) { - return Control::IsVisualEnabled( index ); + return DevelControl::IsVisualEnabled( *this, index ); } - Animation DummyControlImpl::CreateTransition( const Toolkit::TransitionData& transition ) { - return Control::CreateTransition( transition ); + return DevelControl::CreateTransition( *this, transition ); +} + +void DummyControlImpl::DoAction( Dali::Property::Index index, Dali::Property::Index action, const Dali::Property::Value attributes ) +{ + DummyControl control( *this ); + DevelControl::DoAction( control, index, action, attributes); } void DummyControlImpl::SetProperty( BaseObject* object, Dali::Property::Index index, const Dali::Property::Value& value ) { + Toolkit::DummyControl control = Toolkit::DummyControl::DownCast( Dali::BaseHandle( object ) ); + DummyControlImpl& dummyImpl = static_cast(control.GetImplementation()); + + switch(index) + { + case Toolkit::DummyControl::Property::TEST_VISUAL: + case Toolkit::DummyControl::Property::TEST_VISUAL2: + case Toolkit::DummyControl::Property::FOREGROUND_VISUAL: + case Toolkit::DummyControl::Property::FOCUS_VISUAL: + case Toolkit::DummyControl::Property::LABEL_VISUAL: + { + Property::Map* map = value.GetMap(); + if( map != NULL ) + { + VisualFactory visualFactory = VisualFactory::Get(); + Visual::Base visual = visualFactory.CreateVisual(*map); + dummyImpl.RegisterVisual(index, visual); + } + break; + } + } } Property::Value DummyControlImpl::GetProperty( BaseObject* object, Dali::Property::Index propertyIndex ) { - Dali::Property::Value value; + Toolkit::DummyControl control = Toolkit::DummyControl::DownCast( Dali::BaseHandle( object ) ); + DummyControlImpl& dummyImpl = static_cast( control.GetImplementation() ); + + Visual::Base visual = dummyImpl.GetVisual( propertyIndex ); + Property::Map map; + if( visual ) + { + visual.CreatePropertyMap( map ); + } + Dali::Property::Value value = map; + return value; } - -DummyControl DummyControlImplOverride::New() +Toolkit::DummyControl Impl::DummyControl::New() { - IntrusivePtr< DummyControlImplOverride > impl = new DummyControlImplOverride; - DummyControl control( *impl ); + IntrusivePtr< Toolkit::Impl::DummyControl > impl = new Toolkit::Impl::DummyControl; + Toolkit::DummyControl control( *impl ); impl->Initialize(); return control; } +int Impl::DummyControl::constructorCount; +int Impl::DummyControl::destructorCount; -DummyControlImplOverride::DummyControlImplOverride() +Impl::DummyControl::DummyControl() : DummyControlImpl(), initializeCalled(false), activatedCalled(false), - onAccTouchedCalled(false), onAccValueChangeCalled(false), themeChangeCalled(false), fontChangeCalled(false), @@ -178,65 +231,102 @@ DummyControlImplOverride::DummyControlImplOverride() childRemoveCalled(false), sizeSetCalled(false), sizeAnimationCalled(false), - touchEventCalled(false), hoverEventCalled(false), wheelEventCalled(false), keyEventCalled(false), keyInputFocusGained(false), keyInputFocusLost(false) { + ++constructorCount; } -DummyControlImplOverride::~DummyControlImplOverride() { } - +Impl::DummyControl::~DummyControl() +{ + ++destructorCount; +} -void DummyControlImplOverride::OnInitialize() { initializeCalled = true; } -bool DummyControlImplOverride::OnAccessibilityActivated() { activatedCalled = true; return true; } -bool DummyControlImplOverride::OnAccessibilityTouch(const TouchEvent& touchEvent) { onAccTouchedCalled = true; return true; } -bool DummyControlImplOverride::OnAccessibilityValueChange( bool isIncrease ) +void Impl::DummyControl::OnInitialize() { initializeCalled = true; } +bool Impl::DummyControl::OnAccessibilityActivated() { activatedCalled = true; return true; } +bool Impl::DummyControl::OnAccessibilityValueChange( bool isIncrease ) { onAccValueChangeCalled = true; return true; } -void DummyControlImplOverride::OnStyleChange( Toolkit::StyleManager styleManager, StyleChange::Type change ) +void Impl::DummyControl::OnStyleChange( Toolkit::StyleManager styleManager, StyleChange::Type change ) { themeChangeCalled = change == StyleChange::THEME_CHANGE; fontChangeCalled = change == StyleChange::DEFAULT_FONT_SIZE_CHANGE; } -void DummyControlImplOverride::OnPinch(const PinchGesture& pinch) { pinchCalled = true; } -void DummyControlImplOverride::OnPan(const PanGesture& pan) { panCalled = true; } -void DummyControlImplOverride::OnTap(const TapGesture& tap) { tapCalled = true; } -void DummyControlImplOverride::OnLongPress(const LongPressGesture& longPress) { longPressCalled = true; } -void DummyControlImplOverride::OnStageConnection( int depth ) { Control::OnStageConnection( depth ); stageConnectionCalled = true; } -void DummyControlImplOverride::OnStageDisconnection() { stageDisconnectionCalled = true; Control::OnStageDisconnection(); } -void DummyControlImplOverride::OnChildAdd(Actor& child) { childAddCalled = true; } -void DummyControlImplOverride::OnChildRemove(Actor& child) { childRemoveCalled = true; } -void DummyControlImplOverride::OnSizeSet(const Vector3& targetSize) { Control::OnSizeSet( targetSize ); sizeSetCalled = true; } -void DummyControlImplOverride::OnSizeAnimation(Animation& animation, const Vector3& targetSize) { Control::OnSizeAnimation( animation, targetSize ); sizeAnimationCalled = true; } -bool DummyControlImplOverride::OnTouchEvent(const TouchEvent& event) { touchEventCalled = true; return false; } -bool DummyControlImplOverride::OnHoverEvent(const HoverEvent& event) { hoverEventCalled = true; return false; } -bool DummyControlImplOverride::OnWheelEvent(const WheelEvent& event) { wheelEventCalled = true; return false; } -bool DummyControlImplOverride::OnKeyEvent(const KeyEvent& event) { keyEventCalled = true; return false;} -void DummyControlImplOverride::OnKeyInputFocusGained() { keyInputFocusGained = true; } -void DummyControlImplOverride::OnKeyInputFocusLost() { keyInputFocusLost = true; } - -void DummyControlImplOverride::OnRelayout( const Vector2& size, RelayoutContainer& container ) -{ - Property::Map transformMap; - transformMap - .Add( Toolkit::DevelVisual::Transform::Property::OFFSET, Vector2(0.0f, 0.0f) ) - .Add( Toolkit::DevelVisual::Transform::Property::SIZE, Vector2(1.0f, 1.0f) ) - .Add( Toolkit::DevelVisual::Transform::Property::ORIGIN, Toolkit::Align::CENTER ) - .Add( Toolkit::DevelVisual::Transform::Property::ANCHOR_POINT, Toolkit::Align::CENTER ) - .Add( Toolkit::DevelVisual::Transform::Property::OFFSET_SIZE_MODE, Vector4::ZERO ); +void Impl::DummyControl::OnPinch(const PinchGesture& pinch) { pinchCalled = true; } +void Impl::DummyControl::OnPan(const PanGesture& pan) { panCalled = true; } +void Impl::DummyControl::OnTap(const TapGesture& tap) { tapCalled = true; } +void Impl::DummyControl::OnLongPress(const LongPressGesture& longPress) { longPressCalled = true; } +void Impl::DummyControl::OnSceneConnection( int depth ) { Control::OnSceneConnection( depth ); stageConnectionCalled = true; } +void Impl::DummyControl::OnSceneDisconnection() { stageDisconnectionCalled = true; Control::OnSceneDisconnection(); } +void Impl::DummyControl::OnChildAdd(Actor& child) { childAddCalled = true; } +void Impl::DummyControl::OnChildRemove(Actor& child) { childRemoveCalled = true; } +void Impl::DummyControl::OnSizeSet(const Vector3& targetSize) { Control::OnSizeSet( targetSize ); sizeSetCalled = true; } +void Impl::DummyControl::OnSizeAnimation(Animation& animation, const Vector3& targetSize) { Control::OnSizeAnimation( animation, targetSize ); sizeAnimationCalled = true; } +bool Impl::DummyControl::OnKeyEvent(const KeyEvent& event) { keyEventCalled = true; return false;} +void Impl::DummyControl::OnKeyInputFocusGained() { keyInputFocusGained = true; } +void Impl::DummyControl::OnKeyInputFocusLost() { keyInputFocusLost = true; } + +void Impl::DummyControl::SetLayout( Property::Index visualIndex, Property::Map& map ) +{ + Property::Value value( map ); + mLayouts[visualIndex] = value; +} + +void Impl::DummyControl::OnRelayout( const Vector2& size, RelayoutContainer& container ) +{ + if ( mRelayoutCallback ) + { + mRelayoutCallback( size ); // Execute callback if set + } + + Property::Map emptyMap; for( VisualIndices::iterator iter = mRegisteredVisualIndices.begin(); iter != mRegisteredVisualIndices.end() ; ++iter ) { Visual::Base visual = GetVisual(*iter); - visual.SetTransformAndSize( transformMap, size ); + Property::Value value = mLayouts[*iter]; + Property::Map* map = NULL; + + if( value.GetType() != Property::NONE ) + { + map = value.GetMap(); + } + if( map == NULL ) + { + map = &emptyMap; + } + + visual.SetTransformAndSize( *map, size ); } } +void Impl::DummyControl::SetRelayoutCallback( RelayoutCallbackFunc callback ) +{ + mRelayoutCallback = callback; +} + +Vector3 Impl::DummyControl::GetNaturalSize() +{ + Vector2 currentSize; + + for( auto elem : mRegisteredVisualIndices ) + { + Vector2 naturalSize; + Visual::Base visual = GetVisual(elem); + visual.GetNaturalSize( naturalSize ); + currentSize.width = std::max( naturalSize.width, currentSize.width ); + currentSize.height = std::max( naturalSize.height, currentSize.height ); + } + + return Vector3( currentSize ); +} + + DummyControl DummyControl::New( bool override ) { @@ -244,7 +334,7 @@ DummyControl DummyControl::New( bool override ) if (override) { - control = DummyControlImplOverride::New(); + control = Impl::DummyControl::New(); } else {