Changes after TouchedSignal changes
[platform/core/uifw/dali-demo.git] / shared / dali-table-view.cpp
index 3760172..11f0c97 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
 
 // EXTERNAL INCLUDES
 #include <algorithm>
-#include <sstream>
-#include <unistd.h>
+#include <dali/devel-api/actors/actor-devel.h>
 #include <dali/devel-api/images/distance-field.h>
 #include <dali-toolkit/devel-api/shader-effects/alpha-discard-effect.h>
 #include <dali-toolkit/devel-api/shader-effects/distance-field-effect.h>
 #include <dali-toolkit/dali-toolkit.h>
 #include <dali-toolkit/devel-api/visual-factory/visual-factory.h>
+#include <dali-toolkit/devel-api/accessibility-manager/accessibility-manager.h>
+#include <dali-toolkit/devel-api/controls/table-view/table-view.h>
 
 // INTERNAL INCLUDES
-#include "shared/view.h"
+#include "shared/execute-process.h"
 #include "shared/utility.h"
+#include "shared/view.h"
 
 using namespace Dali;
 using namespace Dali::Toolkit;
@@ -103,11 +105,10 @@ const char * const DEMO_BUILD_DATE    = __DATE__ " " __TIME__;
 Control CreateBackground( std::string stylename )
 {
   Control background = Control::New();
-  Stage::GetCurrent().Add( background );
   background.SetStyleName( stylename );
-  background.SetName( "BACKGROUND" );
-  background.SetAnchorPoint( AnchorPoint::CENTER );
-  background.SetParentOrigin( ParentOrigin::CENTER );
+  background.SetProperty( Actor::Property::NAME, "BACKGROUND" );
+  background.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
+  background.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
   background.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
   return background;
 }
@@ -227,21 +228,22 @@ void DaliTableView::SortAlphabetically( bool sortAlphabetically )
 
 void DaliTableView::Initialize( Application& application )
 {
-  Stage::GetCurrent().KeyEventSignal().Connect( this, &DaliTableView::OnKeyEvent );
-  const Vector2 stageSize = Stage::GetCurrent().GetSize();
+  Window window = application.GetWindow();
+  window.KeyEventSignal().Connect( this, &DaliTableView::OnKeyEvent );
+  const Window::WindowSize windowSize = window.GetSize();
 
   // Background
   mRootActor = CreateBackground( "LauncherBackground" );
-  Stage::GetCurrent().Add( mRootActor );
+  window.Add( mRootActor );
 
   // Add logo
   ImageView logo = ImageView::New( LOGO_PATH );
-  logo.SetName( "LOGO_IMAGE" );
-  logo.SetAnchorPoint( AnchorPoint::TOP_CENTER );
-  logo.SetParentOrigin( Vector3( 0.5f, 0.1f, 0.5f ) );
+  logo.SetProperty( Actor::Property::NAME, "LOGO_IMAGE" );
+  logo.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_CENTER );
+  logo.SetProperty( Actor::Property::PARENT_ORIGIN, Vector3( 0.5f, 0.1f, 0.5f ) );
   logo.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS );
   // The logo should appear on top of everything.
-  logo.SetDrawMode( DrawMode::OVERLAY_2D );
+  logo.SetProperty( Actor::Property::DRAW_MODE, DrawMode::OVERLAY_2D );
   mRootActor.Add( logo );
 
   // Show version in a popup when log is tapped
@@ -251,27 +253,27 @@ void DaliTableView::Initialize( Application& application )
 
   // Scrollview occupying the majority of the screen
   mScrollView = ScrollView::New();
-  mScrollView.SetAnchorPoint( AnchorPoint::BOTTOM_CENTER );
-  mScrollView.SetParentOrigin( Vector3( 0.5f, 1.0f - 0.05f, 0.5f ) );
+  mScrollView.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::BOTTOM_CENTER );
+  mScrollView.SetProperty( Actor::Property::PARENT_ORIGIN, Vector3( 0.5f, 1.0f - 0.05f, 0.5f ) );
   mScrollView.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
   mScrollView.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::HEIGHT );
-  mScrollView.SetSizeModeFactor( Vector3( 0.0f, 0.6f, 0.0f ) );
+  mScrollView.SetProperty( Actor::Property::SIZE_MODE_FACTOR, Vector3( 0.0f, 0.6f, 0.0f ) );
 
