/*
- * Copyright (c) 2019 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.
#include <dali/dali.h>
#include <dali-toolkit/dali-toolkit.h>
+#include <dali-toolkit/devel-api/controls/table-view/table-view.h>
#include "shared/view.h"
#include <sstream>
// The Init signal is received once (only) during the Application lifetime
void Create( Application& application )
{
- // Hide the indicator bar
- application.GetWindow().ShowIndicator( Dali::Window::INVISIBLE );
+ Window window = mApplication.GetWindow();
+ window.KeyEventSignal().Connect( this, &BezierCurveExample::OnKeyEvent );
- Stage stage = Stage::GetCurrent();
- stage.KeyEventSignal().Connect( this, &BezierCurveExample::OnKeyEvent );
-
- CreateBackground(stage);
+ CreateBackground(window);
mControlPointScale = 0.5f;
mControlPointZoomScale = mControlPointScale * 2.0f;
mContentLayer = Layer::New();
mContentLayer.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
mContentLayer.TouchSignal().Connect(this, &BezierCurveExample::OnTouchLayer);
- mContentLayer.SetParentOrigin( ParentOrigin::CENTER );
- stage.Add( mContentLayer );
+ mContentLayer.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
+ window.Add( mContentLayer );
// 6 rows: title, grid, coords, play, anim1, anim2
TableView contentLayout = TableView::New(5, 1);
- contentLayout.SetName("contentLayout");
+ contentLayout.SetProperty( Dali::Actor::Property::NAME,"contentLayout");
contentLayout.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
contentLayout.SetCellPadding( Size( 30, 30 ) );
- contentLayout.SetParentOrigin(ParentOrigin::TOP_CENTER);
- contentLayout.SetAnchorPoint(AnchorPoint::TOP_CENTER);
+ contentLayout.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_CENTER);
+ contentLayout.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_CENTER);
mContentLayer.Add( contentLayout );
// Create a TextLabel for the application title.
mGrid.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::WIDTH );
mGrid.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
- mGrid.SetParentOrigin(ParentOrigin::CENTER);
- mGrid.SetAnchorPoint(AnchorPoint::CENTER);
+ mGrid.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::CENTER);
+ mGrid.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::CENTER);
mGrid.SetBackgroundColor(GRID_BACKGROUND_COLOR);
contentLayout.Add( mGrid );
mCoefficientLabel.SetProperty( TextLabel::Property::ENABLE_MARKUP, true );
mCoefficientLabel.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
mCoefficientLabel.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
- mCoefficientLabel.SetParentOrigin(ParentOrigin::CENTER);
+ mCoefficientLabel.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::CENTER);
contentLayout.Add( mCoefficientLabel );
SetLabel( Vector2(0,0), Vector2(1,1));
// Setup Play button and 2 icons to show off current anim and linear anim
PushButton play = PushButton::New();
- play.SetName("Play");
- play.SetParentOrigin(ParentOrigin::CENTER);
+ play.SetProperty( Dali::Actor::Property::NAME,"Play");
+ play.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::CENTER);
play.SetProperty( Button::Property::LABEL, "Play");
play.ClickedSignal().Connect( this, &BezierCurveExample::OnPlayClicked );
contentLayout.SetFitHeight(3);
auto animContainer = Control::New();
- animContainer.SetName("AnimationContainer");
- animContainer.SetParentOrigin( ParentOrigin::CENTER );
+ animContainer.SetProperty( Dali::Actor::Property::NAME,"AnimationContainer");
+ animContainer.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
animContainer.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
auto animRail = Control::New();
.Add( Visual::Property::TYPE, Visual::IMAGE )
.Add( ImageVisual::Property::URL, ANIMATION_BACKGROUND ) );
animRail.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
- animRail.SetSizeModeFactor( Vector3( 0.666f, 0.2f, 1.0f ) );
- animRail.SetParentOrigin( ParentOrigin::CENTER );
+ animRail.SetProperty( Actor::Property::SIZE_MODE_FACTOR, Vector3( 0.666f, 0.2f, 1.0f ) );
+ animRail.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
animContainer.Add( animRail );
contentLayout.Add( animContainer );
contentLayout.SetFixedHeight(4, 150 );
mAnimIcon1 = ImageView::New( CIRCLE1_IMAGE );
- mAnimIcon1.SetParentOrigin( ParentOrigin::CENTER );
- mAnimIcon1.SetAnchorPoint( AnchorPoint::CENTER );
+ mAnimIcon1.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
+ mAnimIcon1.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
// Would like some means of setting and animating position as a percentage of
// parent size without using constraints, but this will have to suffice for the moment.
UpdateCurve();
}
- void CreateBackground( Stage stage )
+ void CreateBackground( Window window )
{
Toolkit::Control background = Dali::Toolkit::Control::New();
- background.SetAnchorPoint( Dali::AnchorPoint::CENTER );
- background.SetParentOrigin( Dali::ParentOrigin::CENTER );
+ background.SetProperty( Actor::Property::ANCHOR_POINT, Dali::AnchorPoint::CENTER );
+ background.SetProperty( Actor::Property::PARENT_ORIGIN, Dali::ParentOrigin::CENTER );
background.SetResizePolicy( Dali::ResizePolicy::FILL_TO_PARENT, Dali::Dimension::ALL_DIMENSIONS );
Property::Map map;
map.Insert( Visual::Property::TYPE, Visual::COLOR );
map.Insert( ColorVisual::Property::MIX_COLOR, Vector4( 253/255.0f, 245/255.0f, 230/255.0f, 1.0f ) );
background.SetProperty( Dali::Toolkit::Control::Property::BACKGROUND, map );
- stage.Add( background );
+ window.Add( background );
}
void CreateCubic(Actor parent)
// Create a mesh to draw the cubic as a single line
mCurve = Actor::New();
mCurve.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
- mCurve.SetParentOrigin( ParentOrigin::CENTER );
+ mCurve.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
Shader shader = Shader::New( CURVE_VERTEX_SHADER, CURVE_FRAGMENT_SHADER );
Actor CreateControlPoint( Actor parent, const char* url, Vector3 position)
{
Actor actor = ImageView::New( url );
- actor.SetScale( mControlPointScale);
- actor.SetParentOrigin( ParentOrigin::CENTER );
+ actor.SetProperty( Actor::Property::SCALE, mControlPointScale);
+ actor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
// Curve and line drawing works off current value (i.e. last update frame's value). Need to animate to ensure
// initial position is baked to both frames before initially drawing the curve.
auto positionAnimation = Animation::New( 0.01f );
{
Actor line = Actor::New();
line.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
- line.SetParentOrigin( ParentOrigin::CENTER );
+ line.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
Shader shader = Shader::New( CURVE_VERTEX_SHADER, CURVE_FRAGMENT_SHADER );
Geometry geometry = Geometry::New();
mControlPoint1 = CreateControlPoint( parent,
CIRCLE1_IMAGE,
CONTROL_POINT1_ORIGIN );
- mControlPoint1Id = mControlPoint1.GetId();
+ mControlPoint1Id = mControlPoint1.GetProperty< int >( Actor::Property::ID );
mControlPoint2 = CreateControlPoint( parent,
CIRCLE2_IMAGE,
CONTROL_POINT2_ORIGIN );
- mControlPoint2Id = mControlPoint2.GetId();
+ mControlPoint2Id = mControlPoint2.GetProperty< int >( Actor::Property::ID );
Property::Map lineVertexFormat;
lineVertexFormat["aPosition"] = Property::VECTOR2;
{
TextLabel progressionLabel = TextLabel::New( "Progression" );
progressionLabel.SetProperty( TextLabel::Property::POINT_SIZE, AXIS_LABEL_POINT_SIZE );
- progressionLabel.SetOrientation( Degree(-90.0f), Vector3::ZAXIS );
- progressionLabel.SetAnchorPoint( AnchorPoint::BOTTOM_LEFT );
- progressionLabel.SetParentOrigin( ParentOrigin::BOTTOM_LEFT );
+ progressionLabel.SetProperty( Actor::Property::ORIENTATION, Quaternion( Radian( Degree(-90.0f) ), Vector3::ZAXIS ) );
+ progressionLabel.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::BOTTOM_LEFT );
+ progressionLabel.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::BOTTOM_LEFT );
CreateLine( progressionLabel, ParentOrigin::BOTTOM_LEFT );
TextLabel timeLabel = TextLabel::New( "Time" );
timeLabel.SetProperty( TextLabel::Property::POINT_SIZE, AXIS_LABEL_POINT_SIZE );
- timeLabel.SetAnchorPoint( AnchorPoint::TOP_LEFT );
- timeLabel.SetParentOrigin( ParentOrigin::BOTTOM_LEFT );
+ timeLabel.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+ timeLabel.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::BOTTOM_LEFT );
CreateLine( timeLabel, ParentOrigin::TOP_LEFT );
parent.Add( progressionLabel );
void CreateLine( Actor parent, const Vector3& parentOrigin )
{
Control control = Control::New();
- control.SetAnchorPoint( AnchorPoint::TOP_LEFT );
- control.SetParentOrigin( parentOrigin );
+ control.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT );
+ control.SetProperty( Actor::Property::PARENT_ORIGIN, parentOrigin );
control.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
control.SetProperty( Actor::Property::SIZE_HEIGHT, AXIS_LINE_SIZE );
control.SetBackgroundColor( Color::BLACK );
{
Vector3 gridSize = mGrid.GetProperty<Vector3>( Actor::Property::SIZE ); // Get target value
- pt1 = AlignToGrid( mControlPoint1.GetCurrentPosition(), gridSize );
- pt2 = AlignToGrid( mControlPoint2.GetCurrentPosition(), gridSize );
+ pt1 = AlignToGrid( mControlPoint1.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ), gridSize );
+ pt2 = AlignToGrid( mControlPoint2.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ), gridSize );
}
/**
void GetPoint( Actor actor, Vector2& point, Vector2& position)
{
auto gridSize = mGrid.GetProperty<Vector3>( Actor::Property::SIZE ); // Get target value
- auto currentPosition = actor.GetCurrentPosition(); // Get constrained current value
+ auto currentPosition = actor.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ); // Get constrained current value
position = Vector2( floor( currentPosition.x ), floor( currentPosition.y ) );
}
}
- bool OnTouchControlPoint( Actor controlPoint, const TouchData& event )
+ bool OnTouchControlPoint( Actor controlPoint, const TouchEvent& event )
{
if( event.GetPointCount() > 0 )
{
{
Vector2 screenPoint = event.GetScreenPosition( 0 );
mRelativeDragPoint = screenPoint;
- mRelativeDragPoint -= Vector2(controlPoint.GetCurrentPosition());
+ mRelativeDragPoint -= Vector2(controlPoint.GetCurrentProperty< Vector3 >( Actor::Property::POSITION ));
mDragActor = controlPoint;
mDragAnimation = Animation::New(0.25f);
mDragAnimation.AnimateTo( Property(mDragActor, Actor::Property::SCALE), Vector3( mControlPointZoomScale, mControlPointZoomScale, 1.0f), AlphaFunction::EASE_OUT);
return false; // Don't mark this as consumed - let the layer get the touch
}
- bool OnTouchLayer( Actor actor, const TouchData& event )
+ bool OnTouchLayer( Actor actor, const TouchEvent& event )
{
if( event.GetPointCount() > 0 )
{
{
Vector3 position( event.GetScreenPosition( 0 ) );
- mDragActor.SetPosition( position - Vector3( mRelativeDragPoint ) );
+ mDragActor.SetProperty( Actor::Property::POSITION, position - Vector3( mRelativeDragPoint ) );
if( event.GetState( 0 ) == PointState::UP ) // Stop dragging
{