Merge "[3.0] Removed 3D layer dependency of Model3dView and Mesh Visual." into tizen
[platform/core/uifw/dali-demo.git] / examples / radial-menu / radial-menu-example.cpp
index be8d6ee..13be24a 100644 (file)
@@ -26,14 +26,16 @@ using namespace Dali::Toolkit;
 
 namespace
 {
-const char* TEST_OUTER_RING_FILENAME = DALI_IMAGE_DIR "layer2.png"; // Image to be masked
-const char* TEST_INNER_RING_FILENAME = DALI_IMAGE_DIR "layer1.png"; // Image to be masked
-const char* TEST_MENU_FILENAME = DALI_IMAGE_DIR "layer3.png"; // Image to be masked
-const char* TEST_DIAL_FILENAME = DALI_IMAGE_DIR "layer4.png"; // Image to be masked
-const char* TOOLBAR_IMAGE( DALI_IMAGE_DIR "top-bar.png" ); // Background for toolbar
+const char* TEST_OUTER_RING_FILENAME = DEMO_IMAGE_DIR "layer2.png"; // Image to be masked
+const char* TEST_INNER_RING_FILENAME = DEMO_IMAGE_DIR "layer1.png"; // Image to be masked
+const char* TEST_MENU_FILENAME = DEMO_IMAGE_DIR "layer3.png"; // Image to be masked
+const char* TEST_DIAL_FILENAME = DEMO_IMAGE_DIR "layer4.png"; // Image to be masked
+const char* TOOLBAR_IMAGE( DEMO_IMAGE_DIR "top-bar.png" ); // Background for toolbar
 const char* APPLICATION_TITLE( "Radial Menu" );
-const char * const PLAY_ICON( DALI_IMAGE_DIR "icon-play.png" );
-const char * const STOP_ICON( DALI_IMAGE_DIR "icon-stop.png" );
+const char * const PLAY_ICON( DEMO_IMAGE_DIR "icon-play.png" );
+const char * const PLAY_ICON_SELECTED( DEMO_IMAGE_DIR "icon-play-selected.png" );
+const char * const STOP_ICON( DEMO_IMAGE_DIR "icon-stop.png" );
+const char * const STOP_ICON_SELECTED( DEMO_IMAGE_DIR "icon-stop-selected.png" );
 }
 
 
@@ -102,14 +104,12 @@ private: // Member variables
   Application     mApplication; ///< The application handle
   Toolkit::Control mView;        ///< The toolbar view
   Layer           mContents;    ///< The toolbar contents pane
-  ImageActor      mImageActor;  ///< Image actor shown by stencil mask
+  ImageView       mImageView;  ///< Image view shown by stencil mask
   Animation       mAnimation;
   AnimState       mAnimationState;
 
-  Image               mIconPlay;
-  Image               mIconStop;
   Toolkit::PushButton mPlayStopButton;
-  ImageActor      mDialActor;
+  ImageView       mDialView;
   RadialSweepView mRadialSweepView1;
   RadialSweepView mRadialSweepView2;
   RadialSweepView mRadialSweepView3;
@@ -130,8 +130,6 @@ RadialMenuExample::~RadialMenuExample()
 
 void RadialMenuExample::OnInit(Application& app)
 {
-  DemoHelper::RequestThemeChange();
-
   Stage stage = Dali::Stage::GetCurrent();
 
   // The Init signal is received once (only) during the Application lifetime
@@ -146,10 +144,9 @@ void RadialMenuExample::OnInit(Application& app)
                                       TOOLBAR_IMAGE,
                                       APPLICATION_TITLE );
 
-  mIconPlay = ResourceImage::New( PLAY_ICON );
-  mIconStop = ResourceImage::New( STOP_ICON );
   mPlayStopButton = Toolkit::PushButton::New();
-  mPlayStopButton.SetBackgroundImage( mIconStop );
+  mPlayStopButton.SetUnselectedImage( STOP_ICON );
+  mPlayStopButton.SetSelectedImage( STOP_ICON_SELECTED );
 
   mPlayStopButton.ClickedSignal().Connect( this, &RadialMenuExample::OnButtonClicked );
 
@@ -175,15 +172,14 @@ void RadialMenuExample::OnInit(Application& app)
   mRadialSweepView3.SetInitialActorAngle(Degree(-110));
   mRadialSweepView3.SetFinalActorAngle(Degree(0));
 
-  Image dial = ResourceImage::New( TEST_DIAL_FILENAME );
-  mDialActor = ImageActor::New( dial );
-  mDialActor.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS );
-  mDialActor.SetPositionInheritanceMode(USE_PARENT_POSITION);
-  mDialActor.SetScale(scale);
+  mDialView = ImageView::New( TEST_DIAL_FILENAME );
+  mDialView.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS );
+  mDialView.SetParentOrigin( ParentOrigin::CENTER );
+  mDialView.SetScale(scale);
   Layer dialLayer = Layer::New();
 
-  dialLayer.Add(mDialActor);
-  dialLayer.SetPositionInheritanceMode(USE_PARENT_POSITION);
+  dialLayer.Add( mDialView );
+  dialLayer.SetParentOrigin( ParentOrigin::CENTER );
   dialLayer.SetSize(stage.GetSize());
   mContents.Add(dialLayer);
 
