Merge remote-tracking branch 'origin/tizen' into new_text 58/33258/2
authorPaul Wisbey <p.wisbey@samsung.com>
Wed, 7 Jan 2015 10:15:57 +0000 (10:15 +0000)
committerPaul Wisbey <p.wisbey@samsung.com>
Wed, 7 Jan 2015 10:48:50 +0000 (10:48 +0000)
Conflicts:
build/tizen/examples/Makefile.am
examples/builder/examples.cpp

Change-Id: Ia110f5a036291c9d3debaebd66c6fedfc8adcd8b

1  2 
build/tizen/examples/Makefile.am
demo/dali-table-view.cpp
examples/builder/examples.cpp
examples/logging/logging-example.cpp
examples/new-window/new-window-example.cpp
examples/text-view/text-view-example.cpp

@@@ -34,9 -34,11 +34,9 @@@ bin_PROGRAMS = 
                 dali-builder \
                 builder.example \
                 image-scaling-irregular-grid.example \
-                buttons.example
+                buttons.example \
 -               text-view.example \
+                logging.example
  
 -
  daliimagedir = $(appdatadir)/images/
  dalimodeldir = $(appdatadir)/models/
  daliscriptdir = $(appdatadir)/scripts/
@@@ -159,7 -161,12 +159,7 @@@ buttons_example_CXXFLAGS = $(EXAMPLE_CX
  buttons_example_DEPENDENCIES = $(EXAMPLE_DEPS)
  buttons_example_LDADD = $(EXAMPLE_LDADD)
  
--text_view_example_SOURCES = $(examples_src_dir)/text-view/text-view-example.cpp
--text_view_example_CXXFLAGS = $(EXAMPLE_CXXFLAGS)
--text_view_example_DEPENDENCIES = $(EXAMPLE_DEPS)
--text_view_example_LDADD = $(EXAMPLE_LDADD)
 -
+ logging_example_SOURCES = $(examples_src_dir)/logging/logging-example.cpp
+ logging_example_CXXFLAGS = $(EXAMPLE_CXXFLAGS)
+ logging_example_DEPENDENCIES = $(EXAMPLE_DEPS)
+ logging_example_LDADD = $(EXAMPLE_LDADD)
Simple merge
Simple merge
index 0000000,662e33d..8e700ee
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,775 +1,738 @@@
 -    // Label
 -    {
 -      Toolkit::TextView label = Toolkit::TextView::New( LOGGER_TEXT );
 -      label.SetParentOrigin( ParentOrigin::TOP_LEFT );
 -      label.SetAnchorPoint( AnchorPoint::TOP_LEFT );
 -      label.SetPosition( DP(MARGIN_SIZE), DP(MARGIN_SIZE) );
 -
 -      radioGroupBackground.Add( label );
 -    }
 -
+ /*
+  * Copyright (c) 2014 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.
+  * You may obtain a copy of the License at
+  *
+  * http://www.apache.org/licenses/LICENSE-2.0
+  *
+  * Unless required by applicable law or agreed to in writing, software
+  * distributed under the License is distributed on an "AS IS" BASIS,
+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  * See the License for the specific language governing permissions and
+  * limitations under the License.
+  *
+  */
+ #include "../shared/view.h"
+ #include <dali/dali.h>
+ #include <dali-toolkit/dali-toolkit.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)
+ //enum ButtonType
+ //{
+ //  PUSH_BUTTON,
+ //  TOGGLE_BUTTON
+ //};
+ //
+ //struct ButtonItem
+ //{
+ //  ButtonType type;
+ //  const char* name;
+ //  const char* text;
+ //  const char* altText;
+ //};
+ 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 TOOLBAR_TITLE = "Logging";
+ //const int TOOLBAR_HEIGHT = 62;
+ const int MARGIN_SIZE = 10;
+ const int TOP_MARGIN = 85;
+ const int LOGGER_GROUP_HEIGHT = 84;
+ const int LOGGER_RADIO_GROUP_HEIGHT = 200;
+ const int LOGGER_RADIO_SPACING = 48;
+ const int CONSOLE_HEIGHT = 84;
+ const int BUTTON_WIDTH = 200;
+ 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_DIM_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";
+ const char* const LOGGER_3_RADIO_ID = "LOGGER_3_RADIO";
+ const char* const FREQUENCY_1_RADIO_ID = "FREQUENCY_1_RADIO";
+ const char* const FREQUENCY_2_RADIO_ID = "FREQUENCY_2_RADIO";
+ const char* const FREQUENCY_3_RADIO_ID = "FREQUENCY_3_RADIO";
+ const char* const CREATE_BUTTON_ID = "CREATE_BUTTON";
+ const char* const DELETE_BUTTON_ID = "DELETE_BUTTON";
+ const char* const START_BUTTON_ID = "START_BUTTON";
+ const char* const STOP_BUTTON_ID = "STOP_BUTTON";
+ const char* const HIGH_FREQ_BUTTON_ID = "INC_FREQ_BUTTON";
+ const char* const LOW_FREQ_BUTTON_ID = "DEC_FREQ_BUTTON";
+ const char* const ENABLE_BUTTON_ID = "ENABLE_BUTTON";
+ const char* const DISABLE_BUTTON_ID = "DISABLE_BUTTON";
+ const char* const VSYNC_BUTTON_ID = "VSYNC_BUTTON";
+ const char* const CREATE_BUTTON_TEXT = "Create";
+ const char* const DELETE_BUTTON_TEXT = "Delete";
+ const char* const START_BUTTON_TEXT = "Start";
+ const char* const STOP_BUTTON_TEXT = "Stop";
+ const char* const ENABLE_BUTTON_TEXT = "Enable";
+ const char* const DISABLE_BUTTON_TEXT = "Disable";
+ const char* const VSYNC_BUTTON_TEXT = "Vsync";
+ const char* const FREQUENCY_1_RADIO_TEXT = "1";
+ const char* const FREQUENCY_2_RADIO_TEXT = "2";
+ const char* const FREQUENCY_3_RADIO_TEXT = "10";
+ const char* const LOGGER_TEXT = "Logger:";
+ const char* const FREQUENCY_TEXT = "Frequency (sec):";
+ const unsigned int NUM_LOGGERS = 3;
+ const unsigned int HIGH_FREQUENCY = 1;   // Seconds
+ const unsigned int MEDIUM_FREQUENCY = 2;   // Seconds
+ const unsigned int LOW_FREQUENCY = 10;   // Seconds
+ const unsigned int NUM_FREQUENCIES = 3;
+ }  // namespace
+ /**
+  * This example is a test harness for performance loggers.
+  *
+  * Press one of the create buttons to create a logger. This will output on vsync at the default frequency (2 seconds).
+  * In case nothing appears in the log, force a vsync by touching anywhere on the screen. Loggers can be deleted
+  * with the delete buttons. They can be enabled or disabled in which case logging will appear or disappear in the console
+  * respectively. To record information in a logger press the start and then stop button in succession quickly in between
+  * the time period when it would print to the console. This is necessary as the logger is cleared of information when
+  * it prints. The output will contain the smallest and largest times between start and stop recorded (minimum and maximum),
+  * the total time recorded by the logger as well as the average and standard deviation of all the times recorded. The
+  * frequency of log output can be set to high frequency (every 1 second) or low frequency (every 10 seconds).
+  */
+ class LoggingController: public ConnectionTracker
+ {
+  public:
+   LoggingController( Application& application )
+     : mApplication( application )
+   {
+     // Connect to the Application's Init signal
+     mApplication.InitSignal().Connect( this, &LoggingController::Create );
+   }
+   ~LoggingController()
+   {
+     // Nothing to do here
+   }
+   void Create( Application& application )
+   {
+     // The Init signal is received once (only) during the Application lifetime
+     mCurrentLogger = 0;
+     mPerformanceLoggers.reserve( NUM_LOGGERS );
+     mPerformanceLoggers.resize( NUM_LOGGERS );
+     mPerformanceLoggerNames.reserve( NUM_LOGGERS );
+     mPerformanceLoggerNames.resize( NUM_LOGGERS );
+     mLoggerStates.reserve( NUM_LOGGERS );
+     mLoggerStates.resize( NUM_LOGGERS );
+     mLogRadioButtons.reserve( NUM_LOGGERS );
+     mLogRadioButtons.resize( NUM_LOGGERS );
+     mFrequencyRadioButtons.reserve( NUM_FREQUENCIES );
+     mFrequencyRadioButtons.resize( NUM_FREQUENCIES );
+     // Respond to key events
+     Stage::GetCurrent().KeyEventSignal().Connect(this, &LoggingController::OnKeyEvent);
+     // Creates a default view with a default tool bar.
+     // The view is added to the stage.
+     mContentLayer = DemoHelper::CreateView( application,
+                                             mView,
+                                             mToolBar,
+                                             BACKGROUND_IMAGE,
+                                             TOOLBAR_IMAGE,
+                                             TOOLBAR_TITLE );
+     Vector2 stageSize = Stage::GetCurrent().GetSize();
+     int yPos = TOP_MARGIN + MARGIN_SIZE;
+     // Logger selector radio group
+     Actor radioGroupBackground = Toolkit::CreateSolidColorActor( BACKGROUND_COLOUR );
+     radioGroupBackground.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+     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 );
 -    // 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) );
 -
 -      frequencyRadioGroupBackground.Add( label );
 -    }
 -
