X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=examples%2Fmagnifier%2Fmagnifier-example.cpp;h=eadf675b551c9ee59523d8f2dad19138804dbd42;hb=1a473d5189ca7e7d55aca3a64a8a4ff2dc3b6c67;hp=8f0945dca6514df0565424119b5cabc60fdc0b55;hpb=25e0237281a127819e590c3c674dce8973c27bf1;p=platform%2Fcore%2Fuifw%2Fdali-demo.git diff --git a/examples/magnifier/magnifier-example.cpp b/examples/magnifier/magnifier-example.cpp index 8f0945d..eadf675 100644 --- a/examples/magnifier/magnifier-example.cpp +++ b/examples/magnifier/magnifier-example.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 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. @@ -26,33 +26,33 @@ using namespace Dali; namespace { -const char* BACKGROUND_IMAGE( DALI_IMAGE_DIR "background-magnifier.jpg" ); -const char* TOOLBAR_IMAGE( DALI_IMAGE_DIR "top-bar.png" ); +const char* BACKGROUND_IMAGE( DEMO_IMAGE_DIR "background-magnifier.jpg" ); +const char* TOOLBAR_IMAGE( DEMO_IMAGE_DIR "top-bar.png" ); const char* APPLICATION_TITLE( "Magnifier Example" ); -const Vector3 MAGNIFIER_SIZE(0.25f, 0.25f, 0.0f); ///< Magnifier sides should be 25% of the width of the stage +const Vector3 MAGNIFIER_SIZE(0.25f, 0.25f, 0.0f); ///< Magnifier sides should be 25% of the width of the window const float ANIMATION_DURATION(60.0f); ///< Run animation for a minute before repeating. const float MAGNIFIER_DISPLAY_DURATION(0.125f); ///< Duration in seconds for show/hide manual magnifier animation const float MAGNIFICATION_FACTOR(2.0f); ///< Amount to magnify by. -const float MAGNIFIER_INDENT(10.0f); ///< Indentation around edge of stage to define where magnifiers may move. +const float MAGNIFIER_INDENT(10.0f); ///< Indentation around edge of window to define where magnifiers may move. const float FINGER_RADIUS_INCHES(0.25f); ///< Average finger radius in inches from the center of index finger to edge. /** * MagnifierPathConstraint * This constraint governs the position of the * animating magnifier in a swirly pattern around - * the stage. + * the window. */ struct MagnifierPathConstraint { /** * Constraint constructor - * @param[in] stageSize The stage size so that the constraint can create a path - * within stage bounds. + * @param[in] windowSize The window size so that the constraint can create a path + * within window bounds. */ - MagnifierPathConstraint(const Vector3& stageSize, + MagnifierPathConstraint(const Vector3& windowSize, Vector3 offset = Vector3::ZERO) - : mStageSize(stageSize), + : mWindowSize(windowSize), mOffset(offset) { } @@ -64,12 +64,12 @@ struct MagnifierPathConstraint current = mOffset; - Vector3 range( mStageSize - size - Vector3::ONE * MAGNIFIER_INDENT * 2.0f ); + Vector3 range( mWindowSize - size - Vector3::ONE * MAGNIFIER_INDENT * 2.0f ); current.x += 0.5f * sinf(time * 0.471f) * range.width; current.y += 0.5f * sinf(time * 0.8739f) * range.height; } - Vector3 mStageSize; ///< Keep track of the stage size for determining path within stage bounds + Vector3 mWindowSize; ///< Keep track of the window size for determining path within window bounds Vector3 mOffset; ///< Amount to offset magnifier path }; @@ -173,6 +173,7 @@ public: : mApplication( application ), mView(), mAnimationTime(0.0f), + mAnimationTimeProperty( Property::INVALID_INDEX ), mMagnifierShown(false) { // Connect to the Application's Init signal @@ -193,17 +194,14 @@ public: */ void Create( Application& application ) { - Stage::GetCurrent().KeyEventSignal().Connect(this, &ExampleController::OnKeyEvent); - - mStageSize = Stage::GetCurrent().GetSize(); + Window window = application.GetWindow(); + window.KeyEventSignal().Connect(this, &ExampleController::OnKeyEvent); + mWindowSize = window.GetSize(); // The Init signal is received once (only) during the Application lifetime - // Hide the indicator bar - application.GetWindow().ShowIndicator( Dali::Window::INVISIBLE ); - // Creates a default view with a default tool bar. - // The view is added to the stage. + // The view is added to the window. Toolkit::ToolBar toolBar; mContent = DemoHelper::CreateView( application, mView, @@ -212,21 +210,21 @@ public: TOOLBAR_IMAGE, APPLICATION_TITLE ); - mContent.SetLeaveRequired(true); + mContent.SetProperty( Actor::Property::LEAVE_REQUIRED,true); mContent.TouchedSignal().Connect( this, &ExampleController::OnTouched ); // Create magnifier (controlled by human touch) Layer overlay = Layer::New(); - overlay.SetSensitive(false); - overlay.SetParentOrigin( ParentOrigin::CENTER ); - overlay.SetSize(mStageSize); - Stage::GetCurrent().Add(overlay); + overlay.SetProperty( Actor::Property::SENSITIVE,false); + overlay.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER ); + overlay.SetProperty( Actor::Property::SIZE, mWindowSize); + window.Add(overlay); mMagnifier = Toolkit::Magnifier::New(); mMagnifier.SetSourceActor( mView ); - mMagnifier.SetSize( MAGNIFIER_SIZE * mStageSize.width ); // Size of magnifier is in relation to stage width + mMagnifier.SetProperty( Actor::Property::SIZE, MAGNIFIER_SIZE * mWindowSize.width ); // Size of magnifier is in relation to window width mMagnifier.SetProperty( Toolkit::Magnifier::Property::MAGNIFICATION_FACTOR, MAGNIFICATION_FACTOR ); - mMagnifier.SetScale(Vector3::ZERO); + mMagnifier.SetProperty( Actor::Property::SCALE,Vector3::ZERO); overlay.Add( mMagnifier ); // Apply constraint to animate the position of the magnifier. @@ -235,27 +233,27 @@ public: constraint.AddSource( LocalSource(Actor::Property::PARENT_ORIGIN) ); constraint.AddSource( LocalSource(Actor::Property::ANCHOR_POINT) ); constraint.AddSource( ParentSource(Actor::Property::SIZE) ); - constraint.SetRemoveAction(Constraint::Discard); + constraint.SetRemoveAction(Constraint::DISCARD); constraint.Apply(); // Create bouncing magnifier automatically bounces around screen. mBouncingMagnifier = Toolkit::Magnifier::New(); mBouncingMagnifier.SetSourceActor( mView ); - mBouncingMagnifier.SetSize( MAGNIFIER_SIZE * mStageSize.width ); // Size of magnifier is in relation to stage width + mBouncingMagnifier.SetProperty( Actor::Property::SIZE, MAGNIFIER_SIZE * mWindowSize.width ); // Size of magnifier is in relation to window width mBouncingMagnifier.SetProperty( Toolkit::Magnifier::Property::MAGNIFICATION_FACTOR, MAGNIFICATION_FACTOR ); overlay.Add( mBouncingMagnifier ); - mAnimationTimeProperty = mBouncingMagnifier.RegisterProperty("animation-time", 0.0f); + mAnimationTimeProperty = mBouncingMagnifier.RegisterProperty("animationTime", 0.0f); ContinueAnimation(); // Apply constraint to animate the position of the magnifier. - constraint = Constraint::New( mBouncingMagnifier, Actor::Property::POSITION, MagnifierPathConstraint(mStageSize, mStageSize * 0.5f) ); + constraint = Constraint::New( mBouncingMagnifier, Actor::Property::POSITION, MagnifierPathConstraint(mWindowSize, mWindowSize * 0.5f) ); constraint.AddSource( LocalSource(Actor::Property::SIZE) ); constraint.AddSource( LocalSource(mAnimationTimeProperty) ); constraint.Apply(); // Apply constraint to animate the source of the magnifier. - constraint = Constraint::New( mBouncingMagnifier, Toolkit::Magnifier::Property::SOURCE_POSITION, MagnifierPathConstraint(mStageSize) ); + constraint = Constraint::New( mBouncingMagnifier, Toolkit::Magnifier::Property::SOURCE_POSITION, MagnifierPathConstraint(mWindowSize) ); constraint.AddSource( LocalSource(Actor::Property::SIZE) ); constraint.AddSource( LocalSource(mAnimationTimeProperty) ); constraint.Apply(); @@ -304,31 +302,30 @@ public: { if(event.GetPointCount() > 0) { - const TouchPoint& point = event.GetPoint(0); - switch(point.state) + switch( event.GetState( 0 ) ) { - case TouchPoint::Down: - case TouchPoint::Motion: + case PointState::DOWN: + case PointState::MOTION: { ShowMagnifier(); break; } - case TouchPoint::Up: - case TouchPoint::Leave: - case TouchPoint::Interrupted: + case PointState::UP: + case PointState::LEAVE: + case PointState::INTERRUPTED: { HideMagnifier(); break; } - default: + case PointState::STATIONARY: { break; } } // end switch - Vector3 touchPoint(point.screen); + Vector3 touchPoint( event.GetScreenPosition( 0 ) ); - SetMagnifierPosition(touchPoint - mStageSize * 0.5f); + SetMagnifierPosition(touchPoint - mWindowSize * 0.5f); } return false; @@ -364,7 +361,7 @@ public: /** * Manually sets the magnifier position - * @param[in] position The magnifier's position relative to center of stage + * @param[in] position The magnifier's position relative to center of window */ void SetMagnifierPosition(const Vector3 position) { @@ -372,14 +369,14 @@ public: // position magnifier glass such that bottom edge is touching/near top of finger. Vector3 glassPosition(position); - glassPosition.y -= mStageSize.width * MAGNIFIER_SIZE.height * 0.5f + Stage::GetCurrent().GetDpi().height * FINGER_RADIUS_INCHES; + glassPosition.y -= mWindowSize.width * MAGNIFIER_SIZE.height * 0.5f + mApplication.GetWindow().GetDpi().GetHeight() * FINGER_RADIUS_INCHES; - mMagnifier.SetPosition( glassPosition ); + mMagnifier.SetProperty( Actor::Property::POSITION, glassPosition ); } 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) ) { @@ -395,27 +392,17 @@ private: Layer mContent; ///< The content layer Toolkit::Magnifier mMagnifier; ///< The manually controlled magnifier Toolkit::Magnifier mBouncingMagnifier; ///< The animating magnifier (swirly animation) - Vector3 mStageSize; ///< The size of the stage + Vector3 mWindowSize; ///< The size of the window float mAnimationTime; ///< Keep track of start animation time. Property::Index mAnimationTimeProperty; ///< Animation time property (responsible for swirly animation) bool mMagnifierShown; ///< Flag indicating whether the magnifier is being shown or not. }; -void RunTest( Application& application ) +int DALI_EXPORT_API main( int argc, char **argv ) { + Application application = Application::New( &argc, &argv, DEMO_THEME_PATH ); ExampleController 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; }