Remove the usage of deprecated Button APIS
[platform/core/uifw/dali-demo.git] / examples / logging / logging-example.cpp
index a5e258a..02cc1ba 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2017 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 "../shared/view.h"
+#include "shared/view.h"
 #include <dali/dali.h>
 #include <dali-toolkit/dali-toolkit.h>
-
+#include <dali/devel-api/adaptor-framework/performance-logger.h>
 #include <sstream>
 
 using namespace Dali;
 
-namespace
-{
-// Used to produce visually same dimensions on desktop and device builds
-float ScalePointSize( int pointSize )
-{
-  Dali::Vector2 dpi = Dali::Stage::GetCurrent().GetDpi();
-  float meanDpi = (dpi.height + dpi.width) * 0.5f;
-  return pointSize * meanDpi / 220.0f;
-}
-
-} // namespace
-
 // Define this so that it is interchangeable
 // "DP" stands for Device independent Pixels
-#define DP(x) ScalePointSize(x)
+#define DP(x) x
 
 //enum ButtonType
 //{
@@ -56,8 +44,8 @@ float ScalePointSize( int pointSize )
 namespace
 {
 
-const char* const BACKGROUND_IMAGE = DALI_IMAGE_DIR "background-gradient.jpg";
-const char* const TOOLBAR_IMAGE = DALI_IMAGE_DIR "top-bar.png";
+const char* const BACKGROUND_IMAGE = DEMO_IMAGE_DIR "background-gradient.jpg";
+const char* const TOOLBAR_IMAGE = DEMO_IMAGE_DIR "top-bar.png";
 
 const char* const TOOLBAR_TITLE = "Logging";
 //const int TOOLBAR_HEIGHT = 62;
@@ -77,10 +65,6 @@ const int BUTTON_HEIGHT = LOGGER_GROUP_HEIGHT - MARGIN_SIZE * 2;
 
 const Vector4 BACKGROUND_COLOUR( 1.0f, 1.0f, 1.0f, 0.15f );
 
-const char* const PUSHBUTTON_PRESS_IMAGE = DALI_IMAGE_DIR "button-down.9.png";
-const char* const PUSHBUTTON_BUTTON_IMAGE = DALI_IMAGE_DIR "button-up.9.png";
-const char* const PUSHBUTTON_DISABLED_IMAGE = DALI_IMAGE_DIR "button-disabled.9.png";
-
 // Button IDs
 const char* const LOGGER_1_RADIO_ID = "LOGGER_1_RADIO";
 const char* const LOGGER_2_RADIO_ID = "LOGGER_2_RADIO";
@@ -141,7 +125,17 @@ class LoggingController: public ConnectionTracker
  public:
 
   LoggingController( Application& application )
-    : mApplication( application )
+  : mApplication( application ),
+    mView(),
+    mToolBar(),
+    mContentLayer(),
+    mAnimation(),
+    mPerformanceLoggerNames(),
+    mPerformanceLoggers(),
+    mCurrentLogger( 0 ),
+    mLoggerStates(),
+    mLogRadioButtons(),
+    mFrequencyRadioButtons()
   {
     // Connect to the Application's Init signal
     mApplication.InitSignal().Connect( this, &LoggingController::Create );
@@ -184,38 +178,61 @@ class LoggingController: public ConnectionTracker
                                             TOOLBAR_IMAGE,
                                             TOOLBAR_TITLE );
 
-    Vector2 stageSize = Stage::GetCurrent().GetSize();
+    Toolkit::TableView contentTable = Toolkit::TableView::New( 6, 1 );
+    contentTable.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
+    contentTable.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
+    contentTable.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+    contentTable.SetParentOrigin( ParentOrigin::TOP_LEFT );
+    contentTable.SetCellPadding( Size( MARGIN_SIZE, MARGIN_SIZE * 0.5f ) );
+
+    for( unsigned int i = 0; i < contentTable.GetRows(); ++i )
+    {
+      contentTable.SetFitHeight( i );
+    }
+
+    contentTable.SetPosition( 0.0f, TOP_MARGIN );
+
+    mContentLayer.Add( contentTable );
 
-    int yPos = TOP_MARGIN + MARGIN_SIZE;
 
     // Logger selector radio group
-    Actor radioGroupBackground = Toolkit::CreateSolidColorActor( BACKGROUND_COLOUR );
-    radioGroupBackground.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+    Toolkit::TableView radioGroupBackground = Toolkit::TableView::New( 2, 1 );
+    radioGroupBackground.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
+    radioGroupBackground.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
+    radioGroupBackground.SetBackgroundColor( BACKGROUND_COLOUR );
     radioGroupBackground.SetParentOrigin( ParentOrigin::TOP_LEFT );
-    radioGroupBackground.SetPosition( DP(MARGIN_SIZE), DP(yPos) );
-    radioGroupBackground.SetSize( stageSize.width - 2 * DP(MARGIN_SIZE), DP(LOGGER_RADIO_GROUP_HEIGHT) );
-    mContentLayer.Add( radioGroupBackground );
+    radioGroupBackground.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+    radioGroupBackground.SetCellPadding( Size( MARGIN_SIZE, MARGIN_SIZE * 0.5f ) );
+
+    contentTable.Add( radioGroupBackground );
 
     // Label
     {
-      Toolkit::TextView label = Toolkit::TextView::New( LOGGER_TEXT );
+      Toolkit::TextLabel label = Toolkit::TextLabel::New( LOGGER_TEXT );
       label.SetParentOrigin( ParentOrigin::TOP_LEFT );
       label.SetAnchorPoint( AnchorPoint::TOP_LEFT );
       label.SetPosition( DP(MARGIN_SIZE), DP(MARGIN_SIZE) );
+      label.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS );
 
       radioGroupBackground.Add( label );
+      radioGroupBackground.SetFitHeight( 0 );
     }
 
     // Radio group
