From: Heeyong Song Date: Thu, 26 Mar 2020 08:40:31 +0000 (+0900) Subject: Add arc visual example X-Git-Tag: dali_1.5.7~2 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-demo.git;a=commitdiff_plain;h=c7ed9572f0fdcccd9261ba4bb82767c211ef34a3 Add arc visual example Change-Id: I54af064b6e2abcdd40dad6eecdbb21b98e1eeab5 --- diff --git a/com.samsung.dali-demo.xml b/com.samsung.dali-demo.xml index bbbd944..10425fb 100644 --- a/com.samsung.dali-demo.xml +++ b/com.samsung.dali-demo.xml @@ -31,6 +31,9 @@ + + + diff --git a/examples-reel/dali-examples-reel.cpp b/examples-reel/dali-examples-reel.cpp index 63b782b..9b0c043 100644 --- a/examples-reel/dali-examples-reel.cpp +++ b/examples-reel/dali-examples-reel.cpp @@ -42,6 +42,7 @@ int DALI_EXPORT_API main(int argc, char **argv) demo.AddExample(Example("animated-shapes.example", DALI_DEMO_STR_TITLE_ANIMATED_SHAPES)); demo.AddExample(Example("animated-vector-images.example", DALI_DEMO_STR_TITLE_ANIMATED_VECTOR_IMAGES)); demo.AddExample(Example("alpha-blending-cpu.example", DALI_DEMO_STR_TITLE_ALPHA_BLENDING_CPU)); + demo.AddExample(Example("arc-visual.example", DALI_DEMO_STR_TITLE_ARC_VISUAL)); demo.AddExample(Example("bloom-view.example", DALI_DEMO_STR_TITLE_BLOOM_VIEW)); demo.AddExample(Example("builder.example", DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI)); demo.AddExample(Example("buttons.example", DALI_DEMO_STR_TITLE_BUTTONS)); diff --git a/examples/arc-visual/arc-visual-example.cpp b/examples/arc-visual/arc-visual-example.cpp new file mode 100644 index 0000000..24ecb42 --- /dev/null +++ b/examples/arc-visual/arc-visual-example.cpp @@ -0,0 +1,135 @@ +/* + * 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. + * 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 +#include +#include +#include +#include + +using namespace Dali; +using namespace Dali::Toolkit; + +namespace +{ + +const float START_ANGLE_INITIAL_VALUE( 0.0f ); +const float START_ANGLE_TARGET_VALUE( 360.0f ); +const float SWEEP_ANGLE_INITIAL_VALUE( 90.0f ); +const float SWEEP_ANGLE_TARGET_VALUE( 360.0f ); +const float ANIMATION_DURATION( 5.0f ); + +const Property::Value BACKGROUND +{ + { Visual::Property::TYPE, DevelVisual::ARC }, + { Visual::Property::MIX_COLOR, Color::RED }, + { DevelArcVisual::Property::START_ANGLE, 0.0f }, + { DevelArcVisual::Property::SWEEP_ANGLE, 90.0f }, + { DevelArcVisual::Property::CAP, DevelArcVisual::Cap::ROUND }, + { DevelArcVisual::Property::THICKNESS, 20.0f } +}; + +} // namespace + +// This example shows the properties of the arc visual - thickness, startAngle and sweepAngle and animates them. +// +class ArcVisualExample : public ConnectionTracker +{ +public: + + ArcVisualExample( Application& application ) + : mApplication( application ), + mStartAngle( 0.0f ), + mSweepAngle( 0.0f ) + { + // Connect to the Application's Init signal + mApplication.InitSignal().Connect( this, &ArcVisualExample::Create ); + } + + ~ArcVisualExample() = default; + +private: + + // The Init signal is received once (only) during the Application lifetime + void Create( Application& application ) + { + // Get a handle to the stage + Stage stage = Stage::GetCurrent(); + stage.SetBackgroundColor( Color::WHITE ); + + mControl = Control::New(); + mControl.SetParentOrigin( ParentOrigin::CENTER ); + mControl.SetSize( 200.0f, 200.0f ); + mControl.SetProperty( Control::Property::BACKGROUND, BACKGROUND ); + + stage.Add( mControl ); + + // Respond to a click anywhere on the stage + stage.GetRootLayer().TouchSignal().Connect( this, &ArcVisualExample::OnTouch ); + + // Respond to key events + stage.KeyEventSignal().Connect( this, &ArcVisualExample::OnKeyEvent ); + } + + bool OnTouch( Actor actor, const TouchData& touch ) + { + if( touch.GetState( 0 ) == PointState::UP ) + { + Property::Array array; + array.PushBack( Property::Map().Add( "target", "background" ) + .Add( "property", "startAngle" ) + .Add( "initialValue", START_ANGLE_INITIAL_VALUE ) + .Add( "targetValue", START_ANGLE_TARGET_VALUE ) + .Add( "animator", Property::Map().Add( "duration", ANIMATION_DURATION ) ) ); + array.PushBack( Property::Map().Add( "target", "background" ) + .Add( "property", "sweepAngle" ) + .Add( "initialValue", SWEEP_ANGLE_INITIAL_VALUE ) + .Add( "targetValue", SWEEP_ANGLE_TARGET_VALUE ) + .Add( "animator", Property::Map().Add( "duration", ANIMATION_DURATION ) ) ); + + TransitionData transitionData = TransitionData::New( array ); + Animation animation = DevelControl::CreateTransition( Toolkit::Internal::GetImplementation( mControl ), transitionData ); + animation.Play(); + } + return true; + } + + void OnKeyEvent( const KeyEvent& event ) + { + if( event.state == KeyEvent::Down ) + { + if ( IsKey( event, Dali::DALI_KEY_ESCAPE ) || IsKey( event, Dali::DALI_KEY_BACK ) ) + { + mApplication.Quit(); + } + } + } + +private: + Application& mApplication; + Control mControl; + float mStartAngle; + float mSweepAngle; +}; + +int DALI_EXPORT_API main( int argc, char **argv ) +{ + Application application = Application::New( &argc, &argv ); + ArcVisualExample test( application ); + application.MainLoop(); + return 0; +} diff --git a/resources/po/en_GB.po b/resources/po/en_GB.po index 44cc774..6a3e68e 100755 --- a/resources/po/en_GB.po +++ b/resources/po/en_GB.po @@ -7,6 +7,9 @@ msgstr "Animated Shapes" msgid "DALI_DEMO_STR_TITLE_ALPHA_BLENDING_CPU" msgstr "CPU Alpha Blending" +msgid "DALI_DEMO_STR_TITLE_ARC_VISUAL" +msgstr "Arc Visual" + msgid "DALI_DEMO_STR_TITLE_BASIC_LIGHT" msgstr "Basic Light" diff --git a/resources/po/en_US.po b/resources/po/en_US.po index f715b30..4e7d858 100755 --- a/resources/po/en_US.po +++ b/resources/po/en_US.po @@ -7,6 +7,9 @@ msgstr "Animated Shapes" msgid "DALI_DEMO_STR_TITLE_ALPHA_BLENDING_CPU" msgstr "CPU Alpha Blending" +msgid "DALI_DEMO_STR_TITLE_ARC_VISUAL" +msgstr "Arc Visual" + msgid "DALI_DEMO_STR_TITLE_BASIC_LIGHT" msgstr "Basic Light" diff --git a/resources/po/ko.po b/resources/po/ko.po index 6f7a847..d96a77d 100755 --- a/resources/po/ko.po +++ b/resources/po/ko.po @@ -4,6 +4,9 @@ msgstr "애니메이션 이미지" msgid "DALI_DEMO_STR_TITLE_ANIMATED_SHAPES" msgstr "애니메이션 모양" +msgid "DALI_DEMO_STR_TITLE_ARC_VISUAL" +msgstr "호 비주얼" + msgid "DALI_DEMO_STR_TITLE_BASIC_LIGHT" msgstr "기본 조명" diff --git a/shared/dali-demo-strings.h b/shared/dali-demo-strings.h index c35f6be..08290a1 100644 --- a/shared/dali-demo-strings.h +++ b/shared/dali-demo-strings.h @@ -38,6 +38,7 @@ extern "C" #define DALI_DEMO_STR_TITLE_ANIMATED_SHAPES dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_ANIMATED_SHAPES") #define DALI_DEMO_STR_TITLE_ANIMATED_VECTOR_IMAGES dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_ANIMATED_VECTOR_IMAGES") #define DALI_DEMO_STR_TITLE_ALPHA_BLENDING_CPU dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_ALPHA_BLENDING_CPU") +#define DALI_DEMO_STR_TITLE_ARC_VISUAL dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_ARC_VISUAL") #define DALI_DEMO_STR_TITLE_BASIC_LIGHT dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_BASIC_LIGHT") #define DALI_DEMO_STR_TITLE_BENCHMARK dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_BENCHMARK") #define DALI_DEMO_STR_TITLE_BEZIER_CURVE dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_BEZIER_CURVE") @@ -139,6 +140,7 @@ extern "C" #define DALI_DEMO_STR_TITLE_ANIMATED_SHAPES "Animated Shapes" #define DALI_DEMO_STR_TITLE_ANIMATED_VECTOR_IMAGES "Animated Vector Images" #define DALI_DEMO_STR_TITLE_ALPHA_BLENDING_CPU "CPU Alpha Blending" +#define DALI_DEMO_STR_TITLE_ARC_VISUAL "Arc Visual" #define DALI_DEMO_STR_TITLE_BASIC_LIGHT "Basic Light" #define DALI_DEMO_STR_TITLE_BENCHMARK "ImageView Benchmark" #define DALI_DEMO_STR_TITLE_BEZIER_CURVE "Alpha Function Bezier Curve"