/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2019 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.
// EXTERNAL INCLUDES
#include <dali-toolkit/dali-toolkit.h>
-#include <dali-toolkit/devel-api/controls/buttons/button-devel.h>
-#include <dali-toolkit/devel-api/controls/text-controls/text-label-devel.h>
using namespace Dali;
using namespace Dali::Toolkit;
namespace
{
-const Vector2 DESKTOP_SIZE( Vector2( 1440.f, 1600.f ) );
+const float STAGE_HEIGHT_MULTIPLIER( 1.5f );
const Vector2 BOX_SIZE( Vector2(330.0f, 80.0f ) );
const Vector2 SCROLLING_BOX_SIZE( Vector2(330.0f, 40.0f ) );
const float MAX_OFFSCREEN_RENDERING_SIZE = 2048.f;
void CreateBox( const std::string& name, Actor& box, Actor parent, const Vector2& size )
{
- box.SetName(name);
- box.SetAnchorPoint( AnchorPoint::CENTER );
- box.SetParentOrigin( ParentOrigin::CENTER );
+ box.SetProperty( Dali::Actor::Property::NAME,name);
+ box.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
+ box.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
box.SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::HEIGHT );
box.SetResizePolicy( ResizePolicy::FIXED, Dimension::WIDTH );
- box.SetSize( size.width, 0.f );
+ box.SetProperty( Actor::Property::SIZE, Vector2( size.width, 0.f ) );
parent.Add( box );
Dali::Property::Map border;
- border.Insert( Visual::Property::TYPE, Visual::BORDER );
+ border.Insert( Toolkit::Visual::Property::TYPE, Visual::BORDER );
border.Insert( BorderVisual::Property::COLOR, Color::BLUE );
border.Insert( BorderVisual::Property::SIZE, 1.f );
box.SetProperty( Control::Property::BACKGROUND, border );
label = TextLabel::New( text );
label.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
label.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
- label.SetPadding( Padding( 1.0f, 1.0f, 1.0f, 1.0f ) );
- label.SetAnchorPoint( AnchorPoint::CENTER );
- label.SetParentOrigin( ParentOrigin::CENTER );
+ label.SetProperty( Actor::Property::PADDING, Padding( 1.0f, 1.0f, 1.0f, 1.0f ) );
+ label.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
+ label.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
parent.Add( label );
if ( scrollOnStart )
}
button.SetResizePolicy( ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS );
- button.SetSize(BOX_SIZE.height,BOX_SIZE.height);
- button.SetParentOrigin( ParentOrigin::TOP_RIGHT );
- button.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+ button.SetProperty( Actor::Property::SIZE, Vector2(BOX_SIZE.height,BOX_SIZE.height) );
+ button.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_RIGHT );
+ button.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
parent.Add(button);
}
// Create Root actor
Actor rootActor = Actor::New();
- rootActor.SetName("rootActor");
+ rootActor.SetProperty( Dali::Actor::Property::NAME,"rootActor");
rootActor.SetResizePolicy( ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS );
- rootActor.SetSize( mStageSize );
- rootActor.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+ rootActor.SetProperty( Actor::Property::SIZE, mStageSize );
+ rootActor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
stage.Add( rootActor );
mAnimation = Animation::New( 1.0f );
- const Size mTargetActorSize( mStageSize.width, DESKTOP_SIZE.height );
+ const Size mTargetActorSize( mStageSize.width, mStageSize.height * STAGE_HEIGHT_MULTIPLIER );
// Create Desktop
Control desktop = Control::New();
desktop.SetBackgroundColor( Color::WHITE );
- desktop.SetName("desktopActor");
- desktop.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+ desktop.SetProperty( Dali::Actor::Property::NAME,"desktopActor");
+ desktop.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
desktop.SetResizePolicy( ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS );
- desktop.SetSize( mTargetActorSize );
+ desktop.SetProperty( Actor::Property::SIZE, mTargetActorSize );
rootActor.Add( desktop ); // Add desktop (content) to offscreen actor
Control boxE = Control::New();
CreateBox( "boxA", boxA, desktop, BOX_SIZE );
- boxA.SetPosition( 0.0f, -500.0f, 1.0f );
+ boxA.SetProperty( Actor::Property::POSITION, Vector3( 0.0f, -500.0f, 1.0f ));
// Create TextField
TextField field = TextField::New();
field.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
- field.SetPadding( Padding( 1.0f, 1.0f, 1.0f, 1.0f ) );
- field.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+ field.SetProperty( Actor::Property::PADDING, Padding( 1.0f, 1.0f, 1.0f, 1.0f ) );
+ field.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
field.SetProperty( TextField::Property::PLACEHOLDER_TEXT, "Enter Folder Name" );
field.SetProperty( TextField::Property::DECORATION_BOUNDING_BOX, Rect<int>( SCREEN_BORDER, SCREEN_BORDER, mStageSize.width - SCREEN_BORDER*2, mStageSize.height - SCREEN_BORDER*2 ) );
boxA.Add( field );
- boxA.SetSize(BOX_SIZE);
+ boxA.SetProperty( Actor::Property::SIZE, BOX_SIZE);
CreateBox( "boxB", boxB, desktop, SCROLLING_BOX_SIZE );
- boxB.SetPosition( 0.0f, -400.0f, 1.0f );
+ boxB.SetProperty( Actor::Property::POSITION, Vector3( 0.0f, -400.0f, 1.0f ));
Toolkit::PushButton scrollLargeButton = Toolkit::PushButton::New();
scrollLargeButton.ClickedSignal().Connect( this, &TextScrollingExample::OnButtonClickedLarge );
CreateLabel( mLargeLabel, "A Quick Brown Fox Jumps Over The Lazy Dog", boxB, false ,scrollLargeButton );
-
CreateBox( "boxC", boxC, desktop, SCROLLING_BOX_SIZE );
- boxC.SetPosition( 0.0f, -300.0f, 1.0f );
+ boxC.SetProperty( Actor::Property::POSITION, Vector3( 0.0f, -300.0f, 1.0f ));
Toolkit::PushButton scrollSmallButton = Toolkit::PushButton::New();
scrollSmallButton.ClickedSignal().Connect( this, &TextScrollingExample::OnButtonClickedSmall );
CreateLabel( mSmallLabel, "Hello Text", boxC , true, scrollSmallButton );
mSmallLabel.SetProperty( TextLabel::Property::TEXT_COLOR, Color::BLACK );
- mSmallLabel.SetProperty( TextLabel::Property::SHADOW_OFFSET, Vector2( 1.0f, 1.0f ) );
- mSmallLabel.SetProperty( TextLabel::Property::SHADOW_COLOR, Color::CYAN );
+ Property::Map shadowMap;
+ shadowMap.Insert( "color", Color::CYAN );
+ shadowMap.Insert( "offset", Vector2( 1.0f, 1.0f ) );
+ mSmallLabel.SetProperty( TextLabel::Property::SHADOW, shadowMap );
CreateBox( "boxD", boxD, desktop, SCROLLING_BOX_SIZE );
- boxD.SetPosition( 0.0f, -200.0f, 1.0f );
+ boxD.SetProperty( Actor::Property::POSITION, Vector3( 0.0f, -200.0f, 1.0f ));
Toolkit::PushButton scrollRtlButton = Toolkit::PushButton::New();
scrollRtlButton.ClickedSignal().Connect( this, &TextScrollingExample::OnButtonClickedRtl );
CreateLabel( mRtlLabel, "مرحبا بالعالم", boxD , true, scrollRtlButton );
- mRtlLabel.SetProperty(DevelTextLabel::Property::AUTO_SCROLL_STOP_MODE, DevelTextLabel::AutoScrollStopMode::IMMEDIATE );
- mRtlLabel.SetProperty(DevelTextLabel::Property::AUTO_SCROLL_LOOP_DELAY, 0.3f );
+ mRtlLabel.SetProperty(TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::IMMEDIATE );
+ mRtlLabel.SetProperty(TextLabel::Property::AUTO_SCROLL_LOOP_DELAY, 0.3f );
CreateBox( "boxE", boxE, desktop, SCROLLING_BOX_SIZE );
- boxE.SetPosition( 0.0f, -100.0f, 1.0f );
+ boxE.SetProperty( Actor::Property::POSITION, Vector3( 0.0f, -100.0f, 1.0f ));
Toolkit::PushButton scrollRtlLongButton = Toolkit::PushButton::New();
scrollRtlLongButton.ClickedSignal().Connect( this, &TextScrollingExample::OnButtonClickedRtlLong );
CreateLabel( mRtlLongLabel, " مرحبا بالعالم مرحبا بالعالم مرحبا بالعالم مرحبا بالعالم مرحبا بالعالم مرحبا بالعالم مرحبا بالعالم مرحبا بالعالم مرحبا بالعالم", boxE , false, scrollRtlLongButton );
mRtlLongLabel.SetProperty(TextLabel::Property::AUTO_SCROLL_SPEED, 500);
mRtlLongLabel.SetProperty(TextLabel::Property::AUTO_SCROLL_GAP, 500);
mRtlLongLabel.SetProperty(TextLabel::Property::AUTO_SCROLL_LOOP_COUNT, 3);
- mRtlLongLabel.SetProperty(DevelTextLabel::Property::AUTO_SCROLL_STOP_MODE, DevelTextLabel::AutoScrollStopMode::FINISH_LOOP );
+ mRtlLongLabel.SetProperty(TextLabel::Property::AUTO_SCROLL_STOP_MODE, TextLabel::AutoScrollStopMode::FINISH_LOOP );
mPanGestureDetector = PanGestureDetector::New();
mPanGestureDetector.DetectedSignal().Connect(this, &TextScrollingExample::OnPanGesture );
Toolkit::PushButton colorButton = Toolkit::PushButton::New();
colorButton.SetProperty( Button::Property::TOGGLABLE, true );
- colorButton.SetProperty( DevelButton::Property::UNSELECTED_BACKGROUND_VISUAL, Property::Map().Add ( Visual::Property::TYPE, Visual::COLOR ).Add( ColorVisual::Property::MIX_COLOR, Color::RED ) );
- colorButton.SetProperty( DevelButton::Property::SELECTED_BACKGROUND_VISUAL, Property::Map().Add ( Visual::Property::TYPE, Visual::COLOR ).Add( ColorVisual::Property::MIX_COLOR, Color::BLACK ) );
- colorButton.SetAnchorPoint( AnchorPoint::BOTTOM_CENTER );
- colorButton.SetParentOrigin( ParentOrigin::BOTTOM_CENTER );
+ colorButton.SetProperty( Button::Property::UNSELECTED_BACKGROUND_VISUAL, Property::Map().Add ( Toolkit::Visual::Property::TYPE, Visual::COLOR ).Add( ColorVisual::Property::MIX_COLOR, Color::RED ) );
+ colorButton.SetProperty( Button::Property::SELECTED_BACKGROUND_VISUAL, Property::Map().Add ( Toolkit::Visual::Property::TYPE, Visual::COLOR ).Add( ColorVisual::Property::MIX_COLOR, Color::BLACK ) );
+ colorButton.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::BOTTOM_CENTER );
+ colorButton.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::BOTTOM_CENTER );
colorButton.SetResizePolicy( ResizePolicy::FIXED, Dimension::ALL_DIMENSIONS );
- colorButton.SetSize(BOX_SIZE.height,BOX_SIZE.height);
+ colorButton.SetProperty( Actor::Property::SIZE, Vector2(BOX_SIZE.height,BOX_SIZE.height) );
colorButton.ClickedSignal().Connect( this, &TextScrollingExample::OnColorButtonClicked );
rootActor.Add( colorButton );
{
Toolkit::RadioButton alignButton = Toolkit::RadioButton::New( ALIGNMENT_TABLE[ i ] );
alignButton.ClickedSignal().Connect( this, &TextScrollingExample::OnAlignButtonClicked );
- alignButton.SetName( ALIGNMENT_TABLE[ i ] );
+ alignButton.SetProperty( Dali::Actor::Property::NAME, ALIGNMENT_TABLE[ i ] );
// Place first button to left aligned, second center aligned and third right aligned
- alignButton.SetAnchorPoint( Vector3( i * 0.5f, 0.0f, 0.5f ) );
- alignButton.SetParentOrigin( Vector3( i * 0.5f, 0.0f, 0.5f ) );
+ alignButton.SetProperty( Actor::Property::ANCHOR_POINT, Vector3( i * 0.5f, 0.0f, 0.5f ) );
+ alignButton.SetProperty( Actor::Property::PARENT_ORIGIN, Vector3( i * 0.5f, 0.0f, 0.5f ) );
rootActor.Add( alignButton );
mToggleColor = true;
}
- mSmallLabel.SetProperty( TextLabel::Property::SHADOW_COLOR, Color::BLACK );
+ Property::Map shadowMap;
+ shadowMap.Insert( "color", Color::BLACK );
+ mSmallLabel.SetProperty( TextLabel::Property::SHADOW, shadowMap );
mSmallLabel.SetProperty( TextLabel::Property::TEXT_COLOR, color );
mRtlLabel.SetProperty( TextLabel::Property::TEXT_COLOR, color );
mLargeLabel.SetProperty( TextLabel::Property::TEXT_COLOR, color );
{
for( unsigned int index = 0; index < ALIGNMENT_TABLE_COUNT; ++index )
{
- const std::string& buttonName = button.GetName();
+ const std::string& buttonName = button.GetProperty< std::string >( Dali::Actor::Property::NAME );
if( buttonName == ALIGNMENT_TABLE[ index ] )
{
mSmallLabel.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, ALIGNMENT_TABLE[ index ] );
mTargetActorPosition.y = mTargetActorPosition.y + position.y;
mTargetActorPosition.y = std::min( mTargetActorPosition.y, -mTargetActorSize.height );
mTargetActorPosition.y = std::max( mTargetActorPosition.y, ( mTargetActorSize.height - mStageSize.height*0.25f ) );
- actor.SetPosition( 0.0f, mTargetActorPosition.y );
+ actor.SetProperty( Actor::Property::POSITION, Vector2( 0.0f, mTargetActorPosition.y ));
}
}
bool mToggleColor;
};
-void RunTest( Application& application )
-{
- TextScrollingExample test( application );
-
- application.MainLoop();
-}
-
-/** Entry point for Linux & Tizen applications */
int DALI_EXPORT_API main( int argc, char **argv )
{
Application application = Application::New( &argc, &argv, DEMO_THEME_PATH );
-
- RunTest( application );
-
+ TextScrollingExample test( application );
+ application.MainLoop();
return 0;
}