-    Actor radioButtonsGroup = Actor::New();
-    radioButtonsGroup.SetParentOrigin( ParentOrigin::TOP_LEFT );
-    radioButtonsGroup.SetAnchorPoint( AnchorPoint::TOP_LEFT );
-    radioButtonsGroup.SetPosition( DP(MARGIN_SIZE), 0 );
+    Toolkit::TableView radioButtonsGroup = Toolkit::TableView::New( 3, 1 );
+    radioButtonsGroup.SetCellPadding( Size( 0.0f, MARGIN_SIZE * 0.5f ) );
+    radioButtonsGroup.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS );
+    for( unsigned int i = 0; i < radioButtonsGroup.GetRows(); ++i )
+    {
+      radioButtonsGroup.SetFitHeight( i );
+    }
+    radioButtonsGroup.SetFitWidth( 0 );
 
     radioGroupBackground.Add( radioButtonsGroup );
+    radioGroupBackground.SetFitHeight( 1 );
 
     int radioX = 0;
-    int radioY = MARGIN_SIZE + 28;
+    int radioY = 0;
 
     // Radio 1
     {
@@ -224,7 +241,7 @@ class LoggingController: public ConnectionTracker
       radioButton.SetParentOrigin( ParentOrigin::TOP_LEFT );
       radioButton.SetAnchorPoint( AnchorPoint::TOP_LEFT );
       radioButton.SetPosition( DP(radioX), DP(radioY) );
-      radioButton.SetSelected( true );
+      radioButton.SetProperty( Toolkit::Button::Property::SELECTED, true );
 
       radioButton.StateChangedSignal().Connect( this, &LoggingController::LoggingRadioSelect );
 
@@ -265,199 +282,133 @@ class LoggingController: public ConnectionTracker
     }
 
     // Create/delete/disable group
-    yPos += LOGGER_RADIO_GROUP_HEIGHT + MARGIN_SIZE;
+    Toolkit::TableView createGroupBackground = Toolkit::TableView::New( 1, 2 );
+    createGroupBackground.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
+    createGroupBackground.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
+    createGroupBackground.SetBackgroundColor( BACKGROUND_COLOUR );
+    createGroupBackground.SetCellPadding( Size( MARGIN_SIZE, MARGIN_SIZE ) );
+    createGroupBackground.SetFitHeight( 0 );
 