+     // Radio group
+     Actor radioButtonsGroup = Actor::New();
+     radioButtonsGroup.SetParentOrigin( ParentOrigin::TOP_LEFT );
+     radioButtonsGroup.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+     radioButtonsGroup.SetPosition( DP(MARGIN_SIZE), 0 );
+     radioGroupBackground.Add( radioButtonsGroup );
+     int radioX = 0;
+     int radioY = MARGIN_SIZE + 28;
+     // Radio 1
+     {
+       Toolkit::RadioButton radioButton = Toolkit::RadioButton::New();
+       radioButton.SetName( LOGGER_1_RADIO_ID );
+       radioButton.SetParentOrigin( ParentOrigin::TOP_LEFT );
+       radioButton.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+       radioButton.SetPosition( DP(radioX), DP(radioY) );
+       radioButton.SetActive( true );
+       radioButton.ToggledSignal().Connect( this, &LoggingController::LoggingRadioSelect );
+       radioButtonsGroup.Add( radioButton );
+       mLogRadioButtons[0] = radioButton;
+     }
+     // Radio 2
+     {
+       radioY += LOGGER_RADIO_SPACING;
+       Toolkit::RadioButton radioButton = Toolkit::RadioButton::New();
+       radioButton.SetName( LOGGER_2_RADIO_ID );
+       radioButton.SetParentOrigin( ParentOrigin::TOP_LEFT );
+       radioButton.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+       radioButton.SetPosition( DP(radioX), DP(radioY) );
+       radioButton.ToggledSignal().Connect( this, &LoggingController::LoggingRadioSelect );
+       radioButtonsGroup.Add( radioButton );
+       mLogRadioButtons[1] = radioButton;
+     }
+     // Radio 3
+     {
+       radioY += LOGGER_RADIO_SPACING;
+       Toolkit::RadioButton radioButton = Toolkit::RadioButton::New();
+       radioButton.SetName( LOGGER_3_RADIO_ID );
+       radioButton.SetParentOrigin( ParentOrigin::TOP_LEFT );
+       radioButton.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+       radioButton.SetPosition( DP(radioX), DP(radioY) );
+       radioButton.ToggledSignal().Connect( this, &LoggingController::LoggingRadioSelect );
+       radioButtonsGroup.Add( radioButton );
+       mLogRadioButtons[2] = radioButton;
+     }
+     // Create/delete/disable group
+     yPos += LOGGER_RADIO_GROUP_HEIGHT + MARGIN_SIZE;
+     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;
+     {
+       Toolkit::PushButton button = Toolkit::PushButton::New();
+       button.SetName( CREATE_BUTTON_ID );
+       button.SetLabelText( CREATE_BUTTON_TEXT );
+       button.SetParentOrigin( ParentOrigin::CENTER_LEFT );
+       button.SetAnchorPoint( AnchorPoint::CENTER_LEFT );
+       button.SetPosition( buttonXDP, 0 );
+       button.SetSize( buttonWidthDP, DP(BUTTON_HEIGHT) );
+       button.SetPressedImage( Dali::Image::New( PUSHBUTTON_PRESS_IMAGE ) );
+       button.SetButtonImage( Dali::Image::New( PUSHBUTTON_BUTTON_IMAGE ) );
+       button.SetDimmedImage( Dali::Image::New( PUSHBUTTON_DIM_IMAGE ) );
+       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.SetLabelText( DELETE_BUTTON_TEXT );
+       button.SetParentOrigin( ParentOrigin::CENTER_LEFT );
+       button.SetAnchorPoint( AnchorPoint::CENTER_LEFT );
+       button.SetPosition( buttonXDP, 0 );
+       button.SetSize( buttonWidthDP, DP(BUTTON_HEIGHT) );
+       button.SetPressedImage( Dali::Image::New( PUSHBUTTON_PRESS_IMAGE ) );
+       button.SetButtonImage( Dali::Image::New( PUSHBUTTON_BUTTON_IMAGE ) );
+       button.SetDimmedImage( Dali::Image::New( PUSHBUTTON_DIM_IMAGE ) );
+       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 );
+     buttonXDP = DP(MARGIN_SIZE);
+     buttonWidthDP = (timingGroupBackground.GetSize().width - DP(MARGIN_SIZE) * 3) / 2;
+     {
+       Toolkit::PushButton button = Toolkit::PushButton::New();
+       button.SetName( START_BUTTON_ID );
+       button.SetLabelText( START_BUTTON_TEXT );
+       button.SetParentOrigin( ParentOrigin::CENTER_LEFT );
+       button.SetAnchorPoint( AnchorPoint::CENTER_LEFT );
+       button.SetPosition( buttonXDP, 0 );
+       button.SetSize( buttonWidthDP, DP(BUTTON_HEIGHT) );
+       button.SetPressedImage( Dali::Image::New( PUSHBUTTON_PRESS_IMAGE ) );
+       button.SetButtonImage( Dali::Image::New( PUSHBUTTON_BUTTON_IMAGE ) );
+       button.SetDimmedImage( Dali::Image::New( PUSHBUTTON_DIM_IMAGE ) );
+       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.SetLabelText( STOP_BUTTON_TEXT );
+       button.SetParentOrigin( ParentOrigin::CENTER_LEFT );
+       button.SetAnchorPoint( AnchorPoint::CENTER_LEFT );
+       button.SetPosition( buttonXDP, 0 );
+       button.SetSize( buttonWidthDP, DP(BUTTON_HEIGHT) );
+       button.SetPressedImage( Dali::Image::New( PUSHBUTTON_PRESS_IMAGE ) );
+       button.SetButtonImage( Dali::Image::New( PUSHBUTTON_BUTTON_IMAGE ) );
+       button.SetDimmedImage( Dali::Image::New( PUSHBUTTON_DIM_IMAGE ) );
+       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 );
+     buttonXDP = DP(MARGIN_SIZE);
+     buttonWidthDP = (enableGroupBackground.GetSize().width - DP(MARGIN_SIZE) * 3) / 2;
+     {
+       Toolkit::PushButton button = Toolkit::PushButton::New();
+       button.SetName( ENABLE_BUTTON_ID );
+       button.SetLabelText( ENABLE_BUTTON_TEXT );
+       button.SetParentOrigin( ParentOrigin::CENTER_LEFT );
+       button.SetAnchorPoint( AnchorPoint::CENTER_LEFT );
+       button.SetPosition( buttonXDP, 0 );
+       button.SetSize( buttonWidthDP, DP(BUTTON_HEIGHT) );
+       button.SetPressedImage( Dali::Image::New( PUSHBUTTON_PRESS_IMAGE ) );
+       button.SetButtonImage( Dali::Image::New( PUSHBUTTON_BUTTON_IMAGE ) );
+       button.SetDimmedImage( Dali::Image::New( PUSHBUTTON_DIM_IMAGE ) );
+       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.SetLabelText( DISABLE_BUTTON_TEXT );
+       button.SetParentOrigin( ParentOrigin::CENTER_LEFT );
+       button.SetAnchorPoint( AnchorPoint::CENTER_LEFT );
+       button.SetPosition( buttonXDP, 0 );
+       button.SetSize( buttonWidthDP, DP(BUTTON_HEIGHT) );
+       button.SetPressedImage( Dali::Image::New( PUSHBUTTON_PRESS_IMAGE ) );
+       button.SetButtonImage( Dali::Image::New( PUSHBUTTON_BUTTON_IMAGE ) );
+       button.SetDimmedImage( Dali::Image::New( PUSHBUTTON_DIM_IMAGE ) );
+       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;
+     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 );
 -    for( unsigned int i = 0; i < NUM_LOGGERS; ++i)
 -    {
 -      std::stringstream ss;
 -      ss << (i + 1) << ") " << ((mPerformanceLoggers[i]) ? "Created" : "Deleted")
 -         << ", " << ((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 );
 -    }
+     // Radio group
+     Actor frequencyRadioButtonsGroup = Actor::New();
+     frequencyRadioButtonsGroup.SetParentOrigin( ParentOrigin::TOP_LEFT );
+     frequencyRadioButtonsGroup.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+     frequencyRadioButtonsGroup.SetPosition( DP(MARGIN_SIZE), DP(40) );
+     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.ToggledSignal().Connect( this, &LoggingController::FrequencyRadioSelect );
+       frequencyRadioButtonsGroup.Add( radioButton );
+       mFrequencyRadioButtons[0] = radioButton;
+     }
+     // 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.SetActive( true );
+       radioButton.ToggledSignal().Connect( this, &LoggingController::FrequencyRadioSelect );
+       frequencyRadioButtonsGroup.Add( radioButton );
+       mFrequencyRadioButtons[1] = radioButton;
+     }
+     // 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.ToggledSignal().Connect( this, &LoggingController::FrequencyRadioSelect );
+       frequencyRadioButtonsGroup.Add( radioButton );
+       mFrequencyRadioButtons[2] = radioButton;
+     }
+     // Vsync group
+     yPos += groupHeight + MARGIN_SIZE;
+     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;
+     {
+       Toolkit::PushButton button = Toolkit::PushButton::New();
+       button.SetName( VSYNC_BUTTON_ID );
+       button.SetLabelText( VSYNC_BUTTON_TEXT );
+       button.SetParentOrigin( ParentOrigin::CENTER_LEFT );
+       button.SetAnchorPoint( AnchorPoint::CENTER_LEFT );
+       button.SetPosition( buttonXDP, 0 );
+       button.SetSize( buttonWidthDP, DP(BUTTON_HEIGHT) );
+       button.SetPressedImage( Dali::Image::New( PUSHBUTTON_PRESS_IMAGE ) );
+       button.SetButtonImage( Dali::Image::New( PUSHBUTTON_BUTTON_IMAGE ) );
+       button.SetDimmedImage( Dali::Image::New( PUSHBUTTON_DIM_IMAGE ) );
+       button.ClickedSignal().Connect( this, &LoggingController::OnButtonClicked );
+       vsyncGroupBackground.Add( button );
+     }
+     WriteConsole();
+   }
+   void WriteConsole()
+   {
++    // TODO
+   }
+   bool LoggingRadioSelect( Toolkit::Button button, bool state )
+   {
+     if( button.GetName() == LOGGER_1_RADIO_ID && state == true )
+     {
+       mCurrentLogger = 0;
+     }
+     else if( button.GetName() == LOGGER_2_RADIO_ID && state == true )
+     {
+       mCurrentLogger = 1;
+     }
+     else if( button.GetName() == LOGGER_3_RADIO_ID && state == true )
+     {
+       mCurrentLogger = 2;
+     }
+     UpdateState();
+     return true;
+   }
+   void UpdateState()
+   {
+     DALI_ASSERT_DEBUG( mCurrentLogger < mLoggerStates.size() );
+     const unsigned int frequency = mLoggerStates[mCurrentLogger].frequency;
+     if( frequency == HIGH_FREQUENCY )
+     {
+       mFrequencyRadioButtons[0].SetActive( true );
+     }
+     else if( frequency == MEDIUM_FREQUENCY )
+     {
+       mFrequencyRadioButtons[1].SetActive( true );
+     }
+     else if( frequency == LOW_FREQUENCY )
+     {
+       mFrequencyRadioButtons[2].SetActive( true );
+     }
+   }
+   bool FrequencyRadioSelect( Toolkit::Button button, bool state )
+   {
+     if( button.GetName() == FREQUENCY_1_RADIO_ID && state == true )
+     {
+       if( mPerformanceLoggers[mCurrentLogger] )
+       {
+         DALI_ASSERT_DEBUG( mCurrentLogger < mPerformanceLoggers.size() );
+         mPerformanceLoggers[mCurrentLogger].SetLoggingFrequency( HIGH_FREQUENCY );
+         DALI_ASSERT_DEBUG( mCurrentLogger < mLoggerStates.size() );
+         mLoggerStates[mCurrentLogger].frequency = HIGH_FREQUENCY;
+       }
+     }
+     else if( button.GetName() == FREQUENCY_2_RADIO_ID && state == true )
+     {
+       if( mPerformanceLoggers[mCurrentLogger] )
+       {
+         DALI_ASSERT_DEBUG( mCurrentLogger < mPerformanceLoggers.size() );
+         mPerformanceLoggers[mCurrentLogger].SetLoggingFrequency( MEDIUM_FREQUENCY );
+         DALI_ASSERT_DEBUG( mCurrentLogger < mLoggerStates.size() );
+         mLoggerStates[mCurrentLogger].frequency = MEDIUM_FREQUENCY;
+       }
+     }
+     else if( button.GetName() == FREQUENCY_3_RADIO_ID && state == true )
+     {
+       if( mPerformanceLoggers[mCurrentLogger] )
+       {
+         DALI_ASSERT_DEBUG( mCurrentLogger < mPerformanceLoggers.size() );
+         mPerformanceLoggers[mCurrentLogger].SetLoggingFrequency( LOW_FREQUENCY );
+         DALI_ASSERT_DEBUG( mCurrentLogger < mLoggerStates.size() );
+         mLoggerStates[mCurrentLogger].frequency = LOW_FREQUENCY;
+       }
+     }
+     return true;
+   }
+   void OnKeyEvent( const KeyEvent& event )
+   {
+     if( event.state == KeyEvent::Down )
+     {
+       if( IsKey( event, Dali::DALI_KEY_ESCAPE ) || IsKey( event, Dali::DALI_KEY_BACK ) )
+       {
+         // Exit application when click back or escape.
+         mApplication.Quit();
+       }
+     }
+   }
+   bool OnButtonClicked(Toolkit::Button button)
+   {
+     if( button.GetName() == CREATE_BUTTON_ID )
+     {
+       std::stringstream ss;
+       ss << "Test logger " << (mCurrentLogger + 1);
+       DALI_ASSERT_DEBUG( mCurrentLogger < mPerformanceLoggerNames.size() );
+       mPerformanceLoggerNames[mCurrentLogger] = ss.str();
+       DALI_ASSERT_DEBUG( mCurrentLogger < mPerformanceLoggers.size() );
+       mPerformanceLoggers[mCurrentLogger] = Dali::PerformanceLogger::New( mPerformanceLoggerNames[mCurrentLogger].c_str() );
+       DALI_ASSERT_DEBUG( mCurrentLogger < mLoggerStates.size() );
+       mLoggerStates[mCurrentLogger].isTiming = false;
+       mLoggerStates[mCurrentLogger].isEnabled = true;
+       mLoggerStates[mCurrentLogger].frequency = MEDIUM_FREQUENCY;
+       UpdateState();
+     }
+     else if ( button.GetName() == DELETE_BUTTON_ID )
+     {
+       DALI_ASSERT_DEBUG( mCurrentLogger < mPerformanceLoggers.size() );
+       mPerformanceLoggers[mCurrentLogger].Reset();
+       DALI_ASSERT_DEBUG( mCurrentLogger < mLoggerStates.size() );
+       mLoggerStates[mCurrentLogger].isTiming = false;
+       mLoggerStates[mCurrentLogger].isEnabled = true;
+       mLoggerStates[mCurrentLogger].frequency = MEDIUM_FREQUENCY;
+       UpdateState();
+     }
+     else if ( button.GetName() == START_BUTTON_ID )
+     {
+       if( mPerformanceLoggers[mCurrentLogger] )
+       {
+         DALI_ASSERT_DEBUG( mCurrentLogger < mPerformanceLoggers.size() );
+         mPerformanceLoggers[mCurrentLogger].AddMarker( Dali::PerformanceLogger::START_EVENT );
+         DALI_ASSERT_DEBUG( mCurrentLogger < mLoggerStates.size() );
+         mLoggerStates[mCurrentLogger].isTiming = true;
+       }
+     }
+     else if ( button.GetName() == STOP_BUTTON_ID )
+     {
+       if( mPerformanceLoggers[mCurrentLogger] )
+       {
+         DALI_ASSERT_DEBUG( mCurrentLogger < mPerformanceLoggers.size() );
+         mPerformanceLoggers[mCurrentLogger].AddMarker( Dali::PerformanceLogger::END_EVENT );
+         DALI_ASSERT_DEBUG( mCurrentLogger < mLoggerStates.size() );
+         mLoggerStates[mCurrentLogger].isTiming = false;
+       }
+     }
+     else if ( button.GetName() == ENABLE_BUTTON_ID )
+     {
+       if( mPerformanceLoggers[mCurrentLogger] )
+       {
+         DALI_ASSERT_DEBUG( mCurrentLogger < mPerformanceLoggers.size() );
+         mPerformanceLoggers[mCurrentLogger].EnableLogging( true );
+         DALI_ASSERT_DEBUG( mCurrentLogger < mLoggerStates.size() );
+         mLoggerStates[mCurrentLogger].isEnabled = true;
+       }
+     }
+     else if ( button.GetName() == DISABLE_BUTTON_ID )
+     {
+       if( mPerformanceLoggers[mCurrentLogger] )
+       {
+         DALI_ASSERT_DEBUG( mCurrentLogger < mPerformanceLoggers.size() );
+         mPerformanceLoggers[mCurrentLogger].EnableLogging( false );
+         DALI_ASSERT_DEBUG( mCurrentLogger < mLoggerStates.size() );
+         mLoggerStates[mCurrentLogger].isEnabled = false;
+       }
+     }
+     WriteConsole();
+     return true;
+   }
+  private:
+   struct LoggerState
+   {
+     LoggerState() : frequency( 0 ), isTiming( false ), isEnabled( true ) {}
+     unsigned int frequency;
+     bool isTiming;
+     bool isEnabled;
+   };
+   Application&      mApplication;
+   Toolkit::View     mView;                   ///< The View instance.
+   Toolkit::ToolBar  mToolBar;                ///< The View's Toolbar.
+   Layer             mContentLayer;           ///< Content layer
+   typedef std::vector< std::string > Strings;
+   Strings mPerformanceLoggerNames;
+   typedef std::vector< Dali::PerformanceLogger > PerformanceLoggers;
+   PerformanceLoggers mPerformanceLoggers;
+   unsigned int mCurrentLogger;
+   typedef std::vector< LoggerState > LoggerStates;
+   LoggerStates mLoggerStates;
+   typedef std::vector< Toolkit::RadioButton > RadioButtons;
+   RadioButtons mLogRadioButtons;
+   RadioButtons mFrequencyRadioButtons;
+ };
+ void RunTest( Application& application )
+ {
+   LoggingController test( application );
+   application.MainLoop();
+ }
+ // Entry point for Linux & SLP applications
+ //
+ int main( int argc, char **argv )
+ {
+   Application application = Application::New( &argc, &argv );
+   RunTest( application );
+   return 0;
+ }
diff --cc examples/text-view/text-view-example.cpp
index a8eea56,a8eea56..0000000
deleted file mode 100644,100644
+++ /dev/null
@@@ -1,201 -1,201 +1,0 @@@
--/*
-- * Copyright (c) 2014 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.
-- * You may obtain a copy of the License at
-- *
-- * http://www.apache.org/licenses/LICENSE-2.0
-- *
-- * Unless required by applicable law or agreed to in writing, software
-- * distributed under the License is distributed on an "AS IS" BASIS,
-- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- * See the License for the specific language governing permissions and
-- * limitations under the License.
-- *
-- */
--
--#include "../shared/view.h"
--#include <dali/dali.h>
--#include <dali-toolkit/dali-toolkit.h>
--
--using namespace Dali;
--
--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 TOOLBAR_TITLE = "Text View";
--const int TOOLBAR_HEIGHT = 80;
--
--const int NUM_TABLE_ROWS = 12;
--const int NUM_TABLE_COLUMNS = 12;
--
--}  // namespace
--
--/**
-- * Helper structs
-- */
--struct TableCell
--{
--  unsigned int row;
--  unsigned int column;
--  unsigned int rowSpan;
--  unsigned int columnSpan;
--};
--
--struct TableString
--{
--  std::string fontName;
--  std::string fontStyle;
--  float fontSize;
--  Dali::TextStyle::Weight fontWeight;
--  Vector4 fontColour;
--
--  std::string text;
--
--  Toolkit::Alignment::Type horizontalAlignment;
--  Toolkit::Alignment::Type verticalAlignment;
--  float padding;
--
--  float orientation;
--
--  TableCell cellPosition;
--};
--
--namespace
--{
--//                                      Font            Font style  Font point size  Font weight                  Text colour                           Text                          Horizontal alignment                  Vertical alignment                  Padding   Orientation   Table cell position and span
--const TableString TABLE_STRINGS[] = { { "HelveticaNue", "Regular",  8.0f,            Dali::TextStyle::REGULAR,    Vector4( 0.5f, 1.0f, 0.0f, 1.0f ),    "Howdy",                      Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalTop,    10.0f,    0.0f,         { 0, 0, 2, 4 } },
--                                      { "HelveticaNue", "Regular",  13.0f,           Dali::TextStyle::EXTRABOLD,  Vector4( 1.0f, 0.5f, 0.0f, 1.0f ),    "Hello!",                     Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalCenter, 10.0f,    0.0f,         { 0, 4, 1, 4 } },
--                                      { "HelveticaNue", "Regular",  18.0f,           Dali::TextStyle::REGULAR,    Vector4( 1.0f, 0.75f, 0.25f, 1.0f ),  "שלום!",                                               Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalTop,    10.0f,    0.0f,         { 1, 4, 1, 4 } },
--                                      { "HelveticaNue", "Regular",  8.0f,            Dali::TextStyle::REGULAR,    Vector4( 0.5f, 0.0f, 1.0f, 1.0f ),    "Hi there",                   Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalBottom, 10.0f,    0.0f,         { 0, 8, 2, 4 } },
--                                      { "HelveticaNue", "Regular",  12.0f,           Dali::TextStyle::REGULAR,    Vector4( 0.5f, 1.0f, 1.0f, 1.0f ),    "Hola",                       Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalCenter, 10.0f,    90.0f,        { 2, 0, 4, 2 } },
--                                      { "HelveticaNue", "Regular",  18.0f,           Dali::TextStyle::BOLD,       Vector4( 0.5f, 1.0f, 0.5f, 1.0f ),    "Bonjour",                    Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalTop,    10.0f,    0.0f,         { 2, 2, 2, 4 } },
--                                      { "HelveticaNue", "Regular",  12.0f,           Dali::TextStyle::REGULAR,    Vector4( 1.0f, 1.0f, 0.5f, 1.0f ),    "Ciao",                       Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalCenter, 10.0f,    0.0f,         { 2, 7, 2, 3 } },
--                                      { "HelveticaNue", "Regular",  26.0f,           Dali::TextStyle::EXTRABLACK, Vector4( 0.5f, 0.0f, 0.0f, 1.0f ),    "Hello",                      Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalCenter, 10.0f,    0.0f,         { 4, 2, 1, 6 } },
--                                      { "HelveticaNue", "Regular",  8.0f,            Dali::TextStyle::DEMIBOLD,   Vector4( 0.0f, 0.5f, 0.0f, 1.0f ),    "Top of the morning to you",  Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalCenter, 10.0f,    90.0f,        { 4, 10, 8, 2 } },
--                                      { "HelveticaNue", "Regular",  13.0f,           Dali::TextStyle::DEMIBOLD,   Vector4( 1.0f, 1.0f, 1.0f, 1.0f ),    "हैलो",                                                   Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalTop,    10.0f,    0.0f,         { 6, 1, 1, 3 } },
--                                      { "HelveticaNue", "Regular",  8.0f,            Dali::TextStyle::DEMIBOLD,   Vector4( 1.0f, 1.0f, 0.0f, 1.0f ),    "สวัสดี",                       Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalTop,    10.0f,    90.0f,        { 6, 5, 2, 1 } },
--                                      { "HelveticaNue", "Regular",  18.0f,           Dali::TextStyle::REGULAR,    Vector4( 0.0f, 1.0f, 1.0f, 1.0f ),    "你好",                        Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalBottom, 10.0f,    0.0f,         { 6, 6, 1, 3 } },
--                                      { "HelveticaNue", "Regular",  34.0f,           Dali::TextStyle::REGULAR,    Vector4( 0.0f, 0.0f, 1.0f, 1.0f ),    "G'day",                      Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalCenter, 10.0f,    0.0f,         { 7, 0, 2, 10 } },
--                                      { "HelveticaNue", "Regular",  16.0f,           Dali::TextStyle::EXTRABLACK, Vector4( 0.0f, 0.5f, 1.0f, 1.0f ),    "مرحبا",                      Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalTop,    10.0f,    0.0f,         { 9, 1, 2, 4 } },
--                                      { "HelveticaNue", "Regular",  10.0f,           Dali::TextStyle::EXTRABLACK, Vector4( 1.0f, 0.0f, 0.0f, 1.0f ),    "こんにちは",                                         Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalCenter, 10.0f,    0.0f,         { 10, 0, 2, 6 } },
--                                      { "HelveticaNue", "Regular",  14.0f,           Dali::TextStyle::REGULAR,    Vector4( 0.0f, 1.0f, 0.0f, 1.0f ),    "aloha",                      Toolkit::Alignment::HorizontalCenter, Toolkit::Alignment::VerticalTop,    10.0f,    0.0f,         { 10, 6, 2, 4 } }
--                                    };
--
--const int NUM_TABLE_STRINGS = sizeof( TABLE_STRINGS ) / sizeof( TABLE_STRINGS[0] );
--
--} // namespace
--
--/**
-- * This example shows the usage of TextView.
-- */
--class TextViewController: public ConnectionTracker
--{
--public:
--
--  TextViewController( Application& application )
--    : mApplication( application )
--  {
--    // Connect to the Application's Init signal
--    mApplication.InitSignal().Connect( this, &TextViewController::Create );
--  }
--
--  ~TextViewController()
--  {
--    // Nothing to do here
--  }
--
--  void Create( Application& application )
--  {
--    // The Init signal is received once (only) during the Application lifetime
--
--    Stage stage = Stage::GetCurrent();
--
--    // Respond to key events
--    stage.KeyEventSignal().Connect(this, &TextViewController::OnKeyEvent);
--
--    // Creates a default view with a default tool bar.
--    // The view is added to the stage.
--    mContentLayer = DemoHelper::CreateView( application,
--                                            mView,
--                                            mToolBar,
--                                            BACKGROUND_IMAGE,
--                                            TOOLBAR_IMAGE,
--                                            TOOLBAR_TITLE );
--
--    // Create a table view the height of the stage
--    Toolkit::TableView textContainer = Toolkit::TableView::New( NUM_TABLE_ROWS, NUM_TABLE_COLUMNS );
--    textContainer.SetParentOrigin( ParentOrigin::TOP_LEFT );
--    textContainer.SetAnchorPoint( AnchorPoint::TOP_LEFT );
--    textContainer.SetPosition( 0, TOOLBAR_HEIGHT );
--    textContainer.SetSize( stage.GetSize().width, stage.GetSize().height - TOOLBAR_HEIGHT );
--
--    mContentLayer.Add( textContainer );
--
--    // Add data
--    for( int i = 0; i < NUM_TABLE_STRINGS; ++i )
--    {
--      const TableString& tableString = TABLE_STRINGS[ i ];
--
--      Dali::TextStyle textStyle;
--      textStyle.SetFontName( tableString.fontName );
--      textStyle.SetFontStyle( tableString.fontStyle );
--      textStyle.SetFontPointSize( Dali::PointSize( DemoHelper::ScalePointSize( tableString.fontSize ) ) );
--      textStyle.SetWeight( tableString.fontWeight );
--      textStyle.SetTextColor( tableString.fontColour );
--
--      Toolkit::TextView textView = Toolkit::TextView::New( tableString.text );
--      textView.SetStyleToCurrentText( textStyle );
--      textView.SetRotation( Dali::Degree( tableString.orientation ), Vector3( 0.0f, 0.0f, 1.0f ) );
--
--      Toolkit::Alignment alignmentContainer = Toolkit::Alignment::New( tableString.horizontalAlignment, tableString.verticalAlignment );
--      alignmentContainer.SetPadding( Toolkit::Alignment::Padding( tableString.padding, tableString.padding, tableString.padding, tableString.padding ) );
--      alignmentContainer.SetScaling( Toolkit::Alignment::ScaleToFill );
--      alignmentContainer.Add( textView );
--
--      textContainer.AddChild( alignmentContainer, Toolkit::TableView::CellPosition( tableString.cellPosition.row, tableString.cellPosition.column, tableString.cellPosition.rowSpan, tableString.cellPosition.columnSpan ) );
--    }
--  }
--
--  void OnKeyEvent( const KeyEvent& event )
--  {
--    if( event.state == KeyEvent::Down )
--    {
--      if( IsKey( event, Dali::DALI_KEY_ESCAPE ) || IsKey( event, Dali::DALI_KEY_BACK ) )
--      {
--        // Exit application when click back or escape.
--        mApplication.Quit();
--      }
--    }
--  }
--
--private:
--
--  Application&      mApplication;
--  Toolkit::View     mView;                   ///< The View instance.
--  Toolkit::ToolBar  mToolBar;                ///< The View's Toolbar.
--  Layer             mContentLayer;           ///< Content layer
--
--};
--
--void RunTest( Application& application )
--{
--  TextViewController test( application );
--
--  application.MainLoop();
--}
--
--// Entry point for Linux & SLP applications
--//
--int main( int argc, char **argv )
--{
--  Application application = Application::New( &argc, &argv );
--
--  RunTest( application );
--
--  return 0;
--}