Add arc visual example 24/229824/1
authorHeeyong Song <heeyong.song@samsung.com>
Thu, 26 Mar 2020 08:40:31 +0000 (17:40 +0900)
committerHeeyong Song <heeyong.song@samsung.com>
Mon, 6 Apr 2020 00:41:24 +0000 (09:41 +0900)
Change-Id: I54af064b6e2abcdd40dad6eecdbb21b98e1eeab5

com.samsung.dali-demo.xml
examples-reel/dali-examples-reel.cpp
examples/arc-visual/arc-visual-example.cpp [new file with mode: 0644]
resources/po/en_GB.po
resources/po/en_US.po
resources/po/ko.po
shared/dali-demo-strings.h

index bbbd944..10425fb 100644 (file)
@@ -31,6 +31,9 @@
        <ui-application appid="animated-shapes.example" exec="/usr/apps/com.samsung.dali-demo/bin/animated-shapes.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true">
                <label>Animated shapes</label>
        </ui-application>
+       <ui-application appid="arc-visual.example" exec="/usr/apps/com.samsung.dali-demo/bin/arc-visual.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true">
+               <label>Arc Visual</label>
+       </ui-application>
        <ui-application appid="benchmark.example" exec="/usr/apps/com.samsung.dali-demo/bin/benchmark.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true">
                <label>Benchmark</label>
        </ui-application>
index 63b782b..9b0c043 100644 (file)
@@ -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 (file)
index 0000000..24ecb42
--- /dev/null
@@ -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 <dali-toolkit/dali-toolkit.h>
+#include <dali-toolkit/devel-api/controls/control-devel.h>
+#include <dali-toolkit/devel-api/visuals/visual-properties-devel.h>
+#include <dali-toolkit/devel-api/visuals/arc-visual-properties-devel.h>
+#include <dali-toolkit/devel-api/visual-factory/transition-data.h>
+
+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;
+}
index 44cc774..6a3e68e 100755 (executable)
@@ -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"
 
index f715b30..4e7d858 100755 (executable)
@@ -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"
 
index 6f7a847..d96a77d 100755 (executable)
@@ -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 "기본 조명"
 
index c35f6be..08290a1 100644 (file)
@@ -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"