-    Actor createGroupBackground = Toolkit::CreateSolidColorActor( BACKGROUND_COLOUR );
-    createGroupBackground.SetAnchorPoint( AnchorPoint::TOP_LEFT );
-    createGroupBackground.SetParentOrigin( ParentOrigin::TOP_LEFT );
-    createGroupBackground.SetPosition( DP(MARGIN_SIZE), DP(yPos) );
-    createGroupBackground.SetSize( stageSize.width - 2 * DP(MARGIN_SIZE), DP(LOGGER_GROUP_HEIGHT) );
-    mContentLayer.Add( createGroupBackground );
-
-    int buttonXDP = DP(MARGIN_SIZE);
-    int buttonWidthDP = (createGroupBackground.GetSize().width - DP(MARGIN_SIZE) * 3) / 2;
+    contentTable.Add( createGroupBackground );
 
     {
       Toolkit::PushButton button = Toolkit::PushButton::New();
       button.SetName( CREATE_BUTTON_ID );
-      button.SetLabel( CREATE_BUTTON_TEXT );
-      button.SetParentOrigin( ParentOrigin::CENTER_LEFT );
-      button.SetAnchorPoint( AnchorPoint::CENTER_LEFT );
-      button.SetPosition( buttonXDP, 0 );
-      button.SetSize( buttonWidthDP, DP(BUTTON_HEIGHT) );
-
-      button.SetSelectedImage( Dali::Image::New( PUSHBUTTON_PRESS_IMAGE ) );
-      button.SetButtonImage( Dali::Image::New( PUSHBUTTON_BUTTON_IMAGE ) );
-      button.SetDisabledImage( Dali::Image::New( PUSHBUTTON_DISABLED_IMAGE ) );
-
+      button.SetLabelText( CREATE_BUTTON_TEXT );
+      button.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
+      button.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
       button.ClickedSignal().Connect( this, &LoggingController::OnButtonClicked );
 
       createGroupBackground.Add( button );
     }
 
     {
-      buttonXDP += DP(MARGIN_SIZE) + buttonWidthDP;
-
       Toolkit::PushButton button = Toolkit::PushButton::New();
       button.SetName( DELETE_BUTTON_ID );
-      button.SetLabel( DELETE_BUTTON_TEXT );
-      button.SetParentOrigin( ParentOrigin::CENTER_LEFT );
-      button.SetAnchorPoint( AnchorPoint::CENTER_LEFT );
-      button.SetPosition( buttonXDP, 0 );
-      button.SetSize( buttonWidthDP, DP(BUTTON_HEIGHT) );
-
-      button.SetSelectedImage( Dali::Image::New( PUSHBUTTON_PRESS_IMAGE ) );
-      button.SetButtonImage( Dali::Image::New( PUSHBUTTON_BUTTON_IMAGE ) );
-      button.SetDisabledImage( Dali::Image::New( PUSHBUTTON_DISABLED_IMAGE ) );
-
+      button.SetLabelText( DELETE_BUTTON_TEXT );
+      button.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
+      button.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
       button.ClickedSignal().Connect( this, &LoggingController::OnButtonClicked );
 
       createGroupBackground.Add( button );
     }
 
     // Start/stop group
-    yPos += LOGGER_GROUP_HEIGHT + MARGIN_SIZE;
 
-    Actor timingGroupBackground = Toolkit::CreateSolidColorActor( BACKGROUND_COLOUR );
-    timingGroupBackground.SetAnchorPoint( AnchorPoint::TOP_LEFT );
-    timingGroupBackground.SetParentOrigin( ParentOrigin::TOP_LEFT );
-    timingGroupBackground.SetPosition( DP(MARGIN_SIZE), DP(yPos) );
-    timingGroupBackground.SetSize( stageSize.width - 2 * DP(MARGIN_SIZE), DP(LOGGER_GROUP_HEIGHT) );
-    mContentLayer.Add( timingGroupBackground );
+    Toolkit::TableView timingGroupBackground = Toolkit::TableView::New( 1, 2 );
+    timingGroupBackground.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
+    timingGroupBackground.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
+    timingGroupBackground.SetBackgroundColor( BACKGROUND_COLOUR );
+    timingGroupBackground.SetCellPadding( Size( MARGIN_SIZE, MARGIN_SIZE ) );
+    timingGroupBackground.SetFitHeight( 0 );
 