-  const float buttonsPageMargin = ( 1.0f - TABLE_RELATIVE_SIZE.x ) * 0.5f * stageSize.width;
-  mScrollView.SetPadding( Padding( buttonsPageMargin, buttonsPageMargin, 0.0f, 0.0f ) );
+  const float buttonsPageMargin = ( 1.0f - TABLE_RELATIVE_SIZE.x ) * 0.5f * windowSize.GetWidth();
+  mScrollView.SetProperty( Actor::Property::PADDING, Padding( buttonsPageMargin, buttonsPageMargin, 0.0f, 0.0f ) );
 
   mScrollView.SetAxisAutoLock( true );
   mScrollView.ScrollCompletedSignal().Connect( this, &DaliTableView::OnScrollComplete );
   mScrollView.ScrollStartedSignal().Connect( this, &DaliTableView::OnScrollStart );
-  mScrollView.TouchSignal().Connect( this, &DaliTableView::OnScrollTouched );
+  mScrollView.TouchedSignal().Connect( this, &DaliTableView::OnScrollTouched );
 
-  mPageWidth = stageSize.width * TABLE_RELATIVE_SIZE.x * 0.5f;
+  mPageWidth = windowSize.GetWidth() * TABLE_RELATIVE_SIZE.x * 0.5f;
 
   // Populate background and bubbles - needs to be scrollViewLayer so scroll ends show
   Actor bubbleContainer = Actor::New();
   bubbleContainer.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
-  bubbleContainer.SetAnchorPoint( AnchorPoint::CENTER );
-  bubbleContainer.SetParentOrigin( ParentOrigin::CENTER );
+  bubbleContainer.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
+  bubbleContainer.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
   SetupBackground( bubbleContainer );
 
   mRootActor.Add( bubbleContainer );
@@ -287,17 +289,26 @@ void DaliTableView::Initialize( Application& application )
   ApplyCubeEffectToPages();
 
   Dali::Window winHandle = application.GetWindow();
-  winHandle.AddAvailableOrientation( Dali::Window::PORTRAIT );
-  winHandle.RemoveAvailableOrientation( Dali::Window::LANDSCAPE );
-  winHandle.AddAvailableOrientation( Dali::Window::PORTRAIT_INVERSE );
-  winHandle.RemoveAvailableOrientation( Dali::Window::LANDSCAPE_INVERSE );
+
+  if( windowSize.GetWidth() <= windowSize.GetHeight() )
+  {
+    winHandle.AddAvailableOrientation( Dali::Window::PORTRAIT );
+    winHandle.RemoveAvailableOrientation( Dali::Window::LANDSCAPE );
+    winHandle.AddAvailableOrientation( Dali::Window::PORTRAIT_INVERSE );
+    winHandle.RemoveAvailableOrientation( Dali::Window::LANDSCAPE_INVERSE );
+  }
+  else
+  {
+    winHandle.AddAvailableOrientation( Dali::Window::LANDSCAPE );
+    winHandle.RemoveAvailableOrientation( Dali::Window::PORTRAIT );
+    winHandle.AddAvailableOrientation( Dali::Window::LANDSCAPE_INVERSE );
+    winHandle.RemoveAvailableOrientation( Dali::Window::PORTRAIT_INVERSE );
+  }
 
   // Set initial orientation
   unsigned int degrees = 0;
   Rotate( degrees );
 
-  winHandle.ShowIndicator( Dali::Window::INVISIBLE );
-
   // Background animation
   mAnimationTimer = Timer::New( BACKGROUND_ANIMATION_DURATION );
   mAnimationTimer.TickSignal().Connect( this, &DaliTableView::PauseBackgroundAnimation );
