X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fbuttons%2Fpush-button-impl.cpp;h=2dc4385f19794dc2daf4f84fc8b1cb035953b513;hp=2fadac4542e618e3f881e46f4c43513e471e7b38;hb=19b6edb066bc90ab6fd4ce93b9dc49b5224d7815;hpb=ed11499452da1ccd5fdfa36324881dc66a5281bc diff --git a/dali-toolkit/internal/controls/buttons/push-button-impl.cpp b/dali-toolkit/internal/controls/buttons/push-button-impl.cpp index 2fadac4..2dc4385 100644 --- a/dali-toolkit/internal/controls/buttons/push-button-impl.cpp +++ b/dali-toolkit/internal/controls/buttons/push-button-impl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Samsung Electronics Co., Ltd. + * Copyright (c) 2021 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,33 +19,29 @@ #include "push-button-impl.h" // EXTERNAL INCLUDES -#include -#include #include #include +#include +#include // INTERNAL INCLUDES -#include -#include #include #include +#include +#include #if defined(DEBUG_ENABLED) - extern Debug::Filter* gLogButtonFilter; +extern Debug::Filter* gLogButtonFilter; #endif namespace Dali { - namespace Toolkit { - namespace Internal { - namespace { - BaseHandle Create() { return Toolkit::PushButton::New(); @@ -53,10 +49,10 @@ BaseHandle Create() // Properties -DALI_TYPE_REGISTRATION_BEGIN( Toolkit::PushButton, Toolkit::Button, Create ) +DALI_TYPE_REGISTRATION_BEGIN(Toolkit::PushButton, Toolkit::Button, Create) -DALI_PROPERTY_REGISTRATION( Toolkit, PushButton, "labelPadding", STRING, LABEL_PADDING ) -DALI_PROPERTY_REGISTRATION( Toolkit, PushButton, "iconPadding", STRING, ICON_PADDING ) +DALI_PROPERTY_REGISTRATION(Toolkit, PushButton, "labelPadding", STRING, LABEL_PADDING) +DALI_PROPERTY_REGISTRATION(Toolkit, PushButton, "iconPadding", STRING, ICON_PADDING) DALI_TYPE_REGISTRATION_END() @@ -64,16 +60,15 @@ DALI_TYPE_REGISTRATION_END() namespace { - } // unnamed namespace Dali::Toolkit::PushButton PushButton::New() { // Create the implementation, temporarily owned on stack - IntrusivePtr< PushButton > internalPushButton = new PushButton(); + IntrusivePtr internalPushButton = new PushButton(); // Pass ownership to CustomActor - Dali::Toolkit::PushButton pushButton( *internalPushButton ); + Dali::Toolkit::PushButton pushButton(*internalPushButton); // Second-phase init of the implementation // This can only be done after the CustomActor connection has been made... @@ -84,7 +79,7 @@ Dali::Toolkit::PushButton PushButton::New() PushButton::PushButton() : Button(), - mIconAlignment( RIGHT ) + mIconAlignment(RIGHT) { } @@ -98,42 +93,42 @@ void PushButton::OnInitialize() // Push button requires the Leave event. Actor self = Self(); - self.SetProperty( Actor::Property::LEAVE_REQUIRED, true ); + self.SetProperty(Actor::Property::LEAVE_REQUIRED, true); - DevelControl::SetAccessibilityConstructor( self, []( Dali::Actor actor ) { - return std::unique_ptr< Dali::Accessibility::Accessible >( - new AccessibleImpl( actor, Dali::Accessibility::Role::PUSH_BUTTON ) ); - } ); + DevelControl::SetAccessibilityConstructor(self, [](Dali::Actor actor) { + return std::unique_ptr( + new AccessibleImpl(actor, Dali::Accessibility::Role::PUSH_BUTTON)); + }); } -void PushButton::SetIconAlignment( const PushButton::IconAlignment iconAlignment ) +void PushButton::SetIconAlignment(const PushButton::IconAlignment iconAlignment) { mIconAlignment = iconAlignment; Button::Align labelAlignment; - switch ( iconAlignment ) + switch(iconAlignment) { - case RIGHT: - { - labelAlignment = Button::BEGIN; - break; - } - case TOP: - { - labelAlignment = Button::BOTTOM; - break; - } - case BOTTOM: - { - labelAlignment = Button::TOP; - break; - } - case LEFT: - default: - labelAlignment = Button::END; - break; + case RIGHT: + { + labelAlignment = Button::BEGIN; + break; + } + case TOP: + { + labelAlignment = Button::BOTTOM; + break; + } + case BOTTOM: + { + labelAlignment = Button::TOP; + break; + } + case LEFT: + default: + labelAlignment = Button::END; + break; } - Button::SetLabelAlignment( labelAlignment ); + Button::SetLabelAlignment(labelAlignment); } const PushButton::IconAlignment PushButton::GetIconAlignment() const @@ -141,56 +136,56 @@ const PushButton::IconAlignment PushButton::GetIconAlignment() const return mIconAlignment; } -void PushButton::SetProperty( BaseObject* object, Property::Index propertyIndex, const Property::Value& value ) +void PushButton::SetProperty(BaseObject* object, Property::Index propertyIndex, const Property::Value& value) { - Toolkit::PushButton pushButton = Toolkit::PushButton::DownCast( Dali::BaseHandle( object ) ); + Toolkit::PushButton pushButton = Toolkit::PushButton::DownCast(Dali::BaseHandle(object)); - if ( pushButton ) + if(pushButton) { - PushButton& pushButtonImpl( GetImplementation( pushButton ) ); + PushButton& pushButtonImpl(GetImplementation(pushButton)); // Properties remain here for Tizen 3.0 legacy requirements. Are now in Button base class - switch ( propertyIndex ) + switch(propertyIndex) { case Toolkit::PushButton::Property::LABEL_PADDING: { - Vector4 padding ( value.Get< Vector4 >() ); - pushButtonImpl.Button::SetLabelPadding( Padding( padding.x, padding.y, padding.z, padding.w ) ); + Vector4 padding(value.Get()); + pushButtonImpl.Button::SetLabelPadding(Padding(padding.x, padding.y, padding.z, padding.w)); break; } case Toolkit::PushButton::Property::ICON_PADDING: { - Vector4 padding ( value.Get< Vector4 >() ); - pushButtonImpl.Button::SetForegroundPadding( Padding( padding.x, padding.y, padding.z, padding.w ) ); + Vector4 padding(value.Get()); + pushButtonImpl.Button::SetForegroundPadding(Padding(padding.x, padding.y, padding.z, padding.w)); break; } } } } -Property::Value PushButton::GetProperty( BaseObject* object, Property::Index propertyIndex ) +Property::Value PushButton::GetProperty(BaseObject* object, Property::Index propertyIndex) { Property::Value value; - Toolkit::PushButton pushButton = Toolkit::PushButton::DownCast( Dali::BaseHandle( object ) ); + Toolkit::PushButton pushButton = Toolkit::PushButton::DownCast(Dali::BaseHandle(object)); - if ( pushButton ) + if(pushButton) { - PushButton& pushButtonImpl( GetImplementation( pushButton ) ); + PushButton& pushButtonImpl(GetImplementation(pushButton)); - switch ( propertyIndex ) + switch(propertyIndex) { case Toolkit::PushButton::Property::LABEL_PADDING: { Padding padding = pushButtonImpl.Button::GetLabelPadding(); - value = Vector4( padding.x, padding.y, padding.top, padding.bottom); + value = Vector4(padding.x, padding.y, padding.top, padding.bottom); break; } case Toolkit::PushButton::Property::ICON_PADDING: { Padding padding = pushButtonImpl.Button::GetForegroundPadding(); - value = Vector4( padding.x, padding.y, padding.top, padding.bottom); + value = Vector4(padding.x, padding.y, padding.top, padding.bottom); break; } } @@ -201,26 +196,25 @@ Property::Value PushButton::GetProperty( BaseObject* object, Property::Index pro Dali::Accessibility::States PushButton::AccessibleImpl::CalculateStates() { - auto tmp = Button::AccessibleImpl::CalculateStates(); - auto slf = Toolkit::Button::DownCast( self ); - tmp[Dali::Accessibility::State::PRESSED] = slf.GetProperty( Toolkit::Button::Property::SELECTED ); + auto tmp = Button::AccessibleImpl::CalculateStates(); + auto slf = Toolkit::Button::DownCast(Self()); + tmp[Dali::Accessibility::State::PRESSED] = slf.GetProperty(Toolkit::Button::Property::SELECTED); return tmp; } -void PushButton::OnStateChange( State newState ) +void PushButton::OnStateChange(State newState) { // TODO: replace it with OnPropertySet hook once Button::Property::SELECTED will be consistently used - if (Dali::Accessibility::IsUp() && (newState == SELECTED_STATE || newState == UNSELECTED_STATE)) + if(Dali::Accessibility::IsUp() && (Dali::Accessibility::Accessible::GetCurrentlyHighlightedActor() == Self()) + && (newState == SELECTED_STATE || newState == UNSELECTED_STATE)) { Dali::Accessibility::Accessible::Get(Self())->EmitStateChanged( - Dali::Accessibility::State::PRESSED, newState == SELECTED_STATE ? 1 : 0, 0 - ); + Dali::Accessibility::State::PRESSED, newState == SELECTED_STATE ? 1 : 0, 0); - if (Self().GetProperty(Toolkit::Button::Property::TOGGLABLE)) + if(Self().GetProperty(Toolkit::Button::Property::TOGGLABLE)) { Dali::Accessibility::Accessible::Get(Self())->EmitStateChanged( - Dali::Accessibility::State::CHECKED, newState == SELECTED_STATE ? 1 : 0, 0 - ); + Dali::Accessibility::State::CHECKED, newState == SELECTED_STATE ? 1 : 0, 0); } } }