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-default-painter-impl.cpp;h=31176f4542aa88c7290761ec6b77397a1cb6a135;hp=d44470d58f665587bdbeaaa3d8e632016492f65c;hb=228286f3af41623416b6d78abf194a395fec711d;hpb=e2eda444afbe82e9591fe198eef339227f90a616 diff --git a/dali-toolkit/internal/controls/buttons/push-button-default-painter-impl.cpp b/dali-toolkit/internal/controls/buttons/push-button-default-painter-impl.cpp index d44470d..31176f4 100644 --- a/dali-toolkit/internal/controls/buttons/push-button-default-painter-impl.cpp +++ b/dali-toolkit/internal/controls/buttons/push-button-default-painter-impl.cpp @@ -1,34 +1,35 @@ -// -// Copyright (c) 2014 Samsung Electronics Co., Ltd. -// -// Licensed under the Flora License, Version 1.0 (the License); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://floralicense.org/license/ -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an AS IS BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// +/* + * Copyright (c) 2014 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ // CLASS HEADER - #include "push-button-default-painter-impl.h" -// INTERNAL INCLUDES - +// EXTERNAL INCLUDES #include -#include -#include +#include +#include +#include +#include #include +// INTERNAL INCLUDES +#include #include "push-button-impl.h" -// EXTERNAL INCLUDES - namespace Dali { @@ -69,7 +70,7 @@ inline const Toolkit::Internal::PushButton& GetPushButtonImpl( const Toolkit::Bu PushButtonDefaultPainter::PushButtonDefaultPainter() : PushButtonPainter(), mAutoRepeating( false ), - mDimmed( false ), + mDisabled( false ), mPaintState( ReleasedState ), mButton( NULL ), mAnimationTime( ANIMATION_TIME ), @@ -89,180 +90,190 @@ PushButtonDefaultPainter::~PushButtonDefaultPainter() } } -void PushButtonDefaultPainter::SetButtonImage( Toolkit::PushButton& pushButton, Actor image ) +void PushButtonDefaultPainter::Initialize( Toolkit::Button& button ) { - Toolkit::Internal::PushButton& pushButtonImpl = GetImplementation( pushButton ); + Toolkit::Internal::PushButton& pushButtonImpl = GetPushButtonImpl( button ); Actor& buttonImage = pushButtonImpl.GetButtonImage(); - Actor& fadeOutButtonImage = pushButtonImpl.GetFadeOutButtonImage(); + Actor& selectedImage = pushButtonImpl.GetSelectedImage(); + Actor& backgroundImage = pushButtonImpl.GetBackgroundImage(); + Actor& disabledImage = pushButtonImpl.GetDisabledImage(); + Actor& disabledBackgroundImage = pushButtonImpl.GetDisabledBackgroundImage(); + Actor& label = pushButtonImpl.GetLabel(); - switch( mPaintState ) + Toolkit::PushButton& pushButton = static_cast( button ); + + if( buttonImage ) { - case ReleasedState: - { - if( buttonImage && buttonImage.GetParent() ) - { - StopFadeOutAnimation( pushButton ); - FadeOutImage( pushButton, Foreground, buttonImage ); + SetButtonImage( pushButton, buttonImage ); + } - buttonImage = image; + if( backgroundImage ) + { + SetBackgroundImage( pushButton, backgroundImage ); + } - FadeInImage( pushButton, buttonImage ); + if( selectedImage ) + { + SetSelectedImage( pushButton, selectedImage ); + } - StartFadeOutAnimation( pushButton ); - StartFadeInAnimation(); - } - else - { - buttonImage = image; - pushButton.Add( buttonImage ); - } - break; - } - case ReleasedPressedTransition: // FALLTHROUGH - case ReleasedDimmedTransition: - { - float opacity = 1.f; - if( fadeOutButtonImage ) - { - opacity = fadeOutButtonImage.GetCurrentOpacity(); - } - StopFadeOutAnimation( pushButton ); + if( disabledImage ) + { + SetDisabledImage( pushButton, disabledImage ); + } - // Replaces the button image. - buttonImage = image; + if( disabledBackgroundImage ) + { + SetDisabledBackgroundImage( pushButton, disabledBackgroundImage ); + } - pushButton.Add( buttonImage ); - FadeOutImage( pushButton, Foreground, buttonImage, opacity ); + if( label ) + { + SetLabel( pushButton, label ); + } - StartFadeOutAnimation( pushButton ); - break; - } - case PressedReleasedTransition: // FALLTHROUGH - case DimmedReleasedTransition: - { - StopFadeInAnimation(); - pushButton.Remove( buttonImage ); + SetDisabled( pushButton, mDisabled ); +} - buttonImage = image; +void PushButtonDefaultPainter::SetSize( Toolkit::Button& button, const Vector3& size ) +{ + if( size != mSize ) + { + mSize = size; - FadeInImage( pushButton, buttonImage ); - StartFadeInAnimation(); - break; + Toolkit::Internal::PushButton& pushButtonImpl = GetPushButtonImpl( button ); + Actor& buttonImage = pushButtonImpl.GetButtonImage(); + Actor& selectedImage = pushButtonImpl.GetSelectedImage(); + Actor& backgroundImage = pushButtonImpl.GetBackgroundImage(); + Actor& disabledImage = pushButtonImpl.GetDisabledImage(); + Actor& disabledBackgroundImage = pushButtonImpl.GetDisabledBackgroundImage(); + Actor& label = pushButtonImpl.GetLabel(); + + ApplyConstraint( buttonImage, FOREGROUND_DEPTH ); + ApplyConstraint( backgroundImage, BACKGROUND_DEPTH ); + ApplyConstraint( selectedImage, FOREGROUND_DEPTH ); + ApplyConstraint( disabledImage, FOREGROUND_DEPTH ); + ApplyConstraint( disabledBackgroundImage, BACKGROUND_DEPTH ); + + if( label ) + { + label.SetPosition( 0.f, 0.f, LABEL_DEPTH ); + label.SetSize( mSize ); } - default: - buttonImage = image; - break; } - - buttonImage.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - buttonImage.SetParentOrigin( ParentOrigin::TOP_LEFT ); - ApplyConstraint( buttonImage, FOREGROUND_DEPTH ); } -void PushButtonDefaultPainter::SetBackgroundImage( Toolkit::PushButton& pushButton, Actor image ) +void PushButtonDefaultPainter::SetDisabled( Toolkit::Button& button, bool disabled ) { - Toolkit::Internal::PushButton& pushButtonImpl = GetImplementation( pushButton ); + Toolkit::Internal::PushButton& pushButtonImpl = GetPushButtonImpl( button ); + Actor& buttonImage = pushButtonImpl.GetButtonImage(); + Actor& selectedImage = pushButtonImpl.GetSelectedImage(); Actor& backgroundImage = pushButtonImpl.GetBackgroundImage(); - Actor& fadeOutBackgroundImage = pushButtonImpl.GetFadeOutBackgroundImage(); + Actor& disabledImage = pushButtonImpl.GetDisabledImage(); + Actor& disabledBackgroundImage = pushButtonImpl.GetDisabledBackgroundImage(); + Actor& fadeOutButtonImage = pushButtonImpl.GetFadeOutButtonImage(); + + Toolkit::PushButton& pushButton = static_cast( button ); + + mDisabled = disabled; switch( mPaintState ) { - case ReleasedState: // FALLTHROUGH - case PressedState: - case ReleasedPressedTransition: - case PressedReleasedTransition: + case ReleasedState: + { + if( disabled ) { - if( backgroundImage && backgroundImage.GetParent() ) - { - StopFadeOutAnimation( pushButton ); - FadeOutImage( pushButton, Background, backgroundImage ); - - backgroundImage = image; - - FadeInImage( pushButton, backgroundImage ); + StopFadeOutAnimation( pushButton ); + FadeOutImage( pushButton, Background, backgroundImage ); + FadeOutImage( pushButton, Foreground, buttonImage ); + FadeInImage( pushButton, disabledBackgroundImage ); + FadeInImage( pushButton, disabledImage ); + StartFadeOutAnimation( pushButton ); + StartFadeInAnimation(); - StartFadeOutAnimation( pushButton ); - StartFadeInAnimation(); + if( buttonImage || disabledImage || backgroundImage || disabledBackgroundImage ) + { + mPaintState = ReleasedDisabledTransition; } else { - backgroundImage = image; - pushButton.Add( backgroundImage ); + mPaintState = DisabledReleasedState; } - break; } - case ReleasedDimmedTransition: // FALLTHROUGH - case PressedDimmedTransition: + break; + } + case PressedState: + { + if( disabled ) { - float opacity = 1.f; - if( fadeOutBackgroundImage ) - { - opacity = fadeOutBackgroundImage.GetCurrentOpacity(); - } StopFadeOutAnimation( pushButton ); - - // Replaces the button image. - backgroundImage = image; - - pushButton.Add( backgroundImage ); - FadeOutImage( pushButton, Background, backgroundImage, opacity ); - + FadeOutImage( pushButton, Background, backgroundImage ); + FadeOutImage( pushButton, Foreground, selectedImage ); + FadeInImage( pushButton, disabledBackgroundImage ); + FadeInImage( pushButton, disabledImage ); StartFadeOutAnimation( pushButton ); - break; + StartFadeInAnimation(); + + if( selectedImage || disabledImage || backgroundImage || disabledBackgroundImage ) + { + mPaintState = PressedDisabledTransition; + } + else + { + mPaintState = DisabledPressedState; + } } - case DimmedReleasedTransition: // FALLTHROUGH - case DimmedPressedTransition: + break; + } + case DisabledReleasedState: + { + if( !disabled ) { - StopFadeInAnimation(); - pushButton.Remove( backgroundImage ); - - backgroundImage = image; - + StopFadeOutAnimation( pushButton ); + FadeOutImage( pushButton, Background, disabledBackgroundImage ); + FadeOutImage( pushButton, Foreground, disabledImage ); FadeInImage( pushButton, backgroundImage ); + FadeInImage( pushButton, buttonImage ); + StartFadeOutAnimation( pushButton ); StartFadeInAnimation(); - break; - } - default: - backgroundImage = image; - break; - } - backgroundImage.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - backgroundImage.SetParentOrigin( ParentOrigin::TOP_LEFT ); - ApplyConstraint( backgroundImage, BACKGROUND_DEPTH ); -} - -void PushButtonDefaultPainter::SetPressedImage( Toolkit::PushButton& pushButton, Actor image ) -{ - Toolkit::Internal::PushButton& pushButtonImpl = GetImplementation( pushButton ); - Actor& pressedImage = pushButtonImpl.GetPressedImage(); - Actor& fadeOutButtonImage = pushButtonImpl.GetFadeOutButtonImage(); - - switch( mPaintState ) + if( buttonImage || disabledImage || backgroundImage || disabledBackgroundImage ) + { + mPaintState = DisabledReleasedTransition; + } + else + { + mPaintState = ReleasedState; + } + } + break; + } + case DisabledPressedState: { - case PressedState: + if( !disabled ) { - if( pressedImage && pressedImage.GetParent() ) - { - StopFadeOutAnimation( pushButton ); - FadeOutImage( pushButton, Foreground, pressedImage ); - - pressedImage = image; - - FadeInImage( pushButton, pressedImage ); + StopFadeOutAnimation( pushButton ); + FadeOutImage( pushButton, Background, disabledBackgroundImage ); + FadeOutImage( pushButton, Foreground, disabledImage ); + FadeInImage( pushButton, backgroundImage ); + FadeInImage( pushButton, selectedImage ); + StartFadeOutAnimation( pushButton ); + StartFadeInAnimation(); - StartFadeOutAnimation( pushButton ); - StartFadeInAnimation(); + if( selectedImage || disabledImage || backgroundImage || disabledBackgroundImage ) + { + mPaintState = DisabledPressedTransition; } else { - pressedImage = image; - pushButton.Add( pressedImage ); + mPaintState = PressedState; } - break; } - case PressedReleasedTransition: // FALLTHROUGH - case PressedDimmedTransition: + break; + } + case ReleasedPressedTransition: + { + if( disabled ) { float opacity = 1.f; if( fadeOutButtonImage ) @@ -270,384 +281,331 @@ void PushButtonDefaultPainter::SetPressedImage( Toolkit::PushButton& pushButton, opacity = fadeOutButtonImage.GetCurrentOpacity(); } StopFadeOutAnimation( pushButton ); + StopFadeInAnimation(); - // Replaces the button image. - pressedImage = image; + FadeOutImage( pushButton, Foreground, selectedImage, 1.f - opacity ); + FadeOutImage( pushButton, Background, backgroundImage ); - pushButton.Add( pressedImage ); - FadeOutImage( pushButton, Foreground, pressedImage, opacity ); + FadeInImage( pushButton, disabledImage ); + FadeInImage( pushButton, disabledBackgroundImage ); StartFadeOutAnimation( pushButton ); - break; - } - case ReleasedPressedTransition: // FALLTHROUGH - case DimmedPressedTransition: - { - StopFadeInAnimation(); - pushButton.Remove( pressedImage ); - - pressedImage = image; - - FadeInImage( pushButton, pressedImage ); StartFadeInAnimation(); - break; - } - default: - pressedImage = image; - break; - } - - pressedImage.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - pressedImage.SetParentOrigin( ParentOrigin::TOP_LEFT ); - ApplyConstraint( pressedImage, FOREGROUND_DEPTH ); -} - -void PushButtonDefaultPainter::SetDimmedImage( Toolkit::PushButton& pushButton, Actor image ) -{ - Toolkit::Internal::PushButton& pushButtonImpl = GetImplementation( pushButton ); - Actor& dimmedImage = pushButtonImpl.GetDimmedImage(); - Actor& fadeOutButtonImage = pushButtonImpl.GetFadeOutButtonImage(); - switch( mPaintState ) - { - case DimmedReleasedState: // FALLTHROUGH - case DimmedPressedState: - { - if( dimmedImage && dimmedImage.GetParent() ) + if( selectedImage || disabledImage || backgroundImage || disabledBackgroundImage ) { - StopFadeOutAnimation( pushButton ); - FadeOutImage( pushButton, Foreground, dimmedImage ); - - dimmedImage = image; - - FadeInImage( pushButton, dimmedImage ); - - StartFadeOutAnimation( pushButton ); - StartFadeInAnimation(); + mPaintState = PressedDisabledTransition; } else { - dimmedImage = image; - pushButton.Add( dimmedImage ); + mPaintState = DisabledPressedState; } - break; } - case ReleasedDimmedTransition: // FALLTHROUGH - case PressedDimmedTransition: + break; + } + case PressedReleasedTransition: + { + if( disabled ) { + float opacity = 1.f; + if( fadeOutButtonImage ) + { + opacity = fadeOutButtonImage.GetCurrentOpacity(); + } + StopFadeOutAnimation( pushButton ); StopFadeInAnimation(); - pushButton.Remove( dimmedImage ); - dimmedImage = image; + FadeOutImage( pushButton, Foreground, buttonImage, 1.f - opacity ); + FadeOutImage( pushButton, Background, backgroundImage ); + + FadeInImage( pushButton, disabledImage ); + FadeInImage( pushButton, disabledBackgroundImage ); - FadeInImage( pushButton, dimmedImage ); + StartFadeOutAnimation( pushButton ); StartFadeInAnimation(); - break; + + if( buttonImage || disabledImage || backgroundImage || disabledBackgroundImage ) + { + mPaintState = ReleasedDisabledTransition; + } + else + { + mPaintState = DisabledReleasedState; + } } - case DimmedReleasedTransition: // FALLTHROUGH - case DimmedPressedTransition: + break; + } + case ReleasedDisabledTransition: + { + if( !disabled ) { float opacity = 1.f; if( fadeOutButtonImage ) { opacity = fadeOutButtonImage.GetCurrentOpacity(); } - StopFadeOutAnimation( pushButton ); - - // Replaces the button image. - dimmedImage = image; + StopFadeOutAnimation( pushButton, false ); + StopFadeInAnimation(); - pushButton.Add( dimmedImage ); - FadeOutImage( pushButton, Foreground, dimmedImage, opacity ); + FadeOutImage( pushButton, Foreground, disabledImage, 1.f - opacity ); + FadeOutImage( pushButton, Background, disabledBackgroundImage, 1.f - opacity ); + FadeInImage( pushButton, buttonImage, opacity ); + FadeInImage( pushButton, backgroundImage, opacity ); StartFadeOutAnimation( pushButton ); - break; + StartFadeInAnimation(); + + if( buttonImage || disabledImage || backgroundImage || disabledBackgroundImage ) + { + mPaintState = DisabledReleasedTransition; + } + else + { + mPaintState = ReleasedState; + } } - default: - dimmedImage = image; - break; + break; } - - dimmedImage.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - dimmedImage.SetParentOrigin( ParentOrigin::TOP_LEFT ); - ApplyConstraint( dimmedImage, FOREGROUND_DEPTH ); -} - -void PushButtonDefaultPainter::SetDimmedBackgroundImage( Toolkit::PushButton& pushButton, Actor image ) -{ - Toolkit::Internal::PushButton& pushButtonImpl = GetImplementation( pushButton ); - Actor& dimmedBackgroundImage = pushButtonImpl.GetDimmedBackgroundImage(); - Actor& fadeOutBackgroundImage = pushButtonImpl.GetFadeOutBackgroundImage(); - - switch( mPaintState ) + case DisabledReleasedTransition: { - case DimmedReleasedState: // FALLTHROUGH - case DimmedPressedState: + if( disabled ) { - if( dimmedBackgroundImage && dimmedBackgroundImage.GetParent() ) + float opacity = 1.f; + if( fadeOutButtonImage ) { - StopFadeOutAnimation( pushButton ); - FadeOutImage( pushButton, Background, dimmedBackgroundImage ); + opacity = fadeOutButtonImage.GetCurrentOpacity(); + } + StopFadeOutAnimation( pushButton, false ); + StopFadeInAnimation(); - dimmedBackgroundImage = image; + FadeOutImage( pushButton, Foreground, buttonImage, 1.f - opacity ); + FadeOutImage( pushButton, Background, backgroundImage, 1.f - opacity ); + FadeInImage( pushButton, disabledImage, opacity ); + FadeInImage( pushButton, disabledBackgroundImage, opacity ); - FadeInImage( pushButton, dimmedBackgroundImage ); + StartFadeOutAnimation( pushButton ); + StartFadeInAnimation(); - StartFadeOutAnimation( pushButton ); - StartFadeInAnimation(); + if( buttonImage || disabledImage || backgroundImage || disabledBackgroundImage ) + { + mPaintState = ReleasedDisabledTransition; } else { - dimmedBackgroundImage = image; - pushButton.Add( dimmedBackgroundImage ); + mPaintState = DisabledReleasedState; } - break; } - case ReleasedDimmedTransition: // FALLTHROUGH - case PressedDimmedTransition: + break; + } + case PressedDisabledTransition: + { + if( !disabled ) { + float opacity = 1.f; + if( fadeOutButtonImage ) + { + opacity = fadeOutButtonImage.GetCurrentOpacity(); + } + StopFadeOutAnimation( pushButton, false ); StopFadeInAnimation(); - pushButton.Remove( dimmedBackgroundImage ); - dimmedBackgroundImage = image; + FadeOutImage( pushButton, Foreground, disabledImage, 1.f - opacity ); + FadeOutImage( pushButton, Background, disabledBackgroundImage, 1.f - opacity ); + FadeInImage( pushButton, selectedImage, opacity ); + FadeInImage( pushButton, backgroundImage, opacity ); - FadeInImage( pushButton, dimmedBackgroundImage ); + StartFadeOutAnimation( pushButton ); StartFadeInAnimation(); - break; + + if( selectedImage || disabledImage || backgroundImage || disabledBackgroundImage ) + { + mPaintState = DisabledPressedTransition; + } + else + { + mPaintState = PressedState; + } } - case DimmedReleasedTransition: // FALLTHROUGH - case DimmedPressedTransition: + break; + } + case DisabledPressedTransition: + { + if( disabled ) { float opacity = 1.f; - if( fadeOutBackgroundImage ) + if( fadeOutButtonImage ) { - opacity = fadeOutBackgroundImage.GetCurrentOpacity(); + opacity = fadeOutButtonImage.GetCurrentOpacity(); } - StopFadeOutAnimation( pushButton ); - - // Replaces the button image. - dimmedBackgroundImage = image; + StopFadeOutAnimation( pushButton, false ); + StopFadeInAnimation(); - pushButton.Add( dimmedBackgroundImage ); - FadeOutImage( pushButton, Background, dimmedBackgroundImage, opacity ); + FadeOutImage( pushButton, Foreground, selectedImage, 1.f - opacity ); + FadeOutImage( pushButton, Background, backgroundImage, 1.f - opacity ); + FadeInImage( pushButton, disabledImage, opacity ); + FadeInImage( pushButton, disabledBackgroundImage, opacity ); StartFadeOutAnimation( pushButton ); - break; + StartFadeInAnimation(); + + if( selectedImage || disabledImage || backgroundImage || disabledBackgroundImage ) + { + mPaintState = PressedDisabledTransition; + } + else + { + mPaintState = DisabledPressedState; + } } - default: - dimmedBackgroundImage = image; - break; + break; + } + default: + break; } - - dimmedBackgroundImage.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - dimmedBackgroundImage.SetParentOrigin( ParentOrigin::TOP_LEFT ); - ApplyConstraint( dimmedBackgroundImage, BACKGROUND_DEPTH ); } -void PushButtonDefaultPainter::SetLabelText( Toolkit::PushButton& pushButton, Actor text ) +void PushButtonDefaultPainter::SetAnimationTime( float animationTime ) { - Toolkit::Internal::PushButton& pushButtonImpl = GetImplementation( pushButton ); - Actor& label = pushButtonImpl.GetLabel(); - - if( label && label.GetParent() ) - { - label.GetParent().Remove( label ); - } - - label = text; - label.SetAnchorPoint( AnchorPoint::CENTER ); - label.SetParentOrigin( ParentOrigin::CENTER ); + mAnimationTime = animationTime; +} - label.SetPosition( 0.f, 0.f, LABEL_DEPTH ); - label.SetSize( mSize ); +float PushButtonDefaultPainter::GetAnimationTime() const +{ + return mAnimationTime; +} - pushButton.Add( label ); +void PushButtonDefaultPainter::SetAutoRepeating( bool autorepeating ) +{ + mAutoRepeating = autorepeating; } -void PushButtonDefaultPainter::Initialize( Toolkit::Button& button ) +void PushButtonDefaultPainter::SetLabel( Toolkit::Button& button, Actor label ) { Toolkit::Internal::PushButton& pushButtonImpl = GetPushButtonImpl( button ); - Actor& buttonImage = pushButtonImpl.GetButtonImage(); - Actor& pressedImage = pushButtonImpl.GetPressedImage(); - Actor& backgroundImage = pushButtonImpl.GetBackgroundImage(); - Actor& dimmedImage = pushButtonImpl.GetDimmedImage(); - Actor& dimmedBackgroundImage = pushButtonImpl.GetDimmedBackgroundImage(); - Actor& label = pushButtonImpl.GetLabel(); + Actor& labelActor = pushButtonImpl.GetLabel(); Toolkit::PushButton& pushButton = static_cast( button ); - if( buttonImage ) + if( labelActor && labelActor.GetParent() ) { - SetButtonImage( pushButton, buttonImage ); + labelActor.GetParent().Remove( labelActor ); } - if( backgroundImage ) - { - SetBackgroundImage( pushButton, backgroundImage ); - } + labelActor = label; + labelActor.SetAnchorPoint( AnchorPoint::CENTER ); + labelActor.SetParentOrigin( ParentOrigin::CENTER ); - if( pressedImage ) - { - SetPressedImage( pushButton, pressedImage ); - } - - if( dimmedImage ) - { - SetDimmedImage( pushButton, dimmedImage ); - } - - if( dimmedBackgroundImage ) - { - SetDimmedBackgroundImage( pushButton, dimmedBackgroundImage ); - } + labelActor.SetPosition( 0.f, 0.f, LABEL_DEPTH ); + labelActor.SetSize( mSize ); - if( label ) - { - SetLabelText( pushButton, label ); - } - - SetDimmed( pushButton, mDimmed ); + pushButton.Add( labelActor ); } -void PushButtonDefaultPainter::SetSize( Toolkit::Button& button, const Vector3& size ) -{ - if( size != mSize ) - { - mSize = size; - - Toolkit::Internal::PushButton& pushButtonImpl = GetPushButtonImpl( button ); - Actor& buttonImage = pushButtonImpl.GetButtonImage(); - Actor& pressedImage = pushButtonImpl.GetPressedImage(); - Actor& backgroundImage = pushButtonImpl.GetBackgroundImage(); - Actor& dimmedImage = pushButtonImpl.GetDimmedImage(); - Actor& dimmedBackgroundImage = pushButtonImpl.GetDimmedBackgroundImage(); - Actor& label = pushButtonImpl.GetLabel(); - - ApplyConstraint( buttonImage, FOREGROUND_DEPTH ); - ApplyConstraint( backgroundImage, BACKGROUND_DEPTH ); - ApplyConstraint( pressedImage, FOREGROUND_DEPTH ); - ApplyConstraint( dimmedImage, FOREGROUND_DEPTH ); - ApplyConstraint( dimmedBackgroundImage, BACKGROUND_DEPTH ); - - if( label ) - { - label.SetPosition( 0.f, 0.f, LABEL_DEPTH ); - label.SetSize( mSize ); - } - } -} - -void PushButtonDefaultPainter::SetDimmed( Toolkit::Button& button, bool dimmed ) +void PushButtonDefaultPainter::SetButtonImage( Toolkit::Button& button, Actor image ) { Toolkit::Internal::PushButton& pushButtonImpl = GetPushButtonImpl( button ); Actor& buttonImage = pushButtonImpl.GetButtonImage(); - Actor& pressedImage = pushButtonImpl.GetPressedImage(); - Actor& backgroundImage = pushButtonImpl.GetBackgroundImage(); - Actor& dimmedImage = pushButtonImpl.GetDimmedImage(); - Actor& dimmedBackgroundImage = pushButtonImpl.GetDimmedBackgroundImage(); Actor& fadeOutButtonImage = pushButtonImpl.GetFadeOutButtonImage(); Toolkit::PushButton& pushButton = static_cast( button ); - mDimmed = dimmed; - switch( mPaintState ) { - case ReleasedState: - { - if( dimmed ) + case ReleasedState: { - StopFadeOutAnimation( pushButton ); - FadeOutImage( pushButton, Background, backgroundImage ); - FadeOutImage( pushButton, Foreground, buttonImage ); - FadeInImage( pushButton, dimmedBackgroundImage ); - FadeInImage( pushButton, dimmedImage ); - StartFadeOutAnimation( pushButton ); - StartFadeInAnimation(); - - if( buttonImage || dimmedImage || backgroundImage || dimmedBackgroundImage ) + if( buttonImage && buttonImage.GetParent() ) { - mPaintState = ReleasedDimmedTransition; + StopFadeOutAnimation( pushButton ); + FadeOutImage( pushButton, Foreground, buttonImage ); + + buttonImage = image; + + FadeInImage( pushButton, buttonImage ); + + StartFadeOutAnimation( pushButton ); + StartFadeInAnimation(); } else { - mPaintState = DimmedReleasedState; + buttonImage = image; + pushButton.Add( buttonImage ); } + break; } - break; - } - case PressedState: - { - if( dimmed ) + case ReleasedPressedTransition: // FALLTHROUGH + case ReleasedDisabledTransition: { - StopFadeOutAnimation( pushButton ); - FadeOutImage( pushButton, Background, backgroundImage ); - FadeOutImage( pushButton, Foreground, pressedImage ); - FadeInImage( pushButton, dimmedBackgroundImage ); - FadeInImage( pushButton, dimmedImage ); - StartFadeOutAnimation( pushButton ); - StartFadeInAnimation(); - - if( pressedImage || dimmedImage || backgroundImage || dimmedBackgroundImage ) - { - mPaintState = PressedDimmedTransition; - } - else + float opacity = 1.f; + if( fadeOutButtonImage ) { - mPaintState = DimmedPressedState; + opacity = fadeOutButtonImage.GetCurrentOpacity(); } + StopFadeOutAnimation( pushButton ); + + // Replaces the button image. + buttonImage = image; + + pushButton.Add( buttonImage ); + FadeOutImage( pushButton, Foreground, buttonImage, opacity ); + + StartFadeOutAnimation( pushButton ); + break; } - break; - } - case DimmedReleasedState: - { - if( !dimmed ) + case PressedReleasedTransition: // FALLTHROUGH + case DisabledReleasedTransition: { - StopFadeOutAnimation( pushButton ); - FadeOutImage( pushButton, Background, dimmedBackgroundImage ); - FadeOutImage( pushButton, Foreground, dimmedImage ); - FadeInImage( pushButton, backgroundImage ); + StopFadeInAnimation(); + pushButton.Remove( buttonImage ); + + buttonImage = image; + FadeInImage( pushButton, buttonImage ); - StartFadeOutAnimation( pushButton ); StartFadeInAnimation(); - - if( buttonImage || dimmedImage || backgroundImage || dimmedBackgroundImage ) - { - mPaintState = DimmedReleasedTransition; - } - else - { - mPaintState = ReleasedState; - } + break; } - break; + default: + buttonImage = image; + break; } - case DimmedPressedState: - { - if( !dimmed ) - { - StopFadeOutAnimation( pushButton ); - FadeOutImage( pushButton, Background, dimmedBackgroundImage ); - FadeOutImage( pushButton, Foreground, dimmedImage ); - FadeInImage( pushButton, backgroundImage ); - FadeInImage( pushButton, pressedImage ); - StartFadeOutAnimation( pushButton ); - StartFadeInAnimation(); - if( pressedImage || dimmedImage || backgroundImage || dimmedBackgroundImage ) + buttonImage.SetAnchorPoint( AnchorPoint::TOP_LEFT ); + buttonImage.SetParentOrigin( ParentOrigin::TOP_LEFT ); + ApplyConstraint( buttonImage, FOREGROUND_DEPTH ); +} + +void PushButtonDefaultPainter::SetSelectedImage( Toolkit::Button& button, Actor image ) +{ + Toolkit::Internal::PushButton& pushButtonImpl = GetPushButtonImpl( button ); + Actor& selectedImage = pushButtonImpl.GetSelectedImage(); + Actor& fadeOutButtonImage = pushButtonImpl.GetFadeOutButtonImage(); + + Toolkit::PushButton& pushButton = static_cast( button ); + + switch( mPaintState ) + { + case PressedState: + { + if( selectedImage && selectedImage.GetParent() ) { - mPaintState = DimmedPressedTransition; + StopFadeOutAnimation( pushButton ); + FadeOutImage( pushButton, Foreground, selectedImage ); + + selectedImage = image; + + FadeInImage( pushButton, selectedImage ); + + StartFadeOutAnimation( pushButton ); + StartFadeInAnimation(); } else { - mPaintState = PressedState; + selectedImage = image; + pushButton.Add( selectedImage ); } + break; } - break; - } - case ReleasedPressedTransition: - { - if( dimmed ) + case PressedReleasedTransition: // FALLTHROUGH + case PressedDisabledTransition: { float opacity = 1.f; if( fadeOutButtonImage ) @@ -655,222 +613,279 @@ void PushButtonDefaultPainter::SetDimmed( Toolkit::Button& button, bool dimmed ) opacity = fadeOutButtonImage.GetCurrentOpacity(); } StopFadeOutAnimation( pushButton ); - StopFadeInAnimation(); - FadeOutImage( pushButton, Foreground, pressedImage, 1.f - opacity ); - FadeOutImage( pushButton, Background, backgroundImage ); + // Replaces the button image. + selectedImage = image; - FadeInImage( pushButton, dimmedImage ); - FadeInImage( pushButton, dimmedBackgroundImage ); + pushButton.Add( selectedImage ); + FadeOutImage( pushButton, Foreground, selectedImage, opacity ); StartFadeOutAnimation( pushButton ); + break; + } + case ReleasedPressedTransition: // FALLTHROUGH + case DisabledPressedTransition: + { + StopFadeInAnimation(); + pushButton.Remove( selectedImage ); + + selectedImage = image; + + FadeInImage( pushButton, selectedImage ); StartFadeInAnimation(); + break; + } + default: + selectedImage = image; + break; + } - if( pressedImage || dimmedImage || backgroundImage || dimmedBackgroundImage ) + selectedImage.SetAnchorPoint( AnchorPoint::TOP_LEFT ); + selectedImage.SetParentOrigin( ParentOrigin::TOP_LEFT ); + ApplyConstraint( selectedImage, FOREGROUND_DEPTH ); +} + +void PushButtonDefaultPainter::SetBackgroundImage( Toolkit::Button& button, Actor image ) +{ + Toolkit::Internal::PushButton& pushButtonImpl = GetPushButtonImpl( button ); + Actor& backgroundImage = pushButtonImpl.GetBackgroundImage(); + Actor& fadeOutBackgroundImage = pushButtonImpl.GetFadeOutBackgroundImage(); + + Toolkit::PushButton& pushButton = static_cast( button ); + + switch( mPaintState ) + { + case ReleasedState: // FALLTHROUGH + case PressedState: + case ReleasedPressedTransition: + case PressedReleasedTransition: + { + if( backgroundImage && backgroundImage.GetParent() ) { - mPaintState = PressedDimmedTransition; + StopFadeOutAnimation( pushButton ); + FadeOutImage( pushButton, Background, backgroundImage ); + + backgroundImage = image; + + FadeInImage( pushButton, backgroundImage ); + + StartFadeOutAnimation( pushButton ); + StartFadeInAnimation(); } else { - mPaintState = DimmedPressedState; + backgroundImage = image; + pushButton.Add( backgroundImage ); } + break; } - break; - } - case PressedReleasedTransition: - { - if( dimmed ) + case ReleasedDisabledTransition: // FALLTHROUGH + case PressedDisabledTransition: { float opacity = 1.f; - if( fadeOutButtonImage ) + if( fadeOutBackgroundImage ) { - opacity = fadeOutButtonImage.GetCurrentOpacity(); + opacity = fadeOutBackgroundImage.GetCurrentOpacity(); } StopFadeOutAnimation( pushButton ); - StopFadeInAnimation(); - FadeOutImage( pushButton, Foreground, buttonImage, 1.f - opacity ); - FadeOutImage( pushButton, Background, backgroundImage ); + // Replaces the button image. + backgroundImage = image; - FadeInImage( pushButton, dimmedImage ); - FadeInImage( pushButton, dimmedBackgroundImage ); + pushButton.Add( backgroundImage ); + FadeOutImage( pushButton, Background, backgroundImage, opacity ); StartFadeOutAnimation( pushButton ); + break; + } + case DisabledReleasedTransition: // FALLTHROUGH + case DisabledPressedTransition: + { + StopFadeInAnimation(); + pushButton.Remove( backgroundImage ); + + backgroundImage = image; + + FadeInImage( pushButton, backgroundImage ); StartFadeInAnimation(); + break; + } + default: + backgroundImage = image; + break; + } + + backgroundImage.SetAnchorPoint( AnchorPoint::TOP_LEFT ); + backgroundImage.SetParentOrigin( ParentOrigin::TOP_LEFT ); + ApplyConstraint( backgroundImage, BACKGROUND_DEPTH ); +} - if( buttonImage || dimmedImage || backgroundImage || dimmedBackgroundImage ) +void PushButtonDefaultPainter::SetDisabledImage( Toolkit::Button& button, Actor image ) +{ + Toolkit::Internal::PushButton& pushButtonImpl = GetPushButtonImpl( button ); + Actor& disabledImage = pushButtonImpl.GetDisabledImage(); + Actor& fadeOutButtonImage = pushButtonImpl.GetFadeOutButtonImage(); + + Toolkit::PushButton& pushButton = static_cast( button ); + + switch( mPaintState ) + { + case DisabledReleasedState: // FALLTHROUGH + case DisabledPressedState: + { + if( disabledImage && disabledImage.GetParent() ) { - mPaintState = ReleasedDimmedTransition; + StopFadeOutAnimation( pushButton ); + FadeOutImage( pushButton, Foreground, disabledImage ); + + disabledImage = image; + + FadeInImage( pushButton, disabledImage ); + + StartFadeOutAnimation( pushButton ); + StartFadeInAnimation(); } else { - mPaintState = DimmedReleasedState; + disabledImage = image; + pushButton.Add( disabledImage ); } + break; } - break; - } - case ReleasedDimmedTransition: - { - if( !dimmed ) + case ReleasedDisabledTransition: // FALLTHROUGH + case PressedDisabledTransition: { - float opacity = 1.f; - if( fadeOutButtonImage ) - { - opacity = fadeOutButtonImage.GetCurrentOpacity(); - } - StopFadeOutAnimation( pushButton, false ); StopFadeInAnimation(); + pushButton.Remove( disabledImage ); - FadeOutImage( pushButton, Foreground, dimmedImage, 1.f - opacity ); - FadeOutImage( pushButton, Background, dimmedBackgroundImage, 1.f - opacity ); - FadeInImage( pushButton, buttonImage, opacity ); - FadeInImage( pushButton, backgroundImage, opacity ); + disabledImage = image; - StartFadeOutAnimation( pushButton ); + FadeInImage( pushButton, disabledImage ); StartFadeInAnimation(); - - if( buttonImage || dimmedImage || backgroundImage || dimmedBackgroundImage ) - { - mPaintState = DimmedReleasedTransition; - } - else - { - mPaintState = ReleasedState; - } + break; } - break; - } - case DimmedReleasedTransition: - { - if( dimmed ) + case DisabledReleasedTransition: // FALLTHROUGH + case DisabledPressedTransition: { float opacity = 1.f; if( fadeOutButtonImage ) { opacity = fadeOutButtonImage.GetCurrentOpacity(); } - StopFadeOutAnimation( pushButton, false ); - StopFadeInAnimation(); + StopFadeOutAnimation( pushButton ); - FadeOutImage( pushButton, Foreground, buttonImage, 1.f - opacity ); - FadeOutImage( pushButton, Background, backgroundImage, 1.f - opacity ); - FadeInImage( pushButton, dimmedImage, opacity ); - FadeInImage( pushButton, dimmedBackgroundImage, opacity ); + // Replaces the button image. + disabledImage = image; - StartFadeOutAnimation( pushButton ); - StartFadeInAnimation(); + pushButton.Add( disabledImage ); + FadeOutImage( pushButton, Foreground, disabledImage, opacity ); - if( buttonImage || dimmedImage || backgroundImage || dimmedBackgroundImage ) - { - mPaintState = ReleasedDimmedTransition; - } - else - { - mPaintState = DimmedReleasedState; - } + StartFadeOutAnimation( pushButton ); + break; } - break; + default: + disabledImage = image; + break; } - case PressedDimmedTransition: + + disabledImage.SetAnchorPoint( AnchorPoint::TOP_LEFT ); + disabledImage.SetParentOrigin( ParentOrigin::TOP_LEFT ); + ApplyConstraint( disabledImage, FOREGROUND_DEPTH ); +} + +void PushButtonDefaultPainter::SetDisabledBackgroundImage( Toolkit::Button& button, Actor image ) +{ + Toolkit::Internal::PushButton& pushButtonImpl = GetPushButtonImpl( button ); + Actor& disabledBackgroundImage = pushButtonImpl.GetDisabledBackgroundImage(); + Actor& fadeOutBackgroundImage = pushButtonImpl.GetFadeOutBackgroundImage(); + + Toolkit::PushButton& pushButton = static_cast( button ); + + switch( mPaintState ) { - if( !dimmed ) + case DisabledReleasedState: // FALLTHROUGH + case DisabledPressedState: { - float opacity = 1.f; - if( fadeOutButtonImage ) + if( disabledBackgroundImage && disabledBackgroundImage.GetParent() ) { - opacity = fadeOutButtonImage.GetCurrentOpacity(); - } - StopFadeOutAnimation( pushButton, false ); - StopFadeInAnimation(); + StopFadeOutAnimation( pushButton ); + FadeOutImage( pushButton, Background, disabledBackgroundImage ); - FadeOutImage( pushButton, Foreground, dimmedImage, 1.f - opacity ); - FadeOutImage( pushButton, Background, dimmedBackgroundImage, 1.f - opacity ); - FadeInImage( pushButton, pressedImage, opacity ); - FadeInImage( pushButton, backgroundImage, opacity ); + disabledBackgroundImage = image; - StartFadeOutAnimation( pushButton ); - StartFadeInAnimation(); + FadeInImage( pushButton, disabledBackgroundImage ); - if( pressedImage || dimmedImage || backgroundImage || dimmedBackgroundImage ) - { - mPaintState = DimmedPressedTransition; + StartFadeOutAnimation( pushButton ); + StartFadeInAnimation(); } else { - mPaintState = PressedState; + disabledBackgroundImage = image; + pushButton.Add( disabledBackgroundImage ); } + break; } - break; - } - case DimmedPressedTransition: - { - if( dimmed ) + case ReleasedDisabledTransition: // FALLTHROUGH + case PressedDisabledTransition: { - float opacity = 1.f; - if( fadeOutButtonImage ) - { - opacity = fadeOutButtonImage.GetCurrentOpacity(); - } - StopFadeOutAnimation( pushButton, false ); StopFadeInAnimation(); + pushButton.Remove( disabledBackgroundImage ); - FadeOutImage( pushButton, Foreground, pressedImage, 1.f - opacity ); - FadeOutImage( pushButton, Background, backgroundImage, 1.f - opacity ); - FadeInImage( pushButton, dimmedImage, opacity ); - FadeInImage( pushButton, dimmedBackgroundImage, opacity ); + disabledBackgroundImage = image; - StartFadeOutAnimation( pushButton ); + FadeInImage( pushButton, disabledBackgroundImage ); StartFadeInAnimation(); - - if( pressedImage || dimmedImage || backgroundImage || dimmedBackgroundImage ) - { - mPaintState = PressedDimmedTransition; - } - else + break; + } + case DisabledReleasedTransition: // FALLTHROUGH + case DisabledPressedTransition: + { + float opacity = 1.f; + if( fadeOutBackgroundImage ) { - mPaintState = DimmedPressedState; + opacity = fadeOutBackgroundImage.GetCurrentOpacity(); } - } - break; - } - default: - break; - } -} + StopFadeOutAnimation( pushButton ); -void PushButtonDefaultPainter::SetAnimationTime( float animationTime ) -{ - mAnimationTime = animationTime; -} + // Replaces the button image. + disabledBackgroundImage = image; -float PushButtonDefaultPainter::GetAnimationTime() const -{ - return mAnimationTime; -} + pushButton.Add( disabledBackgroundImage ); + FadeOutImage( pushButton, Background, disabledBackgroundImage, opacity ); -void PushButtonDefaultPainter::SetAutoRepeating( bool autorepeating ) -{ - mAutoRepeating = autorepeating; + StartFadeOutAnimation( pushButton ); + break; + } + default: + disabledBackgroundImage = image; + break; + } + + disabledBackgroundImage.SetAnchorPoint( AnchorPoint::TOP_LEFT ); + disabledBackgroundImage.SetParentOrigin( ParentOrigin::TOP_LEFT ); + ApplyConstraint( disabledBackgroundImage, BACKGROUND_DEPTH ); } -void PushButtonDefaultPainter::Pressed( Toolkit::PushButton& button ) +void PushButtonDefaultPainter::Pressed( Toolkit::Button& button ) { Toolkit::Internal::PushButton& pushButtonImpl = GetPushButtonImpl( button ); - Actor& pressedImage = pushButtonImpl.GetPressedImage(); + Actor& selectedImage = pushButtonImpl.GetSelectedImage(); Actor& buttonImage = pushButtonImpl.GetButtonImage(); Actor& fadeOutButtonImage = pushButtonImpl.GetFadeOutButtonImage(); + Toolkit::PushButton& pushButton = static_cast( button ); + switch( mPaintState ) { case ReleasedState: { - StopFadeOutAnimation( button ); - FadeOutImage( button, Foreground, buttonImage ); - FadeInImage( button, pressedImage ); - StartFadeOutAnimation( button ); + StopFadeOutAnimation( pushButton ); + FadeOutImage( pushButton, Foreground, buttonImage ); + FadeInImage( pushButton, selectedImage ); + StartFadeOutAnimation( pushButton ); StartFadeInAnimation(); - if( buttonImage || pressedImage ) + if( buttonImage || selectedImage ) { mPaintState = ReleasedPressedTransition; } @@ -895,16 +910,16 @@ void PushButtonDefaultPainter::Pressed( Toolkit::PushButton& button ) { opacity = fadeOutButtonImage.GetCurrentOpacity(); } - StopFadeOutAnimation( button, false ); + StopFadeOutAnimation( pushButton, false ); StopFadeInAnimation(); - FadeOutImage( button, Foreground, buttonImage, 1.f - opacity ); - FadeInImage( button, pressedImage, opacity ); + FadeOutImage( pushButton, Foreground, buttonImage, 1.f - opacity ); + FadeInImage( pushButton, selectedImage, opacity ); - StartFadeOutAnimation( button ); + StartFadeOutAnimation( pushButton ); StartFadeInAnimation(); - if( buttonImage || pressedImage ) + if( buttonImage || selectedImage ) { mPaintState = ReleasedPressedTransition; } @@ -919,24 +934,26 @@ void PushButtonDefaultPainter::Pressed( Toolkit::PushButton& button ) } } -void PushButtonDefaultPainter::Released( Toolkit::PushButton& button ) +void PushButtonDefaultPainter::Released( Toolkit::Button& button ) { Toolkit::Internal::PushButton& pushButtonImpl = GetPushButtonImpl( button ); - Actor& pressedImage = pushButtonImpl.GetPressedImage(); + Actor& selectedImage = pushButtonImpl.GetSelectedImage(); Actor& buttonImage = pushButtonImpl.GetButtonImage(); Actor& fadeOutButtonImage = pushButtonImpl.GetFadeOutButtonImage(); + Toolkit::PushButton& pushButton = static_cast( button ); + switch( mPaintState ) { case PressedState: { - StopFadeOutAnimation( button ); - FadeOutImage( button, Foreground, pressedImage ); - FadeInImage( button, buttonImage ); - StartFadeOutAnimation( button ); + StopFadeOutAnimation( pushButton ); + FadeOutImage( pushButton, Foreground, selectedImage ); + FadeInImage( pushButton, buttonImage ); + StartFadeOutAnimation( pushButton ); StartFadeInAnimation(); - if( buttonImage || pressedImage ) + if( buttonImage || selectedImage ) { mPaintState = PressedReleasedTransition; } @@ -953,16 +970,16 @@ void PushButtonDefaultPainter::Released( Toolkit::PushButton& button ) { opacity = fadeOutButtonImage.GetCurrentOpacity(); } - StopFadeOutAnimation( button, false ); + StopFadeOutAnimation( pushButton, false ); StopFadeInAnimation(); - FadeOutImage( button, Foreground, pressedImage, 1.f - opacity ); - FadeInImage( button, buttonImage, opacity ); + FadeOutImage( pushButton, Foreground, selectedImage, 1.f - opacity ); + FadeInImage( pushButton, buttonImage, opacity ); - StartFadeOutAnimation( button ); + StartFadeOutAnimation( pushButton ); StartFadeInAnimation(); - if( buttonImage || pressedImage ) + if( buttonImage || selectedImage ) { mPaintState = PressedReleasedTransition; } @@ -979,29 +996,31 @@ void PushButtonDefaultPainter::Released( Toolkit::PushButton& button ) } } -void PushButtonDefaultPainter::Clicked( Toolkit::PushButton& button ) +void PushButtonDefaultPainter::Clicked( Toolkit::Button& button ) { Released( button ); } -void PushButtonDefaultPainter::Toggled( Toolkit::PushButton& button ) +void PushButtonDefaultPainter::Selected( Toolkit::Button& button ) { Toolkit::Internal::PushButton& pushButtonImpl = GetPushButtonImpl( button ); - Actor& pressedImage = pushButtonImpl.GetPressedImage(); + Actor& selectedImage = pushButtonImpl.GetSelectedImage(); Actor& buttonImage = pushButtonImpl.GetButtonImage(); Actor& fadeOutButtonImage = pushButtonImpl.GetFadeOutButtonImage(); + Toolkit::PushButton& pushButton = static_cast( button ); + switch( mPaintState ) { case ReleasedState: { - StopFadeOutAnimation( button ); - FadeOutImage( button, Foreground, buttonImage ); - FadeInImage( button, pressedImage ); - StartFadeOutAnimation( button ); + StopFadeOutAnimation( pushButton ); + FadeOutImage( pushButton, Foreground, buttonImage ); + FadeInImage( pushButton, selectedImage ); + StartFadeOutAnimation( pushButton ); StartFadeInAnimation(); - if( buttonImage || pressedImage ) + if( buttonImage || selectedImage ) { mPaintState = ReleasedPressedTransition; } @@ -1013,13 +1032,13 @@ void PushButtonDefaultPainter::Toggled( Toolkit::PushButton& button ) } case PressedState: { - StopFadeOutAnimation( button ); - FadeOutImage( button, Foreground, pressedImage ); - FadeInImage( button, buttonImage ); - StartFadeOutAnimation( button ); + StopFadeOutAnimation( pushButton ); + FadeOutImage( pushButton, Foreground, selectedImage ); + FadeInImage( pushButton, buttonImage ); + StartFadeOutAnimation( pushButton ); StartFadeInAnimation(); - if( buttonImage || pressedImage ) + if( buttonImage || selectedImage ) { mPaintState = PressedReleasedTransition; } @@ -1036,16 +1055,16 @@ void PushButtonDefaultPainter::Toggled( Toolkit::PushButton& button ) { opacity = fadeOutButtonImage.GetCurrentOpacity(); } - StopFadeOutAnimation( button, false ); + StopFadeOutAnimation( pushButton, false ); StopFadeInAnimation(); - FadeOutImage( button, Foreground, pressedImage, 1.f - opacity ); - FadeInImage( button, buttonImage, opacity ); + FadeOutImage( pushButton, Foreground, selectedImage, 1.f - opacity ); + FadeInImage( pushButton, buttonImage, opacity ); - StartFadeOutAnimation( button ); + StartFadeOutAnimation( pushButton ); StartFadeInAnimation(); - if( buttonImage || pressedImage ) + if( buttonImage || selectedImage ) { mPaintState = PressedReleasedTransition; } @@ -1062,16 +1081,16 @@ void PushButtonDefaultPainter::Toggled( Toolkit::PushButton& button ) { opacity = 1.f - fadeOutButtonImage.GetCurrentOpacity(); } - StopFadeOutAnimation( button, false ); + StopFadeOutAnimation( pushButton, false ); StopFadeInAnimation(); - FadeOutImage( button, Foreground, buttonImage, 1.f - opacity ); - FadeInImage( button, pressedImage, opacity ); + FadeOutImage( pushButton, Foreground, buttonImage, 1.f - opacity ); + FadeInImage( pushButton, selectedImage, opacity ); - StartFadeOutAnimation( button ); + StartFadeOutAnimation( pushButton ); StartFadeInAnimation(); - if( buttonImage || pressedImage ) + if( buttonImage || selectedImage ) { mPaintState = ReleasedPressedTransition; } @@ -1223,22 +1242,22 @@ void PushButtonDefaultPainter::PressedReleasedFadeOutAnimationFinished( Dali::An mPaintState = ReleasedState; break; } - case ReleasedDimmedTransition: + case ReleasedDisabledTransition: { - mPaintState = DimmedReleasedState; + mPaintState = DisabledReleasedState; break; } - case DimmedReleasedTransition: + case DisabledReleasedTransition: { mPaintState = ReleasedState; break; } - case PressedDimmedTransition: + case PressedDisabledTransition: { - mPaintState = DimmedPressedState; + mPaintState = DisabledPressedState; break; } - case DimmedPressedTransition: + case DisabledPressedTransition: { mPaintState = PressedState; break; @@ -1268,22 +1287,22 @@ void PushButtonDefaultPainter::PressedReleasedFadeInAnimationFinished( Dali::Ani mPaintState = ReleasedState; break; } - case ReleasedDimmedTransition: + case ReleasedDisabledTransition: { - mPaintState = DimmedReleasedState; + mPaintState = DisabledReleasedState; break; } - case DimmedReleasedTransition: + case DisabledReleasedTransition: { mPaintState = ReleasedState; break; } - case PressedDimmedTransition: + case PressedDisabledTransition: { - mPaintState = DimmedPressedState; + mPaintState = DisabledPressedState; break; } - case DimmedPressedTransition: + case DisabledPressedTransition: { mPaintState = PressedState; break;