/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 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.
*/
#include <dali-toolkit/dali-toolkit.h>
-#include <dali-toolkit/devel-api/visuals/visual-properties-devel.h>
-#include <dali-toolkit/devel-api/visuals/image-visual-properties-devel.h>
#include <cstring>
using namespace Dali;
const char* const IMAGE_PATH_2 ( DEMO_IMAGE_DIR "people-medium-7.jpg" );
const char* const IMAGE_PATH_3 ( DEMO_IMAGE_DIR "people-medium-7-rgb565.png" ); // is compressed
const char* const IMAGE_PATH_4 ( DEMO_IMAGE_DIR "people-medium-7-masked.png" ); // has alpha channel
-const char* const MASK_IMAGE_PATH_1 ( DEMO_IMAGE_DIR "store_mask_profile_f.png" );
-const char* const MASK_IMAGE_PATH_2 ( DEMO_IMAGE_DIR "store_mask_profile_n.png" ); // 300x300
+const char* const MASK_IMAGE_PATH_1 ( DEMO_IMAGE_DIR "store_mask_profile_n.png" ); // 300x300
+const char* const MASK_IMAGE_PATH_2 ( DEMO_IMAGE_DIR "store_mask_profile_f.png" );
}
class ImageViewAlphaBlendApp : public ConnectionTracker
// This creates an image view with one of 3 images, and one of 2 masks.
// Clicking the screen will cycle through each combination of mask and image.
- // Get a handle to the stage
- Stage stage = Stage::GetCurrent();
- stage.KeyEventSignal().Connect(this, &ImageViewAlphaBlendApp::OnKeyEvent);
- stage.SetBackgroundColor( Color::WHITE );
+ // Get a handle to the window
+ Window window = application.GetWindow();
+ window.KeyEventSignal().Connect(this, &ImageViewAlphaBlendApp::OnKeyEvent);
+ window.SetBackgroundColor( Color::WHITE );
mImageView = Toolkit::ImageView::New();
- mImageView.SetSize(200, 200);
- mImageView.SetParentOrigin( ParentOrigin::CENTER );
- stage.Add(mImageView);
+ mImageView.SetProperty( Actor::Property::SIZE, Vector2(200, 200) );
+ mImageView.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
+ window.Add(mImageView);
mImageLabel = Toolkit::TextLabel::New();
- mImageLabel.SetParentOrigin( ParentOrigin::BOTTOM_CENTER );
- mImageLabel.SetAnchorPoint( ParentOrigin::BOTTOM_CENTER );
- mImageLabel.SetPosition( Vector3( 0.0f, -50.0f, 0.0f ) );
+ mImageLabel.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::BOTTOM_CENTER );
+ mImageLabel.SetProperty( Actor::Property::ANCHOR_POINT, ParentOrigin::BOTTOM_CENTER );
+ mImageLabel.SetProperty( Actor::Property::POSITION, Vector3( 0.0f, -50.0f, 0.0f ) );
mImageLabel.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::BLACK );
- stage.Add(mImageLabel);
+ window.Add(mImageLabel);
mMaskLabel = Toolkit::TextLabel::New();
- mMaskLabel.SetParentOrigin( ParentOrigin::BOTTOM_CENTER );
- mMaskLabel.SetAnchorPoint( ParentOrigin::BOTTOM_CENTER );
- mMaskLabel.SetPosition( Vector3( 0.0f, 0.0f, 0.0f ) );
+ mMaskLabel.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::BOTTOM_CENTER );
+ mMaskLabel.SetProperty( Actor::Property::ANCHOR_POINT, ParentOrigin::BOTTOM_CENTER );
+ mMaskLabel.SetProperty( Actor::Property::POSITION, Vector3( 0.0f, 0.0f, 0.0f ) );
mMaskLabel.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::BLACK );
- stage.Add(mMaskLabel);
+ window.Add(mMaskLabel);
LoadImages();
- stage.TouchSignal().Connect( this, &ImageViewAlphaBlendApp::OnTouched );
+ window.TouchedSignal().Connect( this, &ImageViewAlphaBlendApp::OnTouched );
}
- void OnTouched( const TouchData& touchData )
+ void OnTouched( const TouchEvent& touch )
{
static bool touched = false;
- if( touchData.GetState( 0 ) == PointState::DOWN )
+ if( touch.GetState( 0 ) == PointState::DOWN )
{
touched = true;
}
- if( touchData.GetState( 0 ) == PointState::UP && touched)
+ if( touch.GetState( 0 ) == PointState::UP && touched )
{
mImageCombinationIndex++;
touched = false;
const char* mask = masks[mImageCombinationIndex%2 ]; // Cycle through masks
const char* image = images[(mImageCombinationIndex/2)%4]; // then images
+
Property::Map map;
map.Add( Toolkit::Visual::Property::TYPE, Toolkit::Visual::Type::IMAGE );
map.Add( Toolkit::ImageVisual::Property::URL, image );
- map.Add( Toolkit::DevelImageVisual::Property::ALPHA_MASK_URL, mask );
+ map.Add( Toolkit::ImageVisual::Property::ALPHA_MASK_URL, mask );
+
+ if( mImageCombinationIndex%2 == 0 )
+ {
+ map.Add( Toolkit::ImageVisual::Property::MASK_CONTENT_SCALE, 1.f );
+ map.Add( Toolkit::ImageVisual::Property::CROP_TO_MASK, false );
+ }
+ else
+ {
+ map.Add( Toolkit::ImageVisual::Property::MASK_CONTENT_SCALE, 1.6f );
+ map.Add( Toolkit::ImageVisual::Property::CROP_TO_MASK, true );
+ }
+
mImageView.SetProperty( Toolkit::ImageView::Property::IMAGE, map );
mImageLabel.SetProperty( Toolkit::TextLabel::Property::TEXT, strrchr(image, '/') );
void OnKeyEvent(const KeyEvent& event)
{
- if(event.state == KeyEvent::Down)
+ if(event.GetState() == KeyEvent::DOWN)
{
if( IsKey( event, Dali::DALI_KEY_ESCAPE) || IsKey( event, Dali::DALI_KEY_BACK) )
{
int mImageCombinationIndex;
};
-void RunTest( Application& application )
-{
- ImageViewAlphaBlendApp test( application );
-
- application.MainLoop();
-}
-
-// Entry point for Linux & Tizen applications
-//
int DALI_EXPORT_API main( int argc, char **argv )
{
Application application = Application::New( &argc, &argv );
-
- RunTest( application );
-
+ ImageViewAlphaBlendApp test( application );
+ application.MainLoop();
return 0;
}