@@ -320,10 +331,10 @@ void DaliTableView::CreateFocusEffect()
   {
     mFocusEffect[i].actor = ImageView::New();
     mFocusEffect[i].actor.SetStyleName( "FocusActor" );
-    mFocusEffect[i].actor.SetParentOrigin( ParentOrigin::CENTER );
+    mFocusEffect[i].actor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
     mFocusEffect[i].actor.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
-    mFocusEffect[i].actor.SetInheritScale( false );
-    mFocusEffect[i].actor.SetColorMode( USE_OWN_COLOR );
+    mFocusEffect[i].actor.SetProperty( Actor::Property::INHERIT_SCALE, false );
+    mFocusEffect[i].actor.SetProperty( Actor::Property::COLOR_MODE, USE_OWN_COLOR );
 
     KeyFrames alphaKeyFrames = KeyFrames::New();
     alphaKeyFrames.Add( 0.0f, KEYBOARD_FOCUS_FINAL_ALPHA );
@@ -347,9 +358,9 @@ void DaliTableView::CreateFocusEffect()
 
   keyboardFocusManager.SetFocusIndicatorActor( mFocusEffect[0].actor );
 
-  // Connect to the on & off stage signals of the indicator which represents when it is enabled & disabled respectively
-  mFocusEffect[0].actor.OnStageSignal().Connect( this, &DaliTableView::OnFocusIndicatorEnabled );
-  mFocusEffect[0].actor.OffStageSignal().Connect( this, &DaliTableView::OnFocusIndicatorDisabled );
+  // Connect to the on & off scene signals of the indicator which represents when it is enabled & disabled respectively
+  mFocusEffect[0].actor.OnSceneSignal().Connect( this, &DaliTableView::OnFocusIndicatorEnabled );
+  mFocusEffect[0].actor.OffSceneSignal().Connect( this, &DaliTableView::OnFocusIndicatorDisabled );
 }
 
 void DaliTableView::OnFocusIndicatorEnabled( Actor /* actor */ )
