DALi Version 1.2.30
[platform/core/uifw/dali-demo.git] / examples / logging / logging-example.cpp
index a37fcb4..21e1ef5 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.
@@ -18,7 +18,7 @@
 #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;
@@ -44,8 +44,8 @@ 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 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;
@@ -65,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";
@@ -129,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 );
@@ -144,8 +150,6 @@ class LoggingController: public ConnectionTracker
   {
     // The Init signal is received once (only) during the Application lifetime
 
-    DemoHelper::RequestThemeChange();
-
     mCurrentLogger = 0;
     mPerformanceLoggers.reserve( NUM_LOGGERS );
     mPerformanceLoggers.resize( NUM_LOGGERS );
@@ -180,7 +184,6 @@ class LoggingController: public ConnectionTracker
     contentTable.SetAnchorPoint( AnchorPoint::TOP_LEFT );
     contentTable.SetParentOrigin( ParentOrigin::TOP_LEFT );
     contentTable.SetCellPadding( Size( MARGIN_SIZE, MARGIN_SIZE * 0.5f ) );
-//    contentTable.TouchedSignal().Connect( this, &LoggingController::OnTouchEvent );
 
     for( unsigned int i = 0; i < contentTable.GetRows(); ++i )
     {
@@ -238,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 );
 
@@ -291,14 +294,9 @@ class LoggingController: public ConnectionTracker
     {
       Toolkit::PushButton button = Toolkit::PushButton::New();
       button.SetName( CREATE_BUTTON_ID );
-      button.SetLabel( CREATE_BUTTON_TEXT );
+      button.SetProperty( Toolkit::Button::Property::LABEL, CREATE_BUTTON_TEXT);
       button.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
       button.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
-
-      button.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
-      button.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
-      button.SetDisabledImage( Dali::ResourceImage::New( PUSHBUTTON_DISABLED_IMAGE ) );
-
       button.ClickedSignal().Connect( this, &LoggingController::OnButtonClicked );
 
       createGroupBackground.Add( button );
@@ -307,14 +305,9 @@ class LoggingController: public ConnectionTracker
     {
       Toolkit::PushButton button = Toolkit::PushButton::New();
       button.SetName( DELETE_BUTTON_ID );
-      button.SetLabel( DELETE_BUTTON_TEXT );
+      button.SetProperty( Toolkit::Button::Property::LABEL, DELETE_BUTTON_TEXT);
       button.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
       button.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
-
-      button.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
-      button.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
-      button.SetDisabledImage( Dali::ResourceImage::New( PUSHBUTTON_DISABLED_IMAGE ) );
-
       button.ClickedSignal().Connect( this, &LoggingController::OnButtonClicked );
 
       createGroupBackground.Add( button );
@@ -334,14 +327,9 @@ class LoggingController: public ConnectionTracker
     {
       Toolkit::PushButton button = Toolkit::PushButton::New();
       button.SetName( START_BUTTON_ID );
-      button.SetLabel( START_BUTTON_TEXT );
+      button.SetProperty( Toolkit::Button::Property::LABEL, START_BUTTON_TEXT);
       button.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
       button.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
-
-      button.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
-      button.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
-      button.SetDisabledImage( Dali::ResourceImage::New( PUSHBUTTON_DISABLED_IMAGE ) );
-
       button.ClickedSignal().Connect( this, &LoggingController::OnButtonClicked );
 
       timingGroupBackground.Add( button );
@@ -350,14 +338,9 @@ class LoggingController: public ConnectionTracker
     {
       Toolkit::PushButton button = Toolkit::PushButton::New();
       button.SetName( STOP_BUTTON_ID );
-      button.SetLabel( STOP_BUTTON_TEXT );
+      button.SetProperty( Toolkit::Button::Property::LABEL, STOP_BUTTON_TEXT);
       button.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
       button.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
-
-      button.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
-      button.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
-      button.SetDisabledImage( Dali::ResourceImage::New( PUSHBUTTON_DISABLED_IMAGE ) );
-
       button.ClickedSignal().Connect( this, &LoggingController::OnButtonClicked );
 
       timingGroupBackground.Add( button );
@@ -376,14 +359,9 @@ class LoggingController: public ConnectionTracker
     {
       Toolkit::PushButton button = Toolkit::PushButton::New();
       button.SetName( ENABLE_BUTTON_ID );
-      button.SetLabel( ENABLE_BUTTON_TEXT );
+      button.SetProperty( Toolkit::Button::Property::LABEL, ENABLE_BUTTON_TEXT);
       button.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
       button.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
-
-      button.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
-      button.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
-      button.SetDisabledImage( Dali::ResourceImage::New( PUSHBUTTON_DISABLED_IMAGE ) );
-
       button.ClickedSignal().Connect( this, &LoggingController::OnButtonClicked );
 
       enableGroupBackground.Add( button );
@@ -392,14 +370,9 @@ class LoggingController: public ConnectionTracker
     {
       Toolkit::PushButton button = Toolkit::PushButton::New();
       button.SetName( DISABLE_BUTTON_ID );
-      button.SetLabel( DISABLE_BUTTON_TEXT );
+      button.SetProperty( Toolkit::Button::Property::LABEL, DISABLE_BUTTON_TEXT);
       button.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
       button.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
-
-      button.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
-      button.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
-      button.SetDisabledImage( Dali::ResourceImage::New( PUSHBUTTON_DISABLED_IMAGE ) );
-
       button.ClickedSignal().Connect( this, &LoggingController::OnButtonClicked );
 
       enableGroupBackground.Add( button );
@@ -448,7 +421,7 @@ class LoggingController: public ConnectionTracker
       Toolkit::RadioButton radioButton = Toolkit::RadioButton::New( FREQUENCY_2_RADIO_TEXT );
       radioButton.SetName( FREQUENCY_2_RADIO_ID );
 
-      radioButton.SetSelected( true );
+      radioButton.SetProperty( Toolkit::Button::Property::SELECTED, true );
 
       radioButton.StateChangedSignal().Connect( this, &LoggingController::FrequencyRadioSelect );
 
@@ -480,14 +453,9 @@ class LoggingController: public ConnectionTracker
     {
       Toolkit::PushButton button = Toolkit::PushButton::New();
       button.SetName( VSYNC_BUTTON_ID );
-      button.SetLabel( VSYNC_BUTTON_TEXT );
+      button.SetProperty( Toolkit::Button::Property::LABEL, VSYNC_BUTTON_TEXT);
       button.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
       button.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
-
-      button.SetSelectedImage( Dali::ResourceImage::New( PUSHBUTTON_PRESS_IMAGE ) );
-      button.SetButtonImage( Dali::ResourceImage::New( PUSHBUTTON_BUTTON_IMAGE ) );
-      button.SetDisabledImage( Dali::ResourceImage::New( PUSHBUTTON_DISABLED_IMAGE ) );
-
       button.ClickedSignal().Connect( this, &LoggingController::OnButtonClicked );
 
       vsyncGroupBackground.Add( button );
@@ -505,23 +473,27 @@ class LoggingController: public ConnectionTracker
          << ", " << ((mLoggerStates[i].isTiming) ? "Started" : "Stopped")
          << ", " << ((mLoggerStates[i].isEnabled) ? "Enabled" : "Disabled");
 
-      Toolkit::TextLabel textLabel = Toolkit::TextLabel::New( ss.str() );
-
-      mLogRadioButtons[i].SetLabel( textLabel );
+      mLogRadioButtons[i].SetProperty( Toolkit::Button::Property::LABEL, ss.str() );
     }
   }
 
   bool LoggingRadioSelect( Toolkit::Button button )
   {
-    if( button.GetName() == LOGGER_1_RADIO_ID && button.IsSelected() == 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 && button.IsSelected() == true )
+    else if( button.GetName() == LOGGER_2_RADIO_ID )
     {
       mCurrentLogger = 1;
     }
-    else if( button.GetName() == LOGGER_3_RADIO_ID && button.IsSelected() == true )
+    else if( button.GetName() == LOGGER_3_RADIO_ID )
     {
       mCurrentLogger = 2;
     }
@@ -537,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 )
   {
-    if( button.GetName() == FREQUENCY_1_RADIO_ID && button.IsSelected() == 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] )
       {
@@ -562,7 +540,7 @@ class LoggingController: public ConnectionTracker
         mLoggerStates[mCurrentLogger].frequency = HIGH_FREQUENCY;
       }
     }
-    else if( button.GetName() == FREQUENCY_2_RADIO_ID && button.IsSelected() == true )
+    else if( button.GetName() == FREQUENCY_2_RADIO_ID )
     {
       if( mPerformanceLoggers[mCurrentLogger] )
       {
@@ -573,7 +551,7 @@ class LoggingController: public ConnectionTracker
         mLoggerStates[mCurrentLogger].frequency = MEDIUM_FREQUENCY;
       }
     }
-    else if( button.GetName() == FREQUENCY_3_RADIO_ID && button.IsSelected() == true )
+    else if( button.GetName() == FREQUENCY_3_RADIO_ID )
     {
       if( mPerformanceLoggers[mCurrentLogger] )
       {
@@ -682,35 +660,7 @@ class LoggingController: public ConnectionTracker
     return true;
   }
 
-  bool OnTouchEvent( Actor actor, const TouchEvent& event )
-  {
-    if( 1u == event.GetPointCount() )
-    {
-      const TouchPoint::State state = event.GetPoint(0u).state;
-
-      // Clamp to integer values; this is to reduce flicking due to pixel misalignment
-      const float localPoint = static_cast<float>( static_cast<int>( event.GetPoint( 0 ).local.y ) );
-
-      if( TouchPoint::Down == state )
-      {
-        mLastPoint = localPoint;
-        mAnimation = Animation::New( 0.25f );
-      }
-      else if( TouchPoint::Motion == state )
-      {
-        if( mAnimation )
-        {
-          mAnimation.AnimateBy( Property(actor, Actor::Property::POSITION), Vector3( 0.f, localPoint - mLastPoint, 0.f ), AlphaFunction::LINEAR );
-          mAnimation.Play();
-          mLastPoint = localPoint;
-        }
-      }
-    }
-
-    return true;
-  }
-
- private:
+private:
 
   struct LoggerState
   {
@@ -727,7 +677,6 @@ class LoggingController: public ConnectionTracker
   Layer             mContentLayer;           ///< Content layer
 
   Animation      mAnimation;
-  float          mLastPoint;
 
   typedef std::vector< std::string > Strings;
   Strings mPerformanceLoggerNames;
@@ -753,9 +702,9 @@ void RunTest( Application& application )
 
 // 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 );