-    buttonXDP = DP(MARGIN_SIZE);
-    buttonWidthDP = (timingGroupBackground.GetSize().width - DP(MARGIN_SIZE) * 3) / 2;
+    contentTable.Add( timingGroupBackground );
 
     {
       Toolkit::PushButton button = Toolkit::PushButton::New();
       button.SetName( START_BUTTON_ID );
-      button.SetLabel( START_BUTTON_TEXT );
-      button.SetParentOrigin( ParentOrigin::CENTER_LEFT );
-      button.SetAnchorPoint( AnchorPoint::CENTER_LEFT );
-      button.SetPosition( buttonXDP, 0 );
-      button.SetSize( buttonWidthDP, DP(BUTTON_HEIGHT) );
-
-      button.SetSelectedImage( Dali::Image::New( PUSHBUTTON_PRESS_IMAGE ) );
-      button.SetButtonImage( Dali::Image::New( PUSHBUTTON_BUTTON_IMAGE ) );
-      button.SetDisabledImage( Dali::Image::New( PUSHBUTTON_DISABLED_IMAGE ) );
-
+      button.SetLabelText( START_BUTTON_TEXT );
+      button.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
+      button.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
       button.ClickedSignal().Connect( this, &LoggingController::OnButtonClicked );
 
       timingGroupBackground.Add( button );
     }
 
     {
-      buttonXDP += DP(MARGIN_SIZE) + buttonWidthDP;
-
       Toolkit::PushButton button = Toolkit::PushButton::New();
       button.SetName( STOP_BUTTON_ID );
-      button.SetLabel( STOP_BUTTON_TEXT );
-      button.SetParentOrigin( ParentOrigin::CENTER_LEFT );
-      button.SetAnchorPoint( AnchorPoint::CENTER_LEFT );
-      button.SetPosition( buttonXDP, 0 );
-      button.SetSize( buttonWidthDP, DP(BUTTON_HEIGHT) );
-
-      button.SetSelectedImage( Dali::Image::New( PUSHBUTTON_PRESS_IMAGE ) );
-      button.SetButtonImage( Dali::Image::New( PUSHBUTTON_BUTTON_IMAGE ) );
-      button.SetDisabledImage( Dali::Image::New( PUSHBUTTON_DISABLED_IMAGE ) );
-
+      button.SetLabelText( STOP_BUTTON_TEXT );
+      button.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
+      button.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
       button.ClickedSignal().Connect( this, &LoggingController::OnButtonClicked );
 
       timingGroupBackground.Add( button );
     }
 
     // Enable/disable group
-    yPos += LOGGER_GROUP_HEIGHT + MARGIN_SIZE;
-
-    Actor enableGroupBackground = Toolkit::CreateSolidColorActor( BACKGROUND_COLOUR );
-    enableGroupBackground.SetAnchorPoint( AnchorPoint::TOP_LEFT );
-    enableGroupBackground.SetParentOrigin( ParentOrigin::TOP_LEFT );
-    enableGroupBackground.SetPosition( DP(MARGIN_SIZE), DP(yPos) );
-    enableGroupBackground.SetSize( stageSize.width - 2 * DP(MARGIN_SIZE), DP(LOGGER_GROUP_HEIGHT) );
-    mContentLayer.Add( enableGroupBackground );
+    Toolkit::TableView enableGroupBackground = Toolkit::TableView::New( 1, 2 );
+    enableGroupBackground.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
+    enableGroupBackground.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
+    enableGroupBackground.SetBackgroundColor( BACKGROUND_COLOUR );
+    enableGroupBackground.SetCellPadding( Size( MARGIN_SIZE, MARGIN_SIZE ) );
+    enableGroupBackground.SetFitHeight( 0 );
 