@@ -387,7 +398,7 @@ void DaliTableView::OnButtonsPageRelayout( const Dali::Actor& actor )
 
 void DaliTableView::Populate()
 {
-  const Vector2 stageSize = Stage::GetCurrent().GetSize();
+  const Window::WindowSize windowSize = mApplication.GetWindow().GetSize();
 
   mTotalPages = ( mExampleList.size() + EXAMPLES_PER_PAGE - 1 ) / EXAMPLES_PER_PAGE;
 
@@ -406,8 +417,8 @@ void DaliTableView::Populate()
     {
       // Create Table
       TableView page = TableView::New( ROWS_PER_PAGE, EXAMPLES_PER_ROW );
-      page.SetAnchorPoint( AnchorPoint::CENTER );
-      page.SetParentOrigin( ParentOrigin::CENTER );
+      page.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
+      page.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
       page.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
       mScrollView.Add( page );
 
@@ -432,7 +443,7 @@ void DaliTableView::Populate()
           accessibilityManager.SetAccessibilityAttribute( tile, Dali::Toolkit::AccessibilityManager::ACCESSIBILITY_HINT,
                                                   "You can run this example" );
 
-          tile.SetPadding( Padding( margin, margin, margin, margin ) );
+          tile.SetProperty( Actor::Property::PADDING, Padding( margin, margin, margin, margin ) );
           page.AddChild( tile, TableView::CellPosition( row, column ) );
 
           iter++;
@@ -461,7 +472,7 @@ void DaliTableView::Populate()
   // Update Ruler info.
   mScrollRulerX = new FixedRuler( mPageWidth );
   mScrollRulerY = new DefaultRuler();
-  mScrollRulerX->SetDomain( RulerDomain( 0.0f, (mTotalPages+1) * stageSize.width * TABLE_RELATIVE_SIZE.x * 0.5f, true ) );
+  mScrollRulerX->SetDomain( RulerDomain( 0.0f, (mTotalPages+1) * windowSize.GetWidth() * TABLE_RELATIVE_SIZE.x * 0.5f, true ) );
   mScrollRulerY->Disable();
   mScrollView.SetRulerX( mScrollRulerX );
   mScrollView.SetRulerY( mScrollRulerY );
@@ -470,12 +481,13 @@ void DaliTableView::Populate()
 void DaliTableView::Rotate( unsigned int degrees )
 {
   // Resize the root actor
-  Vector2 stageSize = Stage::GetCurrent().GetSize();
-  Vector3 targetSize( stageSize.x, stageSize.y, 1.0f );
+  const Window::WindowSize windowSize = mApplication.GetWindow().GetSize();
+  const Vector2 originalSize( windowSize.GetWidth(), windowSize.GetHeight() );
+  Vector3 targetSize( originalSize.x, originalSize.y, 1.0f );
 
   if( degrees == 90 || degrees == 270 )
   {
-    targetSize = Vector3( stageSize.y, stageSize.x, 1.0f );
+    targetSize = Vector3( originalSize.y, originalSize.x, 1.0f );
   }
 
   if( mRotateAnimation )
@@ -495,13 +507,13 @@ Actor DaliTableView::CreateTile( const std::string& name, const std::string& tit
   Toolkit::ImageView focusableTile = ImageView::New();
 
   focusableTile.SetStyleName( "DemoTile" );
-  focusableTile.SetParentOrigin( ParentOrigin::CENTER );
+  focusableTile.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
   focusableTile.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS );
-  focusableTile.SetSizeModeFactor( sizeMultiplier );
-  focusableTile.SetName( name );
+  focusableTile.SetProperty( Actor::Property::SIZE_MODE_FACTOR, sizeMultiplier );
+  focusableTile.SetProperty( Actor::Property::NAME, name );
 
   // Set the tile to be keyboard focusable
-  focusableTile.SetKeyboardFocusable( true );
+  focusableTile.SetProperty( Actor::Property::KEYBOARD_FOCUSABLE, true );
 
   // Register a property with the ImageView. This allows us to inject the scroll-view position into the shader.
   Property::Value value = Vector3( 0.0f, 0.0f, 0.0f );
@@ -511,22 +523,22 @@ Actor DaliTableView::CreateTile( const std::string& name, const std::string& tit
   // and pass it to the shader uniform, along with the tile's position.
   Constraint shaderPosition = Constraint::New < Vector3 > ( focusableTile, propertyIndex, TileShaderPositionConstraint( mPageWidth, position.x ) );
   shaderPosition.AddSource( Source( mScrollView, ScrollView::Property::SCROLL_POSITION ) );
-  shaderPosition.SetRemoveAction( Constraint::Discard );
+  shaderPosition.SetRemoveAction( Constraint::DISCARD );
   shaderPosition.Apply();
   //focusableTile.Add( tileContent );
 
   // Create an ImageView for the 9-patch border around the tile.
   ImageView borderImage = ImageView::New();
   borderImage.SetStyleName("DemoTileBorder");
-  borderImage.SetAnchorPoint( AnchorPoint::CENTER );
-  borderImage.SetParentOrigin( ParentOrigin::CENTER );
+  borderImage.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
+  borderImage.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
   borderImage.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
-  borderImage.SetOpacity( 0.8f );
+  borderImage.SetProperty( Actor::Property::OPACITY, 0.8f );
   focusableTile.Add( borderImage );
 
   TextLabel label = TextLabel::New();
-  label.SetAnchorPoint( AnchorPoint::CENTER );
-  label.SetParentOrigin( ParentOrigin::CENTER );
+  label.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
+  label.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
   label.SetStyleName( "LauncherLabel" );
   label.SetProperty( TextLabel::Property::MULTI_LINE, true );
   label.SetProperty( TextLabel::Property::TEXT, title );
@@ -535,17 +547,17 @@ Actor DaliTableView::CreateTile( const std::string& name, const std::string& tit
   label.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::HEIGHT );
 
   // Pad around the label as its size is the same as the 9-patch border. It will overlap it without padding.
-  label.SetPadding( Padding( TILE_LABEL_PADDING, TILE_LABEL_PADDING, TILE_LABEL_PADDING, TILE_LABEL_PADDING ) );
+  label.SetProperty( Actor::Property::PADDING, Padding( TILE_LABEL_PADDING, TILE_LABEL_PADDING, TILE_LABEL_PADDING, TILE_LABEL_PADDING ) );
   focusableTile.Add( label );
 
   // Connect to the touch events
-  focusableTile.TouchSignal().Connect( this, &DaliTableView::OnTilePressed );
+  focusableTile.TouchedSignal().Connect( this, &DaliTableView::OnTilePressed );
   focusableTile.HoveredSignal().Connect( this, &DaliTableView::OnTileHovered );
 
   return focusableTile;
 }
 
-bool DaliTableView::OnTilePressed( Actor actor, const TouchData& event )
+bool DaliTableView::OnTilePressed( Actor actor, const TouchEvent& event )
 {
   return DoTilePress( actor, event.GetState( 0 ) );
 }
@@ -568,7 +580,7 @@ bool DaliTableView::DoTilePress( Actor actor, PointState::Type pointState )
     // ignore Example button presses when scrolling or button animating.
     if( ( !mScrolling ) && ( !mPressedAnimation ) )
     {
-      std::string name = actor.GetName();
+      std::string name = actor.GetProperty< std::string >( Dali::Actor::Property::NAME );
       const ExampleListIter end = mExampleList.end();
       for( ExampleListIter iter = mExampleList.begin(); iter != end; ++iter )
       {
@@ -584,7 +596,7 @@ bool DaliTableView::DoTilePress( Actor actor, PointState::Type pointState )
     if( consumed )
     {
       mPressedAnimation = Animation::New( BUTTON_PRESS_ANIMATION_TIME );
-      mPressedAnimation.SetEndAction( Animation::Discard );
+      mPressedAnimation.SetEndAction( Animation::DISCARD );
 
       // scale the content actor within the Tile, as to not affect the placement within the Table.
       Actor content = actor.GetChildAt(0);
@@ -608,16 +620,10 @@ void DaliTableView::OnPressedAnimationFinished( Dali::Animation& source )
   mPressedAnimation.Reset();
   if( mPressedActor )
   {
-    std::string name = mPressedActor.GetName();
+    std::string name = mPressedActor.GetProperty< std::string >( Dali::Actor::Property::NAME );
+
+    ExecuteProcess( name, mApplication );
 
-    std::stringstream stream;
-    stream << DEMO_EXAMPLE_BIN << name.c_str();
-    pid_t pid = fork();
-    if( pid == 0)
-    {
-      execlp( stream.str().c_str(), name.c_str(), NULL );
-      DALI_ASSERT_ALWAYS(false && "exec failed!");
-    }
     mPressedActor.Reset();
   }
 }
@@ -638,7 +644,7 @@ void DaliTableView::OnScrollComplete( const Dali::Vector2& position )
   accessibilityManager.SetCurrentFocusActor(mPages[mScrollView.GetCurrentPage()].GetChildAt(0) );
 }
 
-bool DaliTableView::OnScrollTouched( Actor actor, const TouchData& event )
+bool DaliTableView::OnScrollTouched( Actor actor, const TouchEvent& event )
 {
   if( PointState::DOWN == event.GetState( 0 ) )
   {
@@ -665,34 +671,35 @@ void DaliTableView::ApplyScrollViewEffect()
 
 void DaliTableView::SetupInnerPageCubeEffect()
 {
-  const Vector2 stageSize = Stage::GetCurrent().GetSize();
+  const Window::WindowSize windowDimensions = mApplication.GetWindow().GetSize();
+  const Vector2 windowSize(windowDimensions.GetWidth(), windowDimensions.GetHeight());
 
   Dali::Path path = Dali::Path::New();
   Dali::Property::Array points;
   points.Resize(3);
-  points[0] = Vector3( stageSize.x*0.5, 0.0f,  stageSize.x*0.5f);
+  points[0] = Vector3( windowSize.x*0.5, 0.0f,  windowSize.x*0.5f);
   points[1] = Vector3( 0.0f, 0.0f, 0.0f );
-  points[2] = Vector3( -stageSize.x*0.5f, 0.0f, stageSize.x*0.5f);
+  points[2] = Vector3( -windowSize.x*0.5f, 0.0f, windowSize.x*0.5f);
   path.SetProperty( Path::Property::POINTS, points );
 
   Dali::Property::Array controlPoints;
   controlPoints.Resize(4);
-  controlPoints[0] = Vector3( stageSize.x*0.5f, 0.0f, stageSize.x*0.3f );
-  controlPoints[1] = Vector3( stageSize.x*0.3f, 0.0f, 0.0f );
-  controlPoints[2] = Vector3(-stageSize.x*0.3f, 0.0f, 0.0f );
-  controlPoints[3] = Vector3(-stageSize.x*0.5f, 0.0f,  stageSize.x*0.3f );
+  controlPoints[0] = Vector3( windowSize.x*0.5f, 0.0f, windowSize.x*0.3f );
+  controlPoints[1] = Vector3( windowSize.x*0.3f, 0.0f, 0.0f );
+  controlPoints[2] = Vector3(-windowSize.x*0.3f, 0.0f, 0.0f );
+  controlPoints[3] = Vector3(-windowSize.x*0.5f, 0.0f,  windowSize.x*0.3f );
   path.SetProperty( Path::Property::CONTROL_POINTS, controlPoints );
 
 
   mScrollViewEffect = ScrollViewPagePathEffect::New(path,
                                                     Vector3(-1.0f,0.0f,0.0f),
                                                     Toolkit::ScrollView::Property::SCROLL_FINAL_X,
-                                                    Vector3(stageSize.x*TABLE_RELATIVE_SIZE.x,stageSize.y*TABLE_RELATIVE_SIZE.y,0.0f),mTotalPages);
+                                                    Vector3(windowSize.x*TABLE_RELATIVE_SIZE.x,windowSize.y*TABLE_RELATIVE_SIZE.y,0.0f),mTotalPages);
 }
 
 void DaliTableView::OnKeyEvent( const KeyEvent& event )
 {
-  if( event.state == KeyEvent::Down )
+  if( event.GetState() == KeyEvent::DOWN )
   {
     if ( IsKey( event, Dali::DALI_KEY_ESCAPE) || IsKey( event, Dali::DALI_KEY_BACK) )
     {
@@ -734,14 +741,14 @@ void DaliTableView::InitialiseBackgroundActors( Actor actor )
                       Random::Range( -size.y, size.y ),
                       Random::Range( BUBBLE_MIN_Z, BUBBLE_MAX_Z ) );
 
-    child.SetPosition( childPos );
+    child.SetProperty( Actor::Property::POSITION, childPos );
 
     // Define bubble horizontal parallax and vertical wrapping
     Constraint animConstraint = Constraint::New < Vector3 > ( child, Actor::Property::POSITION, AnimateBubbleConstraint( childPos, Random::Range( -0.85f, 0.25f ) ) );
     animConstraint.AddSource( Source( mScrollView, ScrollView::Property::SCROLL_POSITION ) );
     animConstraint.AddSource( Dali::ParentSource( Dali::Actor::Property::SIZE ) );
     animConstraint.AddSource( Dali::LocalSource( Dali::Actor::Property::SIZE ) );
-    animConstraint.SetRemoveAction( Constraint::Discard );
+    animConstraint.SetRemoveAction( Constraint::DISCARD );
     animConstraint.Apply();
 
     // Kickoff animation
@@ -761,8 +768,8 @@ void DaliTableView::AddBackgroundActors( Actor layer, int count )
     int shapeType = static_cast<int>( Random::Range( 0.0f, NUMBER_OF_SHAPE_IMAGES - 1 ) + 0.5f );
 
     ImageView dfActor = ImageView::New();
-    dfActor.SetSize( Vector2( randSize, randSize ) );
-    dfActor.SetParentOrigin( ParentOrigin::CENTER );
+    dfActor.SetProperty( Actor::Property::SIZE, Vector2( randSize, randSize ) );
+    dfActor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
 
     // Set the Image URL and the custom shader at the same time
     Dali::Property::Map effect = Toolkit::CreateDistanceFieldEffect();
@@ -911,26 +918,26 @@ void DaliTableView::OnLogoTapped( Dali::Actor actor, const Dali::TapGesture& tap
       mVersionPopup = Dali::Toolkit::Popup::New();
 
       Toolkit::TextLabel titleActor = Toolkit::TextLabel::New( "Version information" );
-      titleActor.SetName( "titleActor" );
+      titleActor.SetProperty( Actor::Property::NAME, "titleActor" );
       titleActor.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, HorizontalAlignment::CENTER );
       titleActor.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::WHITE );
 
       Toolkit::TextLabel contentActor = Toolkit::TextLabel::New( stream.str() );
-      contentActor.SetName( "contentActor" );
+      contentActor.SetProperty( Actor::Property::NAME, "contentActor" );
       contentActor.SetProperty( Toolkit::TextLabel::Property::MULTI_LINE, true );
       contentActor.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, HorizontalAlignment::CENTER );
       contentActor.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::WHITE );
-      contentActor.SetPadding( Padding( 0.0f, 0.0f, 20.0f, 0.0f ) );
+      contentActor.SetProperty( Actor::Property::PADDING, Padding( 0.0f, 0.0f, 20.0f, 0.0f ) );
 
       mVersionPopup.SetTitle( titleActor );
       mVersionPopup.SetContent( contentActor );
 
       mVersionPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::WIDTH );
-      mVersionPopup.SetSizeModeFactor( Vector3( 0.75f, 1.0f, 1.0f ) );
+      mVersionPopup.SetProperty( Actor::Property::SIZE_MODE_FACTOR, Vector3( 0.75f, 1.0f, 1.0f ) );
       mVersionPopup.SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::HEIGHT );
 
       mVersionPopup.OutsideTouchedSignal().Connect( this, &DaliTableView::HideVersionPopup );
-      Stage::GetCurrent().Add( mVersionPopup );
+      mApplication.GetWindow().Add( mVersionPopup );
     }
 
     mVersionPopup.SetDisplayState( Popup::SHOWN );