/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 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/dali.h>
#include <dali-toolkit/dali-toolkit.h>
-#include <dali-toolkit/devel-api/controls/buttons/button-devel.h>
#include <dali-toolkit/devel-api/controls/navigation-view/navigation-view.h>
// INTERNAL INCLUDES
MULTI_COLOR_TEXT_WITH_STYLE,
MULTI_COLOR_TEXT_WITH_EMOJI,
MULTI_COLOR_TEXT_WITH_STYLE_EMOJI,
+ SMALL_TEXT_IN_LARGE_TEXT_LABEL,
NUMBER_OF_TYPES
};
"Multi color text",
"Multi color text with style",
"Multi color text with emoji",
- "Multi color text with style and emoji"
+ "Multi color text with style and emoji",
+ "Small text in large Text Label"
};
const int NUMBER_OF_LABELS = 500;
TextLabel SetupTextLabel( int type )
{
TextLabel label = TextLabel::New();
- label.SetAnchorPoint( ParentOrigin::TOP_LEFT );
- label.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+ label.SetProperty( Actor::Property::ANCHOR_POINT, ParentOrigin::TOP_LEFT );
+ label.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
label.SetProperty( TextLabel::Property::TEXT_COLOR, Color::BLACK );
label.SetProperty( TextLabel::Property::POINT_SIZE, 12.0f );
- label.SetProperty( TextLabel::Property::SHADOW_COLOR, Color::YELLOW );
+ Property::Map shadowMap;
+ shadowMap.Insert( "color", Color::YELLOW );
+ label.SetProperty( TextLabel::Property::SHADOW, shadowMap );
label.SetProperty( TextLabel::Property::ENABLE_MARKUP, true );
- Vector2 stageSize = Stage::GetCurrent().GetSize();
- label.SetPosition( Vector3( Random::Range( 0.0f, stageSize.x ), Random::Range( 0.0f, stageSize.y ), 0.0f) );
+ Vector2 windowSize = mApplication.GetWindow().GetSize();
+ label.SetProperty( Actor::Property::POSITION, Vector3( Random::Range( 0.0f, windowSize.x ), Random::Range( 0.0f, windowSize.y ), 0.0f) );
switch ( type )
{
case SINGLE_COLOR_TEXT:
{
label.SetProperty( TextLabel::Property::TEXT, "A Quick Brown Fox Jumps Over The Lazy Dog" );
- label.SetProperty( TextLabel::Property::SHADOW_OFFSET, Vector2( 0.0f, 0.0f ) );
+
+ shadowMap.Insert( "offset", Vector2( 0.0f, 0.0f ) );
+ label.SetProperty( TextLabel::Property::SHADOW, shadowMap );
break;
}
case SINGLE_COLOR_TEXT_WITH_STYLE:
{
label.SetProperty( TextLabel::Property::TEXT, "A Quick Brown Fox Jumps Over The Lazy Dog" );
- label.SetProperty( TextLabel::Property::SHADOW_OFFSET, Vector2( 2.0f, 2.0f ) );
+
+ shadowMap.Insert( "offset", Vector2( 2.0f, 2.0f ) );
+ label.SetProperty( TextLabel::Property::SHADOW, shadowMap );
break;
}
case SINGLE_COLOR_TEXT_WITH_EMOJI:
{
label.SetProperty( TextLabel::Property::TEXT, "\xF0\x9F\x98\x81 A Quick Brown Fox Jumps Over The Lazy Dog" );
- label.SetProperty( TextLabel::Property::SHADOW_OFFSET, Vector2( 0.0f, 0.0f ) );
+
+ shadowMap.Insert( "offset", Vector2( 0.0f, 0.0f ) );
+ label.SetProperty( TextLabel::Property::SHADOW, shadowMap );
break;
}
case SINGLE_COLOR_TEXT_WITH_STYLE_EMOJI:
{
label.SetProperty( TextLabel::Property::TEXT, "\xF0\x9F\x98\x81 A Quick Brown Fox Jumps Over The Lazy Dog" );
- label.SetProperty( TextLabel::Property::SHADOW_OFFSET, Vector2( 2.0f, 2.0f ) );
+
+ shadowMap.Insert( "offset", Vector2( 2.0f, 2.0f ) );
+ label.SetProperty( TextLabel::Property::SHADOW, shadowMap );
break;
}
case MULTI_COLOR_TEXT:
{
label.SetProperty( TextLabel::Property::TEXT, "A <color value='cyan'>Quick Brown Fox</color> Jumps Over The <color value='yellow'>Lazy Dog</color>" );
- label.SetProperty( TextLabel::Property::SHADOW_OFFSET, Vector2( 0.0f, 0.0f ) );
+
+ shadowMap.Insert( "offset", Vector2( 0.0f, 0.0f ) );
+ label.SetProperty( TextLabel::Property::SHADOW, shadowMap );
break;
}
case MULTI_COLOR_TEXT_WITH_STYLE:
{
label.SetProperty( TextLabel::Property::TEXT, "A <color value='cyan'>Quick Brown Fox</color> Jumps Over The <color value='yellow'>Lazy Dog</color>" );
- label.SetProperty( TextLabel::Property::SHADOW_OFFSET, Vector2( 2.0f, 2.0f ) );
+
+ shadowMap.Insert( "offset", Vector2( 2.0f, 2.0f ) );
+ label.SetProperty( TextLabel::Property::SHADOW, shadowMap );
break;
}
case MULTI_COLOR_TEXT_WITH_EMOJI:
{
label.SetProperty( TextLabel::Property::TEXT, " \xF0\x9F\x98\x81 A <color value='cyan'>Quick Brown Fox</color> Jumps Over The <color value='yellow'>Lazy Dog</color>" );
- label.SetProperty( TextLabel::Property::SHADOW_OFFSET, Vector2( 0.0f, 0.0f ) );
+
+ shadowMap.Insert( "offset", Vector2( 0.0f, 0.0f ) );
+ label.SetProperty( TextLabel::Property::SHADOW, shadowMap );
break;
}
case MULTI_COLOR_TEXT_WITH_STYLE_EMOJI:
{
label.SetProperty( TextLabel::Property::TEXT, " \xF0\x9F\x98\x81 A <color value='cyan'>Quick Brown Fox</color> Jumps Over The <color value='yellow'>Lazy Dog</color>" );
- label.SetProperty( TextLabel::Property::SHADOW_OFFSET, Vector2( 2.0f, 2.0f ) );
+
+ shadowMap.Insert( "offset", Vector2( 2.0f, 2.0f ) );
+ label.SetProperty( TextLabel::Property::SHADOW, shadowMap );
+ break;
+ }
+ case SMALL_TEXT_IN_LARGE_TEXT_LABEL:
+ {
+ label.SetProperty( TextLabel::Property::TEXT, "A Quick Brown Fox Jumps Over The Lazy Dog" );
+
+ shadowMap.Insert( "offset", Vector2( 0.0f, 0.0f ) );
+ label.SetProperty( TextLabel::Property::SHADOW, shadowMap );
+ label.SetProperty( Actor::Property::SIZE, Vector2(windowSize.x, windowSize.y * 0.25f) ); // Set the text label in larger size
break;
}
default:
*/
void CreateMainMenu()
{
- Stage stage = Stage::GetCurrent();
- Vector2 stageSize = stage.GetSize();
+ Vector2 windowSize = mApplication.GetWindow().GetSize();
mTapDetector = TapGestureDetector::New();
mTapDetector.DetectedSignal().Connect( this, &TextMemoryProfilingExample::OnTap );
// Create an item view for the main menu
mItemView = ItemView::New( *this );
- mItemView.SetParentOrigin( ParentOrigin::CENTER );
- mItemView.SetAnchorPoint( AnchorPoint::CENTER );
+ mItemView.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
+ mItemView.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
mLayout = DefaultItemLayout::New( DefaultItemLayout::LIST );
- mLayout->SetItemSize( Vector3( stageSize.width, 60.0f, 0.0f ) );
+ mLayout->SetItemSize( Vector3( windowSize.width, 60.0f, 0.0f ) );
mItemView.AddLayout( *mLayout );
// Activate the layout
- mItemView.ActivateLayout( 0, Vector3( stageSize ), 0.0f );
+ mItemView.ActivateLayout( 0, Vector3( windowSize ), 0.0f );
}
/**
*/
void CreateTextLabels( int type )
{
- Stage stage = Stage::GetCurrent();
-
- // Render tasks may have been setup last load so remove them
- RenderTaskList taskList = stage.GetRenderTaskList();
- if( taskList.GetTaskCount() > 1 )
- {
- typedef std::vector<RenderTask> Collection;
- typedef Collection::iterator ColIter;
- Collection tasks;
-
- for( unsigned int i = 1; i < taskList.GetTaskCount(); ++i )
- {
- tasks.push_back( taskList.GetTask(i) );
- }
-
- for( ColIter iter = tasks.begin(); iter != tasks.end(); ++iter )
- {
- taskList.RemoveTask(*iter);
- }
-
- RenderTask defaultTask = taskList.GetTask( 0 );
- defaultTask.SetSourceActor( stage.GetRootLayer() );
- defaultTask.SetTargetFrameBuffer( FrameBufferImage() );
- }
-
// Delete any existing text labels
unsigned int numChildren = mLayer.GetChildCount();
mLayer.Remove( mLayer.GetChildAt( 0 ) );
}
- mLayer.SetParentOrigin( ParentOrigin::BOTTOM_CENTER );
- mLayer.SetAnchorPoint( AnchorPoint::BOTTOM_CENTER );
+ mLayer.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::BOTTOM_CENTER );
+ mLayer.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::BOTTOM_CENTER );
mLayer.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
mLayer.SetResizePolicy( ResizePolicy::SIZE_FIXED_OFFSET_FROM_PARENT, Dimension::HEIGHT );
- mLayer.SetSizeModeFactor( Vector3( 0.0f, -DemoHelper::DEFAULT_VIEW_STYLE.mToolBarHeight, 0.0f ) );
+ mLayer.SetProperty( Actor::Property::SIZE_MODE_FACTOR, Vector3( 0.0f, -DemoHelper::DEFAULT_VIEW_STYLE.mToolBarHeight, 0.0f ) );
mNavigationView.Push( mLayer );
*/
void Create( Application& application )
{
- Stage stage = Stage::GetCurrent();
+ Window window = application.GetWindow();
- stage.KeyEventSignal().Connect(this, &TextMemoryProfilingExample::OnKeyEvent);
+ window.KeyEventSignal().Connect(this, &TextMemoryProfilingExample::OnKeyEvent);
Layer contents = DemoHelper::CreateView( mApplication,
mView,
mLayer = Layer::New();
mIndicator = Toolkit::ImageView::New(INDICATOR_IMAGE);
- mIndicator.SetParentOrigin( ParentOrigin::CENTER );
- mIndicator.SetAnchorPoint( AnchorPoint::CENTER );
+ mIndicator.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
+ mIndicator.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
mIndicator.SetProperty( Actor::Property::VISIBLE, false );
// Create a back button in the left of toolbar
PushButton backButton = PushButton::New();
- backButton.SetProperty( DevelButton::Property::UNSELECTED_BACKGROUND_VISUAL, BACK_IMAGE );
- backButton.SetProperty( DevelButton::Property::SELECTED_BACKGROUND_VISUAL, BACK_IMAGE_SELECTED );
+ backButton.SetProperty( Button::Property::UNSELECTED_BACKGROUND_VISUAL, BACK_IMAGE );
+ backButton.SetProperty( Button::Property::SELECTED_BACKGROUND_VISUAL, BACK_IMAGE_SELECTED );
backButton.ClickedSignal().Connect( this, &TextMemoryProfilingExample::OnBackButtonPressed );
- backButton.SetLeaveRequired( true );
+ backButton.SetProperty( Actor::Property::LEAVE_REQUIRED, true );
mToolBar.AddControl( backButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, Alignment::HorizontalLeft, DemoHelper::DEFAULT_MODE_SWITCH_PADDING );
// Create a navigation view to navigate different types of text labels
mNavigationView = NavigationView::New();
mNavigationView.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
- mNavigationView.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+ mNavigationView.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
mNavigationView.SetBackgroundColor( Color::WHITE );
- stage.Add( mNavigationView );
+ window.Add( mNavigationView );
CreateMainMenu();
mNavigationView.Push( mItemView );
*/
void OnKeyEvent( const KeyEvent& event )
{
- if( event.state == KeyEvent::Down )
+ if( event.GetState() == KeyEvent::DOWN )
{
if( IsKey( event, DALI_KEY_ESCAPE) || IsKey( event, DALI_KEY_BACK ) )
{
*/
void ReturnToPreviousScreen()
{
- if ( mItemView.OnStage() )
+ if ( mItemView.GetProperty< bool >( Actor::Property::CONNECTED_TO_SCENE ) )
{
// Quit the application if it is in the main menu
mApplication.Quit();