-    buttonXDP = DP(MARGIN_SIZE);
-    buttonWidthDP = (enableGroupBackground.GetSize().width - DP(MARGIN_SIZE) * 3) / 2;
+    contentTable.Add( enableGroupBackground );
 
     {
       Toolkit::PushButton button = Toolkit::PushButton::New();
       button.SetName( ENABLE_BUTTON_ID );
-      button.SetLabel( ENABLE_BUTTON_TEXT );
-      button.SetParentOrigin( ParentOrigin::CENTER_LEFT );
-      button.SetAnchorPoint( AnchorPoint::CENTER_LEFT );
-      button.SetPosition( buttonXDP, 0 );
-      button.SetSize( buttonWidthDP, DP(BUTTON_HEIGHT) );
-
-      button.SetSelectedImage( Dali::Image::New( PUSHBUTTON_PRESS_IMAGE ) );
-      button.SetButtonImage( Dali::Image::New( PUSHBUTTON_BUTTON_IMAGE ) );
-      button.SetDisabledImage( Dali::Image::New( PUSHBUTTON_DISABLED_IMAGE ) );
-
+      button.SetLabelText( ENABLE_BUTTON_TEXT );
+      button.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
+      button.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
       button.ClickedSignal().Connect( this, &LoggingController::OnButtonClicked );
 
       enableGroupBackground.Add( button );
     }
 
     {
-      buttonXDP += DP(MARGIN_SIZE) + buttonWidthDP;
-
       Toolkit::PushButton button = Toolkit::PushButton::New();
       button.SetName( DISABLE_BUTTON_ID );
-      button.SetLabel( DISABLE_BUTTON_TEXT );
-      button.SetParentOrigin( ParentOrigin::CENTER_LEFT );
-      button.SetAnchorPoint( AnchorPoint::CENTER_LEFT );
-      button.SetPosition( buttonXDP, 0 );
-      button.SetSize( buttonWidthDP, DP(BUTTON_HEIGHT) );
-
-      button.SetSelectedImage( Dali::Image::New( PUSHBUTTON_PRESS_IMAGE ) );
-      button.SetButtonImage( Dali::Image::New( PUSHBUTTON_BUTTON_IMAGE ) );
-      button.SetDisabledImage( Dali::Image::New( PUSHBUTTON_DISABLED_IMAGE ) );
-
+      button.SetLabelText( DISABLE_BUTTON_TEXT );
+      button.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
+      button.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
       button.ClickedSignal().Connect( this, &LoggingController::OnButtonClicked );
 
       enableGroupBackground.Add( button );
     }
 
-    yPos += LOGGER_GROUP_HEIGHT + MARGIN_SIZE;
-
     // Logger selector radio group
-    unsigned int groupHeight = LOGGER_GROUP_HEIGHT + 30;
+    Toolkit::TableView frequencyRadioGroupBackground = Toolkit::TableView::New( 2, 1 );
+    frequencyRadioGroupBackground.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
+    frequencyRadioGroupBackground.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
+    frequencyRadioGroupBackground.SetBackgroundColor( BACKGROUND_COLOUR );
+    frequencyRadioGroupBackground.SetCellPadding( Size( MARGIN_SIZE, MARGIN_SIZE * 0.5f ) );
+    frequencyRadioGroupBackground.SetFitHeight( 0 );
+    frequencyRadioGroupBackground.SetFitHeight( 1 );
 
