Focus Integration Sample
[platform/core/uifw/dali-demo.git] / examples / image-view / image-view-example.cpp
index e2779c2..bc41577 100644 (file)
 #include "shared/view.h"
 #include <dali/dali.h>
 #include <dali-toolkit/dali-toolkit.h>
-#include <dali-toolkit/devel-api/controls/slider/slider.h>
 
 using namespace Dali;
 
 namespace
 {
 
-const char* BACKGROUND_IMAGE( DALI_IMAGE_DIR "background-gradient.jpg" );
-const char* TOOLBAR_IMAGE( DALI_IMAGE_DIR "top-bar.png" );
+const char* BACKGROUND_IMAGE( DEMO_IMAGE_DIR "background-gradient.jpg" );
+const char* TOOLBAR_IMAGE( DEMO_IMAGE_DIR "top-bar.png" );
 const char* APPLICATION_TITLE( "Image view" );
 
 const char* IMAGE_PATH[] = {
-    DALI_IMAGE_DIR "blocks-ball.png",
-    DALI_IMAGE_DIR "gallery-small-23.jpg",
-    DALI_IMAGE_DIR "selection-popup-bg.2.9.png",
-    DALI_IMAGE_DIR "heartsframe.9.png",
-};
-
-const char* RESOURCE_IMAGE_PATH[] = {
-    DALI_IMAGE_DIR "contacts-image.png",
-    DALI_IMAGE_DIR "gallery-small-27.jpg",
-    DALI_IMAGE_DIR "selection-popup-bg.8.9.png",
-    DALI_IMAGE_DIR "heartsframe.9.png",
+    DEMO_IMAGE_DIR "blocks-ball.png",
+    DEMO_IMAGE_DIR "gallery-small-23.jpg",
+    DEMO_IMAGE_DIR "selection-popup-bg.2.9.png",
+    DEMO_IMAGE_DIR "heartsframe.9.png",
 };
 
 const unsigned int NUM_IMAGES = sizeof(IMAGE_PATH) / sizeof(char*);
-const unsigned int NUM_RESOURCE_IMAGES = sizeof(RESOURCE_IMAGE_PATH) / sizeof(char*);
 
 const unsigned int COLUMNS = 3;
 const unsigned int ROWS = 4;
@@ -60,7 +51,6 @@ class ImageViewController: public ConnectionTracker
       mCurrentPositionToggle( 0, 0 ),
       mCurrentPositionImage( 0, 0 ),
       mToggleOff( true ),
-      mUseResource( false ),
       mImageIdx( 1 )
   {
     // Connect to the Application's Init signal
@@ -117,7 +107,7 @@ class ImageViewController: public ConnectionTracker
     buttonsTable.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
 
     Toolkit::PushButton button = Toolkit::PushButton::New();
-    button.SetLabelText( "Toggle on/off stage" );
+    button.SetProperty( Toolkit::Button::Property::LABEL, "Toggle on/off stage" );
     button.SetParentOrigin( ParentOrigin::CENTER );
     button.SetAnchorPoint( AnchorPoint::CENTER );
     button.ClickedSignal().Connect( this, &ImageViewController::ToggleImageOnStage );
@@ -125,22 +115,16 @@ class ImageViewController: public ConnectionTracker
     buttonsTable.AddChild( button, Toolkit::TableView::CellPosition( 0, 0 ) );
 
     Toolkit::PushButton button2 = Toolkit::PushButton::New();
-    button2.SetLabelText( "Change Image" );
+    button2.SetProperty( Toolkit::Button::Property::LABEL, "Change Image" );
     button2.SetParentOrigin( ParentOrigin::CENTER );
     button2.SetAnchorPoint( AnchorPoint::CENTER );
     button2.ClickedSignal().Connect( this, &ImageViewController::ChangeImageClicked );
     button2.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
     buttonsTable.AddChild( button2, Toolkit::TableView::CellPosition( 1, 0 ) );
 
-    Toolkit::CheckBoxButton button3 = Toolkit::CheckBoxButton::New();
-    button3.SetLabelText( "Use Resource Images" );
-    button3.SetParentOrigin( ParentOrigin::CENTER );
-    button3.SetAnchorPoint( AnchorPoint::CENTER );
-    button3.ClickedSignal().Connect( this, &ImageViewController::UseResourceImagesClicked );
-    button3.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
-    buttonsTable.AddChild( button3, Toolkit::TableView::CellPosition( 2, 0 ) );
-
     mContentLayer.Add(buttonsTable);
+
+    Stage::GetCurrent().KeyEventSignal().Connect(this, &ImageViewController::OnKeyEvent);
   }
 
 private:
@@ -176,15 +160,7 @@ private:
   {
     Toolkit::ImageView imageView =  mImageViews[ mCurrentPositionImage.columnIndex ][ mCurrentPositionImage.rowIndex ];
 
-    if( mUseResource )
-    {
-      ResourceImage image = ResourceImage::New( RESOURCE_IMAGE_PATH[ mImageIdx ] );
-      imageView.SetImage( image );
-    }
-    else
-    {
-      imageView.SetImage( IMAGE_PATH[ mImageIdx ] );
-    }
+    imageView.SetImage( IMAGE_PATH[ mImageIdx ] );
 
     ++mCurrentPositionImage.columnIndex;
     if( mCurrentPositionImage.columnIndex == COLUMNS )
@@ -197,8 +173,7 @@ private:
       mCurrentPositionImage.rowIndex = 0;
       ++mImageIdx;
 
-      int numImages = mUseResource ? NUM_RESOURCE_IMAGES : NUM_IMAGES;
-      if( mImageIdx == numImages )
+      if( mImageIdx == NUM_IMAGES )
       {
         mImageIdx = 0;
       }
@@ -207,17 +182,18 @@ private:
     return true;
   }
 
-  bool UseResourceImagesClicked( Toolkit::Button button )
+  /**
+   * Main key event handler
+   */
+  void OnKeyEvent(const KeyEvent& event)
   {
-    mUseResource = !mUseResource;
-
-    int numImages = mUseResource ? NUM_RESOURCE_IMAGES : NUM_IMAGES;
-    if( mImageIdx >= numImages )
+    if(event.state == KeyEvent::Down)
     {
-      mImageIdx = 0;
+      if( IsKey( event, DALI_KEY_ESCAPE) || IsKey( event, DALI_KEY_BACK ) )
+      {
+        mApplication.Quit();
+      }
     }
-
-    return true;
   }
 
 private:
@@ -233,7 +209,6 @@ private:
   Toolkit::TableView::CellPosition mCurrentPositionImage;
 
   bool mToggleOff;
-  bool mUseResource;
   int mImageIdx;
 
 };
@@ -247,9 +222,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, DALI_DEMO_THEME_PATH );
+  Application application = Application::New( &argc, &argv, DEMO_THEME_PATH );
 
   RunTest( application );