@@ -196,13 +192,13 @@ void RadialMenuExample::OnInit(Application& app)
 
 void RadialMenuExample::StartAnimation()
 {
-  mDialActor.SetOpacity(0.0f);
+  mDialView.SetOpacity(0.0f);
   mRadialSweepView1.SetOpacity(0.0f);
   mAnimation = Animation::New(6.0f);
   mRadialSweepView1.Activate(mAnimation, 0.0f, 3.0f);
   mRadialSweepView2.Activate(mAnimation, 1.5f, 3.0f);
   mRadialSweepView3.Activate(mAnimation, 3.0f, 3.0f);
-  mAnimation.AnimateTo( Property( mDialActor, Actor::Property::COLOR_ALPHA ), 1.0f, AlphaFunction::EASE_IN, TimePeriod( 0.0f, 0.8f ) );
+  mAnimation.AnimateTo( Property( mDialView, Actor::Property::COLOR_ALPHA ), 1.0f, AlphaFunction::EASE_IN, TimePeriod( 0.0f, 0.8f ) );
   mAnimation.AnimateTo( Property( mRadialSweepView1, Actor::Property::COLOR_ALPHA ), 1.0f, AlphaFunction::EASE_IN, TimePeriod( 0.0f, 0.5f ) );
   mAnimation.FinishedSignal().Connect( this, &RadialMenuExample::OnAnimationFinished );
 
@@ -218,7 +214,8 @@ bool RadialMenuExample::OnButtonClicked( Toolkit::Button button )
     {
       mAnimation.Pause();
       mAnimationState = PAUSED;
-      mPlayStopButton.SetBackgroundImage( mIconPlay );
+      mPlayStopButton.SetUnselectedImage( PLAY_ICON );
+      mPlayStopButton.SetSelectedImage( PLAY_ICON_SELECTED );
     }
     break;
 
@@ -226,13 +223,15 @@ bool RadialMenuExample::OnButtonClicked( Toolkit::Button button )
     {
       mAnimation.Play();
       mAnimationState = PLAYING;
-      mPlayStopButton.SetBackgroundImage( mIconStop );
+      mPlayStopButton.SetUnselectedImage( STOP_ICON );
+      mPlayStopButton.SetSelectedImage( STOP_ICON_SELECTED );
     }
     break;
 
     case STOPPED:
     {
-      mPlayStopButton.SetBackgroundImage( mIconStop );
+      mPlayStopButton.SetUnselectedImage( STOP_ICON );
+      mPlayStopButton.SetSelectedImage( STOP_ICON_SELECTED );
       mRadialSweepView1.Deactivate();
       mRadialSweepView2.Deactivate();
       mRadialSweepView3.Deactivate();
@@ -245,7 +244,8 @@ bool RadialMenuExample::OnButtonClicked( Toolkit::Button button )
 void RadialMenuExample::OnAnimationFinished( Animation& source )
 {
   mAnimationState = STOPPED;
-  mPlayStopButton.SetBackgroundImage( mIconPlay );
+  mPlayStopButton.SetUnselectedImage( PLAY_ICON );
+  mPlayStopButton.SetSelectedImage( PLAY_ICON_SELECTED );
 }
 
 RadialSweepView RadialMenuExample::CreateSweepView( std::string imageName,
@@ -253,11 +253,10 @@ RadialSweepView RadialMenuExample::CreateSweepView( std::string imageName,
                                                     Degree finalAngle)
 {
   // Create the image
-  Image image = ResourceImage::New(imageName);
-  mImageActor = ImageActor::New(image);
-  mImageActor.SetParentOrigin(ParentOrigin::CENTER);
-  mImageActor.SetAnchorPoint(AnchorPoint::CENTER);
-  mImageActor.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS );
+  mImageView = ImageView::New(imageName);
+  mImageView.SetParentOrigin(ParentOrigin::CENTER);
+  mImageView.SetAnchorPoint(AnchorPoint::CENTER);
+  mImageView.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS );
 
   // Create the stencil
   const ImageDimensions imageSize = ResourceImage::GetImageSize(imageName);
@@ -270,10 +269,10 @@ RadialSweepView RadialMenuExample::CreateSweepView( std::string imageName,
   radialSweepView.SetFinalSector( Degree(359.999f) );
   radialSweepView.SetSize( Stage::GetCurrent().GetSize());
   radialSweepView.SetEasingFunction( Dali::AlphaFunction::EASE_IN_OUT );
-  radialSweepView.SetPositionInheritanceMode(USE_PARENT_POSITION);
+  radialSweepView.SetParentOrigin( ParentOrigin::CENTER );
   mContents.Add(radialSweepView);
-  radialSweepView.Add( mImageActor );
-  mImageActor.SetPositionInheritanceMode(USE_PARENT_POSITION);
+  radialSweepView.Add( mImageView );
+  mImageView.SetParentOrigin( ParentOrigin::CENTER );
 
   return radialSweepView;
 }
@@ -298,9 +297,9 @@ void RunTest(Application app)
 }
 
 // Entry point for Linux & Tizen applications
-int main(int argc, char **argv)
+int DALI_EXPORT_API main(int argc, char **argv)
 {
-  Application app = Application::New(&argc, &argv);
+  Application app = Application::New(&argc, &argv, DEMO_THEME_PATH);
 
   RunTest(app);