-    Actor frequencyRadioGroupBackground = Toolkit::CreateSolidColorActor( BACKGROUND_COLOUR );
-    frequencyRadioGroupBackground.SetAnchorPoint( AnchorPoint::TOP_LEFT );
-    frequencyRadioGroupBackground.SetParentOrigin( ParentOrigin::TOP_LEFT );
-    frequencyRadioGroupBackground.SetPosition( DP(MARGIN_SIZE), DP(yPos) );
-    frequencyRadioGroupBackground.SetSize( stageSize.width - 2 * DP(MARGIN_SIZE), DP(groupHeight) );
-    mContentLayer.Add( frequencyRadioGroupBackground );
+    contentTable.Add( frequencyRadioGroupBackground );
 
     // Label
     {
-      Toolkit::TextView label = Toolkit::TextView::New( FREQUENCY_TEXT );
-      label.SetParentOrigin( ParentOrigin::TOP_LEFT );
-      label.SetAnchorPoint( AnchorPoint::TOP_LEFT );
-      label.SetPosition( DP(MARGIN_SIZE), DP(MARGIN_SIZE) );
+      Toolkit::TextLabel label = Toolkit::TextLabel::New( FREQUENCY_TEXT );
 
       frequencyRadioGroupBackground.Add( label );
     }
 
     // Radio group
-    Actor frequencyRadioButtonsGroup = Actor::New();
-    frequencyRadioButtonsGroup.SetParentOrigin( ParentOrigin::TOP_LEFT );
-    frequencyRadioButtonsGroup.SetAnchorPoint( AnchorPoint::TOP_LEFT );
-    frequencyRadioButtonsGroup.SetPosition( DP(MARGIN_SIZE), DP(40) );
+    Toolkit::TableView frequencyRadioButtonsGroup = Toolkit::TableView::New( 1, 3 );
+    frequencyRadioButtonsGroup.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
+    frequencyRadioButtonsGroup.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
+    frequencyRadioButtonsGroup.SetFitHeight( 0 );
+    frequencyRadioButtonsGroup.SetPadding( Padding( 0.0f, 0.0f, MARGIN_SIZE, 0.0f ) );
 
     frequencyRadioGroupBackground.Add( frequencyRadioButtonsGroup );
 
