diff --git a/com.samsung.dali-demo.xml b/com.samsung.dali-demo.xml
index 238b338..43daadd 100644
--- a/com.samsung.dali-demo.xml
+++ b/com.samsung.dali-demo.xml
@@ -115,4 +115,7 @@
+
+
+
diff --git a/demo/dali-demo.cpp b/demo/dali-demo.cpp
index 35eb917..05aa4c3 100644
--- a/demo/dali-demo.cpp
+++ b/demo/dali-demo.cpp
@@ -66,6 +66,7 @@ int main(int argc, char **argv)
demo.AddExample(Example("textured-mesh.example", DALI_DEMO_STR_TITLE_TEXTURED_MESH));
demo.AddExample(Example("line-mesh.example", DALI_DEMO_STR_TITLE_LINE_MESH));
demo.AddExample(Example("gradients.example", DALI_DEMO_STR_TITLE_COLOR_GRADIENT));
+ demo.AddExample(Example("image-view.example", DALI_DEMO_STR_TITLE_IMAGE_VIEW));
demo.SortAlphabetically( true );
diff --git a/examples/benchmark/benchmark.cpp b/examples/benchmark/benchmark.cpp
index b26221d..576f404 100644
--- a/examples/benchmark/benchmark.cpp
+++ b/examples/benchmark/benchmark.cpp
@@ -249,7 +249,7 @@ Actor CreateMeshActor( unsigned int index)
// -p NumberOfPages (Modifies the nimber of pages )
// --use-imageview ( Use ImageView instead of ImageActor )
// --use-mesh ( Use new renderer API (as ImageView) but shares renderers between actors when possible )
-// --use-nine-patch ( Use nine patch images )
+// --nine-patch ( Use nine patch images )
//
class Benchmark : public ConnectionTracker
diff --git a/examples/cube-transition-effect/cube-transition-effect-example.cpp b/examples/cube-transition-effect/cube-transition-effect-example.cpp
index 0033935..29fbdaf 100644
--- a/examples/cube-transition-effect/cube-transition-effect-example.cpp
+++ b/examples/cube-transition-effect/cube-transition-effect-example.cpp
@@ -167,9 +167,9 @@ private:
/**
* Callback function of cube transition completed signal
* @param[in] effect The cube effect used for the transition
- * @param[in] imageActor The target imageActor of the completed transition
+ * @param[in] image The target Image of the completed transition
*/
- void OnTransitionCompleted(Toolkit::CubeTransitionEffect effect, ImageActor imageActor);
+ void OnTransitionCompleted(Toolkit::CubeTransitionEffect effect, Image image );
/**
* Callback function of timer tick
* The timer is used to count the image display duration in slideshow,
@@ -181,13 +181,12 @@ private:
Toolkit::Control mView;
Toolkit::ToolBar mToolBar;
Layer mContent;
- Toolkit::TextLabel mTitleActor;
- Actor mParent;
+ Toolkit::TextLabel mTitle;
Vector2 mViewSize;
- ImageActor mCurrentImage;
- ImageActor mNextImage;
+ ResourceImage mCurrentImage;
+ ResourceImage mNextImage;
unsigned int mIndex;
bool mIsImageLoading;
@@ -238,8 +237,8 @@ void CubeTransitionApp::OnInit( Application& application )
mToolBar.AddControl( mEffectChangeButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, Toolkit::Alignment::HorizontalRight, DemoHelper::DEFAULT_MODE_SWITCH_PADDING );
// Add title to the tool bar.
- mTitleActor = DemoHelper::CreateToolBarLabel( APPLICATION_TITLE_WAVE );
- mToolBar.AddControl( mTitleActor, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarTitlePercentage, Toolkit::Alignment::HorizontalCenter );
+ mTitle = DemoHelper::CreateToolBarLabel( APPLICATION_TITLE_WAVE );
+ mToolBar.AddControl( mTitle, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarTitlePercentage, Toolkit::Alignment::HorizontalCenter );
//Add an slideshow icon on the right of the title
mSlideshowButton = Toolkit::PushButton::New();
@@ -251,53 +250,55 @@ void CubeTransitionApp::OnInit( Application& application )
// Set size to stage size to avoid seeing a black border on transition
mViewSize = Stage::GetCurrent().GetSize();
- mParent = Actor::New();
- mParent.SetSize( mViewSize );
- mParent.SetPositionInheritanceMode( USE_PARENT_POSITION );
- mContent.Add( mParent );
-
- // use pan gesture to detect the cursor or finger movement
- mPanGestureDetector = PanGestureDetector::New();
- mPanGestureDetector.DetectedSignal().Connect( this, &CubeTransitionApp::OnPanGesture );
- mPanGestureDetector.Attach( mParent );
+ // show the first image
+ mCurrentImage = LoadStageFillingImage( IMAGES[mIndex] );
//use small cubes
- mCubeWaveEffect = Toolkit::CubeTransitionWaveEffect::New(NUM_ROWS_WAVE, NUM_COLUMNS_WAVE, mViewSize);
+ mCubeWaveEffect = Toolkit::CubeTransitionWaveEffect::New( NUM_ROWS_WAVE, NUM_COLUMNS_WAVE );
mCubeWaveEffect.SetTransitionDuration( ANIMATION_DURATION_WAVE );
mCubeWaveEffect.SetCubeDisplacement( CUBE_DISPLACEMENT_WAVE );
mCubeWaveEffect.TransitionCompletedSignal().Connect(this, &CubeTransitionApp::OnTransitionCompleted);
- mParent.Add(mCubeWaveEffect.GetRoot());
+
+ mCubeWaveEffect.SetSize( mViewSize );
+ mCubeWaveEffect.SetPositionInheritanceMode( USE_PARENT_POSITION );
+ mCubeWaveEffect.SetCurrentImage( mCurrentImage );
+
// use big cubes
- mCubeCrossEffect = Toolkit::CubeTransitionCrossEffect::New(NUM_ROWS_CROSS, NUM_COLUMNS_CROSS, mViewSize);
- mCubeCrossEffect.SetTransitionDuration( ANIMATION_DURATION_CROSS);
+ mCubeCrossEffect = Toolkit::CubeTransitionCrossEffect::New(NUM_ROWS_CROSS, NUM_COLUMNS_CROSS );
+ mCubeCrossEffect.SetTransitionDuration( ANIMATION_DURATION_CROSS );
mCubeCrossEffect.SetCubeDisplacement( CUBE_DISPLACEMENT_CROSS );
mCubeCrossEffect.TransitionCompletedSignal().Connect(this, &CubeTransitionApp::OnTransitionCompleted);
- mParent.Add(mCubeCrossEffect.GetRoot());
- mCubeFoldEffect = Toolkit::CubeTransitionFoldEffect::New(NUM_ROWS_FOLD, NUM_COLUMNS_FOLD, mViewSize);
- mCubeFoldEffect.SetTransitionDuration( ANIMATION_DURATION_FOLD);
+ mCubeCrossEffect.SetSize( mViewSize );
+ mCubeCrossEffect.SetPositionInheritanceMode( USE_PARENT_POSITION );
+ mCubeCrossEffect.SetCurrentImage( mCurrentImage );
+
+ mCubeFoldEffect = Toolkit::CubeTransitionFoldEffect::New( NUM_ROWS_FOLD, NUM_COLUMNS_FOLD );
+ mCubeFoldEffect.SetTransitionDuration( ANIMATION_DURATION_FOLD );
mCubeFoldEffect.TransitionCompletedSignal().Connect(this, &CubeTransitionApp::OnTransitionCompleted);
- mParent.Add(mCubeFoldEffect.GetRoot());
+
+ mCubeFoldEffect.SetSize( mViewSize );
+ mCubeFoldEffect.SetPositionInheritanceMode( USE_PARENT_POSITION );
+ mCubeFoldEffect.SetCurrentImage( mCurrentImage );
mViewTimer = Timer::New( VIEWINGTIME );
mViewTimer.TickSignal().Connect( this, &CubeTransitionApp::OnTimerTick );
- // show the first image
- mCurrentImage = ImageActor::New( LoadStageFillingImage( IMAGES[mIndex] ) );
- mCurrentImage.SetPositionInheritanceMode( USE_PARENT_POSITION );
- mCurrentImage.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
- mCurrentImage.SetSizeScalePolicy( SizeScalePolicy::FIT_WITH_ASPECT_RATIO );
- mParent.Add( mCurrentImage );
mCurrentEffect = mCubeWaveEffect;
- mCurrentEffect.SetCurrentImage( mCurrentImage );
+ mContent.Add( mCurrentEffect );
+
+ // use pan gesture to detect the cursor or finger movement
+ mPanGestureDetector = PanGestureDetector::New();
+ mPanGestureDetector.DetectedSignal().Connect( this, &CubeTransitionApp::OnPanGesture );
+ mPanGestureDetector.Attach( mContent );
}
// signal handler, called when the pan gesture is detected
void CubeTransitionApp::OnPanGesture( Actor actor, const PanGesture& gesture )
{
// does not response when the transition has not finished
- if( mIsImageLoading || mCubeWaveEffect.IsTransiting() || mCubeCrossEffect.IsTransiting() || mCubeFoldEffect.IsTransiting() || mSlideshow )
+ if( mIsImageLoading || mCubeWaveEffect.IsTransitioning() || mCubeCrossEffect.IsTransitioning() || mCubeFoldEffect.IsTransitioning() || mSlideshow )
{
return;
}
@@ -321,22 +322,17 @@ void CubeTransitionApp::OnPanGesture( Actor actor, const PanGesture& gesture )
void CubeTransitionApp::GoToNextImage()
{
- ResourceImage image = LoadStageFillingImage( IMAGES[ mIndex ] );
- mNextImage = ImageActor::New( image );
-
- mNextImage.SetPositionInheritanceMode(USE_PARENT_POSITION);
- mNextImage.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
- mNextImage.SetSizeScalePolicy( SizeScalePolicy::FIT_WITH_ASPECT_RATIO );
- mCurrentEffect.SetTargetImage(mNextImage);
- if( image.GetLoadingState() == ResourceLoadingSucceeded )
+ mNextImage = LoadStageFillingImage( IMAGES[ mIndex ] );
+ mCurrentEffect.SetTargetImage( mNextImage );
+ if( mNextImage.GetLoadingState() == ResourceLoadingSucceeded )
{
mIsImageLoading = false;
- OnImageLoaded( image );
+ OnImageLoaded( mNextImage );
}
else
{
mIsImageLoading = true;
- image.LoadingFinishedSignal().Connect( this, &CubeTransitionApp::OnImageLoaded );
+ mNextImage.LoadingFinishedSignal().Connect( this, &CubeTransitionApp::OnImageLoaded );
}
}
@@ -344,17 +340,16 @@ void CubeTransitionApp::OnImageLoaded(ResourceImage image)
{
mIsImageLoading = false;
mCurrentEffect.StartTransition( mPanPosition, mPanDisplacement );
- mParent.Remove(mCurrentImage);
- mParent.Add(mNextImage);
mCurrentImage = mNextImage;
}
bool CubeTransitionApp::OnEffectButtonClicked( Toolkit::Button button )
{
+ mContent.Remove( mCurrentEffect );
if(mCurrentEffect == mCubeWaveEffect)
{
mCurrentEffect = mCubeCrossEffect;
- mTitleActor.SetProperty( TextLabel::Property::TEXT, std::string(APPLICATION_TITLE_CROSS) );
+ mTitle.SetProperty( TextLabel::Property::TEXT, std::string(APPLICATION_TITLE_CROSS) );
mEffectChangeButton.SetUnselectedImage( EFFECT_CROSS_IMAGE );
mEffectChangeButton.SetSelectedImage( EFFECT_CROSS_IMAGE_SELECTED );
@@ -362,21 +357,22 @@ bool CubeTransitionApp::OnEffectButtonClicked( Toolkit::Button button )
else if(mCurrentEffect == mCubeCrossEffect)
{
mCurrentEffect = mCubeFoldEffect;
- mTitleActor.SetProperty( TextLabel::Property::TEXT, std::string(APPLICATION_TITLE_FOLD) );
+ mTitle.SetProperty( TextLabel::Property::TEXT, std::string(APPLICATION_TITLE_FOLD) );
mEffectChangeButton.SetUnselectedImage( EFFECT_FOLD_IMAGE );
mEffectChangeButton.SetSelectedImage( EFFECT_FOLD_IMAGE_SELECTED );
}
else
{
mCurrentEffect = mCubeWaveEffect;
- mTitleActor.SetProperty( TextLabel::Property::TEXT, std::string(APPLICATION_TITLE_WAVE) );
+ mTitle.SetProperty( TextLabel::Property::TEXT, std::string(APPLICATION_TITLE_WAVE) );
mEffectChangeButton.SetUnselectedImage( EFFECT_WAVE_IMAGE );
mEffectChangeButton.SetSelectedImage( EFFECT_WAVE_IMAGE_SELECTED );
}
+ mContent.Add( mCurrentEffect );
// Set the current image to cube transition effect
// only need to set at beginning or change from another effect
- mCurrentEffect.SetCurrentImage(mCurrentImage);
+ mCurrentEffect.SetCurrentImage( mCurrentImage );
return true;
}
@@ -385,7 +381,7 @@ bool CubeTransitionApp::OnSildeshowButtonClicked( Toolkit::Button button )
mSlideshow = !mSlideshow;
if( mSlideshow )
{
- mPanGestureDetector.Detach( mParent );
+ mPanGestureDetector.Detach( mContent );
mSlideshowButton.SetUnselectedImage( SLIDE_SHOW_STOP_ICON );
mSlideshowButton.SetSelectedImage( SLIDE_SHOW_STOP_ICON_SELECTED );
mPanPosition = Vector2( mViewSize.width, mViewSize.height*0.5f );
@@ -394,7 +390,7 @@ bool CubeTransitionApp::OnSildeshowButtonClicked( Toolkit::Button button )
}
else
{
- mPanGestureDetector.Attach( mParent );
+ mPanGestureDetector.Attach( mContent );
mSlideshowButton.SetUnselectedImage( SLIDE_SHOW_START_ICON );
mSlideshowButton.SetSelectedImage( SLIDE_SHOW_START_ICON_SELECTED );
mViewTimer.Stop();
@@ -402,7 +398,7 @@ bool CubeTransitionApp::OnSildeshowButtonClicked( Toolkit::Button button )
return true;
}
-void CubeTransitionApp::OnTransitionCompleted(Toolkit::CubeTransitionEffect effect, ImageActor imageActor)
+void CubeTransitionApp::OnTransitionCompleted(Toolkit::CubeTransitionEffect effect, Image image )
{
if( mSlideshow )
{
diff --git a/examples/image-view/image-view-example.cpp b/examples/image-view/image-view-example.cpp
new file mode 100644
index 0000000..e2779c2
--- /dev/null
+++ b/examples/image-view/image-view-example.cpp
@@ -0,0 +1,257 @@
+/*
+ * Copyright (c) 2015 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
+#include
+#include
+
+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* 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",
+};
+
+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;
+
+} // namespace
+
+class ImageViewController: public ConnectionTracker
+{
+ public:
+
+ ImageViewController( Application& application )
+ : mApplication( application ),
+ mCurrentPositionToggle( 0, 0 ),
+ mCurrentPositionImage( 0, 0 ),
+ mToggleOff( true ),
+ mUseResource( false ),
+ mImageIdx( 1 )
+ {
+ // Connect to the Application's Init signal
+ mApplication.InitSignal().Connect( this, &ImageViewController::Create );
+ }
+
+ ~ImageViewController()
+ {
+ // Nothing to do here
+ }
+
+ void Create( Application& application )
+ {
+ // The Init signal is received once (only) during the Application lifetime
+
+ // 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,
+ APPLICATION_TITLE );
+
+
+ mTable = Toolkit::TableView::New( ROWS, COLUMNS );
+ mTable.SetAnchorPoint( AnchorPoint::CENTER );
+ mTable.SetParentOrigin( ParentOrigin::CENTER );
+ mTable.SetResizePolicy( ResizePolicy::SIZE_FIXED_OFFSET_FROM_PARENT, Dimension::ALL_DIMENSIONS );
+ Vector3 offset( -50.0f, -350.0f, 0.0f );
+ mTable.SetSizeModeFactor( offset );
+
+ mContentLayer.Add( mTable );
+
+ for( unsigned int y = 0; y < ROWS; ++y )
+ {
+ for( unsigned int x = 0; x < COLUMNS; ++x )
+ {
+ mImageViews[x][y] = Toolkit::ImageView::New( IMAGE_PATH[ 0 ] );
+ mImageViews[x][y].SetParentOrigin( ParentOrigin::CENTER );
+ mImageViews[x][y].SetAnchorPoint( AnchorPoint::CENTER );
+ mImageViews[x][y].SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
+
+ mTable.AddChild( mImageViews[x][y], Toolkit::TableView::CellPosition( y, x ) );
+ }
+ }
+
+ Toolkit::TableView buttonsTable = Toolkit::TableView::New( 3, 1 );
+ buttonsTable.SetAnchorPoint( AnchorPoint::BOTTOM_CENTER );
+ buttonsTable.SetParentOrigin( ParentOrigin::BOTTOM_CENTER );
+ buttonsTable.SetFitHeight( 0 );
+ buttonsTable.SetFitHeight( 1 );
+ buttonsTable.SetFitHeight( 2 );
+ buttonsTable.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
+
+ Toolkit::PushButton button = Toolkit::PushButton::New();
+ button.SetLabelText( "Toggle on/off stage" );
+ button.SetParentOrigin( ParentOrigin::CENTER );
+ button.SetAnchorPoint( AnchorPoint::CENTER );
+ button.ClickedSignal().Connect( this, &ImageViewController::ToggleImageOnStage );
+ button.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
+ buttonsTable.AddChild( button, Toolkit::TableView::CellPosition( 0, 0 ) );
+
+ Toolkit::PushButton button2 = Toolkit::PushButton::New();
+ button2.SetLabelText( "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);
+ }
+
+private:
+ bool ToggleImageOnStage( Toolkit::Button button )
+ {
+ Toolkit::ImageView imageView = mImageViews[ mCurrentPositionToggle.columnIndex ][ mCurrentPositionToggle.rowIndex ];
+
+ if( mToggleOff )
+ {
+ imageView.Unparent();
+ }
+ else
+ {
+ mTable.AddChild( imageView, mCurrentPositionToggle );
+ }
+
+ ++mCurrentPositionToggle.columnIndex;
+ if( mCurrentPositionToggle.columnIndex == COLUMNS )
+ {
+ mCurrentPositionToggle.columnIndex = 0;
+ ++mCurrentPositionToggle.rowIndex;
+ }
+ if( mCurrentPositionToggle.rowIndex == ROWS )
+ {
+ mCurrentPositionToggle.rowIndex = 0;
+ mToggleOff = !mToggleOff;
+ }
+
+ return true;
+ }
+
+ bool ChangeImageClicked( Toolkit::Button button )
+ {
+ 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 ] );
+ }
+
+ ++mCurrentPositionImage.columnIndex;
+ if( mCurrentPositionImage.columnIndex == COLUMNS )
+ {
+ mCurrentPositionImage.columnIndex = 0;
+ ++mCurrentPositionImage.rowIndex;
+ }
+ if( mCurrentPositionImage.rowIndex == ROWS )
+ {
+ mCurrentPositionImage.rowIndex = 0;
+ ++mImageIdx;
+
+ int numImages = mUseResource ? NUM_RESOURCE_IMAGES : NUM_IMAGES;
+ if( mImageIdx == numImages )
+ {
+ mImageIdx = 0;
+ }
+ }
+
+ return true;
+ }
+
+ bool UseResourceImagesClicked( Toolkit::Button button )
+ {
+ mUseResource = !mUseResource;
+
+ int numImages = mUseResource ? NUM_RESOURCE_IMAGES : NUM_IMAGES;
+ if( mImageIdx >= numImages )
+ {
+ mImageIdx = 0;
+ }
+
+ return true;
+ }
+
+private:
+ Application& mApplication;
+
+ Toolkit::Control mView; ///< The View instance.
+ Toolkit::ToolBar mToolBar; ///< The View's Toolbar.
+ Layer mContentLayer; ///< Content layer
+ Toolkit::TableView mTable;
+ Toolkit::ImageView mImageViews[ COLUMNS ][ ROWS ];
+
+ Toolkit::TableView::CellPosition mCurrentPositionToggle;
+ Toolkit::TableView::CellPosition mCurrentPositionImage;
+
+ bool mToggleOff;
+ bool mUseResource;
+ int mImageIdx;
+
+};
+
+void RunTest( Application& application )
+{
+ ImageViewController test( application );
+
+ application.MainLoop();
+}
+
+// Entry point for Linux & Tizen applications
+//
+int main( int argc, char **argv )
+{
+ Application application = Application::New( &argc, &argv, DALI_DEMO_THEME_PATH );
+
+ RunTest( application );
+
+ return 0;
+}
diff --git a/examples/shadow-bone-lighting/shadow-bone-lighting-example.cpp b/examples/shadow-bone-lighting/shadow-bone-lighting-example.cpp
index 3e3cd84..347c53f 100644
--- a/examples/shadow-bone-lighting/shadow-bone-lighting-example.cpp
+++ b/examples/shadow-bone-lighting/shadow-bone-lighting-example.cpp
@@ -199,8 +199,7 @@ public:
mShadowView.SetPointLightFieldOfView( Math::PI / 2.0f);
mContents.Add(mShadowView);
- Image brickWall = ResourceImage::New(DALI_IMAGE_DIR "brick-wall.jpg");
- mShadowPlaneBg = ImageActor::New(brickWall);
+ mShadowPlaneBg = ImageView::New( DALI_IMAGE_DIR "brick-wall.jpg" );
mShadowPlaneBg.SetParentOrigin(ParentOrigin::CENTER);
mShadowPlaneBg.SetAnchorPoint(AnchorPoint::CENTER);
mShadowPlaneBg.SetName("Plane");
@@ -208,7 +207,7 @@ public:
mContents.Add(mShadowPlaneBg);
mShadowPlaneBg.SetPosition(Vector3(50.0f, 50.0f, -200.0f));
- mShadowView.SetShadowPlane(mShadowPlaneBg);
+ mShadowView.SetShadowPlaneBackground(mShadowPlaneBg);
mShadowView.Activate();
mLightAnchor = Actor::New();
@@ -454,8 +453,8 @@ private:
Animation mSceneAnimation;
bool mPaused;
Toolkit::ShadowView mShadowView;
- ImageActor mShadowPlaneBg;
- ImageActor mShadowPlane;
+ ImageView mShadowPlaneBg;
+ ImageView mShadowPlane;
Actor mCastingLight;
Actor mLightAnchor;
ImageView mImageActor1;
diff --git a/packaging/com.samsung.dali-demo.spec b/packaging/com.samsung.dali-demo.spec
index 7d6d3f3..faed13a 100755
--- a/packaging/com.samsung.dali-demo.spec
+++ b/packaging/com.samsung.dali-demo.spec
@@ -2,7 +2,7 @@
Name: com.samsung.dali-demo
Summary: The OpenGLES Canvas Core Demo
-Version: 1.1.7
+Version: 1.1.8
Release: 1
Group: System/Libraries
License: Apache-2.0
diff --git a/resources/images/heartsframe.9.png b/resources/images/heartsframe.9.png
new file mode 100644
index 0000000..9313d47
--- /dev/null
+++ b/resources/images/heartsframe.9.png
diff --git a/shared/dali-demo-strings.h b/shared/dali-demo-strings.h
index 9c62408..b2b10d9 100644
--- a/shared/dali-demo-strings.h
+++ b/shared/dali-demo-strings.h
@@ -94,6 +94,7 @@ extern "C"
#define DALI_DEMO_STR_TITLE_TEXTURED_MESH "Mesh Texture"
#define DALI_DEMO_STR_TITLE_LINE_MESH "Mesh Line"
#define DALI_DEMO_STR_TITLE_COLOR_GRADIENT "Color Gradient"
+#define DALI_DEMO_STR_TITLE_IMAGE_VIEW "Image View"
#endif