const float DISTANCE_BETWEEN_IMAGE_AND_LABEL( 5.0f );
const float ANIMATION_TIME( 0.26f ); // EFL checkbox tick time
+// Required for the UV reveal shader to render the tick on top of the rest of the checkbox.
+const float SHADER_DEPTH_OFFSET = 1.0f;
BaseHandle Create()
{
SetDisabledSelectedImage( DISABLED_SELECTED_BUTTON_IMAGE_DIR );
}
-void CheckBoxButton::OnLabelSet()
+void CheckBoxButton::OnLabelSet( bool noPadding )
{
Actor& label = GetLabelActor();
{
mTickUVEffect = CreateImageRegionEffect();
}
- mTickUVEffect.SetUniform("uBottomRight", Vector2( 0.0f, 1.0f ) );
+ mTickUVEffect.SetUniform( "uBottomRight", Vector2( 0.0f, 1.0f ) );
ImageActor imageActor = ImageActor::DownCast( actor );
if( imageActor )
{
+ // Ensure the tick effect is rendered above the reset of the checkbox.
+ imageActor.SetSortModifier( SHADER_DEPTH_OFFSET );
imageActor.SetShaderEffect( mTickUVEffect );
}
}
if( !mTickUVEffect )
{
- mTickUVEffect = CreateImageRegionEffect();
+ mTickUVEffect = CreateImageRegionEffect();
}
- mTickUVEffect.SetUniform("uBottomRight", Vector2::ONE );
+ mTickUVEffect.SetUniform( "uBottomRight", Vector2::ONE );
ImageActor imageActor = ImageActor::DownCast( actor );
if( imageActor )
actor.SetScale( Vector3::ONE );
if( mTickUVEffect )
{
- mTickUVEffect.SetUniform("uBottomRight", Vector2::ONE );
+ mTickUVEffect.SetUniform( "uBottomRight", Vector2::ONE );
}
}
}