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=345ce066b0981216ec02cdbf133c0685a1bd363b;hp=394f1270205d54d57bafce65242743be30bb3a28;hb=8a647e87a01c5c78451653c1264a9eea81ac9b20;hpb=6261b85db16d8e9f842c9dc152046747eec67eaa diff --git a/dali-toolkit/internal/controls/buttons/push-button-impl.cpp b/dali-toolkit/internal/controls/buttons/push-button-impl.cpp index 394f127..345ce06 100644 --- a/dali-toolkit/internal/controls/buttons/push-button-impl.cpp +++ b/dali-toolkit/internal/controls/buttons/push-button-impl.cpp @@ -55,24 +55,11 @@ BaseHandle Create() DALI_TYPE_REGISTRATION_BEGIN( Toolkit::PushButton, Toolkit::Button, Create ) -DALI_PROPERTY_REGISTRATION( Toolkit, PushButton, "unselectedIcon", STRING, UNSELECTED_ICON ) -DALI_PROPERTY_REGISTRATION( Toolkit, PushButton, "selectedIcon", STRING, SELECTED_ICON ) -DALI_PROPERTY_REGISTRATION( Toolkit, PushButton, "iconAlignment", STRING, ICON_ALIGNMENT ) DALI_PROPERTY_REGISTRATION( Toolkit, PushButton, "labelPadding", STRING, LABEL_PADDING ) DALI_PROPERTY_REGISTRATION( Toolkit, PushButton, "iconPadding", STRING, ICON_PADDING ) DALI_TYPE_REGISTRATION_END() -/* - * Table to define Text-to-enum conversions for IconAlignment. - */ -const Dali::Scripting::StringEnum IconAlignmentTable[] = { - { "LEFT", Toolkit::Internal::PushButton::LEFT }, - { "RIGHT", Toolkit::Internal::PushButton::RIGHT }, - { "TOP", Toolkit::Internal::PushButton::TOP }, - { "BOTTOM", Toolkit::Internal::PushButton::BOTTOM }, -}; const unsigned int IconAlignmentTableCount = sizeof( IconAlignmentTable ) / sizeof( IconAlignmentTable[0] ); - } // unnamed namespace namespace @@ -99,6 +86,10 @@ PushButton::PushButton() : Button(), mIconAlignment( RIGHT ) { + DevelControl::SetAccessibilityConstructor( Self(), []( Dali::Actor actor ) { + return std::unique_ptr< Dali::Accessibility::Accessible >( + new AccessibleImpl( actor, Dali::Accessibility::Role::PUSH_BUTTON ) ); + } ); } PushButton::~PushButton() @@ -161,25 +152,6 @@ void PushButton::SetProperty( BaseObject* object, Property::Index propertyIndex, switch ( propertyIndex ) { - case Toolkit::PushButton::Property::UNSELECTED_ICON: - { - pushButtonImpl.CreateVisualsForComponent( Toolkit::Button::Property::UNSELECTED_VISUAL, value, DepthIndex::CONTENT ); - break; - } - case Toolkit::PushButton::Property::SELECTED_ICON: - { - pushButtonImpl.CreateVisualsForComponent( Toolkit::Button::Property::SELECTED_VISUAL, value, DepthIndex::CONTENT ); - break; - } - case Toolkit::PushButton::Property::ICON_ALIGNMENT: - { - IconAlignment iconAlignment; - if( Scripting::GetEnumeration< IconAlignment >( value.Get< std::string >().c_str(), IconAlignmentTable, IconAlignmentTableCount, iconAlignment ) ) - { - pushButtonImpl.SetIconAlignment( iconAlignment ); - } - break; - } case Toolkit::PushButton::Property::LABEL_PADDING: { Vector4 padding ( value.Get< Vector4 >() ); @@ -208,21 +180,6 @@ Property::Value PushButton::GetProperty( BaseObject* object, Property::Index pro switch ( propertyIndex ) { - case Toolkit::PushButton::Property::UNSELECTED_ICON: - { - //value = pushButtonImpl.GetIcon( UNSELECTED_DECORATION ); - break; - } - case Toolkit::PushButton::Property::SELECTED_ICON: - { - //value = pushButtonImpl.GetIcon( UNSELECTED_DECORATION ); - break; - } - case Toolkit::PushButton::Property::ICON_ALIGNMENT: - { - value = Scripting::GetLinearEnumerationName< IconAlignment >( pushButtonImpl.GetIconAlignment(), IconAlignmentTable, IconAlignmentTableCount ); - break; - } case Toolkit::PushButton::Property::LABEL_PADDING: { Padding padding = pushButtonImpl.Button::GetLabelPadding(); @@ -241,6 +198,25 @@ Property::Value PushButton::GetProperty( BaseObject* object, Property::Index pro return value; } +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 ); + return tmp; +} + +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)) + { + Dali::Accessibility::Accessible::Get(Self())->EmitStateChanged( + Dali::Accessibility::State::PRESSED, newState == SELECTED_STATE ? 1 : 0, 0 + ); + } +} + } // namespace Internal } // namespace Toolkit