- DALI_IMAGE_DIR "gallery-large-1.jpg",
- DALI_IMAGE_DIR "gallery-large-2.jpg",
- DALI_IMAGE_DIR "gallery-large-3.jpg",
- DALI_IMAGE_DIR "gallery-large-4.jpg",
- DALI_IMAGE_DIR "gallery-large-5.jpg",
- DALI_IMAGE_DIR "gallery-large-6.jpg",
- DALI_IMAGE_DIR "gallery-large-7.jpg",
- DALI_IMAGE_DIR "gallery-large-8.jpg",
- DALI_IMAGE_DIR "gallery-large-9.jpg",
- DALI_IMAGE_DIR "gallery-large-10.jpg",
- DALI_IMAGE_DIR "gallery-large-11.jpg",
- DALI_IMAGE_DIR "gallery-large-12.jpg",
- DALI_IMAGE_DIR "gallery-large-13.jpg",
- DALI_IMAGE_DIR "gallery-large-14.jpg",
- DALI_IMAGE_DIR "gallery-large-15.jpg",
- DALI_IMAGE_DIR "gallery-large-16.jpg",
- DALI_IMAGE_DIR "gallery-large-17.jpg",
- DALI_IMAGE_DIR "gallery-large-18.jpg",
- DALI_IMAGE_DIR "gallery-large-19.jpg",
- DALI_IMAGE_DIR "gallery-large-20.jpg",
- DALI_IMAGE_DIR "gallery-large-21.jpg",
-
- DALI_IMAGE_DIR "background-1.jpg",
- DALI_IMAGE_DIR "background-2.jpg",
- DALI_IMAGE_DIR "background-3.jpg",
- DALI_IMAGE_DIR "background-4.jpg",
- DALI_IMAGE_DIR "background-5.jpg",
- DALI_IMAGE_DIR "background-blocks.jpg",
- DALI_IMAGE_DIR "background-magnifier.jpg",
-
- DALI_IMAGE_DIR "background-1.jpg",
- DALI_IMAGE_DIR "background-2.jpg",
- DALI_IMAGE_DIR "background-3.jpg",
- DALI_IMAGE_DIR "background-4.jpg",
- DALI_IMAGE_DIR "background-5.jpg",
- DALI_IMAGE_DIR "background-blocks.jpg",
- DALI_IMAGE_DIR "background-magnifier.jpg",
-
- DALI_IMAGE_DIR "book-landscape-cover-back.jpg",
- DALI_IMAGE_DIR "book-landscape-cover.jpg",
- DALI_IMAGE_DIR "book-landscape-p1.jpg",
- DALI_IMAGE_DIR "book-landscape-p2.jpg",
-
- DALI_IMAGE_DIR "book-portrait-cover.jpg",
- DALI_IMAGE_DIR "book-portrait-p1.jpg",
- DALI_IMAGE_DIR "book-portrait-p2.jpg",
+ DEMO_IMAGE_DIR "gallery-large-1.jpg",
+ DEMO_IMAGE_DIR "gallery-large-2.jpg",
+ DEMO_IMAGE_DIR "gallery-large-3.jpg",
+ DEMO_IMAGE_DIR "gallery-large-4.jpg",
+ DEMO_IMAGE_DIR "gallery-large-5.jpg",
+ DEMO_IMAGE_DIR "gallery-large-6.jpg",
+ DEMO_IMAGE_DIR "gallery-large-7.jpg",
+ DEMO_IMAGE_DIR "gallery-large-8.jpg",
+ DEMO_IMAGE_DIR "gallery-large-9.jpg",
+ DEMO_IMAGE_DIR "gallery-large-10.jpg",
+ DEMO_IMAGE_DIR "gallery-large-11.jpg",
+ DEMO_IMAGE_DIR "gallery-large-12.jpg",
+ DEMO_IMAGE_DIR "gallery-large-13.jpg",
+ DEMO_IMAGE_DIR "gallery-large-14.jpg",
+ DEMO_IMAGE_DIR "gallery-large-15.jpg",
+ DEMO_IMAGE_DIR "gallery-large-16.jpg",
+ DEMO_IMAGE_DIR "gallery-large-17.jpg",
+ DEMO_IMAGE_DIR "gallery-large-18.jpg",
+ DEMO_IMAGE_DIR "gallery-large-19.jpg",
+ DEMO_IMAGE_DIR "gallery-large-20.jpg",
+ DEMO_IMAGE_DIR "gallery-large-21.jpg",
+
+ DEMO_IMAGE_DIR "background-1.jpg",
+ DEMO_IMAGE_DIR "background-2.jpg",
+ DEMO_IMAGE_DIR "background-3.jpg",
+ DEMO_IMAGE_DIR "background-4.jpg",
+ DEMO_IMAGE_DIR "background-5.jpg",
+ DEMO_IMAGE_DIR "background-blocks.jpg",
+ DEMO_IMAGE_DIR "background-magnifier.jpg",
+
+ DEMO_IMAGE_DIR "background-1.jpg",
+ DEMO_IMAGE_DIR "background-2.jpg",
+ DEMO_IMAGE_DIR "background-3.jpg",
+ DEMO_IMAGE_DIR "background-4.jpg",
+ DEMO_IMAGE_DIR "background-5.jpg",
+ DEMO_IMAGE_DIR "background-blocks.jpg",
+ DEMO_IMAGE_DIR "background-magnifier.jpg",
+
+ DEMO_IMAGE_DIR "book-landscape-cover-back.jpg",
+ DEMO_IMAGE_DIR "book-landscape-cover.jpg",
+ DEMO_IMAGE_DIR "book-landscape-p1.jpg",
+ DEMO_IMAGE_DIR "book-landscape-p2.jpg",
+
+ DEMO_IMAGE_DIR "book-portrait-cover.jpg",
+ DEMO_IMAGE_DIR "book-portrait-p1.jpg",
+ DEMO_IMAGE_DIR "book-portrait-p2.jpg",
-/**
- * Creates an ImageActor
- *
- * @param[in] filename The path of the image.
- * @param[in] width The width of the image in pixels.
- * @param[in] height The height of the image in pixels.
- * @param[in] scalingMode The mode to use when scaling the image to fit the desired dimensions.
- */
-ImageActor CreateImageActor(const std::string& filename, unsigned int width, unsigned int height, ImageAttributes::ScalingMode scalingMode )
-{
- Image img = CreateImage( filename, width, height, scalingMode );
- ImageActor actor = ImageActor::New( img );
- actor.SetName( filename );
- actor.SetParentOrigin(ParentOrigin::CENTER);
- actor.SetAnchorPoint(AnchorPoint::CENTER);
+ Property::Map map;
+ map[Toolkit::ImageVisual::Property::URL] = filename;
+ map[Toolkit::ImageVisual::Property::DESIRED_WIDTH] = width;
+ map[Toolkit::ImageVisual::Property::DESIRED_HEIGHT] = height;
+ map[Toolkit::ImageVisual::Property::FITTING_MODE] = fittingMode;
+ imageView.SetProperty( Toolkit::ImageView::Property::IMAGE, map );
+
+ imageView.SetProperty( Dali::Actor::Property::NAME, filename );
+ imageView.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::CENTER);
+ imageView.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::CENTER);
+ // Create the scroll bar
+ mScrollBarVertical = ScrollBar::New(Toolkit::ScrollBar::VERTICAL);
+ mScrollBarVertical.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_RIGHT);
+ mScrollBarVertical.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_RIGHT);
+ mScrollBarVertical.SetResizePolicy(Dali::ResizePolicy::FILL_TO_PARENT, Dali::Dimension::HEIGHT);
+ mScrollBarVertical.SetResizePolicy(Dali::ResizePolicy::FIT_TO_CHILDREN, Dali::Dimension::WIDTH);
+ mScrollView.Add(mScrollBarVertical);
+
+ mScrollBarHorizontal = ScrollBar::New(Toolkit::ScrollBar::HORIZONTAL);
+ mScrollBarHorizontal.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::BOTTOM_LEFT);
+ mScrollBarHorizontal.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT);
+ mScrollBarHorizontal.SetResizePolicy(Dali::ResizePolicy::FIT_TO_CHILDREN, Dali::Dimension::WIDTH);
+ mScrollBarHorizontal.SetProperty( Actor::Property::ORIENTATION, Quaternion( Quaternion( Radian( 1.5f * Math::PI ), Vector3::ZAXIS) ) );
+ mScrollView.Add(mScrollBarHorizontal);
+
+ mScrollView.OnRelayoutSignal().Connect( this, &ImageScalingIrregularGridController::OnScrollViewRelayout );
+
- ImageActor image = CreateImageActor( imageSource.configuration.path, imageSize.x, imageSize.y, scalingMode );
- image.SetPosition( Vector3( imagePosition.x, imagePosition.y, 0 ) );
- image.SetSize( imageSize );
- image.TouchedSignal().Connect( this, &ImageScalingIrregularGridController::OnTouchImage );
- mScalingModes[image.GetId()] = scalingMode;
- mSizes[image.GetId()] = imageSize;
-
- gridActor.Add( image );
+ ImageView image = CreateImageView( imageSource.configuration.path, imageSize.x, imageSize.y, fittingMode );
+ image.SetProperty( Actor::Property::POSITION, Vector3( imagePosition.x, imagePosition.y, 0 ) );
+ image.SetProperty( Actor::Property::SIZE, imageSize );
+ image.TouchSignal().Connect( this, &ImageScalingIrregularGridController::OnTouchImage );
+ image.ResourceReadySignal().Connect( this, &ImageScalingIrregularGridController::ResourceReadySignal );
+ mFittingModes[image.GetProperty< int >( Actor::Property::ID )] = fittingMode;
+ mResourceUrls[image.GetProperty< int >( Actor::Property::ID )] = imageSource.configuration.path;
+ mSizes[image.GetProperty< int >( Actor::Property::ID )] = imageSize;
+ if ( count < INITIAL_IMAGES_TO_LOAD )
+ {
+ gridActor.Add( image );
+ }
+ else
+ {
+ // Store the ImageView in an offwindow actor until the inital batch of ImageViews have finished loading their images
+ // Required
+ mOffWindowImageViews.Add( image );
+ }
- const unsigned id = actor.GetId();
- ImageAttributes::ScalingMode newMode = NextMode( mScalingModes[id] );
- const Vector2 imageSize = mSizes[actor.GetId()];
-
- ImageActor imageActor = ImageActor::DownCast( actor );
- Image oldImage = imageActor.GetImage();
- Image newImage = CreateImage( ResourceImage::DownCast(oldImage).GetUrl(), imageSize.width + 0.5f, imageSize.height + 0.5f, newMode );
- imageActor.SetImage( newImage );
- mScalingModes[id] = newMode;
+ const unsigned id = actor.GetProperty< int >( Actor::Property::ID );
+ Dali::FittingMode::Type newMode = NextMode( mFittingModes[id] );
+ const Vector2 imageSize = mSizes[actor.GetProperty< int >( Actor::Property::ID )];
+
+ ImageView imageView = ImageView::DownCast( actor );
+ if( imageView)
+ {
+ Property::Map map;
+ map[Visual::Property::TYPE] = Visual::IMAGE;
+ map[ImageVisual::Property::URL] = mResourceUrls[id];
+ map[ImageVisual::Property::DESIRED_WIDTH] = imageSize.width + 0.5f;
+ map[ImageVisual::Property::DESIRED_HEIGHT] = imageSize.height + 0.5f;
+ map[ImageVisual::Property::FITTING_MODE] = newMode;
+ imageView.SetProperty( ImageView::Property::IMAGE, map );
+ }
+
+ mFittingModes[id] = newMode;