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=7d0c6614694712d3b9099d1ddf3df2b30ef9d34d;hp=979e56ac9650eaf289dfd1c35852b2ae5dfc1d74;hb=HEAD;hpb=cb30ef68af0383b073ba2d425d3d95c1e916cbb4 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 979e56a..262afcf 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) 2017 Samsung Electronics Co., Ltd. + * Copyright (c) 2024 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. @@ -18,22 +18,19 @@ #include "dummy-control.h" #include +#include #include -#include -#include namespace Dali { - namespace Toolkit { - DummyControl::DummyControl() { } DummyControl::DummyControl(const DummyControl& control) -: Control( control ) +: Control(control) { } @@ -41,57 +38,60 @@ DummyControl::~DummyControl() { } -DummyControl DummyControl::DownCast( BaseHandle handle ) +DummyControl DummyControl::DownCast(BaseHandle handle) { return Control::DownCast(handle); } DummyControl& DummyControl::operator=(const DummyControl& control) { - Control::operator=( control ); + Control::operator=(control); return *this; } // Used to test signal connections -void DummyControlImpl::CustomSlot1( Actor actor ) +void DummyControlImpl::CustomSlot1(Actor actor) { mCustomSlot1Called = true; } -namespace { - +namespace +{ BaseHandle Create() { return DummyControlImpl::New(); } -DALI_TYPE_REGISTRATION_BEGIN( Toolkit::DummyControl, Toolkit::Control, Create ); +DALI_TYPE_REGISTRATION_BEGIN(Toolkit::DummyControl, Toolkit::Control, Create); DALI_TYPE_REGISTRATION_END() Dali::PropertyRegistration dummyControlVisualProperty01( - typeRegistration, "testVisual", Dali::Toolkit::DummyControl::Property::TEST_VISUAL, Dali::Property::MAP, &Dali::Toolkit::DummyControlImpl::SetProperty, &Dali::Toolkit::DummyControlImpl::GetProperty ); + typeRegistration, "testVisual", Dali::Toolkit::DummyControl::Property::TEST_VISUAL, Dali::Property::MAP, &Dali::Toolkit::DummyControlImpl::SetProperty, &Dali::Toolkit::DummyControlImpl::GetProperty); Dali::PropertyRegistration dummyControlVisualProperty02( - typeRegistration, "testVisual", Dali::Toolkit::DummyControl::Property::TEST_VISUAL2, Dali::Property::MAP, &Dali::Toolkit::DummyControlImpl::SetProperty, &Dali::Toolkit::DummyControlImpl::GetProperty ); + 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 ); + 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 ); + 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); + +} // namespace DummyControl DummyControlImpl::New() { - IntrusivePtr< DummyControlImpl > impl = new DummyControlImpl; - DummyControl control( *impl ); + IntrusivePtr impl = new DummyControlImpl; + DummyControl control(*impl); impl->Initialize(); return control; } DummyControlImpl::DummyControlImpl() -: Control( ControlBehaviour( REQUIRES_TOUCH_EVENTS | REQUIRES_HOVER_EVENTS | REQUIRES_STYLE_CHANGE_SIGNALS ) ), +: Control(ControlBehaviour()), mCustomSlot1Called(false) { } @@ -100,58 +100,80 @@ DummyControlImpl::~DummyControlImpl() { } -void DummyControlImpl::RegisterVisual( Property::Index index, Toolkit::Visual::Base visual ) +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() ) + VisualIndices::iterator iter = std::find(mRegisteredVisualIndices.begin(), mRegisteredVisualIndices.end(), index); + if(iter == mRegisteredVisualIndices.end()) { mRegisteredVisualIndices.push_back(index); } } -void DummyControlImpl::RegisterVisual( Property::Index index, Toolkit::Visual::Base visual, bool enabled ) +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() ) + VisualIndices::iterator iter = std::find(mRegisteredVisualIndices.begin(), mRegisteredVisualIndices.end(), index); + if(iter == mRegisteredVisualIndices.end()) { mRegisteredVisualIndices.push_back(index); } } -void DummyControlImpl::UnregisterVisual( Property::Index index ) +void DummyControlImpl::RegisterVisual(Property::Index index, Toolkit::Visual::Base visual, int depthIndex) { - Control::UnregisterVisual( index ); + DevelControl::RegisterVisual(*this, index, visual, depthIndex); + + VisualIndices::iterator iter = std::find(mRegisteredVisualIndices.begin(), mRegisteredVisualIndices.end(), index); + if(iter == mRegisteredVisualIndices.end()) + { + mRegisteredVisualIndices.push_back(index); + } } -Toolkit::Visual::Base DummyControlImpl::GetVisual( Property::Index index ) +void DummyControlImpl::UnregisterVisual(Property::Index index) { - return Control::GetVisual( index ); + DevelControl::UnregisterVisual(*this, index); + + VisualIndices::iterator iter = std::find(mRegisteredVisualIndices.begin(), mRegisteredVisualIndices.end(), index); + if(iter != mRegisteredVisualIndices.end()) + { + mRegisteredVisualIndices.erase(iter); + } } -void DummyControlImpl::EnableVisual( Property::Index index, bool enabled ) +Toolkit::Visual::Base DummyControlImpl::GetVisual(Property::Index index) { - Control::EnableVisual( index, enabled ); + return DevelControl::GetVisual(*this, index); } -bool DummyControlImpl::IsVisualEnabled( Property::Index index ) +void DummyControlImpl::EnableVisual(Property::Index index, bool enabled) { - return Control::IsVisualEnabled( index ); + DevelControl::EnableVisual(*this, index, enabled); } +bool DummyControlImpl::IsVisualEnabled(Property::Index index) +{ + return DevelControl::IsVisualEnabled(*this, index); +} -Animation DummyControlImpl::CreateTransition( const Toolkit::TransitionData& transition ) +Animation DummyControlImpl::CreateTransition(const Toolkit::TransitionData& transition) { - return Control::CreateTransition( transition ); + return DevelControl::CreateTransition(*this, transition); } -void DummyControlImpl::SetProperty( BaseObject* object, Dali::Property::Index index, const Dali::Property::Value& value ) +void DummyControlImpl::DoAction(Dali::Property::Index index, Dali::Property::Index action, const Dali::Property::Value attributes) { - Toolkit::DummyControl control = Toolkit::DummyControl::DownCast( Dali::BaseHandle( object ) ); - DummyControlImpl& dummyImpl = static_cast(control.GetImplementation()); + 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) { @@ -159,12 +181,13 @@ void DummyControlImpl::SetProperty( BaseObject* object, Dali::Property::Index in 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 ) + const Property::Map* map = value.GetMap(); + if(map != NULL) { VisualFactory visualFactory = VisualFactory::Get(); - Visual::Base visual = visualFactory.CreateVisual(*map); + Visual::Base visual = visualFactory.CreateVisual(*map); dummyImpl.RegisterVisual(index, visual); } break; @@ -172,26 +195,37 @@ void DummyControlImpl::SetProperty( BaseObject* object, Dali::Property::Index in } } -Property::Value DummyControlImpl::GetProperty( BaseObject* object, Dali::Property::Index propertyIndex ) +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; } Toolkit::DummyControl Impl::DummyControl::New() { - IntrusivePtr< Toolkit::Impl::DummyControl > impl = new Toolkit::Impl::DummyControl; - Toolkit::DummyControl control( *impl ); + IntrusivePtr impl = new Toolkit::Impl::DummyControl; + Toolkit::DummyControl control(*impl); impl->Initialize(); return control; } +int Impl::DummyControl::constructorCount; +int Impl::DummyControl::destructorCount; Impl::DummyControl::DummyControl() : DummyControlImpl(), initializeCalled(false), activatedCalled(false), - onAccTouchedCalled(false), onAccValueChangeCalled(false), themeChangeCalled(false), fontChangeCalled(false), @@ -205,82 +239,164 @@ Impl::DummyControl::DummyControl() childRemoveCalled(false), sizeSetCalled(false), sizeAnimationCalled(false), - touchEventCalled(false), hoverEventCalled(false), wheelEventCalled(false), keyEventCalled(false), keyInputFocusGained(false), keyInputFocusLost(false) { + ++constructorCount; } -Impl::DummyControl::~DummyControl() { } - +Impl::DummyControl::~DummyControl() +{ + ++destructorCount; +} -void Impl::DummyControl::OnInitialize() { initializeCalled = true; } -bool Impl::DummyControl::OnAccessibilityActivated() { activatedCalled = true; return true; } -bool Impl::DummyControl::OnAccessibilityTouch(const TouchEvent& touchEvent) { onAccTouchedCalled = true; return true; } -bool Impl::DummyControl::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; + onAccValueChangeCalled = true; + return true; } -void Impl::DummyControl::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 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::OnStageConnection( int depth ) { Control::OnStageConnection( depth ); stageConnectionCalled = true; } -void Impl::DummyControl::OnStageDisconnection() { stageDisconnectionCalled = true; Control::OnStageDisconnection(); } -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::OnTouchEvent(const TouchEvent& event) { touchEventCalled = true; return false; } -bool Impl::DummyControl::OnHoverEvent(const HoverEvent& event) { hoverEventCalled = true; return false; } -bool Impl::DummyControl::OnWheelEvent(const WheelEvent& event) { wheelEventCalled = true; return false; } -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 ); + fontChangeCalled = change == StyleChange::DEFAULT_FONT_SIZE_CHANGE; +} +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() +{ + if(this->HasKeyInputFocus()) + { + keyInputFocusGained = true; + } +} +void Impl::DummyControl::OnKeyInputFocusLost() +{ + if(!this->HasKeyInputFocus()) + { + 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 ) +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 ) + for(VisualIndices::iterator iter = mRegisteredVisualIndices.begin(); iter != mRegisteredVisualIndices.end(); ++iter) { - Visual::Base visual = GetVisual(*iter); - Property::Value value = mLayouts[*iter]; - Property::Map* map = NULL; + Visual::Base visual = GetVisual(*iter); + Property::Value value = mLayouts[*iter]; + Property::Map* map = NULL; - if( value.GetType() != Property::NONE ) + if(value.GetType() != Property::NONE) { map = value.GetMap(); } - if( map == NULL ) + if(map == NULL) { map = &emptyMap; } - visual.SetTransformAndSize( *map, size ); + 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 ) +DummyControl DummyControl::New(bool override) { DummyControl control; - if (override) + if(override) { control = Impl::DummyControl::New(); } @@ -292,13 +408,13 @@ DummyControl DummyControl::New( bool override ) return control; } -DummyControl::DummyControl( DummyControlImpl& implementation ) -: Control( implementation ) +DummyControl::DummyControl(DummyControlImpl& implementation) +: Control(implementation) { } -DummyControl::DummyControl( Dali::Internal::CustomActor* internal ) -: Control( internal ) +DummyControl::DummyControl(Dali::Internal::CustomActor* internal) +: Control(internal) { VerifyCustomActorPointer(internal); }