Changes after TouchedSignal changes
[platform/core/uifw/dali-demo.git] / examples / scroll-view / scroll-view-example.cpp
index 9bdb300..effe458 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015 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.
@@ -28,11 +28,17 @@ using namespace Dali::Toolkit;
 
 namespace
 {
-const char * const BACKGROUND_IMAGE( DALI_IMAGE_DIR "background-default.png" );
-const char * const TOOLBAR_IMAGE( DALI_IMAGE_DIR "top-bar.png" );
+const char * const BACKGROUND_IMAGE( DEMO_IMAGE_DIR "background-default.png" );
+const char * const TOOLBAR_IMAGE( DEMO_IMAGE_DIR "top-bar.png" );
 const char * const APPLICATION_TITLE( "ScrollView" );
-const char * const EFFECT_CAROUSEL_IMAGE( DALI_IMAGE_DIR "icon-scroll-view-carousel.png" );
-const char * const EFFECT_CAROUSEL_IMAGE_SELECTED( DALI_IMAGE_DIR "icon-scroll-view-carousel-selected.png" );
+const char * const EFFECT_CAROUSEL_IMAGE( DEMO_IMAGE_DIR "icon-scroll-view-carousel.png" );
+const char * const EFFECT_CAROUSEL_IMAGE_SELECTED( DEMO_IMAGE_DIR "icon-scroll-view-carousel-selected.png" );
+const char * const EFFECT_CUBE_IMAGE( DEMO_IMAGE_DIR "icon-scroll-view-inner-cube.png" );
+const char * const EFFECT_CUBE_IMAGE_SELECTED( DEMO_IMAGE_DIR "icon-scroll-view-inner-cube-selected.png" );
+const char * const EFFECT_SPIRAL_IMAGE( DEMO_IMAGE_DIR "icon-scroll-view-spiral.png" );
+const char * const EFFECT_SPIRAL_IMAGE_SELECTED( DEMO_IMAGE_DIR "icon-scroll-view-spiral-selected.png" );
+const char * const EFFECT_WAVE_IMAGE( DEMO_IMAGE_DIR "icon-effect-wave.png" );
+const char * const EFFECT_WAVE_IMAGE_SELECTED( DEMO_IMAGE_DIR "icon-effect-wave-selected.png" );
 
 const Vector3 ICON_SIZE(100.0f, 100.0f, 0.0f);
 
@@ -44,59 +50,59 @@ const char* EFFECT_MODE_NAME[] = {
 };
 
 const char * const IMAGE_PATHS[] = {
-    DALI_IMAGE_DIR "gallery-medium-1.jpg",
-    DALI_IMAGE_DIR "gallery-medium-2.jpg",
-    DALI_IMAGE_DIR "gallery-medium-3.jpg",
-    DALI_IMAGE_DIR "gallery-medium-4.jpg",
-    DALI_IMAGE_DIR "gallery-medium-5.jpg",
-    DALI_IMAGE_DIR "gallery-medium-6.jpg",
-    DALI_IMAGE_DIR "gallery-medium-7.jpg",
-    DALI_IMAGE_DIR "gallery-medium-8.jpg",
-    DALI_IMAGE_DIR "gallery-medium-9.jpg",
-    DALI_IMAGE_DIR "gallery-medium-10.jpg",
-    DALI_IMAGE_DIR "gallery-medium-11.jpg",
-    DALI_IMAGE_DIR "gallery-medium-12.jpg",
-    DALI_IMAGE_DIR "gallery-medium-13.jpg",
-    DALI_IMAGE_DIR "gallery-medium-14.jpg",
-    DALI_IMAGE_DIR "gallery-medium-15.jpg",
-    DALI_IMAGE_DIR "gallery-medium-16.jpg",
-    DALI_IMAGE_DIR "gallery-medium-17.jpg",
-    DALI_IMAGE_DIR "gallery-medium-18.jpg",
-    DALI_IMAGE_DIR "gallery-medium-19.jpg",
-    DALI_IMAGE_DIR "gallery-medium-20.jpg",
-    DALI_IMAGE_DIR "gallery-medium-21.jpg",
-    DALI_IMAGE_DIR "gallery-medium-22.jpg",
-    DALI_IMAGE_DIR "gallery-medium-23.jpg",
-    DALI_IMAGE_DIR "gallery-medium-24.jpg",
-    DALI_IMAGE_DIR "gallery-medium-25.jpg",
-    DALI_IMAGE_DIR "gallery-medium-26.jpg",
-    DALI_IMAGE_DIR "gallery-medium-27.jpg",
-    DALI_IMAGE_DIR "gallery-medium-28.jpg",
-    DALI_IMAGE_DIR "gallery-medium-29.jpg",
-    DALI_IMAGE_DIR "gallery-medium-30.jpg",
-    DALI_IMAGE_DIR "gallery-medium-31.jpg",
-    DALI_IMAGE_DIR "gallery-medium-32.jpg",
-    DALI_IMAGE_DIR "gallery-medium-33.jpg",
-    DALI_IMAGE_DIR "gallery-medium-34.jpg",
-    DALI_IMAGE_DIR "gallery-medium-35.jpg",
-    DALI_IMAGE_DIR "gallery-medium-36.jpg",
-    DALI_IMAGE_DIR "gallery-medium-37.jpg",
-    DALI_IMAGE_DIR "gallery-medium-38.jpg",
-    DALI_IMAGE_DIR "gallery-medium-39.jpg",
-    DALI_IMAGE_DIR "gallery-medium-40.jpg",
-    DALI_IMAGE_DIR "gallery-medium-41.jpg",
-    DALI_IMAGE_DIR "gallery-medium-42.jpg",
-    DALI_IMAGE_DIR "gallery-medium-43.jpg",
-    DALI_IMAGE_DIR "gallery-medium-44.jpg",
-    DALI_IMAGE_DIR "gallery-medium-45.jpg",
-    DALI_IMAGE_DIR "gallery-medium-46.jpg",
-    DALI_IMAGE_DIR "gallery-medium-47.jpg",
-    DALI_IMAGE_DIR "gallery-medium-48.jpg",
-    DALI_IMAGE_DIR "gallery-medium-49.jpg",
-    DALI_IMAGE_DIR "gallery-medium-50.jpg",
-    DALI_IMAGE_DIR "gallery-medium-51.jpg",
-    DALI_IMAGE_DIR "gallery-medium-52.jpg",
-    DALI_IMAGE_DIR "gallery-medium-53.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-1.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-2.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-3.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-4.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-5.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-6.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-7.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-8.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-9.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-10.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-11.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-12.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-13.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-14.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-15.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-16.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-17.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-18.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-19.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-20.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-21.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-22.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-23.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-24.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-25.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-26.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-27.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-28.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-29.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-30.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-31.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-32.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-33.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-34.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-35.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-36.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-37.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-38.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-39.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-40.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-41.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-42.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-43.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-44.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-45.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-46.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-47.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-48.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-49.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-50.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-51.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-52.jpg",
+    DEMO_IMAGE_DIR "gallery-medium-53.jpg",
 
     NULL
 };
@@ -158,14 +164,11 @@ public:
    */
   void OnInit(Application& app)
   {
-    Stage stage = Dali::Stage::GetCurrent();
-    stage.KeyEventSignal().Connect(this, &ExampleController::OnKeyEvent);
-
-    // Hide the indicator bar
-    mApplication.GetWindow().ShowIndicator(Dali::Window::INVISIBLE);
+    Window window = app.GetWindow();
+    window.KeyEventSignal().Connect(this, &ExampleController::OnKeyEvent);
 
     // Creates a default view with a default tool bar.
-    // The view is added to the stage.
+    // The view is added to the window.
     mContentLayer = DemoHelper::CreateView( app,
                                             mView,
                                             mToolBar,
@@ -175,17 +178,17 @@ public:
 
     mEffectIcon[ PageCarouselEffect ] = EFFECT_CAROUSEL_IMAGE;
     mEffectIconSelected[ PageCarouselEffect ] = EFFECT_CAROUSEL_IMAGE_SELECTED;
-    mEffectIcon[ PageCubeEffect ]     = EFFECT_CAROUSEL_IMAGE;
-    mEffectIconSelected[ PageCubeEffect ]     = EFFECT_CAROUSEL_IMAGE_SELECTED;
-    mEffectIcon[ PageSpiralEffect ]   = EFFECT_CAROUSEL_IMAGE;
-    mEffectIconSelected[ PageSpiralEffect ]   = EFFECT_CAROUSEL_IMAGE_SELECTED;
-    mEffectIcon[ PageWaveEffect ]     = EFFECT_CAROUSEL_IMAGE;
-    mEffectIconSelected[ PageWaveEffect ]     = EFFECT_CAROUSEL_IMAGE_SELECTED;
+    mEffectIcon[ PageCubeEffect ]     = EFFECT_CUBE_IMAGE;
+    mEffectIconSelected[ PageCubeEffect ]     = EFFECT_CUBE_IMAGE_SELECTED;
+    mEffectIcon[ PageSpiralEffect ]   = EFFECT_SPIRAL_IMAGE;
+    mEffectIconSelected[ PageSpiralEffect ]   = EFFECT_SPIRAL_IMAGE_SELECTED;
+    mEffectIcon[ PageWaveEffect ]     = EFFECT_WAVE_IMAGE;
+    mEffectIconSelected[ PageWaveEffect ]     = EFFECT_WAVE_IMAGE_SELECTED;
 
     // Create a effect change button. (right of toolbar)
     mEffectChangeButton = Toolkit::PushButton::New();
     mEffectChangeButton.ClickedSignal().Connect( this, &ExampleController::OnEffectTouched );
-    mToolBar.AddControl( mEffectChangeButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, Toolkit::Alignment::HorizontalRight, DemoHelper::DEFAULT_MODE_SWITCH_PADDING  );
+    mToolBar.AddControl( mEffectChangeButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, Toolkit::Alignment::HORIZONTAL_RIGHT, DemoHelper::DEFAULT_MODE_SWITCH_PADDING  );
 
     // Create the content layer.
     AddContentLayer();
@@ -204,14 +207,14 @@ private:
    */
   void AddContentLayer()
   {
-    Stage stage = Stage::GetCurrent();
-    Vector2 stageSize = stage.GetSize();
+    Window window = mApplication.GetWindow();
+    Vector2 windowSize = window.GetSize();
 
     mScrollView = ScrollView::New();
-    mScrollView.SetAnchorPoint(AnchorPoint::CENTER);
-    mScrollView.SetParentOrigin(ParentOrigin::CENTER);
+    mScrollView.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::CENTER);
+    mScrollView.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::CENTER);
     mContentLayer.Add( mScrollView );
-    mScrollView.SetSize( stageSize );
+    mScrollView.SetProperty( Actor::Property::SIZE, windowSize );
     mScrollView.SetAxisAutoLock( true );
     mScrollView.SetAxisAutoLockGradient( 1.0f );
 
@@ -224,7 +227,7 @@ private:
       {
         Actor page = CreatePage();
 
-        page.SetPosition( column * stageSize.x, row * stageSize.y );
+        page.SetProperty( Actor::Property::POSITION, Vector2( column * windowSize.x, row * windowSize.y ));
         mScrollView.Add( page );
 
         mPages.push_back(page);
@@ -244,8 +247,8 @@ private:
     ss << APPLICATION_TITLE << ": " << EFFECT_MODE_NAME[mEffectMode];
     SetTitle(ss.str());
 
-    mEffectChangeButton.SetUnselectedImage( mEffectIcon[ mEffectMode ] );
-    mEffectChangeButton.SetSelectedImage( mEffectIconSelected[ mEffectMode ] );
+    mEffectChangeButton.SetProperty( Toolkit::Button::Property::UNSELECTED_BACKGROUND_VISUAL, mEffectIcon[ mEffectMode ] );
+    mEffectChangeButton.SetProperty( Toolkit::Button::Property::SELECTED_BACKGROUND_VISUAL, mEffectIconSelected[ mEffectMode ] );
 
     // remove old Effect if exists.
     if(mScrollViewEffect)
@@ -270,17 +273,17 @@ private:
   {
     Actor page = Actor::New();
     page.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
-    page.SetParentOrigin( ParentOrigin::CENTER );
-    page.SetAnchorPoint( AnchorPoint::CENTER );
+    page.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
+    page.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
 
-    Stage stage = Stage::GetCurrent();
-    Vector2 stageSize = stage.GetSize();
+    Window window = mApplication.GetWindow();
+    Vector2 windowSize = window.GetSize();
 
     const float margin = 10.0f;
 
-    // Calculate the number of images going across (columns) within a page, according to the screen resolution and dpi.
-    int imageColumns = round(IMAGE_ROWS * (stageSize.x / stage.GetDpi().x) / (stageSize.y / stage.GetDpi().y));
-    const Vector3 imageSize((stageSize.x / imageColumns) - margin, (stageSize.y / IMAGE_ROWS) - margin, 0.0f);
+    // Calculate the number of images going across (columns) within a page, according to the screen resolution
+    int imageColumns = round(IMAGE_ROWS * (windowSize.x / windowSize.y));
+    const Vector3 imageSize((windowSize.x / imageColumns) - margin, (windowSize.y / IMAGE_ROWS) - margin, 0.0f);
 
     for(int row = 0;row<IMAGE_ROWS;row++)
     {
@@ -288,14 +291,14 @@ private:
       {
         ImageView image = CreateImage( GetNextImagePath(), imageSize.x, imageSize.y );
 
-        image.SetParentOrigin( ParentOrigin::CENTER );
-        image.SetAnchorPoint( AnchorPoint::CENTER );
+        image.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
+        image.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
 
-        Vector3 position( margin * 0.5f + (imageSize.x + margin) * column - stageSize.width * 0.5f,
-                         margin * 0.5f + (imageSize.y + margin) * row - stageSize.height * 0.5f,
+        Vector3 position( margin * 0.5f + (imageSize.x + margin) * column - windowSize.width * 0.5f,
+                         margin * 0.5f + (imageSize.y + margin) * row - windowSize.height * 0.5f,
                           0.0f);
-        image.SetPosition( position + imageSize * 0.5f );
-        image.SetSize( imageSize );
+        image.SetProperty( Actor::Property::POSITION, position + imageSize * 0.5f );
+        image.SetProperty( Actor::Property::SIZE, imageSize );
         page.Add(image);
       }
     }
@@ -311,12 +314,12 @@ private:
   {
     bool snap(true);
 
-    Stage stage = Stage::GetCurrent();
-    Vector2 stageSize = stage.GetSize();
+    Window window = mApplication.GetWindow();
+    Vector2 windowSize = window.GetSize();
 
-    RulerPtr rulerX = CreateRuler(snap ? stageSize.width : 0.0f);
+    RulerPtr rulerX = CreateRuler(snap ? windowSize.width : 0.0f);
     RulerPtr rulerY = new DefaultRuler;
-    rulerX->SetDomain(RulerDomain(0.0f, stageSize.x * PAGE_COLUMNS, false));
+    rulerX->SetDomain(RulerDomain(0.0f, windowSize.x * PAGE_COLUMNS, false));
     rulerY->Disable();
 
     Dali::Path path = Dali::Path::New();
@@ -328,74 +331,74 @@ private:
     if( mEffectMode == PageCarouselEffect)
     {
 
-      points[0] = Vector3( stageSize.x*0.75, 0.0f,  -stageSize.x*0.75f);
+      points[0] = Vector3( windowSize.x*0.75, 0.0f,  -windowSize.x*0.75f);
       points[1] = Vector3( 0.0f, 0.0f, 0.0f );
-      points[2] = Vector3( -stageSize.x*0.75f, 0.0f,  -stageSize.x*0.75f);
+      points[2] = Vector3( -windowSize.x*0.75f, 0.0f,  -windowSize.x*0.75f);
       path.SetProperty( Path::Property::POINTS, points );
 
-      controlPoints[0] = Vector3( stageSize.x*0.5f, 0.0f, 0.0f );
-      controlPoints[1] = Vector3( stageSize.x*0.5f, 0.0f, 0.0f );
-      controlPoints[2] = Vector3(-stageSize.x*0.5f, 0.0f, 0.0f );
-      controlPoints[3] = Vector3(-stageSize.x*0.5f, 0.0f, 0.0f );
+      controlPoints[0] = Vector3( windowSize.x*0.5f, 0.0f, 0.0f );
+      controlPoints[1] = Vector3( windowSize.x*0.5f, 0.0f, 0.0f );
+      controlPoints[2] = Vector3(-windowSize.x*0.5f, 0.0f, 0.0f );
+      controlPoints[3] = Vector3(-windowSize.x*0.5f, 0.0f, 0.0f );
       path.SetProperty( Path::Property::CONTROL_POINTS, controlPoints );
 
       forward = Vector3::ZERO;
     }
     else if( mEffectMode == PageCubeEffect)
     {
-      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 );
 
-      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 );
 
       forward = Vector3(-1.0f,0.0f,0.0f);
     }
     else if( mEffectMode == PageSpiralEffect)
     {
-      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 );
 
-      controlPoints[0] = Vector3( stageSize.x*0.5f, 0.0f, 0.0f );
-      controlPoints[1] = Vector3( stageSize.x*0.5f, 0.0f, 0.0f );
-      controlPoints[2] = Vector3(-stageSize.x*0.5f, 0.0f, 0.0f );
-      controlPoints[3] = Vector3(-stageSize.x*0.5f, 0.0f, 0.0f );
+      controlPoints[0] = Vector3( windowSize.x*0.5f, 0.0f, 0.0f );
+      controlPoints[1] = Vector3( windowSize.x*0.5f, 0.0f, 0.0f );
+      controlPoints[2] = Vector3(-windowSize.x*0.5f, 0.0f, 0.0f );
+      controlPoints[3] = Vector3(-windowSize.x*0.5f, 0.0f, 0.0f );
       path.SetProperty( Path::Property::CONTROL_POINTS, controlPoints );
 
       forward = Vector3(-1.0f,0.0f,0.0f);
     }
     else if( mEffectMode == PageWaveEffect)
     {
-      points[0] = Vector3( stageSize.x, 0.0f,  -stageSize.x);
+      points[0] = Vector3( windowSize.x, 0.0f,  -windowSize.x);
       points[1] = Vector3( 0.0f, 0.0f, 0.0f );
-      points[2] = Vector3( -stageSize.x, 0.0f, -stageSize.x);
+      points[2] = Vector3( -windowSize.x, 0.0f, -windowSize.x);
       path.SetProperty( Path::Property::POINTS, points );
 
-      controlPoints[0] = Vector3( 0.0f, 0.0f, -stageSize.x );
-      controlPoints[1] = Vector3( stageSize.x*0.5f, 0.0f, 0.0f );
-      controlPoints[2] = Vector3( -stageSize.x*0.5f, 0.0f, 0.0f);
-      controlPoints[3] = Vector3(0.0f, 0.0f,-stageSize.x  );
+      controlPoints[0] = Vector3( 0.0f, 0.0f, -windowSize.x );
+      controlPoints[1] = Vector3( windowSize.x*0.5f, 0.0f, 0.0f );
+      controlPoints[2] = Vector3( -windowSize.x*0.5f, 0.0f, 0.0f);
+      controlPoints[3] = Vector3(0.0f, 0.0f,-windowSize.x  );
       path.SetProperty( Path::Property::CONTROL_POINTS, controlPoints );
 
       forward = Vector3(-1.0f,0.0f,0.0f);
     }
 
-    mScrollViewEffect = ScrollViewPagePathEffect::New(path, forward,Toolkit::ScrollView::Property::SCROLL_FINAL_X, Vector3(stageSize.x,stageSize.y,0.0f),PAGE_COLUMNS);
+    mScrollViewEffect = ScrollViewPagePathEffect::New(path, forward,Toolkit::ScrollView::Property::SCROLL_FINAL_X, Vector3(windowSize.x,windowSize.y,0.0f),PAGE_COLUMNS);
     mScrollView.SetScrollSnapDuration(EFFECT_SNAP_DURATION);
     mScrollView.SetScrollFlickDuration(EFFECT_FLICK_DURATION);
     mScrollView.SetScrollSnapAlphaFunction(AlphaFunction::EASE_OUT);
     mScrollView.SetScrollFlickAlphaFunction(AlphaFunction::EASE_OUT);
     mScrollView.RemoveConstraintsFromChildren();
 
-    rulerX = CreateRuler(snap ? stageSize.width * 0.5f : 0.0f);
-    rulerX->SetDomain( RulerDomain( 0.0f, stageSize.x * 0.5f * PAGE_COLUMNS, false ) );
+    rulerX = CreateRuler(snap ? windowSize.width * 0.5f : 0.0f);
+    rulerX->SetDomain( RulerDomain( 0.0f, windowSize.x * 0.5f * PAGE_COLUMNS, false ) );
 
     unsigned int currentPage = mScrollView.GetCurrentPage();
     if( mScrollViewEffect )
@@ -450,14 +453,21 @@ private:
    * @param[in] width the width of the image in texels
    * @param[in] height the height of the image in texels.
    */
-  ImageView CreateImage( const std::string& filename, unsigned int width = IMAGE_THUMBNAIL_WIDTH, unsigned int height = IMAGE_THUMBNAIL_HEIGHT )
+  ImageView CreateImage( const std::string& filename, int width = IMAGE_THUMBNAIL_WIDTH, int height = IMAGE_THUMBNAIL_HEIGHT )
   {
-    Image img = ResourceImage::New(filename, ImageDimensions( width, height ), Dali::FittingMode::SCALE_TO_FILL, Dali::SamplingMode::BOX_THEN_LINEAR );
-
-    ImageView actor = ImageView::New(img);
-    actor.SetName( filename );
-    actor.SetParentOrigin(ParentOrigin::CENTER);
-    actor.SetAnchorPoint(AnchorPoint::CENTER);
+    ImageView actor = ImageView::New();
+    Property::Map map;
+    map[Visual::Property::TYPE] = Visual::IMAGE;
+    map[ImageVisual::Property::URL] = filename;
+    map[ImageVisual::Property::DESIRED_WIDTH] = width;
+    map[ImageVisual::Property::DESIRED_HEIGHT] = height;
+    map[ImageVisual::Property::FITTING_MODE] = FittingMode::SCALE_TO_FILL;
+    map[ImageVisual::Property::SAMPLING_MODE] = SamplingMode::BOX_THEN_LINEAR;
+    actor.SetProperty( ImageView::Property::IMAGE, map );
+
+    actor.SetProperty( Dali::Actor::Property::NAME, filename );
+    actor.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::CENTER);
+    actor.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::CENTER);
 
     actor.TouchedSignal().Connect( this, &ExampleController::OnTouchImage );
     return actor;
@@ -487,14 +497,13 @@ private:
    * Upon Touching an image (Release), make it spin
    * (provided we're not scrolling).
    * @param[in] actor The actor touched
-   * @param[in] event The TouchEvent.
+   * @param[in] event The touch information.
    */
   bool OnTouchImage( Actor actor, const TouchEvent& event )
   {
-    if( (event.points.size() > 0) && (!mScrolling) )
+    if( (event.GetPointCount() > 0) && (!mScrolling) )
     {
-      TouchPoint point = event.points[0];
-      if(point.state == TouchPoint::Up)
+      if( event.GetState( 0 ) == PointState::UP )
       {
         // Spin the Image a few times.
         Animation animation = Animation::New(SPIN_DURATION);
@@ -527,7 +536,7 @@ private:
     {
       mTitleActor = DemoHelper::CreateToolBarLabel( "" );
       // Add title to the tool bar.
-      mToolBar.AddControl( mTitleActor, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarTitlePercentage, Alignment::HorizontalCenter );
+      mToolBar.AddControl( mTitleActor, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarTitlePercentage, Alignment::HORIZONTAL_CENTER );
     }
 
     mTitleActor.SetProperty( Toolkit::TextLabel::Property::TEXT, title );
@@ -538,7 +547,7 @@ private:
    */
   void 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) )
       {
@@ -579,9 +588,9 @@ private:
   Toolkit::PushButton mEffectChangeButton;              ///< Effect Change Button
 };
 
-int main(int argc, char **argv)
+int DALI_EXPORT_API main(int argc, char **argv)
 {
-  Application app = Application::New(&argc, &argv, DALI_DEMO_THEME_PATH);
+  Application app = Application::New(&argc, &argv, DEMO_THEME_PATH);
   ExampleController test(app);
   app.MainLoop();
   return 0;