<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns="http://tizen.org/ns/packages" package="com.samsung.dali-demo" version="0.0.1" api-version="2.4" install-location="internal-only">
<!-- NOTE THAT ALL LEADING WHITESPACE IN THIS FILE MUST BE TABS, NOT SPACES. APPS WITH LEADING SPACES WILL SILENTLY FAIL TO RUN ON A TARGET DEVICE. -->
-
<label>Dali Demo</label>
<author email="jonghyun.ho@samsung.com" href="www.samsung.com">Jonghyun Ho</author>
<description>DALi demo Application</description>
<ui-application appid="focus-integration.example" exec="/usr/apps/com.samsung.dali-demo/bin/focus-integration.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true">
<label>Focus Integration</label>
</ui-application>
+ <ui-application appid="remote-image-loading.example" exec="/usr/apps/com.samsung.dali-demo/bin/remote-image-loading.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true">
+ <label>Remote Image</label>
+ </ui-application>
<ui-application appid="rendering-cube.example" exec="/usr/apps/com.samsung.dali-demo/bin/rendering-cube.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true">
<label>Rendering Cube</label>
</ui-application>
<ui-application appid="text-overlap.example" exec="/usr/apps/com.samsung.dali-demo/bin/text-overlap.example" nodisplay="true" multiple="false" type="c++app" taskmanage="true">
<label>Text Overlap</label>
</ui-application>
+ <privileges>
+ <privilege>http://tizen.org/privilege/mediastorage</privilege>
+ <privilege>http://tizen.org/privilege/externalstorage</privilege>
+ <privilege>http://tizen.org/privilege/externalstorage.appdata</privilege>
+ <privilege>http://tizen.org/privilege/unlimitedstorage</privilege>
+ <privilege>http://tizen.org/privilege/filesystem.write</privilege>
+ <privilege>http://tizen.org/privilege/filesystem.read</privilege>
+ <privilege>http://tizen.org/privilege/download</privilege>
+ <privilege>http://tizen.org/privilege/internet</privilege>
+ <privilege>http://tizen.org/privilege/network.get</privilege>
+ <privilege>http://tizen.org/privilege/network.profile</privilege>
+ <privilege>http://tizen.org/privilege/network.set</privilege>
+ </privileges>
</manifest>
--- /dev/null
+/*
+ * Copyright (c) 2016 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 <shared/utility.h>
+#include <stdlib.h>
+#include <iostream>
+#include <dali/dali.h>
+#include <dali-toolkit/dali-toolkit.h>
+#include <dali/devel-api/actors/actor-devel.h>
+
+
+using namespace Dali;
+using namespace Dali::Toolkit;
+
+// This example shows the load-time image scaling and filtering features.
+//
+class MyTester : public ConnectionTracker
+{
+public:
+ MyTester(Application &application) : mApplication(application)
+ {
+ // Connect to the Application's Init signal
+ mApplication.InitSignal().Connect(this, &MyTester::Create);
+ }
+
+ ~MyTester()
+ {
+ // Nothing to do here;
+ }
+
+ void ConnectEventSignal(Control control)
+ {
+ control.TouchSignal().Connect(this, &MyTester::OnControlTouch);
+
+ control.SetKeyboardFocusable(true);
+ control.KeyEventSignal().Connect(this, &MyTester::OnControlKeyEvent);
+ control.KeyInputFocusGainedSignal().Connect(this, &MyTester::OnFocusSet);
+ control.KeyInputFocusLostSignal().Connect(this, &MyTester::OnFocusUnSet);
+ }
+
+ // The Init signal is received once (only) during the Application lifetime
+ void Create(Application &application)
+ {
+ stage = Stage::GetCurrent();
+ stage.SetBackgroundColor(Color::BLACK);
+ stage.KeyEventSignal().Connect(this, &MyTester::OnKey);
+ stage.TouchSignal().Connect(this, &MyTester::OnTouch);
+
+ TextLabel rubric = TextLabel::New( "You will need a working internet connection to see the images below");
+ rubric.SetProperty( TextLabel::Property::MULTI_LINE, true );
+ rubric.SetProperty( TextLabel::Property::TEXT_COLOR, Color::WHITE );
+ rubric.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
+ rubric.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
+ rubric.SetParentOrigin( ParentOrigin::TOP_CENTER );
+ rubric.SetAnchorPoint( ParentOrigin::TOP_CENTER );
+ stage.Add( rubric );
+
+ mImageView1 = Toolkit::ImageView::New("http://static.midomi.com/s/s/images/000/000/000/000/293/259/19/520_000000000000293259191500x1500_72dpi_RGB_q70.jpg");
+
+ mImageView1.SetName("mImageView1");
+ mImageView1.SetParentOrigin(ParentOrigin::TOP_LEFT);
+ mImageView1.SetAnchorPoint(AnchorPoint::TOP_CENTER);
+ mImageView1.SetProperty(DevelActor::Property::POSITION_USES_ANCHOR_POINT, false);
+ mImageView1.SetPosition(0, 100);
+ mImageView1.SetBackgroundColor(Vector4(0.0f, 0.0f, 0.0f, 0.0f));
+ stage.Add(mImageView1);
+
+ mImageView2 = Toolkit::ImageView::New("http://static.midomi.com/s/s/images/000/000/000/000/212/651/88/520_000000000000212651881500x1500_72dpi_RGB_q70.jpg");
+ mImageView2.SetName("mImageView2");
+ mImageView2.SetParentOrigin(ParentOrigin::TOP_LEFT);
+ mImageView2.SetAnchorPoint(AnchorPoint::TOP_CENTER);
+ mImageView2.SetProperty(DevelActor::Property::POSITION_USES_ANCHOR_POINT, false);
+ mImageView2.SetPosition(400, 100);
+ mImageView2.SetBackgroundColor(Vector4(0.0f, 0.0f, 0.0f, 0.0f));
+ stage.Add(mImageView2);
+
+ mImageView3 = Toolkit::ImageView::New("http://static.midomi.com/s/s/images/000/000/000/000/212/353/21/520_000000000000212353211500x1500_72dpi_RGB_q70.jpg");
+ mImageView3.SetName("mImageView3");
+ mImageView3.SetParentOrigin(ParentOrigin::TOP_LEFT);
+ mImageView3.SetAnchorPoint(AnchorPoint::TOP_CENTER);
+ mImageView3.SetProperty(DevelActor::Property::POSITION_USES_ANCHOR_POINT, false);
+ mImageView3.SetPosition(0, 400);
+ mImageView3.SetBackgroundColor(Vector4(0.0f, 0.0f, 0.0f, 0.0f));
+ stage.Add(mImageView3);
+
+ mImageView4 = Toolkit::ImageView::New("http://d2k43l0oslhof9.cloudfront.net/platform/image/contents/vc/20/01/58/20170629100630071189_0bf6b911-a847-cba4-e518-be40fe2f579420170629192203240.jpg");
+ mImageView4.SetName("mImageView4");
+ mImageView4.SetParentOrigin(ParentOrigin::TOP_LEFT);
+ mImageView4.SetAnchorPoint(AnchorPoint::TOP_CENTER);
+ mImageView4.SetProperty(DevelActor::Property::POSITION_USES_ANCHOR_POINT, false);
+ mImageView4.SetPosition(400, 400);
+ mImageView4.SetBackgroundColor(Vector4(0.0f, 0.0f, 0.0f, 0.0f));
+ stage.Add(mImageView4);
+
+ mImageView5 = Toolkit::ImageView::New("http://static.midomi.com/h/images/w/weather_sunny.png");
+ mImageView5.SetName("mImageView5");
+ mImageView4.SetParentOrigin(ParentOrigin::TOP_LEFT);
+ mImageView5.SetAnchorPoint(AnchorPoint::TOP_CENTER);
+ mImageView5.SetProperty(DevelActor::Property::POSITION_USES_ANCHOR_POINT, false);
+ mImageView5.SetPosition(800, 100);
+ mImageView5.SetBackgroundColor(Vector4(0.0f, 0.0f, 0.0f, 0.0f));
+ stage.Add(mImageView5);
+
+ // Tie-in input event handlers:
+ stage.KeyEventSignal().Connect( this, &MyTester::OnKeyEvent );
+ }
+
+ void OnAnimationEnd(Animation &source)
+ {
+ std::cout<<"OnAnimationEnd" << std::endl;
+ }
+
+ 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();
+ }
+ }
+ }
+
+ void OnKey(const KeyEvent &event)
+ {
+ if (event.state == KeyEvent::Down)
+ {
+ std::cout<<"Stage key : " << event.keyCode << std::endl;
+ }
+ }
+
+ void OnTouch(const TouchData &touch)
+ {
+ if (touch.GetState(0) == PointState::DOWN)
+ {
+ std::cout<<"Stage touch" << std::endl;
+ }
+ }
+
+ bool OnControlKeyEvent(Toolkit::Control control, const KeyEvent &event)
+ {
+ if (event.state == KeyEvent::Down)
+ {
+ std::cout<<"Control down key : " << control.GetName() << ", keyCode : " << event.keyCode << std::endl;
+ }
+ else
+ {
+ std::cout<<"Control up key : " << control.GetName() << ", keyCode : " << event.keyCode << std::endl;
+ }
+ return false;
+ }
+
+ bool OnControlTouch(Actor actor, const TouchData &touch)
+ {
+ if (touch.GetState(0) == PointState::DOWN)
+ {
+
+ std::cout<<"Control touch " << actor.GetName() << ", parent " << actor.GetParent().GetName() << std::endl;
+ }
+
+ return false;
+ }
+
+ void OnFocusSet(Control control)
+ {
+ std::cout<<"OnFocusSet " << control.GetName() << std::endl;
+ }
+
+ void OnFocusUnSet(Control control)
+ {
+ std::cout<<"OnFocusUnSet " << control.GetName() << std::endl;
+ }
+
+private:
+ Stage stage;
+ Application &mApplication;
+
+ Control mControl1;
+ Control mControl2;
+ ImageView mImageView1;
+ ImageView mImageView2;
+ ImageView mImageView3;
+ ImageView mImageView4;
+ ImageView mImageView5;
+
+ TextLabel mTextLabel1;
+ TextLabel mTextLabel2;
+ TextField mTextField;
+ TextEditor mTextEditor;
+
+ Animation mAnimation;
+ Timer mTimer;
+
+};
+
+void RunTest(Application &application)
+{
+ MyTester 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);
+
+ return 0;
+}
#define DALI_DEMO_STR_TITLE_PIVOT dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_PIVOT")
#define DALI_DEMO_STR_TITLE_PRIMITIVE_SHAPES dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_PRIMITIVE_SHAPES")
#define DALI_DEMO_STR_TITLE_PROGRESS_BAR dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_PROGRESS_BAR")
+#define DALI_DEMO_STR_TITLE_REFRACTION dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_REFRACTION")
+#define DALI_DEMO_STR_TITLE_REMOTE_IMAGE dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_REMOTE_IMAGE")
#define DALI_DEMO_STR_TITLE_RENDERING_DRAW_LINE dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_RENDERING_DRAW_LINE")
#define DALI_DEMO_STR_TITLE_RENDERING_DRAW_TRIANGLE dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_RENDERING_DRAW_TRIANGLE")
#define DALI_DEMO_STR_TITLE_RENDERING_DRAW_CUBE dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_RENDERING_DRAW_CUBE")
#define DALI_DEMO_STR_TITLE_RENDERING_TEXTURED_CUBE dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_RENDERING_TEXTURED_CUBE")
#define DALI_DEMO_STR_TITLE_RENDERING_RADIAL_PROGRESS dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_RENDERING_RADIAL_PROGRESS")
#define DALI_DEMO_STR_TITLE_RENDERING_RAY_MARCHING dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_RENDERING_RAY_MARCHING")
-#define DALI_DEMO_STR_TITLE_REFRACTION dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_REFRACTION")
#define DALI_DEMO_STR_TITLE_RENDERER_STENCIL dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_RENDERER_STENCIL")
#define DALI_DEMO_STR_TITLE_SIMPLE_VISUALS_CONTROL dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_SIMPLE_VISUALS")
#define DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI")
#define DALI_DEMO_STR_TITLE_PIVOT "Pivot"
#define DALI_DEMO_STR_TITLE_PRIMITIVE_SHAPES "Primitive Shapes"
#define DALI_DEMO_STR_TITLE_PROGRESS_BAR "Progress Bar"
+#define DALI_DEMO_STR_TITLE_REFRACTION "Refract Effect"
+#define DALI_DEMO_STR_TITLE_REMOTE_IMAGE "Remote Image"
#define DALI_DEMO_STR_TITLE_RENDERING_DRAW_LINE "Draw Line"
#define DALI_DEMO_STR_TITLE_RENDERING_DRAW_TRIANGLE "Draw Triangle"
#define DALI_DEMO_STR_TITLE_RENDERING_DRAW_CUBE "Draw Cube"
#define DALI_DEMO_STR_TITLE_RENDERING_TEXTURED_CUBE "Textured Cube"
#define DALI_DEMO_STR_TITLE_RENDERING_RAY_MARCHING "Ray Marching"
#define DALI_DEMO_STR_TITLE_RENDERING_RADIAL_PROGRESS "Radial Progress"
-#define DALI_DEMO_STR_TITLE_REFRACTION "Refract Effect"
#define DALI_DEMO_STR_TITLE_RENDERER_STENCIL "Renderer Stencils"
#define DALI_DEMO_STR_TITLE_SIMPLE_VISUALS_CONTROL "Simple Visuals Control"
#define DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI "Script Based UI"