-    radioX = 0;
-    radioY = 0;
-    const int frequencyRadioWidth = 100;
-
     // Radio 1
     {
       Toolkit::RadioButton radioButton = Toolkit::RadioButton::New( FREQUENCY_1_RADIO_TEXT );
       radioButton.SetName( FREQUENCY_1_RADIO_ID );
-      radioButton.SetParentOrigin( ParentOrigin::TOP_LEFT );
-      radioButton.SetAnchorPoint( AnchorPoint::TOP_LEFT );
-      radioButton.SetPosition( DP(radioX), DP(radioY) );
 
       radioButton.StateChangedSignal().Connect( this, &LoggingController::FrequencyRadioSelect );
 
@@ -467,14 +418,10 @@ class LoggingController: public ConnectionTracker
 
     // Radio 2
     {
-      radioX += frequencyRadioWidth;
-
       Toolkit::RadioButton radioButton = Toolkit::RadioButton::New( FREQUENCY_2_RADIO_TEXT );
       radioButton.SetName( FREQUENCY_2_RADIO_ID );
-      radioButton.SetParentOrigin( ParentOrigin::TOP_LEFT );
-      radioButton.SetAnchorPoint( AnchorPoint::TOP_LEFT );
-      radioButton.SetPosition( DP(radioX), DP(radioY) );
-      radioButton.SetSelected( true );
+
+      radioButton.SetProperty( Toolkit::Button::Property::SELECTED, true );
 
       radioButton.StateChangedSignal().Connect( this, &LoggingController::FrequencyRadioSelect );
 
@@ -484,13 +431,8 @@ class LoggingController: public ConnectionTracker
 
     // Radio 3
     {
-      radioX += frequencyRadioWidth;
-
       Toolkit::RadioButton radioButton = Toolkit::RadioButton::New( FREQUENCY_3_RADIO_TEXT );
       radioButton.SetName( FREQUENCY_3_RADIO_ID );
-      radioButton.SetParentOrigin( ParentOrigin::TOP_LEFT );
-      radioButton.SetAnchorPoint( AnchorPoint::TOP_LEFT );
-      radioButton.SetPosition( DP(radioX), DP(radioY) );
 
       radioButton.StateChangedSignal().Connect( this, &LoggingController::FrequencyRadioSelect );
 
@@ -499,31 +441,21 @@ class LoggingController: public ConnectionTracker
     }
 
     // Vsync group
-    yPos += groupHeight + MARGIN_SIZE;
+    Toolkit::TableView vsyncGroupBackground = Toolkit::TableView::New( 1, 1 );
+    vsyncGroupBackground.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
+    vsyncGroupBackground.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
+    vsyncGroupBackground.SetBackgroundColor( BACKGROUND_COLOUR );
+    vsyncGroupBackground.SetCellPadding( Size( MARGIN_SIZE, MARGIN_SIZE ) );
+    vsyncGroupBackground.SetFitHeight( 0 );
 
-    Actor vsyncGroupBackground = Toolkit::CreateSolidColorActor( BACKGROUND_COLOUR );
-    vsyncGroupBackground.SetAnchorPoint( AnchorPoint::TOP_LEFT );
-    vsyncGroupBackground.SetParentOrigin( ParentOrigin::TOP_LEFT );
-    vsyncGroupBackground.SetPosition( DP(MARGIN_SIZE), DP(yPos) );
-    vsyncGroupBackground.SetSize( stageSize.width - 2 * DP(MARGIN_SIZE), DP(LOGGER_GROUP_HEIGHT) );
-    mContentLayer.Add( vsyncGroupBackground );
-
-    buttonXDP = DP(MARGIN_SIZE);
-    buttonWidthDP = vsyncGroupBackground.GetSize().width - DP(MARGIN_SIZE) * 2;
+    contentTable.Add( vsyncGroupBackground );
 
     {
       Toolkit::PushButton button = Toolkit::PushButton::New();
       button.SetName( VSYNC_BUTTON_ID );
-      button.SetLabel( VSYNC_BUTTON_TEXT );
-      button.SetParentOrigin( ParentOrigin::CENTER_LEFT );
-      button.SetAnchorPoint( AnchorPoint::CENTER_LEFT );
-      button.SetPosition( buttonXDP, 0 );
-      button.SetSize( buttonWidthDP, DP(BUTTON_HEIGHT) );
-
-      button.SetSelectedImage( Dali::Image::New( PUSHBUTTON_PRESS_IMAGE ) );
-      button.SetButtonImage( Dali::Image::New( PUSHBUTTON_BUTTON_IMAGE ) );
-      button.SetDisabledImage( Dali::Image::New( PUSHBUTTON_DISABLED_IMAGE ) );
-
+      button.SetLabelText( VSYNC_BUTTON_TEXT );
+      button.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
+      button.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
       button.ClickedSignal().Connect( this, &LoggingController::OnButtonClicked );
 
       vsyncGroupBackground.Add( button );
@@ -541,30 +473,27 @@ class LoggingController: public ConnectionTracker
          << ", " << ((mLoggerStates[i].isTiming) ? "Started" : "Stopped")
          << ", " << ((mLoggerStates[i].isEnabled) ? "Enabled" : "Disabled");
 
-      Dali::TextStyle textStyle;
-      textStyle.SetFontName( "HelveticaNue" );
-      textStyle.SetFontStyle( "Regular" );
-      textStyle.SetFontPointSize( Dali::PointSize( DemoHelper::ScalePointSize( 7.0f ) ) );
-      textStyle.SetWeight( Dali::TextStyle::REGULAR );
-
-      Toolkit::TextView textView = Toolkit::TextView::New( ss.str() );
-      textView.SetStyleToCurrentText( textStyle );
-
-      mLogRadioButtons[i].SetLabel( textView );
+      mLogRadioButtons[i].SetLabelText( ss.str() );
     }
   }
 
-  bool LoggingRadioSelect( Toolkit::Button button, bool state )
+  bool LoggingRadioSelect( Toolkit::Button button )
   {
-    if( button.GetName() == LOGGER_1_RADIO_ID && state == true )
+    bool isSelected = button.GetProperty( Toolkit::Button::Property::SELECTED ).Get<bool>();
+    if( !isSelected )
+    {
+      return true;
+    }
+
+    if( button.GetName() == LOGGER_1_RADIO_ID )
     {
       mCurrentLogger = 0;
     }
-    else if( button.GetName() == LOGGER_2_RADIO_ID && state == true )
+    else if( button.GetName() == LOGGER_2_RADIO_ID )
     {
       mCurrentLogger = 1;
     }
-    else if( button.GetName() == LOGGER_3_RADIO_ID && state == true )
+    else if( button.GetName() == LOGGER_3_RADIO_ID )
     {
       mCurrentLogger = 2;
     }
@@ -580,21 +509,27 @@ class LoggingController: public ConnectionTracker
     const unsigned int frequency = mLoggerStates[mCurrentLogger].frequency;
     if( frequency == HIGH_FREQUENCY )
     {
-      mFrequencyRadioButtons[0].SetSelected( true );
+      mFrequencyRadioButtons[0].SetProperty( Toolkit::Button::Property::SELECTED, true );
     }
     else if( frequency == MEDIUM_FREQUENCY )
     {
-      mFrequencyRadioButtons[1].SetSelected( true );
+      mFrequencyRadioButtons[1].SetProperty( Toolkit::Button::Property::SELECTED, true );
     }
     else if( frequency == LOW_FREQUENCY )
     {
-      mFrequencyRadioButtons[2].SetSelected( true );
+      mFrequencyRadioButtons[2].SetProperty( Toolkit::Button::Property::SELECTED, true );
     }
   }
 
-  bool FrequencyRadioSelect( Toolkit::Button button, bool state )
+  bool FrequencyRadioSelect( Toolkit::Button button )
   {
-    if( button.GetName() == FREQUENCY_1_RADIO_ID && state == true )
+    bool isSelected = button.GetProperty( Toolkit::Button::Property::SELECTED ).Get<bool>();
+    if( !isSelected )
+    {
+      return true;
+    }
+
+    if( button.GetName() == FREQUENCY_1_RADIO_ID )
     {
       if( mPerformanceLoggers[mCurrentLogger] )
       {
@@ -605,7 +540,7 @@ class LoggingController: public ConnectionTracker
         mLoggerStates[mCurrentLogger].frequency = HIGH_FREQUENCY;
       }
     }
-    else if( button.GetName() == FREQUENCY_2_RADIO_ID && state == true )
+    else if( button.GetName() == FREQUENCY_2_RADIO_ID )
     {
       if( mPerformanceLoggers[mCurrentLogger] )
       {
@@ -616,7 +551,7 @@ class LoggingController: public ConnectionTracker
         mLoggerStates[mCurrentLogger].frequency = MEDIUM_FREQUENCY;
       }
     }
-    else if( button.GetName() == FREQUENCY_3_RADIO_ID && state == true )
+    else if( button.GetName() == FREQUENCY_3_RADIO_ID )
     {
       if( mPerformanceLoggers[mCurrentLogger] )
       {
@@ -725,7 +660,7 @@ class LoggingController: public ConnectionTracker
     return true;
   }
 
- private:
+private:
 
   struct LoggerState
   {
@@ -737,10 +672,12 @@ class LoggingController: public ConnectionTracker
   };
 
   Application&      mApplication;
-  Toolkit::View     mView;                   ///< The View instance.
+  Toolkit::Control  mView;                   ///< The View instance.
   Toolkit::ToolBar  mToolBar;                ///< The View's Toolbar.
   Layer             mContentLayer;           ///< Content layer
 
+  Animation      mAnimation;
+
   typedef std::vector< std::string > Strings;
   Strings mPerformanceLoggerNames;
 
@@ -763,11 +700,11 @@ void RunTest( Application& application )
   application.MainLoop();
 }
 
-// Entry point for Linux & SLP applications
+// Entry point for Linux & Tizen applications
 //
-int main( int argc, char **argv )
+int DALI_EXPORT_API main( int argc, char **argv )
 {
-  Application application = Application::New( &argc, &argv );
+  Application application = Application::New( &argc, &argv, DEMO_THEME_PATH );
 
   RunTest( application );