Remove V8 plugin 67/208967/2
authorAdeel Kazmi <adeel.kazmi@samsung.com>
Mon, 1 Jul 2019 17:05:15 +0000 (18:05 +0100)
committerAdeel Kazmi <adeel.kazmi@samsung.com>
Mon, 1 Jul 2019 19:07:43 +0000 (20:07 +0100)
Change-Id: If2c1980e49692a99e181fc7e468ef1421bd9fbb2

288 files changed:
CMakeLists.txt
automated-tests/src/dali-toolkit/CMakeLists.txt
automated-tests/src/dali-toolkit/utc-Dali-Script.cpp [deleted file]
build/tizen/Makefile.am
build/tizen/configure.ac
build/tizen/dali-toolkit/Makefile.am
build/tizen/docs/Makefile.am
build/tizen/plugins/csharp/Makefile.am [deleted file]
build/tizen/plugins/javascript/Makefile.am [deleted file]
dali-addon.manifest [deleted file]
dali-toolkit/devel-api/file.list
dali-toolkit/devel-api/scripting/script-plugin.h [deleted file]
dali-toolkit/devel-api/scripting/script.cpp [deleted file]
dali-toolkit/devel-api/scripting/script.h [deleted file]
dali-toolkit/internal/file.list
dali-toolkit/internal/scripting/script-impl.cpp [deleted file]
dali-toolkit/internal/scripting/script-impl.h [deleted file]
dali-toolkit/internal/scripting/script-plugin-proxy.cpp [deleted file]
dali-toolkit/internal/scripting/script-plugin-proxy.h [deleted file]
docs/content/figures/image-scaling/example-fitting-mode-options.svg
docs/content/images/javascript-wrapping-guide/scripting-overview.png [deleted file]
docs/content/main.md
docs/content/programming-guide/accessibility.md [new file with mode: 0644]
docs/content/programming-guide/animation.md [new file with mode: 0644]
docs/content/programming-guide/build-guide.md [new file with mode: 0644]
docs/content/programming-guide/copy-and-paste.md [new file with mode: 0644]
docs/content/programming-guide/creating-custom-controls.md [new file with mode: 0644]
docs/content/programming-guide/dali-introduction.md [new file with mode: 0644]
docs/content/programming-guide/debug-rendering.md [new file with mode: 0644]
docs/content/programming-guide/documentation-guide.md [new file with mode: 0644]
docs/content/programming-guide/flex-container.md [new file with mode: 0644]
docs/content/programming-guide/font-selection.md [new file with mode: 0644]
docs/content/programming-guide/fundamentals.md [new file with mode: 0644]
docs/content/programming-guide/high-level-design.md [new file with mode: 0644]
docs/content/programming-guide/input-style.md [new file with mode: 0644]
docs/content/programming-guide/item-view.md [new file with mode: 0644]
docs/content/programming-guide/layer.md [new file with mode: 0644]
docs/content/programming-guide/markup-style.md [new file with mode: 0644]
docs/content/programming-guide/multi-touch-guide.md [new file with mode: 0644]
docs/content/programming-guide/performance-profiling.md [new file with mode: 0644]
docs/content/programming-guide/performance-tips.md [new file with mode: 0644]
docs/content/programming-guide/popup.md [new file with mode: 0644]
docs/content/programming-guide/programming-languages.md [new file with mode: 0644]
docs/content/programming-guide/properties.h
docs/content/programming-guide/resource-image-scaling.md [new file with mode: 0644]
docs/content/programming-guide/resource-tracking.md [new file with mode: 0644]
docs/content/programming-guide/resources.md [new file with mode: 0644]
docs/content/programming-guide/script-hello.md [new file with mode: 0644]
docs/content/programming-guide/script-json-specification.md [new file with mode: 0644]
docs/content/programming-guide/script-overview.md [new file with mode: 0644]
docs/content/programming-guide/signals-actions.md [new file with mode: 0644]
docs/content/programming-guide/stage-hand.md [new file with mode: 0644]
docs/content/programming-guide/text-auto-scrolling.md [new file with mode: 0644]
docs/content/programming-guide/text-editor.md [new file with mode: 0644]
docs/content/programming-guide/text-field.md [new file with mode: 0644]
docs/content/programming-guide/text-label.md [new file with mode: 0644]
docs/content/programming-guide/visuals.md [new file with mode: 0644]
docs/content/shared-javascript-and-cpp-documentation/accessibility.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/animation.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/build-guide.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/copy-and-paste.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/creating-custom-controls.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/dali-introduction.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/debug-rendering.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/documentation-guide.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/emscripten.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/flex-container.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/font-selection.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/fundamentals.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/high-level-design.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/input-style.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/item-view.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/javascript-wrapping-guide.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/layer.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/markup-style.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/multi-touch-guide.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/performance-profiling.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/performance-tips.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/popup.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/programming-languages.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/resource-image-scaling.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/resource-tracking.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/resources.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/script-hello.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/script-json-specification.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/script-overview.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/signals-actions.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/stage-hand.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/text-auto-scrolling.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/text-editor.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/text-field.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/text-label.md [deleted file]
docs/content/shared-javascript-and-cpp-documentation/visuals.md [deleted file]
node-addon/README [deleted file]
node-addon/binding.gyp [deleted file]
node-addon/build/binding.Makefile [deleted file]
node-addon/build/tizen/CMakeLists.txt [deleted file]
node-addon/dali-addon.cpp [deleted file]
node-addon/examples/flex-container.js [deleted file]
node-addon/examples/images/icon-0.png [deleted file]
node-addon/examples/images/icon-1.png [deleted file]
node-addon/examples/images/icon-2.png [deleted file]
node-addon/examples/images/image-1.jpg [deleted file]
node-addon/examples/images/image-2.jpg [deleted file]
node-addon/examples/images/image-3.jpg [deleted file]
node-addon/examples/item-view.js [deleted file]
node-addon/examples/line-mesh.js [deleted file]
node-addon/examples/mesh-morph.js [deleted file]
node-addon/examples/point-mesh.js [deleted file]
node-addon/examples/scripts/item-template.json [deleted file]
node-addon/examples/scroll-view.js [deleted file]
node-addon/examples/texture-mesh.js [deleted file]
node-addon/item-template.json [deleted file]
node-addon/javascript-application-options.cpp [deleted file]
node-addon/javascript-application-options.h [deleted file]
node-addon/package.json [deleted file]
plugins/dali-script-v8/.gitignore [deleted file]
plugins/dali-script-v8/docs/.gitignore [deleted file]
plugins/dali-script-v8/docs/README.txt [deleted file]
plugins/dali-script-v8/docs/content/actor.js [deleted file]
plugins/dali-script-v8/docs/content/animation.js [deleted file]
plugins/dali-script-v8/docs/content/camera-actor.js [deleted file]
plugins/dali-script-v8/docs/content/constants.js [deleted file]
plugins/dali-script-v8/docs/content/dali.js [deleted file]
plugins/dali-script-v8/docs/content/helpers.js [deleted file]
plugins/dali-script-v8/docs/content/image-view.js [deleted file]
plugins/dali-script-v8/docs/content/image.js [deleted file]
plugins/dali-script-v8/docs/content/item-factory.js [deleted file]
plugins/dali-script-v8/docs/content/item-view.js [deleted file]
plugins/dali-script-v8/docs/content/keyboard-focus-manager.js [deleted file]
plugins/dali-script-v8/docs/content/layer-actor.js [deleted file]
plugins/dali-script-v8/docs/content/module-loader.js [deleted file]
plugins/dali-script-v8/docs/content/pan-gesture-detector.js [deleted file]
plugins/dali-script-v8/docs/content/path-animation.js [deleted file]
plugins/dali-script-v8/docs/content/render-task.js [deleted file]
plugins/dali-script-v8/docs/content/resource-image.js [deleted file]
plugins/dali-script-v8/docs/content/scroll-view.js [deleted file]
plugins/dali-script-v8/docs/content/stage.js [deleted file]
plugins/dali-script-v8/docs/dali-theme/assets/css/external-small.png [deleted file]
plugins/dali-script-v8/docs/dali-theme/assets/css/logo.png [deleted file]
plugins/dali-script-v8/docs/dali-theme/assets/css/main.css [deleted file]
plugins/dali-script-v8/docs/dali-theme/assets/favicon.png [deleted file]
plugins/dali-script-v8/docs/dali-theme/assets/img [deleted symlink]
plugins/dali-script-v8/docs/dali-theme/assets/index.html [deleted file]
plugins/dali-script-v8/docs/dali-theme/assets/js/api-filter.js [deleted file]
plugins/dali-script-v8/docs/dali-theme/assets/js/api-list.js [deleted file]
plugins/dali-script-v8/docs/dali-theme/assets/js/api-search.js [deleted file]
plugins/dali-script-v8/docs/dali-theme/assets/js/apidocs.js [deleted file]
plugins/dali-script-v8/docs/dali-theme/assets/js/yui-prettify.js [deleted file]
plugins/dali-script-v8/docs/dali-theme/assets/vendor/prettify/CHANGES.html [deleted file]
plugins/dali-script-v8/docs/dali-theme/assets/vendor/prettify/COPYING [deleted file]
plugins/dali-script-v8/docs/dali-theme/assets/vendor/prettify/prettify-min.css [deleted file]
plugins/dali-script-v8/docs/dali-theme/assets/vendor/prettify/prettify-min.js [deleted file]
plugins/dali-script-v8/docs/dali-theme/layouts/main.handlebars [deleted file]
plugins/dali-script-v8/docs/dali-theme/layouts/xhr.handlebars [deleted file]
plugins/dali-script-v8/docs/dali-theme/partials/attrs.handlebars [deleted file]
plugins/dali-script-v8/docs/dali-theme/partials/classes.handlebars [deleted file]
plugins/dali-script-v8/docs/dali-theme/partials/events.handlebars [deleted file]
plugins/dali-script-v8/docs/dali-theme/partials/files.handlebars [deleted file]
plugins/dali-script-v8/docs/dali-theme/partials/index.handlebars [deleted file]
plugins/dali-script-v8/docs/dali-theme/partials/method.handlebars [deleted file]
plugins/dali-script-v8/docs/dali-theme/partials/module.handlebars [deleted file]
plugins/dali-script-v8/docs/dali-theme/partials/options.handlebars [deleted file]
plugins/dali-script-v8/docs/dali-theme/partials/props.handlebars [deleted file]
plugins/dali-script-v8/docs/dali-theme/partials/sidebar.handlebars [deleted file]
plugins/dali-script-v8/docs/dali-theme/theme.json [deleted file]
plugins/dali-script-v8/docs/gmon.out [deleted file]
plugins/dali-script-v8/docs/yuidoc.json [deleted file]
plugins/dali-script-v8/file.list [deleted file]
plugins/dali-script-v8/src/actors/actor-api.cpp [deleted file]
plugins/dali-script-v8/src/actors/actor-api.h [deleted file]
plugins/dali-script-v8/src/actors/actor-wrapper.cpp [deleted file]
plugins/dali-script-v8/src/actors/actor-wrapper.h [deleted file]
plugins/dali-script-v8/src/actors/camera-actor-api.cpp [deleted file]
plugins/dali-script-v8/src/actors/camera-actor-api.h [deleted file]
plugins/dali-script-v8/src/actors/layer-api.cpp [deleted file]
plugins/dali-script-v8/src/actors/layer-api.h [deleted file]
plugins/dali-script-v8/src/animation/animation-api.cpp [deleted file]
plugins/dali-script-v8/src/animation/animation-api.h [deleted file]
plugins/dali-script-v8/src/animation/animation-wrapper.cpp [deleted file]
plugins/dali-script-v8/src/animation/animation-wrapper.h [deleted file]
plugins/dali-script-v8/src/animation/constrainer-api.cpp [deleted file]
plugins/dali-script-v8/src/animation/constrainer-api.h [deleted file]
plugins/dali-script-v8/src/animation/linear-constrainer-wrapper.cpp [deleted file]
plugins/dali-script-v8/src/animation/linear-constrainer-wrapper.h [deleted file]
plugins/dali-script-v8/src/animation/path-api.cpp [deleted file]
plugins/dali-script-v8/src/animation/path-api.h [deleted file]
plugins/dali-script-v8/src/animation/path-constrainer-wrapper.cpp [deleted file]
plugins/dali-script-v8/src/animation/path-constrainer-wrapper.h [deleted file]
plugins/dali-script-v8/src/animation/path-wrapper.cpp [deleted file]
plugins/dali-script-v8/src/animation/path-wrapper.h [deleted file]
plugins/dali-script-v8/src/constants/constants-wrapper.cpp [deleted file]
plugins/dali-script-v8/src/constants/constants-wrapper.h [deleted file]
plugins/dali-script-v8/src/controls/control-wrapper.cpp [deleted file]
plugins/dali-script-v8/src/controls/control-wrapper.h [deleted file]
plugins/dali-script-v8/src/controls/item-factory-wrapper.cpp [deleted file]
plugins/dali-script-v8/src/controls/item-factory-wrapper.h [deleted file]
plugins/dali-script-v8/src/controls/item-view-api.cpp [deleted file]
plugins/dali-script-v8/src/controls/item-view-api.h [deleted file]
plugins/dali-script-v8/src/controls/scroll-view-api.cpp [deleted file]
plugins/dali-script-v8/src/controls/scroll-view-api.h [deleted file]
plugins/dali-script-v8/src/dali-script-v8.cpp [deleted file]
plugins/dali-script-v8/src/dali-script-v8.h [deleted file]
plugins/dali-script-v8/src/dali-wrapper.cpp [deleted file]
plugins/dali-script-v8/src/dali-wrapper.h [deleted file]
plugins/dali-script-v8/src/events/event-object-generator.cpp [deleted file]
plugins/dali-script-v8/src/events/event-object-generator.h [deleted file]
plugins/dali-script-v8/src/events/pan-gesture-detector-api.cpp [deleted file]
plugins/dali-script-v8/src/events/pan-gesture-detector-api.h [deleted file]
plugins/dali-script-v8/src/events/pan-gesture-detector-wrapper.cpp [deleted file]
plugins/dali-script-v8/src/events/pan-gesture-detector-wrapper.h [deleted file]
plugins/dali-script-v8/src/garbage-collector/garbage-collector.cpp [deleted file]
plugins/dali-script-v8/src/garbage-collector/garbage-collector.h [deleted file]
plugins/dali-script-v8/src/image/buffer-image-api.cpp [deleted file]
plugins/dali-script-v8/src/image/buffer-image-api.h [deleted file]
plugins/dali-script-v8/src/image/frame-buffer-image-api.cpp [deleted file]
plugins/dali-script-v8/src/image/frame-buffer-image-api.h [deleted file]
plugins/dali-script-v8/src/image/image-api.cpp [deleted file]
plugins/dali-script-v8/src/image/image-api.h [deleted file]
plugins/dali-script-v8/src/image/image-wrapper.cpp [deleted file]
plugins/dali-script-v8/src/image/image-wrapper.h [deleted file]
plugins/dali-script-v8/src/image/resource-image-api.cpp [deleted file]
plugins/dali-script-v8/src/image/resource-image-api.h [deleted file]
plugins/dali-script-v8/src/interfaces/garbage-collector-interface.h [deleted file]
plugins/dali-script-v8/src/module-loader/module-loader.cpp [deleted file]
plugins/dali-script-v8/src/module-loader/module-loader.h [deleted file]
plugins/dali-script-v8/src/module-loader/module.cpp [deleted file]
plugins/dali-script-v8/src/module-loader/module.h [deleted file]
plugins/dali-script-v8/src/object/handle-wrapper.cpp [deleted file]
plugins/dali-script-v8/src/object/handle-wrapper.h [deleted file]
plugins/dali-script-v8/src/object/property-buffer-api.cpp [deleted file]
plugins/dali-script-v8/src/object/property-buffer-api.h [deleted file]
plugins/dali-script-v8/src/object/property-buffer-wrapper.cpp [deleted file]
plugins/dali-script-v8/src/object/property-buffer-wrapper.h [deleted file]
plugins/dali-script-v8/src/object/property-value-wrapper.cpp [deleted file]
plugins/dali-script-v8/src/object/property-value-wrapper.h [deleted file]
plugins/dali-script-v8/src/render-tasks/render-task-api.cpp [deleted file]
plugins/dali-script-v8/src/render-tasks/render-task-api.h [deleted file]
plugins/dali-script-v8/src/render-tasks/render-task-list-api.cpp [deleted file]
plugins/dali-script-v8/src/render-tasks/render-task-list-api.h [deleted file]
plugins/dali-script-v8/src/render-tasks/render-task-list-wrapper.cpp [deleted file]
plugins/dali-script-v8/src/render-tasks/render-task-list-wrapper.h [deleted file]
plugins/dali-script-v8/src/render-tasks/render-task-wrapper.cpp [deleted file]
plugins/dali-script-v8/src/render-tasks/render-task-wrapper.h [deleted file]
plugins/dali-script-v8/src/rendering/geometry-api.cpp [deleted file]
plugins/dali-script-v8/src/rendering/geometry-api.h [deleted file]
plugins/dali-script-v8/src/rendering/geometry-wrapper.cpp [deleted file]
plugins/dali-script-v8/src/rendering/geometry-wrapper.h [deleted file]
plugins/dali-script-v8/src/rendering/renderer-api.cpp [deleted file]
plugins/dali-script-v8/src/rendering/renderer-api.h [deleted file]
plugins/dali-script-v8/src/rendering/renderer-wrapper.cpp [deleted file]
plugins/dali-script-v8/src/rendering/renderer-wrapper.h [deleted file]
plugins/dali-script-v8/src/rendering/sampler-api.cpp [deleted file]
plugins/dali-script-v8/src/rendering/sampler-api.h [deleted file]
plugins/dali-script-v8/src/rendering/sampler-wrapper.cpp [deleted file]
plugins/dali-script-v8/src/rendering/sampler-wrapper.h [deleted file]
plugins/dali-script-v8/src/rendering/shader-api.cpp [deleted file]
plugins/dali-script-v8/src/rendering/shader-api.h [deleted file]
plugins/dali-script-v8/src/rendering/shader-wrapper.cpp [deleted file]
plugins/dali-script-v8/src/rendering/shader-wrapper.h [deleted file]
plugins/dali-script-v8/src/rendering/texture-set-api.cpp [deleted file]
plugins/dali-script-v8/src/rendering/texture-set-api.h [deleted file]
plugins/dali-script-v8/src/rendering/texture-set-wrapper.cpp [deleted file]
plugins/dali-script-v8/src/rendering/texture-set-wrapper.h [deleted file]
plugins/dali-script-v8/src/shared/api-function.h [deleted file]
plugins/dali-script-v8/src/shared/base-wrapped-object.cpp [deleted file]
plugins/dali-script-v8/src/shared/base-wrapped-object.h [deleted file]
plugins/dali-script-v8/src/shared/object-template-helper.cpp [deleted file]
plugins/dali-script-v8/src/shared/object-template-helper.h [deleted file]
plugins/dali-script-v8/src/signals/dali-any-javascript-converter.cpp [deleted file]
plugins/dali-script-v8/src/signals/dali-any-javascript-converter.h [deleted file]
plugins/dali-script-v8/src/signals/emit-notification-interface.h [deleted file]
plugins/dali-script-v8/src/signals/signal-manager.cpp [deleted file]
plugins/dali-script-v8/src/signals/signal-manager.h [deleted file]
plugins/dali-script-v8/src/stage/stage-api.cpp [deleted file]
plugins/dali-script-v8/src/stage/stage-api.h [deleted file]
plugins/dali-script-v8/src/stage/stage-wrapper.cpp [deleted file]
plugins/dali-script-v8/src/stage/stage-wrapper.h [deleted file]
plugins/dali-script-v8/src/toolkit/builder/builder-api.cpp [deleted file]
plugins/dali-script-v8/src/toolkit/builder/builder-api.h [deleted file]
plugins/dali-script-v8/src/toolkit/builder/builder-wrapper.cpp [deleted file]
plugins/dali-script-v8/src/toolkit/builder/builder-wrapper.h [deleted file]
plugins/dali-script-v8/src/toolkit/focus-manager/keyboard-focus-manager-api.cpp [deleted file]
plugins/dali-script-v8/src/toolkit/focus-manager/keyboard-focus-manager-api.h [deleted file]
plugins/dali-script-v8/src/toolkit/focus-manager/keyboard-focus-manager-wrapper.cpp [deleted file]
plugins/dali-script-v8/src/toolkit/focus-manager/keyboard-focus-manager-wrapper.h [deleted file]
plugins/dali-script-v8/src/utils/v8-utils.cpp [deleted file]
plugins/dali-script-v8/src/utils/v8-utils.h [deleted file]

index 57599c796c9ed98d853950329237761f33a82cd0..ff17e64e5dc0bfffa34f86107665959e91385913 100755 (executable)
@@ -62,7 +62,6 @@ SET ( SOURCES ${SOURCES}
   ${devel_api_src_dir}/image-loader/atlas-upload-observer.cpp\r
   ${devel_api_src_dir}/image-loader/image-atlas.cpp\r
   ${devel_api_src_dir}/image-loader/texture-manager.cpp\r
-  ${devel_api_src_dir}/scripting/script.cpp\r
   ${devel_api_src_dir}/styling/style-manager-devel.cpp\r
   ${devel_api_src_dir}/transition-effects/cube-transition-cross-effect.cpp\r
   ${devel_api_src_dir}/transition-effects/cube-transition-effect.cpp\r
@@ -231,8 +230,6 @@ SET( SOURCES ${SOURCES}
    ${internal_src_dir}/transition-effects/cube-transition-cross-effect-impl.cpp\r
    ${internal_src_dir}/transition-effects/cube-transition-fold-effect-impl.cpp\r
    ${internal_src_dir}/transition-effects/cube-transition-wave-effect-impl.cpp\r
-   ${internal_src_dir}/scripting/script-impl.cpp\r
-   ${internal_src_dir}/scripting/script-plugin-proxy.cpp\r
    ${internal_src_dir}/text/xhtml-entities.cpp\r
 )\r
 \r
index 2e0a4f91adf03c128be68f5788cbc871a909e329..91613bc47b06b3205bb02784df88de75a18013ac 100755 (executable)
@@ -26,7 +26,6 @@ SET(TC_SOURCES
   utc-Dali-KeyInputFocusManager.cpp
   utc-Dali-PageTurnView.cpp
   utc-Dali-Scene3dView.cpp
-  utc-Dali-Script.cpp
   utc-Dali-ScrollBar.cpp
   utc-Dali-ScrollView.cpp
   utc-Dali-ShaderEffects.cpp
diff --git a/automated-tests/src/dali-toolkit/utc-Dali-Script.cpp b/automated-tests/src/dali-toolkit/utc-Dali-Script.cpp
deleted file mode 100644 (file)
index 00bf7ae..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2014 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 <iostream>
-#include <stdlib.h>
-#include <dali-toolkit-test-suite-utils.h>
-#include <dali-toolkit/dali-toolkit.h>
-#include <dali-toolkit/devel-api/scripting/script.h>
-
-using namespace Dali;
-using namespace Dali::Toolkit;
-
-void dali_script_startup(void)
-{
-  test_return_value = TET_UNDEF;
-}
-
-void dali_script_cleanup(void)
-{
-  test_return_value = TET_PASS;
-}
-
-int UtcDaliScriptExecuteFileN(void)
-{
-  ToolkitTestApplication application;
-  tet_infoline(" UtcDaliScriptExecuteFileN");
-
-  Script script = Script::New();
-
-  bool ok = script.ExecuteFile("non-existing file");
-
-  DALI_TEST_CHECK( !ok );
-
-  END_TEST;
-}
index 164911298f98f6cc85c0fd768f79658d36f50804..b38ee06f35fe0e17257cbc4fc0b86cce2dc99b18 100755 (executable)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2014 Samsung Electronics Co., Ltd.
+# Copyright (c) 2019 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.
 
 SUBDIRS = dali-toolkit
 
-if ENABLE_JAVASCRIPT_PLUGIN
-SUBDIRS +=plugins/javascript
-endif
-
-if ENABLE_CSHARP_PLUGIN
-SUBDIRS +=plugins/csharp
-endif
-
 # perform documentation last, so it doesn't prevent code from building if there's an error
 SUBDIRS += docs
 
index 24d2a9ecb38e2792c95092e899dcdb0019819cab..fe5f4913ef8db4e60b9f3d5f262a6220d0382979 100755 (executable)
@@ -49,31 +49,6 @@ AC_ARG_ENABLE([i18n],
               [enable_i18n=$enableval],
               [enable_i18n=no])
 
-# option to build JavaScript plugin
-# configure settings and output
-# --enable-javascript        // enable_javascript = yes
-# --enable-javascript=yes    // enable_javascript = yes
-# --enable-javascript=no     // enable_javascript = no
-# --disable-javascript       // enable_javascript = no
-#  no setting                // enable_javascript = automatic ( enable if v8 present)
-AC_ARG_ENABLE([javascript],
-              [AC_HELP_STRING([--enable-javascript],
-                [Enable JavaScript plugin])],
-              [enable_javascript=$enableval],
-              [enable_javascript=automatic])
-
-# option to build C# plugin
-# configure settings and output
-# --enable-csharp        // enable_csharp = yes
-# --enable-csharp=yes    // enable_csharp = yes
-# --enable-csharp=no     // enable_csharp = no
-#  no setting            // enable_csharp = no
-AC_ARG_ENABLE([csharp],
-              [AC_HELP_STRING([--enable-csharp],
-                [Enable csharp plugin])],
-              [enable_csharp=$enableval],
-              [enable_csharp=automatic])
-
 AC_ARG_ENABLE([rename_so],
               [AC_HELP_STRING([--enable-rename-so],
                               [Specify whether so file is renamed or not])],
@@ -138,33 +113,6 @@ STYLE_DIR=$STYLE_BASE_DIR/$dali_style
 AC_SUBST(STYLE_BASE_DIR)
 AC_SUBST(STYLE_DIR)
 
-# v8 version 4+ requires c++11
-PKG_CHECK_MODULES(V8, v8 = 3.32.7, [ pkg_check_v8=yes ],  [ pkg_check_v8=no  ] )
-
-# Rules for building JavaScript plugin
-# If enable_javascript=yes and v8 installed = build javascript
-# If enable_javascript=automatic and v8 installed = build javascript
-# If enable_javascript=yes and v8 not installed = throw an error
-build_javascript_plugin=no
-if test x$enable_javascript = xyes; then
-  if test x$pkg_check_v8 = xno; then
-    [build_javascript_plugin=no]
-    AC_MSG_ERROR("V8 not found or incorrect version installed")
-    AC_MSG_NOTICE("To disable building of JavaScript plugin use --disable-javascript")
-  else
-    [build_javascript_plugin=yes]
-    AC_MSG_NOTICE(V8 library found. Building DALi JavaScript plugin)
-  fi
-fi
-if test x$enable_javascript = xautomatic && test x$pkg_check_v8 = xyes; then
-  [build_javascript_plugin=yes]
-  AC_MSG_NOTICE( V8 library found. Automatic building of JavaScript plugin. Use  use --disable-javascript to disable)
-fi
-
-
-#set a variable for the makefile to force compile the JAvaSplugin
-AM_CONDITIONAL([ENABLE_JAVASCRIPT_PLUGIN], [test x$build_javascript_plugin = xyes])
-
 # Platforms with highp shader support can use vector based text
 AM_CONDITIONAL([ENABLE_VECTOR_BASED_TEXT_RENDERING], [test x$dali_profile = xUBUNTU])
 
@@ -187,43 +135,9 @@ AC_SUBST(DOXYGEN_ROOT_DIR)
 PKG_CHECK_MODULES(DALICORE, dali-core)
 PKG_CHECK_MODULES(DALIADAPTOR, dali-adaptor)
 
-# Enable csharp plugin
-build_csharp_plugin=no
-build_ruby_flag=no
-if test x$enable_csharp = xyes; then
-  [build_csharp_plugin=yes]
-  AC_MSG_NOTICE(Building DALi csharp plugin ...)
-  AC_PATH_PROG([SWIG], [swig])
-
-  # if gbs enable, then only use swig, without ruby or mcs
-  if test "x$dali_profile" = "xUBUNTU"; then
-    [build_ruby_flag=yes]
-    AC_PATH_PROG([RUBY], [ruby])
-    AC_PATH_PROGS([MCS], [mcs gmcs gmcs2])
-    AC_MSG_NOTICE(swig ruby mcs working ...)
-  else
-    [build_ruby_flag=no]
-    AC_PATH_PROG([RUBY], [ruby])
-    #AC_PATH_PROGS([MCS], [mcs gmcs gmcs2])
-    #AC_MSG_NOTICE(swig only working ...)
-  fi
-
-  # Set varaibles for dali-toolkit
-  DALITOOLKIT_CFLAGS="-I${prefix}/include -I${prefix}/include/dali-toolkit"
-  DALITOOLKIT_LIBS="-L${prefix}/lib -ldali-toolkit -ldali-core"
-  AC_SUBST(DALITOOLKIT_CFLAGS)
-  AC_SUBST(DALITOOLKIT_LIBS)
-fi
-
-#set a variable for the makefile to force compile the csharp plugin
-AM_CONDITIONAL([ENABLE_CSHARP_PLUGIN], [test x$build_csharp_plugin = xyes])
-AM_CONDITIONAL([ENABLE_RUBY_FLAG], [test x$build_ruby_flag = xyes])
-
 AC_CONFIG_FILES([
  Makefile
  dali-toolkit/Makefile
- plugins/javascript/Makefile
- plugins/csharp/Makefile
  docs/Makefile
  docs/dali.doxy
  docs-internal/dali-internal.doxy
@@ -239,8 +153,6 @@ Configuration
   Prefix:                           $prefix
   Debug Build:                      $enable_debug
   Trace Build:                      $enable_trace
-  JavaScript support (V8 required)  $build_javascript_plugin
-  CSharp support                    $build_csharp_plugin
   Profile:                          $dali_profile
   Data Dir (Read/Write):            $dataReadWriteDir
   Data Dir (Read Only):             $dataReadOnlyDir
index 07f5e38f6b862fc1eea5a4ac04a74e159b5f246b..5baff32ab9d3b65a8b95651133a6939b2a57bb97 100644 (file)
@@ -130,7 +130,6 @@ develapifocusmanagerdir =       $(develapidir)/focus-manager
 develapiimageloaderdir =        $(develapidir)/image-loader
 develapilayoutingdir =          $(develapidir)/layouting
 develapilayoutingcontrolsdir =  $(develapidir)/controls/layouting
-develapiscriptingdir =          $(develapidir)/scripting
 develapishadereffectsdir =      $(develapidir)/shader-effects
 develapistylingdir =            $(develapidir)/styling
 develapitransitioneffectsdir =  $(develapidir)/transition-effects
@@ -161,7 +160,6 @@ develapipageturnview_HEADERS =      $(devel_api_page_turn_view_header_files)
 develapipopup_HEADERS =             $(devel_api_popup_header_files)
 develapivisualfactory_HEADERS =     $(devel_api_visual_factory_header_files)
 develapivisuals_HEADERS =           $(devel_api_visuals_header_files)
-develapiscripting_HEADERS =         $(devel_api_scripting_header_files)
 develapiscene3dview_HEADERS =       $(devel_api_scene3d_view_header_files)
 develapishadowview_HEADERS =        $(devel_api_shadow_view_header_files)
 develapishadereffects_HEADERS =     $(devel_api_shader_effects_header_files)
index 776a2750ada4ae2f2f8f4676c40a79a9f7675033..c49a732155bbed17f089155fbe936d11da7cdc3d 100644 (file)
@@ -6,6 +6,3 @@ all-local:
        @cat doxygen-errors.txt
        @if [ -s doxygen-errors.txt ]; then exit 1 ; fi
        @rm doxygen-errors.txt
-# Build JavaScript API documentation using yuidoc ( Yahoo JavaScript Documentation Tool )
-# We first test yuidoc exists, then change in to the dali-script-v8 docs directory and run yuidoc
-       @if [ ! `which yuidoc` = "" ]; then cd ../../../plugins/dali-script-v8/docs && yuidoc --config yuidoc.json -e ".cpp,.js,.md"  -o generated .. ../../../docs/content/shared-javascript-and-cpp-documentation/ ; fi
diff --git a/build/tizen/plugins/csharp/Makefile.am b/build/tizen/plugins/csharp/Makefile.am
deleted file mode 100755 (executable)
index 3e4e246..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-# 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.
-
-dali_swig_dir = ../../../../plugins/dali-swig
-
-BUILT_SOURCES = \
-          $(dali_swig_dir)/automatic/cpp/dali_wrap.cpp \
-          $(dali_swig_dir)/automatic/cpp/dali_wrap.h \
-          $(dali_swig_dir)/manual/cpp/keyboard_focus_manager_wrap.cpp \
-          $(dali_swig_dir)/manual/cpp/view-wrapper-impl-wrap.cpp \
-          $(dali_swig_dir)/manual/cpp/event-thread-callback-wrap.cpp
-
-all-local:
-gbs-local: libNDalic.so NDali.dll
-
-libNDalic.so: $(dali_swig_dir)/automatic/cpp/dali_wrap.o $(dali_swig_dir)/manual/cpp/keyboard_focus_manager_wrap.o $(dali_swig_dir)/manual/cpp/view-wrapper-impl-wrap.o $(dali_swig_dir)/manual/cpp/event-thread-callback-wrap.o
-       $(CXX) -shared $(dali_swig_dir)/automatic/cpp/dali_wrap.o $(dali_swig_dir)/manual/cpp/keyboard_focus_manager_wrap.o $(dali_swig_dir)/manual/cpp/view-wrapper-impl-wrap.o $(dali_swig_dir)/manual/cpp/event-thread-callback-wrap.o -o $(dali_swig_dir)/libNDalic.so $(DALICORE_LIBS) $(DALIADAPTOR_LIBS) $(DALITOOLKIT_LIBS)
-
-$(dali_swig_dir)/automatic/cpp/dali_wrap.o: $(BUILT_SOURCES)
-       $(CXX) -c -fpic $(CXXFLAGS) $(DALICORE_CFLAGS) $(DALIADAPTOR_CFLAGS) $(DALITOOLKIT_CFLAGS) $(dali_swig_dir)/automatic/cpp/dali_wrap.cpp -o $(dali_swig_dir)/automatic/cpp/dali_wrap.o
-
-$(dali_swig_dir)/manual/cpp/keyboard_focus_manager_wrap.o: $(BUILT_SOURCES)
-       $(CXX) -c -fpic $(CXXFLAGS) $(DALICORE_CFLAGS) $(DALIADAPTOR_CFLAGS) $(DALITOOLKIT_CFLAGS) $(dali_swig_dir)/manual/cpp/keyboard_focus_manager_wrap.cpp -o $(dali_swig_dir)/manual/cpp/keyboard_focus_manager_wrap.o
-
-$(dali_swig_dir)/manual/cpp/view-wrapper-impl-wrap.o: $(BUILT_SOURCES)
-       $(CXX) -c -fpic $(CXXFLAGS) $(DALICORE_CFLAGS) $(DALIADAPTOR_CFLAGS) $(DALITOOLKIT_CFLAGS) $(dali_swig_dir)/manual/cpp/view-wrapper-impl-wrap.cpp -o $(dali_swig_dir)/manual/cpp/view-wrapper-impl-wrap.o
-
-$(dali_swig_dir)/manual/cpp/event-thread-callback-wrap.o: $(BUILT_SOURCES)
-       $(CXX) -c -fpic $(CXXFLAGS) $(DALICORE_CFLAGS) $(DALIADAPTOR_CFLAGS) $(DALITOOLKIT_CFLAGS) $(dali_swig_dir)/manual/cpp/event-thread-callback-wrap.cpp -o $(dali_swig_dir)/manual/cpp/event-thread-callback-wrap.o
-
-NDali.dll: $(BUILT_SOURCES)
-#      mcs -nologo -target:library -out:$(dali_swig_dir)/NDali.dll $(dali_swig_dir)/automatic/csharp/*.cs $(dali_swig_dir)/manual/csharp/*.cs
-
-$(BUILT_SOURCES): $(dali_swig_dir)/SWIG/*.i
-       rm -f $(dali_swig_dir)/automatic/csharp/*.cs
-       rm -f $(dali_swig_dir)/automatic/cpp/*.cpp
-       $(SWIG) -version
-       $(SWIG) -csharp -c++ -outdir $(dali_swig_dir)/automatic/csharp \
-            $(DALI_CFLAGS) $(DALICORE_CFLAGS) $(DALIADAPTOR_CFLAGS) $(DALITOOLKIT_CFLAGS) -namespace Dali -o $(dali_swig_dir)/automatic/cpp/dali_wrap.cpp $(dali_swig_dir)/SWIG/dali.i
-
-gbs-install: gbs-local
-       -$(INSTALL) -d $(DESTDIR)
-       -$(INSTALL) $(dali_swig_dir)/libNDalic.so $(DESTDIR)
-       -$(INSTALL) $(dali_swig_dir)/NDali.dll $(DESTDIR)
-
-EXTRA_DIST = \
-    swig.cmd
-
diff --git a/build/tizen/plugins/javascript/Makefile.am b/build/tizen/plugins/javascript/Makefile.am
deleted file mode 100644 (file)
index 0bb1082..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-#
-# Copyright (c) 2015 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.
-#
-
-# Build the Dali Toolkit library
-
-plugin_src_dir = ../../../../plugins
-
-include ../../../../plugins/dali-script-v8/file.list
-
-
-lib_LTLIBRARIES = libdali-script-plugin-v8.la
-
-# force the source code to include the directory the wrapper file is in
-# e.g. actors/actor-api.h to copy the same include style as dali-core
-# The reason for including toolkit paths directly instead of just the
-# install path for dali-toolkit.h, is dali-toolkit.h is not installed yet.
-# It won't be installed until the rpm is installed, and unfortunately the
-# plugin is part of the same rpm
-script_plugin_v8_includes = -I../../../../plugins/dali-script-v8/src \
-                            -I../../../../plugins/dali-script-v8/src/utils
-
-
-libdali_script_plugin_v8_la_SOURCES = \
-                     $(script_v8_plugin_src_files)
-
-libdali_script_plugin_v8_la_DEPENDENCIES =
-
-libdali_script_plugin_v8_la_CXXFLAGS = -DDALI_COMPILATION \
-                            -I../../../../ \
-                            $(V8_CFLAGS) \
-                            $(DALI_TOOLKIT_CFLAGS) \
-                            $(DALICORE_CFLAGS) \
-                            -DDALI_DATA_READ_ONLY_DIR="\"${dataReadOnlyDir}\"" \
-                            $(DALI_CFLAGS) \
-                            $(DLOG_CFLAGS) \
-                            $(script_plugin_v8_includes) \
-                            $(V8_CFLAGS) \
-                            -Werror -Wall
-
-libdali_script_plugin_v8_la_LIBADD = \
-                            $(DALICORE_LIBS) \
-                            $(DALI_LIBS) \
-                            $(DLOG_LIBS) \
-                            $(V8_LIBS)
-
-libdali_script_plugin_v8_la_LDFLAGS = \
-                           -rdynamic
diff --git a/dali-addon.manifest b/dali-addon.manifest
deleted file mode 100644 (file)
index 75b0fa5..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-<manifest>
-    <request>
-        <domain name="_"/>
-    </request>
-</manifest>
index 65403dbfa80d6e817010e95a2f43422d791a3433..c784496e56cd7e96305963c46d6b224f95762ecf 100755 (executable)
@@ -35,7 +35,6 @@ devel_api_src_files = \
   $(devel_api_src_dir)/image-loader/image-atlas.cpp \
   $(devel_api_src_dir)/image-loader/texture-manager.cpp \
   $(devel_api_src_dir)/layouting/flex-node.cpp \
-  $(devel_api_src_dir)/scripting/script.cpp \
   $(devel_api_src_dir)/styling/style-manager-devel.cpp \
   $(devel_api_src_dir)/text/bitmap-font.cpp \
   $(devel_api_src_dir)/text/text-utils-devel.cpp \
@@ -131,10 +130,6 @@ devel_api_image_loader_header_files = \
   $(devel_api_src_dir)/image-loader/image-atlas.h \
   $(devel_api_src_dir)/image-loader/texture-manager.h
 
-devel_api_scripting_header_files = \
-  $(devel_api_src_dir)/scripting/script.h \
-  $(devel_api_src_dir)/scripting/script-plugin.h
-
 devel_api_shader_effects_header_files = \
   $(devel_api_src_dir)/shader-effects/alpha-discard-effect.h \
   $(devel_api_src_dir)/shader-effects/dissolve-effect.h \
diff --git a/dali-toolkit/devel-api/scripting/script-plugin.h b/dali-toolkit/devel-api/scripting/script-plugin.h
deleted file mode 100644 (file)
index 54b26ae..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-#ifndef DALI_SCRIPT_PLUGIN_H
-#define DALI_SCRIPT_PLUGIN_H
-
-/*
- * Copyright (c) 2019 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/public-api/dali-toolkit-common.h>
-#include <string>
-
-namespace Dali
-{
-
-namespace Toolkit
-{
-
-/**
- * @brief Abstract interface to provide scripting support.
- *
- * A plugin must export the following functions to create / destroy the object
- * CreateScriptPlugin()  // returns a pointer to a ScriptPlugin object
- * DestroyScriptPlugin() // destroys the plugin
- */
-class DALI_TOOLKIT_API ScriptPlugin
-{
-public:
-
-
-  /**
-   * Function pointer called in toolkit to create a ScriptPlugin plugin instance.
-   * @return Pointer to the newly created plugin object
-   */
-  typedef ScriptPlugin* Create();
-
-  /**
-   * Function pointer called in toolkit to Unload the plugin.
-   * @param plugin  The plugin object created and returned by CreateScriptPluginPlugin().
-   */
-  typedef void Destroy(ScriptPlugin* plugin);
-
-  /**
-   * virtual Destructor.
-   */
-  virtual ~ScriptPlugin() {};
-
-  /**
-   * Set engine configuration flags
-   * @param [in] flags string. Format dependent on the scripting engine.
-   */
-  virtual void SetFlags(const std::string& flags) = 0;
-
-  /**
-   * Exec buffer contents as a script
-   * @param buffer script file contents
-   * @param filename a nominal name for the buffer contents.
-   * filename extension may be used to disambiguate script language
-   * @return true on success, false on failure
-   *
-   */
-  virtual bool ExecuteBuffer(const std::string& buffer, const std::string& filename) = 0;
-
-  /**
-   * Exec file as a script
-   * @param filename the filename to read and execute
-   * @return true on success, false on failure
-   */
-  virtual bool ExecuteFile(const std::string& filename) = 0;
-
-}; // class ScriptPlugin
-
-} // namespace Toolkit
-
-} // namespace Dali
-
-#endif // DALI_SCRIPT_PLUGIN_H
diff --git a/dali-toolkit/devel-api/scripting/script.cpp b/dali-toolkit/devel-api/scripting/script.cpp
deleted file mode 100644 (file)
index 7fdf5e4..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "script.h"
-
-// INTERNAL INCLUDES
-#include <dali/integration-api/debug.h>
-#include <dali-toolkit/internal/scripting/script-impl.h>
-
-namespace Dali
-{
-
-namespace Toolkit
-{
-
-Script::Script()
-{
-}
-
-Script::~Script()
-{
-}
-
-Script Script::New(void)
-{
-  return Script(new Internal::Script());
-}
-
-Script::Script(Internal::Script *impl)
-  : BaseHandle(impl)
-{
-}
-
-bool Script::ExecuteFile( const std::string &filename )
-{
-  return GetImpl(*this).ExecuteFile( filename );
-}
-
-} // namespace Toolkit
-
-} // namespace Dali
-
diff --git a/dali-toolkit/devel-api/scripting/script.h b/dali-toolkit/devel-api/scripting/script.h
deleted file mode 100644 (file)
index 12cd72a..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-#ifndef DALI_TOOLKIT_SCRIPT_H
-#define DALI_TOOLKIT_SCRIPT_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <dali-toolkit/public-api/dali-toolkit-common.h>
-#include <dali/public-api/object/base-handle.h>
-
-namespace Dali
-{
-
-namespace Toolkit
-{
-
-namespace Internal DALI_INTERNAL
-{
-class Script;
-}
-
-/**
- * Script
- * This class provides the ability to execute script in a supported language.
- * Specific script language support is provided through plugins.
- *
- * For Example.
- *
- * @code
- *
- * Script script = Script::New();
- *
- * script.ExecuteFile("bump-map.js");
- *
- * @endcode
- *
- */
-class DALI_TOOLKIT_API Script : public BaseHandle
-{
-
-public:
-
-  /**
-   * Create an Script handle; this can be initialised with Script::New()
-   * Calling member functions with an uninitialised handle is not allowed.
-   */
-  Script();
-
-  /**
-   * Creates an Script object.
-   * @return A handle to the Script control.
-   */
-  static Script New();
-
-  /**
-   * Virtual destructor.
-   */
-  ~Script();
-
-  /**
-   * Executes the contents of filename in a scripted environment.
-   * @pre A Dali Application object exists
-   * @param filename A filename of a script file to execute
-   * @return true on success, false on failure
-   *
-   */
-  bool ExecuteFile( const std::string& filename );
-
-private:
-
-  Script(Internal::Script *impl);
-
-}; // class Script
-
-} // namespace Toolkit
-
-} // namespace Dali
-
-#endif // DALI_TOOLKIT_SCRIPT_H
index cec9d3f39209899feb0efb65c2f570e592a1e181..c2b60e254423c3f418ea11c4e67166c1dad6e6a0 100755 (executable)
@@ -162,7 +162,5 @@ toolkit_src_files = \
    $(toolkit_src_dir)/transition-effects/cube-transition-cross-effect-impl.cpp \
    $(toolkit_src_dir)/transition-effects/cube-transition-fold-effect-impl.cpp \
    $(toolkit_src_dir)/transition-effects/cube-transition-wave-effect-impl.cpp \
-   $(toolkit_src_dir)/scripting/script-impl.cpp \
-   $(toolkit_src_dir)/scripting/script-plugin-proxy.cpp \
    $(toolkit_src_dir)/text/xhtml-entities.cpp \
    $(toolkit_src_dir)/drag-drop-detector/drag-and-drop-detector-impl.cpp
diff --git a/dali-toolkit/internal/scripting/script-impl.cpp b/dali-toolkit/internal/scripting/script-impl.cpp
deleted file mode 100644 (file)
index 6c9191b..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (c) 2014 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.
- *
- */
-
-// CLASS HEADER
-#include "script-impl.h"
-
-// INTERNAL INCLUDES
-#include <dali/integration-api/debug.h>
-#include "script-plugin-proxy.h"
-
-namespace Dali
-{
-
-namespace Toolkit
-{
-
-namespace Internal
-{
-
-namespace
-{
-#if _GLIBCXX_USE_CXX11_ABI
-const char* PLUGIN_FILE = "libdali-script-plugin-v8-cxx11.so";
-#else
-const char* PLUGIN_FILE = "libdali-script-plugin-v8.so";
-#endif
-}
-
-Script::Script()
-: mPlugin( NULL )
-{
-  ScriptPluginProxy *plugin = new ScriptPluginProxy( PLUGIN_FILE );
-
-  if( plugin->IsInitialized() )
-  {
-    mPlugin = plugin;
-  }
-  else
-  {
-    delete plugin;
-  }
-}
-
-bool Script::ExecuteFile( const std::string& filename )
-{
-  if( mPlugin )
-  {
-    return mPlugin->ExecuteFile(filename);
-  }
-  return false;
-}
-
-Script::~Script()
-{
-  if( mPlugin )
-  {
-    delete mPlugin;
-  }
-}
-
-} // namespace Internal
-
-} // namespace Toolkit
-
-} // namespace Dali
diff --git a/dali-toolkit/internal/scripting/script-impl.h b/dali-toolkit/internal/scripting/script-impl.h
deleted file mode 100644 (file)
index f523928..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-#ifndef DALI_TOOLKIT_INTERNAL_SCRIPT_H
-#define DALI_TOOLKIT_INTERNAL_SCRIPT_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-// EXTERNAL INCLUDES
-#include <dali/public-api/object/base-object.h>
-
-// INTERNAL INCLUDES
-#include <dali-toolkit/devel-api/scripting/script.h>
-#include <dali-toolkit/devel-api/scripting/script-plugin.h>
-
-
-namespace Dali
-{
-
-namespace Toolkit
-{
-
-namespace Internal
-{
-
-class Script;
-
-/**
- * @copydoc Toolkit::Script
- */
-class Script : public Dali::BaseObject
-{
-public:
-
-  /**
-   * @brief Constructor
-   */
-  Script();
-
-  /**
-   * @copydoc Toolkit::Script::ExecuteFile
-   */
-  bool ExecuteFile( const std::string& filename );
-
-protected:
-
-  /**
-   *  @brief virtual destructor
-   */
-  virtual ~Script();
-
-private:
-
-  /**
-   * @brief Undefined copy  constructor
-   */
-  Script(const Script&);
-
-  /**
-   * @brief Undefined assignment operator
-   */
-  Script& operator=(const Script& rhs);
-
-private: // data
-
-  ScriptPlugin* mPlugin;    ///< plugin
-
-};
-
-} // namespace Internal
-
-inline Internal::Script& GetImpl(Dali::Toolkit::Script& obj)
-{
-  DALI_ASSERT_ALWAYS(obj);
-
-  Dali::BaseObject& handle = obj.GetBaseObject();
-
-  return static_cast<Internal::Script&>(handle);
-}
-
-inline const Internal::Script& GetImpl(const Dali::Toolkit::Script& obj)
-{
-  DALI_ASSERT_ALWAYS(obj);
-
-  const Dali::BaseObject& handle = obj.GetBaseObject();
-
-  return static_cast<const Internal::Script&>(handle);
-}
-
-
-} // namespace Toolkit
-
-} // namespace Dali
-
-#endif // DALI_TOOLKIT_INTERNAL_SCRIPT_H
diff --git a/dali-toolkit/internal/scripting/script-plugin-proxy.cpp b/dali-toolkit/internal/scripting/script-plugin-proxy.cpp
deleted file mode 100644 (file)
index 0af3711..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (c) 2014 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.
- *
- */
-
-// CLASS HEADER
-#include "script-plugin-proxy.h"
-
-// INTERNAL INCLUDES
-#include <dali/integration-api/debug.h>
-
-// EXTERNAL INCLUDES
-#include <dlfcn.h>
-
-namespace Dali
-{
-
-namespace Toolkit
-{
-
-namespace Internal
-{
-
-ScriptPluginProxy::ScriptPluginProxy( const std::string& sharedObjectName)
-: mLibHandle(NULL),
-  mCreatePluginFunctionPtr(NULL),
-  mDestroyPluginFunctionPtr(NULL),
-  mScriptingPlugin(NULL),
-  mSharedObjectName(sharedObjectName),
-  mIsInitialized(false)
-{
-  Initialize();
-}
-
-ScriptPluginProxy::~ScriptPluginProxy()
-{
-  UnInitialize();
-}
-
-void ScriptPluginProxy::SetFlags(const std::string& flags)
-{
-  if( mIsInitialized )
-  {
-    mScriptingPlugin->SetFlags( flags );
-  }
-}
-
-bool ScriptPluginProxy::ExecuteBuffer(const std::string &buffer, const std::string &filename)
-{
-  if( mIsInitialized )
-  {
-    return mScriptingPlugin->ExecuteBuffer( buffer, filename );
-  }
-  return false;
-}
-
-bool ScriptPluginProxy::ExecuteFile(const std::string &filename)
-{
-  if( mIsInitialized )
-  {
-    return mScriptingPlugin->ExecuteFile( filename );
-  }
-  return false;
-}
-
-bool ScriptPluginProxy::IsInitialized() const
-{
-  return mIsInitialized;
-};
-
-void ScriptPluginProxy::Initialize()
-{
-  if( mIsInitialized )
-  {
-    return;
-  }
-
-  // dl library maintains link counts if you call this twice on the same library
-  // (so its okay to do but we should close every handle we get too)
-  mLibHandle = dlopen( mSharedObjectName.c_str(), RTLD_NOW | RTLD_GLOBAL );
-  if( !mLibHandle )
-  {
-    DALI_LOG_ERROR( "Cannot load dali script plugin. %s\n", dlerror() );
-    return;
-  }
-
-  // reset errors
-  dlerror();
-
-  // load plugin
-  mCreatePluginFunctionPtr = reinterpret_cast<ScriptPlugin::Create*>( dlsym( mLibHandle, "CreateScriptPlugin" ) );
-  if( !mCreatePluginFunctionPtr )
-  {
-    DALI_LOG_ERROR( "Cannot load symbol CreateScriptPlugin(). %s\n", dlerror() );
-    return;
-  }
-
-  // reset errors
-  dlerror();
-
-  mDestroyPluginFunctionPtr = reinterpret_cast<ScriptPlugin::Destroy*>( dlsym( mLibHandle, "DestroyScriptPlugin" ) );
-  if( !mDestroyPluginFunctionPtr )
-  {
-    DALI_LOG_ERROR( "Cannot load symbol:DestroyScriptPlugin(). %s\n", dlerror() );
-    return;
-  }
-
-  // reset errors
-  dlerror();
-
-  mScriptingPlugin = mCreatePluginFunctionPtr();
-
-  if( !mScriptingPlugin )
-  {
-    DALI_LOG_ERROR( "Call to function CreateFeedbackPlugin() failed\n" );
-    return;
-  }
-
-  mIsInitialized = true;
-}
-
-void ScriptPluginProxy::UnInitialize()
-{
-  if( mScriptingPlugin )
-  {
-    mDestroyPluginFunctionPtr( mScriptingPlugin );
-  }
-
-  if( mLibHandle )
-  {
-    if( dlclose( mLibHandle ) )
-    {
-      DALI_LOG_ERROR( "Error closing dali plugin library: %s\n", dlerror() );
-    }
-  }
-  mIsInitialized = false;
-}
-} // namespace Adaptor
-
-} // namespace Internal
-
-} // namespace Dali
diff --git a/dali-toolkit/internal/scripting/script-plugin-proxy.h b/dali-toolkit/internal/scripting/script-plugin-proxy.h
deleted file mode 100644 (file)
index 7af87a2..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-#ifndef DALI_INTERNAL_SCRIPT_PLUGIN_PROXY_H
-#define DALI_INTERNAL_SCRIPT_PLUGIN_PROXY_H
-
-/*
- * Copyright (c) 2019 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/devel-api/scripting/script-plugin.h>
-
-namespace Dali
-{
-
-namespace Toolkit
-{
-
-namespace Internal
-{
-
-/**
- * @brief Proxy class to dynamically load, use and unload script plugin.
- *
- *
- */
-class ScriptPluginProxy : public ScriptPlugin
-{
-public:
-
-  /**
-   * @brief Constructor
-   * @param sharedObjectName so file to load
-   */
-  ScriptPluginProxy( const std::string& sharedObjectName);
-
-  /**
-   *  @brief destructor
-   */
-  virtual ~ScriptPluginProxy();
-
-  /**
-   * Set engine configuration flags
-   * @param [in] flags string. Format dependent on the scripting engine.
-   */
-  virtual void SetFlags( const std::string& flags );
-
-  /**
-   * @brief Exececute the buffer contents as a script
-   * @param [in] buffer script file contents
-   * @param [in] filename a nominal name for the buffer contents.
-   * @note filename extension may be used to disambiguate script language
-   * @return true on success, false on failure
-   *
-   */
-  virtual bool ExecuteBuffer( const std::string& buffer, const std::string& filename );
-
-  /**
-   * @brief  execture the file as a script
-   * @param [in] filename the filename to read and execute
-   * @return true on success, false on failure
-   */
-  virtual bool ExecuteFile( const std::string& fileName );
-
-  /**
-   * @brief check if the plugin is initialized
-   * @return true if it's initialized
-   */
-  bool IsInitialized() const;
-
-private:
-
-  ScriptPluginProxy( const ScriptPluginProxy& ); ///< Undefined
-  ScriptPluginProxy& operator=( const ScriptPluginProxy& ); ///< Undefined
-
-  /**
-   * @brief Dynamically loads the script plugin.
-   */
-  void Initialize();
-
-  /**
-   * @brief Unloads the script plugin.
-   */
-  void UnInitialize();
-
-private:
-
-  void* mLibHandle;
-  ScriptPlugin::Create* mCreatePluginFunctionPtr;
-  ScriptPlugin::Destroy* mDestroyPluginFunctionPtr;
-  ScriptPlugin* mScriptingPlugin;
-  std::string mSharedObjectName;
-  bool mIsInitialized;
-
-};
-
-} // namespace Adaptor
-
-} // namespace Internal
-
-} // namespace Dali
-
-#endif // DALI_INTERNAL_SCRIPT_PLUGIN_PROXY_H
index f64443b4a61615ca35649f24fbedcc3f9dd0ee05..17b4c6f5c425cdb8bea555208270b7ed723196c1 100644 (file)
@@ -17,7 +17,7 @@
    version="1.1"
    inkscape:version="0.48.3.1 r9886"
    sodipodi:docname="example-fitting-mode-options.svg"
-   inkscape:export-filename="/tmp/1.png"
+   inkscape:export-filename="1.png"
    inkscape:export-xdpi="89.269394"
    inkscape:export-ydpi="89.269394">
   <defs
      id="layer1"
      transform="translate(0,-308.2677)">
     <image
-       sodipodi:absref="/home/SERILOCAL/andrew.cox/git/opendali-features/dali-toolkit/docs/content/figures/door.jpg"
+       sodipodi:absref="door.jpg"
        xlink:href="door.jpg"
        inkscape:export-ydpi="89.269394"
        inkscape:export-xdpi="89.269394"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        width="256"
        height="256"
        id="image6106"
     <g
        id="g6199"
        transform="matrix(0.75,0,0,0.75,158.83024,-448.90946)"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        inkscape:export-xdpi="89.269394"
        inkscape:export-ydpi="89.269394">
       <image
-         sodipodi:absref="/home/SERILOCAL/andrew.cox/git/opendali-features/dali-toolkit/docs/content/figures/door.jpg"
+         sodipodi:absref="door.jpg"
          xlink:href="door.jpg"
          inkscape:export-ydpi="89.269394"
          inkscape:export-xdpi="89.269394"
-         inkscape:export-filename="/home/SERILOCAL/andrew.cox/git/opendali-features/dali-toolkit/docs/content/shared-javascript-and-cpp-documentation/door-scale-to-fill2.png"
+         inkscape:export-filename="door-scale-to-fill2.png"
          y="764.36218"
          x="512"
          id="image6106-0"
          width="51.309372"
          id="rect6179"
          style="fill:#ffffff;fill-opacity:1;stroke:none"
-         inkscape:export-filename="/home/SERILOCAL/andrew.cox/git/opendali-features/dali-toolkit/docs/content/shared-javascript-and-cpp-documentation/door-scale-to-fill.png"
+         inkscape:export-filename="door-scale-to-fill.png"
          inkscape:export-xdpi="89.269394"
          inkscape:export-ydpi="89.269394" />
       <rect
          width="48.189934"
          id="rect6179-2"
          style="fill:#ffffff;fill-opacity:1;stroke:none"
-         inkscape:export-filename="/home/SERILOCAL/andrew.cox/git/opendali-features/dali-toolkit/docs/content/shared-javascript-and-cpp-documentation/door-scale-to-fill.png"
+         inkscape:export-filename="door-scale-to-fill.png"
          inkscape:export-xdpi="89.269394"
          inkscape:export-ydpi="89.269394" />
       <rect
          inkscape:export-ydpi="89.269394"
          inkscape:export-xdpi="89.269394"
-         inkscape:export-filename="/home/SERILOCAL/andrew.cox/git/opendali-features/dali-toolkit/docs/content/shared-javascript-and-cpp-documentation/door-scale-to-fill2.png"
+         inkscape:export-filename="door-scale-to-fill2.png"
          y="764.36218"
          x="560"
          height="256.00003"
        height="192.00003"
        x="356"
        y="124.36218"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        inkscape:export-xdpi="89.269394"
        inkscape:export-ydpi="89.269394" />
     <image
-       sodipodi:absref="/home/SERILOCAL/andrew.cox/git/opendali-features/dali-toolkit/docs/content/figures/door.jpg"
+       sodipodi:absref="door.jpg"
        xlink:href="door.jpg"
        inkscape:export-ydpi="89.269394"
        inkscape:export-xdpi="89.269394"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        width="120"
        height="135.85014"
        id="image6106-5"
        height="192.00003"
        x="804"
        y="124.36212"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        inkscape:export-xdpi="89.269394"
        inkscape:export-ydpi="89.269394" />
     <image
-       sodipodi:absref="/home/SERILOCAL/andrew.cox/git/opendali-features/dali-toolkit/docs/content/figures/door.jpg"
+       sodipodi:absref="door.jpg"
        xlink:href="door.jpg"
        inkscape:export-ydpi="89.269394"
        inkscape:export-xdpi="89.269394"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        width="120"
        height="135.85014"
        id="image6106-5-3"
        height="192.00003"
        x="1030.3395"
        y="124.36212"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        inkscape:export-xdpi="89.269394"
        inkscape:export-ydpi="89.269394" />
     <image
-       sodipodi:absref="/home/SERILOCAL/andrew.cox/git/opendali-features/dali-toolkit/docs/content/figures/door.jpg"
+       sodipodi:absref="door.jpg"
        xlink:href="door.jpg"
        inkscape:export-ydpi="89.269394"
        inkscape:export-xdpi="89.269394"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        width="192"
        height="192"
        id="image6106-4"
        height="192.00003"
        x="1254.3396"
        y="124.36218"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        inkscape:export-xdpi="89.269394"
        inkscape:export-ydpi="89.269394" />
     <image
-       sodipodi:absref="/home/SERILOCAL/andrew.cox/git/opendali-features/dali-toolkit/docs/content/figures/dog.jpg"
+       sodipodi:absref="dog.jpg"
        xlink:href="dog.jpg"
        inkscape:export-ydpi="89.269394"
        inkscape:export-xdpi="89.269394"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        width="256"
        height="256"
        id="image6359"
        height="192"
        x="-604.36218"
        y="320"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        inkscape:export-xdpi="89.269394"
        inkscape:export-ydpi="89.269394"
        transform="matrix(0,-1,1,0,0,0)" />
     <g
        id="g6476"
        transform="translate(-7.128906e-7,-384.82965)"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        inkscape:export-xdpi="89.269394"
        inkscape:export-ydpi="89.269394">
       <image
-         sodipodi:absref="/home/SERILOCAL/andrew.cox/git/opendali-features/dali-toolkit/docs/content/figures/dog.jpg"
+         sodipodi:absref="dog.jpg"
          xlink:href="dog.jpg"
          y="829.19183"
          x="544"
          transform="matrix(0,-1,1,0,0,0)"
          inkscape:export-ydpi="89.269394"
          inkscape:export-xdpi="89.269394"
-         inkscape:export-filename="/home/SERILOCAL/andrew.cox/git/opendali-features/dali-toolkit/docs/content/shared-javascript-and-cpp-documentation/example-scale-to-fill-sequence.png"
+         inkscape:export-filename="example-scale-to-fill-sequence.png"
          y="544"
          x="-989.19183"
          height="192"
          style="fill:none;stroke:#ff0000;stroke-width:3.31857371;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
     </g>
     <image
-       sodipodi:absref="/home/SERILOCAL/andrew.cox/git/opendali-features/dali-toolkit/docs/content/figures/dog.jpg"
+       sodipodi:absref="dog.jpg"
        xlink:href="dog.jpg"
        inkscape:export-ydpi="89.269394"
        inkscape:export-xdpi="89.269394"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        width="192"
        height="192"
        id="image6359-2-2"
        height="192"
        x="-605.19183"
        y="994.33954"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        inkscape:export-xdpi="89.269394"
        inkscape:export-ydpi="89.269394"
        transform="matrix(0,-1,1,0,0,0)" />
     <image
-       sodipodi:absref="/home/SERILOCAL/andrew.cox/git/opendali-features/dali-toolkit/docs/content/figures/dog.jpg"
+       sodipodi:absref="dog.jpg"
        xlink:href="dog.jpg"
        inkscape:export-ydpi="89.269394"
        inkscape:export-xdpi="89.269394"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        width="128"
        height="128"
        id="image6359-2-2-2"
        height="192"
        x="-605.19183"
        y="1218.3396"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        inkscape:export-xdpi="89.269394"
        inkscape:export-ydpi="89.269394"
        transform="matrix(0,-1,1,0,0,0)" />
     <image
-       sodipodi:absref="/home/SERILOCAL/andrew.cox/git/opendali-features/dali-toolkit/docs/content/figures/dog.jpg"
+       sodipodi:absref="dog.jpg"
        xlink:href="dog.jpg"
        inkscape:export-ydpi="89.269394"
        inkscape:export-xdpi="89.269394"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        width="128"
        height="128"
        id="image6359-2-2-2-1"
        height="192"
        x="-604.36218"
        y="768"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        inkscape:export-xdpi="89.269394"
        inkscape:export-ydpi="89.269394"
        transform="matrix(0,-1,1,0,0,0)" />
        id="flowRoot3024"
        style="font-size:24px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
        transform="translate(0,244.2677)"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        inkscape:export-xdpi="89.269394"
        inkscape:export-ydpi="89.269394"><flowRegion
          id="flowRegion3026"><rect
        id="flowRoot3032"
        style="font-size:24px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
        transform="translate(0,244.2677)"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        inkscape:export-xdpi="89.269394"
        inkscape:export-ydpi="89.269394"><flowRegion
          id="flowRegion3034"><rect
        id="flowRoot3040"
        style="font-size:24px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
        transform="translate(0,244.2677)"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        inkscape:export-xdpi="89.269394"
        inkscape:export-ydpi="89.269394"><flowRegion
          id="flowRegion3042"><rect
        id="flowRoot3048"
        style="font-size:24px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
        transform="translate(0,244.2677)"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        inkscape:export-xdpi="89.269394"
        inkscape:export-ydpi="89.269394"><flowRegion
          id="flowRegion3050"><rect
        id="flowRoot3056"
        style="font-size:24px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
        transform="translate(0,244.2677)"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        inkscape:export-xdpi="89.269394"
        inkscape:export-ydpi="89.269394"><flowRegion
          id="flowRegion3058"><rect
        id="flowRoot3064"
        style="font-size:24px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
        transform="translate(0,244.2677)"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        inkscape:export-xdpi="89.269394"
        inkscape:export-ydpi="89.269394"><flowRegion
          id="flowRegion3066"><rect
            x="1215.7982"
            y="744.88245" /></flowRegion><flowPara
          id="flowPara3070">FIT_HEIGHT</flowPara></flowRoot>    <image
-       sodipodi:absref="/home/SERILOCAL/andrew.cox/git/opendali-features/dali-toolkit/docs/content/figures/liberty.jpg"
+       sodipodi:absref="liberty.jpg"
        xlink:href="liberty.jpg"
        inkscape:export-ydpi="89.269394"
        inkscape:export-xdpi="89.269394"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        width="256"
        height="256"
        id="image3239"
        y="700.36218" />
     <g
        id="g4034"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        inkscape:export-xdpi="89.269394"
        inkscape:export-ydpi="89.269394">
       <rect
          width="128"
          id="rect3244"
          style="fill:none;stroke:#ff0000;stroke-width:4.19999981;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         inkscape:export-filename="/home/SERILOCAL/andrew.cox/git/opendali-features/dali-toolkit/docs/content/shared-javascript-and-cpp-documentation/fitting-mode-options.png"
+         inkscape:export-filename="fitting-mode-options.png"
          inkscape:export-xdpi="89.269394"
          inkscape:export-ydpi="89.269394" />
     </g>
     <g
        transform="translate(224,-1.9531262e-7)"
        id="g4034-5"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        inkscape:export-xdpi="89.269394"
        inkscape:export-ydpi="89.269394">
       <image
-         sodipodi:absref="/home/SERILOCAL/andrew.cox/git/opendali-features/dali-toolkit/docs/content/figures/liberty.jpg"
+         sodipodi:absref="liberty.jpg"
          xlink:href="liberty.jpg"
          y="764.36218"
          x="352"
     <g
        transform="translate(448,-1.9531262e-7)"
        id="g4034-4"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        inkscape:export-xdpi="89.269394"
        inkscape:export-ydpi="89.269394">
       <image
-         sodipodi:absref="/home/SERILOCAL/andrew.cox/git/opendali-features/dali-toolkit/docs/content/figures/liberty.jpg"
+         sodipodi:absref="liberty.jpg"
          xlink:href="liberty.jpg"
          y="764.36218"
          x="352"
     <g
        transform="translate(672,-1.9531262e-7)"
        id="g4034-3"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        inkscape:export-xdpi="89.269394"
        inkscape:export-ydpi="89.269394">
       <image
-         sodipodi:absref="/home/SERILOCAL/andrew.cox/git/opendali-features/dali-toolkit/docs/content/figures/liberty.jpg"
+         sodipodi:absref="liberty.jpg"
          xlink:href="liberty.jpg"
          y="764.36218"
          x="352"
     <g
        transform="translate(896,-1.9531262e-7)"
        id="g4034-2"
-       inkscape:export-filename="/tmp/fitting-mode-options.png"
+       inkscape:export-filename="fitting-mode-options.png"
        inkscape:export-xdpi="89.269394"
        inkscape:export-ydpi="89.269394">
       <image
-         sodipodi:absref="/home/SERILOCAL/andrew.cox/git/opendali-features/dali-toolkit/docs/content/figures/liberty.jpg"
+         sodipodi:absref="liberty.jpg"
          xlink:href="liberty.jpg"
          y="764.36218"
          x="352"
diff --git a/docs/content/images/javascript-wrapping-guide/scripting-overview.png b/docs/content/images/javascript-wrapping-guide/scripting-overview.png
deleted file mode 100644 (file)
index 0dea37b..0000000
Binary files a/docs/content/images/javascript-wrapping-guide/scripting-overview.png and /dev/null differ
index c7b88f610c4a55b381013578af301da23b305291..b54806b866af40614cf27a108b8eb92c376518ef 100644 (file)
@@ -23,7 +23,6 @@
 ### Programming Guide
  + [Programming Languages:](@ref programming-languages)
   + [C++](@ref c-plus-plus)
-  + [JavaScript](@ref java-script-support)
   + [JSON](@ref json-support)
  + [Application](@ref dali-application)
  + [Actors](@ref actors-and-stage)
@@ -68,7 +67,7 @@
  + [Overview](@ref shader-intro)
 
 ### Scripting
- + [JSON and JavaScript Overview](@ref scriptoverview)
+ + [JSON Overview](@ref scriptoverview)
  + [JSON Syntax](@ref script-json-specification)
  + [Scripting Hello World](@ref script-hello)
 
@@ -85,7 +84,6 @@
   + [Type Registration](@ref type-registration)
  + [Automated Tests](@ref auto_testing)
  + [Programming Guide](@ref documentationguide)
- + [JavaScript Wrapping Guide for DALi developers](@ref javascriptwrapping)
 
 ### Application Optimization Guide
  + [Rescaling Images](@ref resourceimagescaling)
diff --git a/docs/content/programming-guide/accessibility.md b/docs/content/programming-guide/accessibility.md
new file mode 100644 (file)
index 0000000..5351682
--- /dev/null
@@ -0,0 +1,272 @@
+<!--
+/**-->
+
+[TOC]
+
+# Accessibility{#accessibility}
+
+
+## Introduction - What is Accessibility? {#accessibilityintroduction}
+
+Accessibility describes functionality designed to aid usage by the visually impaired.
+  
+This includes:
+- Reading out selections or other on-screen items via text-to-speech.
+- Item selection being controlled with gestures to aid selecting other small hard to select entities.
+  
+
+## Accessibility within DALi {#accessibilitydali}
+
+DALi will pick up the system's current accessibility state (and subsequent changes to it) and enable its internal accessibility mode based on this.
+  
+DALi includes an Accessibility Manager which provides public API control of the order of object selection by gesture, and text to be read out per actor or control.
+  
+It further provides many signals that represent accessibility gestures. These gestures can range from a simple actor selection through to a more control-specific concept like "page-up", which an application developer may want to provide an implementation for.
+  
+Furthermore, these APIs can be used not only with existing actors and controls, but also when creating a custom control.
+  
+The AccessibilityManager lives within DALi Toolkit. Please see accessibility-manager.h for the full API.
+
+
+## Accessibility Focus {#accessibilityfocus}
+
+<!-- Float image to the right of the text -->
+<div style="float: right">
+    ![ ](./accessibility-focus.png)
+</div>
+
+Visibly, when enabled, accessibility will typically show an actor (or actors) as focused. This is represented by default with yellow rectangular frame around the actor. See this section for [modifying the appearance of the accessibility focus](#accessibilityfocusappearance).
+  
+Once in accessibility mode, normal control is disabled and accessibility gestures must be used to access content.
+DALi actors and controls will no longer receive tap gestures or click events when they are touched once (as they normally would).
+  
+Note: The accessibility focus is also referred to as the Focus Indicator.
+
+
+### Moving the focus with gestures {#accessibilitygestures}
+
+Accessibility recognizes many gesture types to move the accessibility focus from actor to actor.
+  
+Note:
+  
+- Some of these gestures have pre-defined, automatic behaviour.
+- Some gestures require an specific implementation to be added to use.
+- All can be caught as signals if extra control is needed.
+  
+To test (and understand) this behaviour, you can use the Tizen adaptor which uses the following gestures to perform basic operation:
+  
+Note: The gestures that perform these actions are platform specific. These are the gestures implemented in the Tizen adaptor for example only.
+  
+- Swiping right and left will move the focus forward and backward one item.
+- Doing a left or right swipe-return (where a direction is swiped forwards and backwards quickly) will move to the previous or next page - DALi cannot know what a page is within your application so these gestures can only work if implemented manually.
+  
+
+![ ](./accessibility-focus-order.png)
+
+### Activation {#accessibilityactivation}
+
+Activation describes an operation performed on a selected actor, typically an on-tap or on-click event.
+  
+Activating an actor in accessibility mode will call a virtual function, as well as signal, for that actor.
+Depending on the platform this can be triggered in different ways.
+When activated, the built in actor types (like PushButton) will do the equivalent of a tap.
+  
+Custom-built actor types will need to implement activation in order to perform a specific behaviour. See the [Custom Controls](#accessibilitycustomcontrol) section.
+  
+Therefore, to tap an actor (EG. Click a button) in accessibility mode, the following must be done:
+  
+- The actor needs to be selected first (using gestures specific to the platform).
+- Then activated, by using the activation gesture.
+  
+## Scrolling {#accessibilityscrolling}
+
+Scrolling around a view outside of accessibility is normally performed by simply holding one finger and dragging (in the appropriate direction).
+Within accessibility this can be overridden and performed with a different gesture type to achieve the same effect.
+  
+Example: For the Tizen platform scrolling is performed with a two-finger drag.
+
+
+## Basic functionality {#accessibilitybasicfunctionality}
+
+### Using the Accessibility Manager functionality {#accessibilityfunctionality}
+
+Accessibility information is stored within the accessibility manager itself rather than within actors.
+This allows the manager to have a global view of focusable actors and their order.
+  
+The Accessibility Manager is a singleton (owned by the singleton service) and can be accessed via its static Get() method:
+  
+~~~{.cpp}
+// Get the accessibility manager singleton.
+accessibilityManager accessibilityManager = AccessibilityManager::Get();
+~~~
+
+
+### Controlling where the focus will move {#accessibilitymovingfocus}
+
+In order to provide automatic focus movement, the accessibility manager must be told the focus order of any actors to be selected.
+This order is a linear order. It can move forwards or backwards only (there is no concept of "up" or "down").
+  
+The order of a particular actor can be set with a call to the accessibility manager like so:
+  
+~~~{.cpp}
+// 6 is an int representing this actor's position in the focus chain.
+accessibilityManager.SetFocusOrder( actor, 6 );
+~~~
+  
+The focus order of each actor in the focus chain is unique. If there is another actor assigned with the same focus order already, the new actor will be inserted to the focus chain with that focus order, and the focus order of the original actor and all the actors followed in the focus chain will be increased accordingly.
+  
+If the focus order assigned to the actor is 0, it means that actor's focus order is undefined (e.g. the actor has a description but with no focus order being set yet) and therefore that actor is not focusable.
+  
+Moving focus to a particular actor directly can be done with SetCurrentFocusActor like so:
+  
+~~~{.cpp}
+// Move focus to the first item on our applications page.
+AccessibilityManager accessibilityManager = AccessibilityManager::Get();
+  
+accessibilityManager.SetCurrentFocusActor( table.GetChildAt( 0 ) );
+~~~
+
+### Modifying the appearance of the accessibility focus {#accessibilityfocusappearance}
+
+The focus graphic itself can be customized.
+It can be an image (EG. A nine-patch border) or any other type of actor.
+  
+It can be set using this method within C++:
+  
+~~~{.cpp}
+accessibilityManager.SetFocusIndicatorActor( myCustomIndicatorActor );
+~~~
+
+
+### Using activation {#accessibilityusingactivation}
+
+If the application would like to perform specific behaviour when an entity is activated, it can catch the activation by connecting to a signal like this:
+  
+~~~{.cpp}
+AccessibilityManager::Get().FocusedActorActivatedSignal().Connect( this, &MyClass::OnFocusedActorActivated );
+~~~
+  
+Controlling the activation behaviour within a custom control is covered in the [custom control section](#accessibilitycustomcontrol)
+
+
+## Focus groups {#accessibilityfocusgroups}
+
+<!-- Float image to the right of the text -->
+<div style="float: right">
+    ![ ](./accessibility-focus-group.png)
+</div>
+
+Group mode allows the limiting of focusable actors.
+  
+Example: If a popup appears, you may want the focus to be limited to only the OK and Cancel buttons. You can do this by setting the popup as a focus group and turning on group mode, the focus will be limited.
+  
+~~~{.cpp}
+// Create a parent actor and add two children to it.
+Actor groupActor = Actor::New();
+
+Actor child1 = Actor::New();
+groupActor.Add( child1 );
+
+Actor child2 = Actor::New();
+groupActor.Add( child2 );
+
+AccessibilityManager accessibilityManager = AccessibilityManager::Get();
+
+// Mark the parent as a focus group. Now focus movement *can* be limited to the children of this actor.
+// Note: That this is not enabled until specified.
+accessibilityManager.SetFocusGroup( groupActor, true );
+
+// Enable the focus group mode.
+accessibilityManager.SetGroupMode( true );
+~~~
+
+
+### Wrap mode {#accessibilitywrapmode}
+
+Wrap mode allows the focus to wrap back to the beginning once the end is reached.
+  
+In group mode this will move to the beginning of the current focus group.
+  
+~~~{.cpp}
+AccessibilityManager accessibilityManager = AccessibilityManager::Get();
+
+// Enable wrap mode.
+accessibilityManager.SetWrapMode( true );
+~~~
+
+
+## Using Accessibility {#accessibilityusage}
+
+### Using accessibility with existing actors {#accessibilityactors}
+
+This example sets up a 3 by 3 grid of actors with the following accessibility functionality:
+  
+  - They have a focus order that moves from top left to bottom right (when using the accessibility next and previous gestures).
+  - They contain text that will be spoken out loud (via text-to-speech) when the focus changes.
+  
+Note that all the above is set via the AccessibilityManager and not as properties within the actors.
+  
+The text spoken per tile will be the LABEL, TRAIT and HINT (in that order).
+  
+~~~{.cpp}
+Toolkit::TableView table = Toolkit::TableView::New( 3, 3 );
+int tileNumber = 0;
+for( int row = 0; row < 3; ++row )
+{
+  for( int column = 0; column < 3; ++column )
+  {
+    // Create a solid color actor, with some text.
+    Actor tile = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
+    Toolkit::TextLabel text = Toolkit::TextLabel::New( tileNames[tileNumber] );
+    tile.Add( text );
+
+    // Get the accessibility manager singleton.
+    accessibilityManager accessibilityManager = AccessibilityManager::Get();
+
+    // Set the focus order of this actor.
+    accessibilityManager.SetFocusOrder( tile, tileNumber );
+
+    // Set up the accessibility information for this actor (this will be read out with text-to-speech).
+    accessibilityManager.SetAccessibilityAttribute( tile, Dali::Toolkit::AccessibilityManager::ACCESSIBILITY_LABEL, tileNames[tileNumber] );
+    accessibilityManager.SetAccessibilityAttribute( tile, Dali::Toolkit::AccessibilityManager::ACCESSIBILITY_TRAIT, "Tile" );
+    accessibilityManager.SetAccessibilityAttribute( tile, Dali::Toolkit::AccessibilityManager::ACCESSIBILITY_HINT, "You can run this example");
+
+    // Lay out our actor within the table view.
+    table.AddChild( tile, Toolkit::TableView::CellPosition( row, column ) );
+
+    tileNumber++;
+  }
+}
+Stage::GetCurrent().Add( table );
+~~~
+
+### Using accessibility within a custom control (C++) {#accessibilitycustomcontrol}
+
+Accessibility behaviour can be customized in a custom UI control by overriding all or some of the following methods.
+
+| Method                     | Description                                                                                                                                                                |
+|----------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| OnAccessibilityActivated   | When the control is *activated* or selected, in accessibility mode.                                                                                                        |
+| OnAccessibilityPan         | When an accessibility pan gesture occurs while this control is focused.                                                                                                   |
+| OnAccessibilityTouch       | Touch events are delivered differently in Accessibility mode. This method should be overridden if some special behaviour is required when these touch events are received. |
+| OnAccessibilityValueChange | When a value is changed while this control is focused (e.g. value change of a slider control).                                                                            |
+| OnAccessibilityZoom        | Should be overridden if behaviour is required when the magnification level changes when this control is focused.                                                          |
+If these events are consumed, then the method should return true.
+The default behaviour in the control base classes returns false, i.e. not consumed.
+### Using accessibility signals for extra control {#accessibilitysignals}
+
+For more specific control of functionality when accessibility is enabled, there are several signals within the accessibility manager's public API that can be connected to.
+  
+The main categories of signals are:
+  
+- The signal when the accessibility status is detected as being toggled on or off: StatusChangedSignal()
+- Focus changes can cause FocusChangedSignal() and FocusOvershotSignal(). These can be connected to in order to provide custom actions when the focus is moved around the screen.
+- The activated signal when an actor has been activated (typically by a focus, then double tap): ActionActivateSignal()
+- Gesture received signals: There are many of these. They are each linked to the many accessibility gestures that can be received by the system.
+  
+Please see accessibility-manager.h within DALi Toolkit for the full API.
+
+
+*/
diff --git a/docs/content/programming-guide/animation.md b/docs/content/programming-guide/animation.md
new file mode 100644 (file)
index 0000000..f979870
--- /dev/null
@@ -0,0 +1,152 @@
+<!--
+/**-->
+
+# Animation {#animation}
+
+DALi provides a rich and easy to use animation framework which allows the creation of visually rich applications.
+Dali::Animation can be used to animate the properties of any number of objects, typically Actors.
+
+## Creating a basic Animation {#animation-basics}
+
+Create an animation object that will take place over 3 seconds:
+~~~{.cpp}
+Dali::Animation animation = Animation::New( 3.0f );
+~~~
+
+### Animating Properties
+
+There are two distinct ways in which properties can be animated within DALi:
+- **AnimateTo:** The property will animate **TO** the value in the given time.
+- **AnimateBy:** The property will animate **BY** the value in the given time.
+
+(Assume actor1 & actor2 are at position 10.0f, 10.0f, 0.0f at the start of the animation)
+~~~{.cpp}
+// Animate the position of actor1 TO 10.0f, 50.0f, 0.0f
+animation.AnimateTo( Property( actor1, Dali::Actor::Property::POSITION ), Vector3(10.0f, 50.0f, 0.0f) ); // End Position: 10.0f, 50.0f, 0.0f
+
+// Animate the position of actor2 BY 10.0f, 50.0f, 0.0f
+animation.AnimateBy( Property( actor2, Dali::Actor::Property::POSITION ), Vector3(10.0f, 50.0f, 0.0f) ); // End Position: 20.0f, 60.0f, 0.0f
+~~~
+
+Note, for rotations, AnimateTo uses spherical linear interpolation to animate to the new orientation (i.e. it will take the shortest path). Because of this, the number of complete revolutions in any given angle will be reduced to 0. For example,
+
+(Assume actor1 is at orientation 0 degrees about Z-Axis at the start of the animation)
+~~~{.cpp}
+// Animate the orientation of actor1 to 390 degrees about the Z-AXIS
+animation.AnimateTo( Property( actor1, Dali::Actor::Property::ORIENTATION ), AngleAxis( Degree( 390 ), Vector3::ZAXIS ) );
+~~~
+
+will only rotate 30 degrees about the Z axis, as that is the shortest path to the final orientation.
+
+AnimateBy will preserve the full revolution count of any angle passed in using AngleAxis, for example, AngleAxis( Degree( 770 ), Vector3::ZAXIS ) will revolve 2 full times before reaching the final angle of 50 degrees from the original orientation.
+
+However, because Quaternions do not preserve the revolution count, AnimateBy will only rotate 50 degrees if the relative value is constructed using a Quaternion. For example,
+
+(Assume actor1 and actor 2 are at orientation 0 degrees about Z-Axis at the start of the animation)
+~~~{.cpp}
+// Animate the orientation of actor1 3.5 times about the Z-AXIS
+animation.AnimateBy( Property( actor1, Dali::Actor::Property::ORIENTATION ), AngleAxis( Degree( 360 * 3.5 ), Vector3::ZAXIS ) );
+
+// But the same degree value will only rotate 180 degrees if a Quaternion is used instead:
+animation.AnimateBy( Property( actor2, Dali::Actor::Property::ORIENTATION ), Quaternion( Degree( 360 * 3.5 ), Vector3::ZAXIS ) );
+~~~
+
+### Playback Control
+
+When an animation is created, it can be played:
+~~~{.cpp}
+animation.Play();
+~~~
+
+Stop and Pause are also supported.
+~~~{.cpp}
+animation.Stop();
+animation.Pause();
+~~~
+
+### Notifications
+
+Using DALi's signal framework, applications can be notified when the animation finishes:
+
+~~~{.cpp}
+
+void ExampleCallback( Animation& source )
+{
+  std::cout << "Animation has finished" << std::endl;
+}
+...
+animation.FinishedSignal().Connect( &ExampleCallback );
+~~~
+
+### Alpha Functions
+
+Alpha functions are used in animations to specify the rate of change of the animation parameter over time.
+The built in supported functions can be viewed in Dali::AlphaFunction::BuiltinFunction.
+
+It is possible to specify a different alpha function for each animator in an Animation object:
+~~~{.cpp}
+animation.AnimateTo( Property( actor1, Dali::Actor::Property::POSITION ), Vector3(10.0f, 50.0f, 0.0f), Dali::AlphaFunction::EASE_IN );
+~~~
+
+### Other Actions
+
+An animation can be looped:
+~~~{.cpp}
+animation.SetLooping( true );
+~~~
+
+By default, when an animation ends, the properties that it was animating are BAKED.
+However, the property changes can be **discarded** when the animation ends (or is stopped):
+~~~{.cpp}
+animation.SetEndAction( Animation::Discard );
+~~~
+
+## Key-Frame Animation {#animation-key-frame}
+
+DALi provides support for animating between several different values, i.e. key-frames.
+A key frame takes a progress value between 0.0f and 1.0f (0 and 100% respectively) and portrays the value of the property when the animation has progressed that much.
+You can create several key frames:
+~~~{.cpp}
+Dali::KeyFrames keyFrames = Dali::KeyFrames::New();
+keyFrames.Add( 0.0f, Vector3( 10.0f, 10.0f, 10.0f ) );
+keyFrames.Add( 0.7f, Vector3( 200.0f, 200.0f, 200.0f ) );
+keyFrames.Add( 1.0f, Vector3( 100.0f, 100.0f, 100.0f ) );
+~~~
+And then add them to your animation.
+~~~{.cpp}
+animation.AnimateBetween( Property( actor1, Dali::Actor::Property::POSITION ), keyFrames );
+~~~
+When you play the animation, DALi will animate the position of actor1 between the key-frames specified.
+'actor1' will animate from (10.0f, 10.0f, 10.0f) to (200.0f, 200.f, 200.0f) by 70% of the animation time,
+and then spend the remaining time animating back to (100.0f, 100.0f, 100.0f).
+
+The advantage of specifying a key-frame at 0% is that regardless of where 'actor1' is, it will start from position (10.0f, 10.0f, 10.0f).
+If AnimateTo was used, then the start position would have been actor1's current position.
+
+## Path Animations {#animation-paths}
+
+A Dali::Path can be used to animate the position and orientation of actors.
+
+![ ](animation/animated-path.png)
+
+The black points in the diagram are points where the DALi logo will travel to.
+The red points are the control points which express the curvature of the path on the black points.
+
+This, in code will be represented as follows:
+~~~{.cpp}
+Path path = Path::New();
+path.AddPoint( Vector3( 50.0f, 10.0f, 0.0f ));
+path.AddPoint( Vector3( 90.0f, 50.0f, 0.0f ));
+path.AddPoint( Vector3( 10.0f, 90.0f, 0.0f ));
+~~~
+The control points can be added manually using Dali::Path::AddControlPoint or Path can auto-generate them for you:
+~~~{.cpp}
+path.GenerateControlPoints(0.25f);
+~~~
+Here 0.25f represents the curvature of the path you require. Please see Dali::Path::GenerateControlPoints for more information.
+
+To animate actor1 along this path:
+~~~{.cpp}
+animation.Animate( actor1, path, Vector3::ZERO );
+~~~
+The third parameter is the forward vector (in local space coordinate system) that will be oriented with the path's tangent direction.
diff --git a/docs/content/programming-guide/build-guide.md b/docs/content/programming-guide/build-guide.md
new file mode 100644 (file)
index 0000000..9a35da8
--- /dev/null
@@ -0,0 +1,80 @@
+<!--
+/**-->
+# Build Guide {#build-guide}
+
+## Ubuntu {#build-ubuntu}
+
+These instructions explain how to build the DALi library for the Ubuntu 14.04 desktop environment.
+
+### Minimum Requirements
+
++ Ubuntu 14.04
++ Ensure ALL sources are selected:
+ + Go to Ubuntu Settings and then to "Software & Updates".
+ + In the "Ubuntu Software" tab, ensure ALL software sources are ticked. (This is required because we install some community-maintained free & open-source software).
+
+### Creating a DALi environment
+
+DALi provides a script to set up your desktop environment. This script can be found in the dali-core repository.
+
++ Fetch ALL 4 repositories from tizen.org.
++ In the parent directory of these repositories, run the following command:
+  ~~~{.sh}
+  dali-core/build/scripts/dali_env -c
+  ~~~
+  This will also download any dependencies that the dali repositories require.
+
++ You can save the environment variables to a file:
+  ~~~{.sh}
+  dali-env/opt/bin/dali_env -s > setenv
+  ~~~
+
+The last few steps only need to be done once.
+
+You will have to source your environment variables every time you open up a new terminal (or you can add to .bashrc if you prefer).
+You can do this by sourcing the '''setenv''' script you created above:
+~~~{.sh}
+. setenv
+~~~
+
+### Building the repositories
+
+#### dali-core
+~~~{.sh}
+cd dali-core/build/tizen
+autoreconf --install
+./configure --prefix=$DESKTOP_PREFIX
+make install -j8
+~~~
+
+#### dali-adaptor
+~~~{.sh}
+cd dali-adaptor/build/tizen
+autoreconf --install
+./configure --prefix=$DESKTOP_PREFIX --enable-profile=UBUNTU
+make install -j8
+~~~
+
+#### dali-toolkit
+~~~{.sh}
+cd dali-toolkit/build/tizen
+autoreconf --install
+./configure --prefix=$DESKTOP_PREFIX
+make install -j8
+~~~
+
+#### dali-demo
+~~~{.sh}
+cd dali-demo/build/tizen
+cmake -DCMAKE_INSTALL_PREFIX=$DESKTOP_PREFIX .
+make install -j8
+~~~
+
+### Running dali-demo
+
+Ensure you have sourced your environment as mentioned above and then just run:
+~~~{.sh}
+dali-demo
+~~~
+
+*/
diff --git a/docs/content/programming-guide/copy-and-paste.md b/docs/content/programming-guide/copy-and-paste.md
new file mode 100644 (file)
index 0000000..54a60fa
--- /dev/null
@@ -0,0 +1,27 @@
+<!--
+/**-->
+
+# Copy and Paste  (Selection) {#copy-n-paste}
+
+Text can be selected by a long press or double tapping it.   Depending on certain conditions a popup could be shown giving options including [CUT][COPY][PASTE], [SELECT ALL] or [CLIPBOARD]. Below these conditions will be explained.
+
+[CUT] or [COPY] send the selected text to the clipboard ready to be pasted directly or via the clipboard UI.   Pressing [PASTE] will paste the top item from the clipboard (what has just been copied, possibly from another application).  If the system supports a clipboard UI this can be displayed by pressing the [CLIPBOARD] button.
+
+Empty text means the user has not inputted any text, a text-control containing special characters or purely whitespace is not empty.
+
+Below shows how the popup will look depending on the state of the text-control.
+
+|  |  |
+|--|--|
+| Condition: Long press/double tap when empty text but clipboard has content  |  Condition: Long press/double tap when text-control contains text |
+|[PASTE][CLIPBOARD] buttons shown| [CUT][COPY], [SELECT ALL] unless all text selected and [PASTE][CLIPBOARD] if content to paste. |
+|    ![ ](./EmptyTextClipboardHasContent.png) |  ![ ](./SelectingText.png) |
+| Condition: Long press/double tap popup when text-control contains just whitespace | Condition: Empty text & clipboard empty |
+| Whitespace treated as regular text, [CUT][COPY] shown and [PASTE][CLIPBOARD] if content to paste. As all text is selected there is no need for [SELECT ALL] |  No popup shown after long press/double tap|
+|  ![ ](./SelectAllWhitespace.png) | ![ ](./EmptyTextAndNoContentToPaste.png)|
+| Condition: Long press/(double tap) on whitespace which is following text | Condition: Tapping text or panning grab handle |
+| [PASTE][CLIPBOARD] shown if something to paste. [SELECT ALL] as more text to select | If content in clipboard [PASTE][CLIPBOARD] popup will be shown. |
+| ![ ](./SelectWhitespaceAfterText.png) | ![ ](./TapAfterCopyingText.png) |
+
+
+*/
diff --git a/docs/content/programming-guide/creating-custom-controls.md b/docs/content/programming-guide/creating-custom-controls.md
new file mode 100644 (file)
index 0000000..da7e857
--- /dev/null
@@ -0,0 +1,497 @@
+<!--
+/**-->
+
+[TOC]
+
+# Creating Custom UI Controls {#creating-custom-controls}
+
+DALi provides the ability to create custom UI controls.
+This can be done by extending Dali::Toolkit::Control and Dali::Toolkit::Internal::Control classes.
+Custom controls are created using the [handle/body idiom](@ref handle-body-idiom) used in DALi.
+![ ](creating-custom-controls/control-handle-body.png)
+Namespaces are important
++ The handle & body classes should have the same name but in different namespaces
++ TypeRegistry relies on this convention
++ Here our custom control requires
+  + MyUIControl
+  + Internal::MyUIControl
+### General Guidelines:
++ Try to avoid adding C++ APIs as they become difficult to maintain.
+  + Use **properties** as much as possible as Controls should be data driven.
+  + These controls will be used through JSON files so need to be compatible.
++ Bear in mind that the Control can be updated when the properties change (e.g. style change)
+  + Ensure control deals with these property changes gracefully
+  + Not just the first time they are set
++ Use Visuals rather than creating several child Actors
+  + DALi rendering pipeline more efficient
++ Accessibility actions should be considered when designing the Control.
++ Consider using signals if the application needs to be react to changes in the control state.
++ Use of Gestures should be preferred over analysing raw touch events
++ Check if you need to chain up to base class if overriding certain methods
+___________________________________________________________________________________________________
+
+## Rendering Content {#creating-controls-rendering-content}
+
+To render content, the required actors can be created and added to the control itself as its children.
+However, this solution is not fully optimised and means extra actors will be added, and thus, need to be processed by DALi.
+Controls should be as generic as possible so the recommendation is to re-use visuals to create the content required as described in the [Visuals](@ref visuals) section.
+Currently, this is devel-api though, so is subject to change.
+![ ](creating-custom-controls/rendering.png)
+
+To add a visual to a control, first create a Property for the visual of type MAP, and ensure the name has a suffix of "_VISUAL". Then the visual is normally defined in the stylesheet, and the definition sent via SetProperty(), where you would then create the visual:
+
+~~~{.cpp}
+// C++
+void Internal::MyUIControl::SetProperty( BaseObject* object, Property::Index index, const Property::Value& value )
+{
+  MyUIControl control = MyUIControl::DownCast( Dali::BaseHandle( object ) );
+  switch( index )
+  {
+    case MyUIControl::Property::MY_VISUAL:
+    {
+      Toolkit::VisualFactory visualFactory = Toolkit::VisualFactory::Get();
+      const Property::Map *map = value.GetMap();
+      if( map && !map->Empty() )
+      {
+        Toolkit::Visual::Base visual = visualFactory.CreateVisual( *map );
+        GetImplementation( control ).RegisterVisual( index, visual );
+      }
+      break;
+    }
+    //...
+  }
+}
+~~~
+
+The [Visuals](@ref visuals) section describes the property maps that can be used for each visual type.
+
+___________________________________________________________________________________________________
+
+## Ensuring Control is Stylable {#creating-controls-stylable}
+
+DALi's property system allows custom controls to be easily styled.
+The [JSON Syntax](@ref script-json-specification) is used in the stylesheets:
+**JSON Styling Syntax Example:**
+~~~
+{
+  "styles":
+  {
+    "textfield":
+    {
+      "pointSize":18,
+      "primaryCursorColor":[0.0,0.72,0.9,1.0],
+      "secondaryCursorColor":[0.0,0.72,0.9,1.0],
+      "cursorWidth":1,
+      "selectionHighlightColor":[0.75,0.96,1.0,1.0],
+      "grabHandleImage" : "{DALI_STYLE_IMAGE_DIR}cursor_handler_drop_center.png",
+      "selectionHandleImageLeft" : {"filename":"{DALI_STYLE_IMAGE_DIR}selection_handle_drop_left.png" },
+      "selectionHandleImageRight": {"filename":"{DALI_STYLE_IMAGE_DIR}selection_handle_drop_right.png" }
+    }
+  }
+}
+~~~
+Styling gives the UI designer the ability to change the look and feel of the control without any code changes.
+| Normal Style | Customized Style |
+|:------------:|:----------------:|
+|![ ](creating-custom-controls/popup-normal.png) | ![ ](creating-custom-controls/popup-styled.png)|
+More information regarding styling can be found in the [Styling](@ref styling) section.
+___________________________________________________________________________________________________
+
+### Type Registration {#creating-controls-type-registration}
+
+The TypeRegistry is used to register your custom control.
+This allows the creation of the control via a JSON file, as well as registering properties, signals and actions.
+To ensure your control is stylable, the process described in [Type Registration](@ref type-registration) should be followed.
+
+#### Properties
+To aid development, some macros are provided for registering properties which are described in the [Property](@ref properties) section.
+Control properties can be one of three types:
+ + **Event-side only:** A function is called to set this property or to retrieve the value of this property.
+                        Usually, the value is stored as a member parameter of the Impl class.
+                        Other operations can also be done, as required, in this called function.
+ + **Animatable Properties:** These are double-buffered properties that can be animated.
+ + **Custom Properties:** These are dynamic properties that are created for every single instance of the control.
+                          Therefore, these tend to take a lot of memory and are usually used by applications or other controls to dynamically set certain attributes on their children.
+                          The index for these properties can also be different for every instance.
+Careful consideration must be taken when choosing which property type to use for the properties of the custom control.
+For example, an Animatable property type can be animated but requires a lot more resources (both in its execution and memory footprint) compared to an event-side only property.
+___________________________________________________________________________________________________
+
+## Control Services {#creating-controls-control-services}
+
+### Initialization {#creating-controls-init}
+
+Controls are initialized in two steps: in the constructor, and then in the Initialize() method.
+This is so that a handle/body connection is made within DALi Core.
+See Dali::CustomActor & Dali::CustomActorImpl for more information.
+It is recommended to do provide a New() method in the custom control implementation where the Initialize() method should be called.
+
+~~~{.cpp}
+// C++
+MyUIControl Internal::MyUIControl::New()
+{
+  // Create the implementation, temporarily owned on stack
+  IntrusivePtr< Internal::MyUIControl > controlImpl = new Internal::MyUIControl;
+
+  // Pass ownership to handle
+  MyUIControl handle( *controlImpl );
+
+  // Second-phase init of the implementation
+  controlImpl->Initialize();
+
+  return handle;
+}
+~~~
+Another advantage of using a New() method is that the constructor for MyUIControl can be made private (or protected).
+This will trigger the Dali::Toolkit::Internal::Control Initialize() method which will in-turn, call the virtual method OnInitialize().
+This should be overridden by the custom ui control.
+~~~{.cpp}
+// C++
+void Internal::MyUIControl::OnInitialize()
+{
+  // Create visuals using the VisualFactory, register events etc.
+  // Register any created visuals with Control base class
+}
+~~~
+___________________________________________________________________________________________________
+
+### Control Behaviour {#creating-controls-behaviour}
+
+Dali::Toolkit::Internal::Control provides several behaviours which are specified through its constructor (@ref Dali::Toolkit::Internal::Control::Control()).
+| Behaviour                            | Description                                                                                                    |
+|--------------------------------------|----------------------------------------------------------------------------------------------------------------|
+| CONTROL_BEHAVIOUR_DEFAULT              | Default behavior (size negotiation is on, style change is monitored, event callbacks are not called.                                      |
+| DISABLE_SIZE_NEGOTIATION             | If our control does not need size negotiation, i.e. control will be skipped by the size negotiation algorithm. |
+| REQUIRES_HOVER_EVENTS                | If our control requires [hover events](@ref creating-controls-events).                                         |
+| REQUIRES_WHEEL_EVENTS                | If our control requires [wheel events](@ref creating-controls-events).                                         |
+| DISABLE_STYLE_CHANGE_SIGNALS         | True if control should not monitor style change signals such as Theme/Font change.                                         |
+| REQUIRES_KEYBOARD_NAVIGATION_SUPPORT | True if need to support keyboard navigation.                                                                   |
+___________________________________________________________________________________________________
+
+### Touch, Hover & Wheel Events {#creating-controls-events}
+
++ A **touch** is when any touch occurs within the bounds of the custom actor. Connect to Dali::Actor::TouchSignal().
++ A **hover event** is when a pointer moves within the bounds of a custom actor (e.g. mouse pointer or hover pointer).
++ A **wheel event** is when the mouse wheel (or similar) is moved while hovering over an actor (via a mouse pointer or hover pointer).
+If the control needs to utilize hover and wheel events, then the correct behaviour flag should be used when constructing the control and then the appropriate method should be overridden.
+~~~{.cpp}
+// C++
+bool Internal::MyUIControl::OnHoverEvent( const HoverEvent& event )
+{
+  bool consumed = false;
+
+  // Handle hover event
+
+  // Return true if handled/consumed, false otherwise
+  return consumed;
+}
+~~~
+~~~{.cpp}
+// C++
+bool Internal::MyUIControl::OnWheelEvent( const WheelEvent& event )
+{
+  bool consumed = false;
+
+  // Handle wheel event
+
+  // Return true if handled/consumed, false otherwise
+  return consumed;
+}
+~~~
+___________________________________________________________________________________________________
+
+### Gestures {#creating-controls-gestures}
+
+DALi has a gesture system which analyses a stream of touch events and attempts to determine the intention of the user.
+The following gesture detectors are provided:
+ + **Pan:** When the user starts panning (or dragging) one or more fingers.
+            The panning should start from within the bounds of the control.
+ + **Pinch:** Detects when two touch points move towards or away from each other.
+              The center point of the pinch should be within the bounds of the control.
+ + **Tap:** When the user taps within the bounds of the control.
+ + **LongPress:** When the user presses and holds on a certain point within the bounds of a control.
+The control base class provides basic set up to detect these gestures.
+If any of these detectors are required then this can be specified in the OnInitialize() method (or as required).
+~~~{.cpp}
+// C++
+void Internal::MyUIControl::OnInitialize()
+{
+  // Only enable pan gesture detection
+  EnableGestureDetection( Gesture::Pan );
+
+  // Or if several gestures are required
+  EnableGestureDetection( Gesture::Type( Gesture::Pinch | Gesture::Tap | Gesture::LongPress ) );
+}
+~~~
+The above snippet of code will only enable the default gesture detection for each type.
+If customization of the gesture detection is required, then the gesture-detector can be retrieved and set up accordingly in the same method.
+~~~{.cpp}
+// C++
+PanGestureDetector panGestureDetector = GetPanGestureDetector();
+panGestureDetector.AddDirection( PanGestureDetector::DIRECTION_VERTICAL );
+~~~
+Finally, the appropriate method should be overridden:
+~~~{.cpp}
+// C++
+void Internal::MyUIControl::OnPan( const PanGesture& pan )
+{
+  // Handle pan-gesture
+}
+~~~
+~~~{.cpp}
+// C++
+void Internal::MyUIControl::OnPinch( const PinchGesture& pinch )
+{
+  // Handle pinch-event
+}
+~~~
+~~~{.cpp}
+// C++
+void Internal::MyUIControl::OnTap( const TapGesture& tap )
+{
+  // Handle tap-gesture
+}
+~~~
+~~~{.cpp}
+// C++
+void Internal::MyUIControl::OnLongPress( const LongPressGesture& longPress )
+{
+  // Handle long-press-gesture
+}
+~~~
+___________________________________________________________________________________________________
+
+### Accessibility {#creating-controls-accessibility}
+
+Accessibility is functionality that has been designed to aid usage by the visually impaired.
+More information can be found in the [Accessibility](@ref accessibility) section.
+Accessibility behaviour can be customized in the control by overriding certain virtual methods.
+This is detailed [here](@ref accessibilitycustomcontrol).
+___________________________________________________________________________________________________
+
+### Signals {#creating-controls-signals}
+
+If applications need to react to changes in the control state, controls can inform those applications using Dali::Signal.
+
+First, create a signature of the function the signal will call in the handle header file:
+~~~{.cpp}
+// C++: my-ui-control.h
+typedef Signal< void () > SignalType;
+~~~
+Then Create methods to get to the signal:
+~~~{.cpp}
+// C++: my-ui-control.h
+MyUIControl::SignalType& MyCustomSignal();
+~~~
+
+The source file should just call the impl:
+~~~{.cpp}
+// C++: my-ui-control.cpp
+MyUIControl::SignalType& MyUIControl::MyCustomSignal()
+{
+  return Dali::Toolkit::GetImplementation( *this ).MyCustomSignal();
+}
+~~~
+In the impl file, create an instance of the signal as follows and return it in the appropriate method:
+~~~{.cpp}
+// C++: my-ui-control-impl.h
+public:
+
+  MyUIControl::SignalType MyUIControl::MyCustomSignal()
+  {
+    return mMyCustomSignal;
+  }
+
+private:
+
+  MyUIControl::SignalType mMyCustomSignal;
+~~~
+Then, when you wish to emit this signal:
+~~~{.cpp}
+// C++: my-ui-control-impl.cpp
+mMyCustomSignal.Emit();
+~~~
+There is no need to check if there is anything connected to this signal as this is done by the framework.
+The application can then connect to the signal as follows:
+~~~{.cpp}
+void AppFunction()
+{
+  // Do Something
+}
+
+...
+
+customControl.MyCustomSignal.Connect( this, &AppFunction );
+~~~
+___________________________________________________________________________________________________
+
+### Children Added/Removed {#creating-controls-children}
+
+Methods are provided that can be overridden if notification is required when a child is added or removed from our control.
+An up call to the Control class is necessary if these methods are overridden.
+~~~{.cpp}
+// C++
+void Internal::MyUIControl::OnChildAdd( Actor& child );
+{
+  // Do any other operations required upon child addition
+
+  // Up call to Control at the end
+  Control::OnChildAdd( child );
+}
+~~~
+~~~{.cpp}
+// C++
+void Internal::MyUIControl::OnChildRemove( Actor& child );
+{
+  // Do any other operations required upon child removal
+
+  // Up call to Control at the end
+  Control::OnChildRemove( child );
+}
+~~~
+Avoid adding or removing the child again within these methods.
+___________________________________________________________________________________________________
+
+### Stage Connection {#creating-controls-stage}
+
+Methods are provided that can be overridden if notification is required when our control is connected to or disconnected from the stage.
+An up call to the Control class is necessary if these methods are overridden.
+~~~{.cpp}
+// C++
+void Internal::MyUIControl::OnStageConnection( int depth )
+{
+  // Do any other operations required upon stage connection
+
+  // Up call to Control at the end
+  Control::OnStageConnection( depth );
+}
+~~~
+~~~{.cpp}
+// C++
+void Internal::MyUIControl::OnStageDisconnection()
+{
+  // Do any other operations required upon stage disconnection
+
+  // Up call to Control at the end
+  Control::OnStageDisconnection();
+}
+~~~
+___________________________________________________________________________________________________
+
+### Size Negotiation {#creating-controls-size-negotiation}
+
+The following methods must be overridden for size negotiation to work correctly with a custom control.
+~~~{.cpp}
+// C++
+Vector3 Internal::MyUIControl::GetNaturalSize()
+{
+  // Return the natural size of the control
+  // This depends on our layout
+  // If we have one visual, then we can return the natural size of that
+  // If we have more visuals, then we need to calculate their positions within our control and work out the overall size we would like our control to be
+
+  // After working out the natural size of visuals that belong to this control,
+  // should also chain up to ensure other visuals belonging to the base class are
+  // also taken into account:
+  Vector2 baseSize = Control::GetNaturalSize(); // returns the size of the background.
+}
+~~~
+~~~{.cpp}
+// C++
+float Internal::MyUIControl::GetHeightForWidth( float width )
+{
+  // Called by the size negotiation algorithm if we have a fixed width
+  // We should calculate the height we would like our control to be for that width
+
+  // Should also chain up to determine the base class's preferred height:
+  float baseHeight = Control::GetHeightForWidth( width );
+
+}
+~~~
+~~~{.cpp}
+// C++
+float Internal::MyUIControl::GetWidthForHeight( float height )
+{
+  // Called by the size negotiation algorithm if we have a fixed height
+  // We should calculate the width we would like our control to be for that height
+
+  // Should also chain up to determine the base class's preferred width:
+  float baseWidth = Control::GetWidth( height );
+}
+~~~
+~~~{.cpp}
+// C++
+void Internal::MyUIControl::OnRelayout( const Vector2& size, RelayoutContainer& container )
+{
+  // The size is what we have been given and what our control needs to fit into
+  // Here, we need to set the position and the size of our visuals
+  // If we have other controls/actors as children
+  //  - Add the control/actor to the container paired with the size required
+  //  - To ensure this works, you need to set up the control with a relayout policy of USE_ASSIGNED_SIZE
+  //  - DO NOT CALL SetSize on this control: This will trigger another size negotiation calculation
+  // DO NOT chain up to base class.
+}
+~~~
+More information on size negotiation can be found [here](@ref size-negotiation-controls).
+___________________________________________________________________________________________________
+
+### Clipping Support {#creating-controls-clipping}
+
+When an Actor is set to clip its children, the renderers have to be added manually in order to specify what its children need to clip to.
+The Control base class automates the creation of the visuals when it is set to clip its children.
+This is only done if the application or custom control writer has not
+added any Renderers to the Control or registered any visuals
+(regardless of whether these visuals are enabled or not).
+If custom control writers want to define the clipping visuals themselves, then they should register all required visuals before the control is staged.
+___________________________________________________________________________________________________
+
+### Other Features {#creating-controls-other}
+
+ + [Background](@ref background)
+___________________________________________________________________________________________________
+
+
+*/
diff --git a/docs/content/programming-guide/dali-introduction.md b/docs/content/programming-guide/dali-introduction.md
new file mode 100644 (file)
index 0000000..76d31b4
--- /dev/null
@@ -0,0 +1,31 @@
+<!--
+/**-->
+
+# DALi 3D ( Dynamic Animation Library ) {#dali-introduction}
+
+DALi is a quick and easy way of allowing developers to create Rich UI Applications like:
+
+ + Image & Video galleries
+ + Music players
+ + Games
+ + Maps
+ + Homescreens / launch pads
+ + Advanced watch faces for wearable devices
+
+DALi is based on OpenGL ES 2.0 & 3.0, however it hides the complexity of
+the OpenGL API from developers and provides a clean cross-platform C++ API.
+
+## Features {#dali-features}
+
+ + Create Images & Text
+ + Create shaders using GLSL
+ + Provide multiple cameras and render targets
+ + Provides Layers to aid in 2D UI layout
+ + Easy to use Animation framework
+ + Automatic background loading of resources ( images / text / meshes )
+ + Runs all animations in a separate thread. This helps maintain 60 FPS even if a long operation is being performed holding up the main thread.
+ + Provides keyboard / touch / mouse handling
+
+![ ](screen-shot.png)
+
+*/
diff --git a/docs/content/programming-guide/debug-rendering.md b/docs/content/programming-guide/debug-rendering.md
new file mode 100644 (file)
index 0000000..023045c
--- /dev/null
@@ -0,0 +1,18 @@
+<!--
+/**-->
+
+# Debug rendering {#debugrendering}
+
+Setting DALI_DEBUG_RENDERING environment variable will enable the visual debugging.
+
+Then, every concrete visual ( ColorVisual, BorderVisual, ImageVisual, GradientVisual, etc. ) is replaced with a wireframe visual.
+The wireframe visual renders a simple quad wireframe, so that the control layout and scene structure is clearly displayed.
+
+## Example:
+~~~{.bash}
+sh-4.1$ DALI_DEBUG_RENDERING=1 /usr/apps/com.samsung.dali-demo/bin/blocks.example
+~~~
+
+![ ](debug-blocks.png)
+
+
diff --git a/docs/content/programming-guide/documentation-guide.md b/docs/content/programming-guide/documentation-guide.md
new file mode 100644 (file)
index 0000000..8227fc1
--- /dev/null
@@ -0,0 +1,45 @@
+<!--
+/**-->
+
+# Writing documentation for the DALi programming guide  {#documentationguide}
+
+For documentation, please follow these guidelines:
+
+ - Create a mark down file (.md) using GitHub Flavoured Markdown https://help.github.com/articles/github-flavored-markdown/
+ - Put it into the following folder: dali-toolkit/docs/content/programming-guide/
+ - Include code samples for C++ in the mark down.
+ - See script-overview.md overview in dali-toolkit/docs/content/programming-guide for an example
+ - For DOXYGEN to link to the mark down it currently needs a reference {hash myfile}
+  
+
+#### Images
+ Doxygen copies all images in to the same folder as the HTML generated pages so you can just reference it as follows:
+
+ ~~~
+![ ](screen-shot.png)                  // required for Doxygen
+
+The space between the brackets is the alternative text. This means you will never see a broken image symbol.
+~~~
+  
+## Example
+
+Please have a look at the numerous markdown files to see the header and footer requirements.
+
+You can add tags to your headings as follows:
+~~~{.md}
+# MyChapter {#my-chapter}
+~~~
+Which will allow you to link to this section as follows:
+~~~{.md}
+[Go To MyChapter](@ref my-chapter)
+~~~
+
+Code blocks can be enclosed within 2 blocks of 3 tildes(~).
+
+You can even specify your language type, for example:
+~~~{.md}
+~~~{.cpp}
+...
+
+
+*/
diff --git a/docs/content/programming-guide/flex-container.md b/docs/content/programming-guide/flex-container.md
new file mode 100644 (file)
index 0000000..ab0e392
--- /dev/null
@@ -0,0 +1,464 @@
+<!--
+/**-->
+
+# Flex Container  {#flex-container}
+
+Flexbox is a CSS3 web layout model which allows responsive elements within a container, automatically arranged to different size screens or devices.
+FlexContainer implements a subset of the Flexbox spec (defined by W3C) at: https://www.w3.org/TR/css-flexbox-1/
+The flex container has the ability to alter the width and/or height of its children (i.e. flex items) to best fill the available space on any display device.
+The container expands items to fill available free space, or shrinks them to prevent overflow.
+Below is an illustration of the various directions and terms as applied to a flex container with the "flex direction" defined as "row".
+![ ](flex-container/flex-container.jpg)
+DALi supports the following subset of Flexbox properties.
+## Properties supported by flex container:
+
+ + [contentDirection](@ref content-direction)
+ + [flexDirection](@ref flex-direction)
+ + [flexWrap](@ref flex-wrap)
+ + [justifyContent](@ref justify-content)
+ + [alignItems](@ref align-items)
+ + [alignContent](@ref align-content)
+___________________________________________________________________________________________________
+
+## contentDirection {#content-direction}
+contentDirection specifies the primary direction in which content is ordered on a line.
+| LTR (left-to-right) | RTL (right-to-left) |
+|--------|--------|
+| ![ ](flex-container/content-direction-ltr.jpg) | ![ ](flex-container/content-direction-rtl.jpg) |
+The possible values for this property are:
+| Property Value | Description                                 |
+|----------------|---------------------------------------------|
+| INHERIT        | Inherits the same direction from the parent |
+| LTR            | From left to right                          |
+| RTL            | From right to left                          |
+### Usage
+
+~~~{.cpp}
+// C++
+Dali::Toolkit::FlexContainer flexContainer = Dali::Toolkit::FlexContainer::New();
+flexContainer.SetProperty( Dali::Toolkit::FlexContainer::Property::CONTENT_DIRECTION, Dali::Toolkit::FlexContainer::RTL );
+~~~
+
+___________________________________________________________________________________________________
+
+## flexDirection {#flex-direction}
+flexDirection specifies the direction of the main axis which determines the direction that flex items are laid out.
+![ ](flex-container/flex-direction.jpg)
+The possible values for this property are:
+| Property Value | Description                                 |
+|----------------|---------------------------------------------|
+| COLUMN         | The flex items are laid out vertically as a column                          |
+| COLUMN_REVERSE | The flex items are laid out vertically as a column, but in reverse order    |
+| ROW            | The flex items are laid out horizontally as a row                       |
+| ROW_REVERSE    | The flex items are laid out horizontally as a row, but in reverse order |
+### Usage
+
+~~~{.cpp}
+// C++
+Dali::Toolkit::FlexContainer flexContainer = Dali::Toolkit::FlexContainer::New();
+flexContainer.SetProperty( Dali::Toolkit::FlexContainer::Property::FLEX_DIRECTION, Dali::Toolkit::FlexContainer::ROW_REVERSE );
+~~~
+
+___________________________________________________________________________________________________
+
+## flexWrap {#flex-wrap}
+flexWrap specifies whether the flex items should wrap or not if there is no enough room for them on one flex line.
+![ ](flex-container/flex-wrap.jpg)
+The possible values for this property are:
+| Property Value | Description                                 |
+|----------------|---------------------------------------------|
+| NO_WRAP        | Flex items laid out in single line (shrunk to fit the flex container along the main axis) |
+| WRAP           | Flex items laid out in multiple lines if needed                                           |
+### Usage
+
+~~~{.cpp}
+// C++
+Dali::Toolkit::FlexContainer flexContainer = Dali::Toolkit::FlexContainer::New();
+flexContainer.SetProperty( Dali::Toolkit::FlexContainer::Property::FLEX_WRAP, Dali::Toolkit::FlexContainer::NO_WRAP );
+~~~
+
+___________________________________________________________________________________________________
+
+## justifyContent {#justify-content}
+justifyContent specifies the alignment of flex items when they do not use all available space on the main axis.
+![ ](flex-container/justify-content.jpg)
+The possible values for this property are:
+| Property Value | Description                                 |
+|----------------|---------------------------------------------|
+| JUSTIFY_FLEX_START      | Items are positioned at the beginning of the container                     |
+| JUSTIFY_CENTER          | Items are positioned at the center of the container                        |
+| JUSTIFY_FLEX_END        | Items are positioned at the end of the container                           |
+| JUSTIFY_SPACE_BETWEEN   | Items are positioned with equal space between the lines                    |
+| JUSTIFY_SPACE_AROUND    | Items are positioned with equal space before, between, and after the lines |
+### Usage
+
+~~~{.cpp}
+// C++
+Dali::Toolkit::FlexContainer flexContainer = Dali::Toolkit::FlexContainer::New();
+flexContainer.SetProperty( Dali::Toolkit::FlexContainer::Property::JUSTIFY_CONTENT, Dali::Toolkit::FlexContainer::JUSTIFY_SPACE_BETWEEN );
+~~~
+
+___________________________________________________________________________________________________
+
+## alignItems {#align-items}
+alignItems specifies the alignment of flex items when they do not use all available space on the cross axis.
+![ ](flex-container/align-items.jpg)
+The possible values for this property are:
+| Property Value | Description                                 |
+|----------------|---------------------------------------------|
+| ALIGN_FLEX_START | Items are aligned at the beginning of the container |
+| ALIGN_CENTER     | Items are aligned at the center of the container    |
+| ALIGN_FLEX_END   | Items are aligned at the end of the container       |
+| ALIGN_STRETCH    | Items are stretched to fit the container            |
+### Usage
+
+~~~{.cpp}
+// C++
+Dali::Toolkit::FlexContainer flexContainer = Dali::Toolkit::FlexContainer::New();
+flexContainer.SetProperty( Dali::Toolkit::FlexContainer::Property::ALIGN_ITEMS, Dali::Toolkit::FlexContainer::ALIGN_FLEX_START );
+~~~
+
+___________________________________________________________________________________________________
+
+## alignContent {#align-content}
+alignContent specifies the alignment of flex lines when they do not use all available space on the cross axis, so only works when there are multiple lines.
+![ ](flex-container/align-content.jpg)
+The possible values for this property are:
+| Property Value | Description                                 |
+|----------------|---------------------------------------------|
+| ALIGN_FLEX_START | Items are aligned at the beginning of the container |
+| ALIGN_CENTER     | Items are aligned at the center of the container    |
+| ALIGN_FLEX_END   | Items are aligned at the end of the container       |
+### Usage
+
+~~~{.cpp}
+// C++
+Dali::Toolkit::FlexContainer flexContainer = Dali::Toolkit::FlexContainer::New();
+flexContainer.SetProperty( Dali::Toolkit::FlexContainer::Property::ALIGN_CONTENT, Dali::Toolkit::FlexContainer::ALIGN_FLEX_END );
+~~~
+
+___________________________________________________________________________________________________
+
+## Custom properties supported by flex item:
+
+ + [flex](@ref flex)
+ + [alignSelf](@ref align-self)
+ + [flexMargin](@ref flex-margin)
+These non-animatable properties are registered dynamically to each child which would be added to the flex container, and once added their values can not be changed.
+When an actor is added to the flex container, these properties are checked to decide how to lay out the actor inside the flex container.
+___________________________________________________________________________________________________
+
+## flex {#flex}
+By default, the items in the flex container are not flexible. If set, this property makes the item flexible, which means the item can alter its width/height in order to receive the specified proportion of the free space in the flex container.
+If all items in the flex container use this pattern, their sizes will be proportional to the specified flex factor.
+Flex items will not shrink below their minimum size (if set using Dali::Actor::SetMinimumSize).
+![ ](flex-container/flex.jpg)
+
+### Usage
+
+Below is the example code for the items to achieve the proportion of free space as illustrated above.
+~~~{.cpp}
+// C++
+
+// Create the flex container
+Dali::Toolkit::FlexContainer flexContainer = Dali::Toolkit::FlexContainer::New();
+
+// Set the flex direction to lay out the items horizontally
+flexContainer.SetProperty( Dali::Toolkit::FlexContainer::Property::FLEX_DIRECTION, Dali::Toolkit::FlexContainer::ROW );
+
+// Create flex items and set the proportion
+Dali::Toolkit::Control item1 = Dali::Toolkit::Control::New();
+item1.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::FLEX, 1.0f );
+flexContainer.Add( item1 );
+
+Dali::Toolkit::Control item2 = Dali::Toolkit::Control::New();
+item2.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::FLEX, 3.0f );
+flexContainer.Add( item2 );
+
+Dali::Toolkit::Control item3 = Dali::Toolkit::Control::New();
+item3.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::FLEX, 1.0f );
+flexContainer.Add( item3 );
+
+Dali::Toolkit::Control item4 = Dali::Toolkit::Control::New();
+item4.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::FLEX, 2.0f );
+flexContainer.Add( item4 );
+
+Dali::Toolkit::Control item5 = Dali::Toolkit::Control::New();
+item5.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::FLEX, 1.0f );
+flexContainer.Add( item5 );
+
+~~~
+
+___________________________________________________________________________________________________
+
+## alignSelf {#align-self}
+alignSelf specifies how the item will align along the cross axis, if set, this overrides the default alignment for all items defined by the container’s [alignItems](@ref align-items) property.
+![ ](flex-container/align-self.jpg)
+The possible values for this property are:
+| Property Value | Description                                 |
+|----------------|---------------------------------------------|
+| ALIGN_AUTO       | Items inherit the same alignment from the parent by default (as specified by the container’s [alignItems](@ref align-items) property) |
+| ALIGN_FLEX_START | Items are aligned at the beginning of the container |
+| ALIGN_CENTER     | Items are aligned at the center of the container    |
+| ALIGN_FLEX_END   | Items are aligned at the end of the container       |
+| ALIGN_STRETCH    | Items are stretched to fit the container            |
+### Usage
+
+Below is the example code for the items to achieve the alignment on the cross axis as illustrated above.
+~~~{.cpp}
+// C++
+
+// Create the flex container
+Dali::Toolkit::FlexContainer flexContainer = Dali::Toolkit::FlexContainer::New();
+
+// Set the flex direction to lay out the items horizontally
+flexContainer.SetProperty( Dali::Toolkit::FlexContainer::Property::FLEX_DIRECTION, Dali::Toolkit::FlexContainer::ROW );
+
+// Set the items to be aligned at the beginning of the container on the cross axis by default
+flexContainer.SetProperty( Dali::Toolkit::FlexContainer::Property::ALIGN_ITEMS, Dali::Toolkit::FlexContainer::ALIGN_FLEX_START );
+
+// Create flex items and add them to the flex container
+Dali::Toolkit::Control item1 = Dali::Toolkit::Control::New();
+item1.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::ALIGN_SELF, Dali::Toolkit::FlexContainer::ALIGN_CENTER ); // Align item1 at the center of the container
+flexContainer.Add( item1 );
+
+Dali::Toolkit::Control item2 = Dali::Toolkit::Control::New();
+flexContainer.Add( item2 ); // item2 is aligned at the beginning of the container
+
+Dali::Toolkit::Control item3 = Dali::Toolkit::Control::New();
+item3.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::ALIGN_SELF, Dali::Toolkit::FlexContainer::ALIGN_FLEX_END ); // Align item3 at the bottom of the container
+flexContainer.Add( item3 );
+
+Dali::Toolkit::Control item4 = Dali::Toolkit::Control::New();
+flexContainer.Add( item4 ); // item4 is aligned at the beginning of the container
+
+~~~
+
+___________________________________________________________________________________________________
+
+## flexMargin {#flex-margin}
+Each flex item inside the flex container is treated as a box (in CSS term) which is made up of:
+
+ + content: The content of the item.
+ + padding: The space around the content (inside the border) of the item.
+ + border: The border that goes around the padding and the content of the item.
+ + flexMargin: The space outside the border.
+![ ](flex-container/flex-margin.jpg)
+In DALi, the size of the flex item = content size + padding + border.
+flexMargin specifies the space around the flex item.
+### Usage
+
+~~~{.cpp}
+// C++
+
+// Create the flex container
+Dali::Toolkit::FlexContainer flexContainer = Dali::Toolkit::FlexContainer::New();
+
+// Create flex item
+Dali::Toolkit::Control item = Dali::Toolkit::Control::New();
+
+// Add the margin around the item
+item.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::FLEX_MARGIN, Vector4(10.0f, 10.0f, 10.0f, 10.0f) );
+
+// Add the item to the container
+flexContainer.Add( item );
+~~~
+
+___________________________________________________________________________________________________
+
+## Example of creating Flexbox layout using FlexContainer
+
+Now let's see how to create a Gallery like layout (as shown below) using FlexContainer.
+
+![ ](flex-container/flexbox-demo.jpg)
+Firstly, we create a flex container as the whole view and set its resize policy to fill its parent (i.e. the stage).
+
+~~~{.cpp}
+// C++
+
+// Create the main flex container
+Dali::Toolkit::FlexContainer flexContainer = Dali::Toolkit::FlexContainer::New();
+flexContainer.SetParentOrigin( Dali::ParentOrigin::TOP_LEFT );
+flexContainer.SetAnchorPoint( Dali::AnchorPoint::TOP_LEFT );
+flexContainer.SetResizePolicy( Dali::ResizePolicy::FILL_TO_PARENT, Dali::Dimension::ALL_DIMENSIONS );
+flexContainer.SetBackgroundColor( Dali::Color::WHITE ); // set the background color to be white
+
+// Add it to the stage
+Dali::Stage::GetCurrent().Add( flexContainer );
+~~~
+
+We want to set the flex direction of this main container to column, as we want the toolbar and the actual content to be displayed vertically.
+~~~{.cpp}
+// C++
+
+// Display toolbar and content vertically
+flexContainer.SetProperty( Dali::Toolkit::FlexContainer::Property::FLEX_DIRECTION, Dali::Toolkit::FlexContainer::COLUMN );
+~~~
+
+Now we create a flex container as the toolbar and add it to the main container. Because the flex direction in the main container is column, the toolbar will be arranged on the top of the main container.
+~~~{.cpp}
+// C++
+
+// Create the toolbar
+Dali::Toolkit::FlexContainer toolBar = Dali::Toolkit::FlexContainer::New();
+toolBar.SetParentOrigin( Dali::ParentOrigin::TOP_LEFT );
+toolBar.SetAnchorPoint( Dali::AnchorPoint::TOP_LEFT );
+toolBar.SetBackgroundColor( Dali::Color::CYAN ); // Set the background color for the toolbar
+
+// Add it to the main container
+flexContainer.Add( toolBar );
+~~~
+
+We want the buttons and title to be displayed horizontally and vertically aligned to the center of the toolbar, so we set its flex direction to row and set its alignItems property to center.
+We also want the toolbar and the actual content to share the height of the main container, so that the toolbar will occupy 10 percent of the whole vertical space and the content will occupy the rest of the vertical space.
+This can be achieved by setting the flex property.
+~~~{.cpp}
+// C++
+
+toolBar.SetProperty( Dali::Toolkit::FlexContainer::Property::FLEX_DIRECTION, Dali::Toolkit::FlexContainer::ROW ); // display toolbar items horizontally
+toolBar.SetProperty( Dali::Toolkit::FlexContainer::Property::ALIGN_ITEMS, Dali::Toolkit::FlexContainer::ALIGN_CENTER ); // align toolbar items vertically center
+toolBar.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::FLEX, 0.1f ); // 10 percent of available space in the cross axis
+~~~
+
+Then we create another flex container as the content area to display the image, and it will be displayed in the bottom of the main container.
+We want the item inside it to be horizontally and vertically centered, so that the image will always be in the center of the content area.
+
+~~~{.cpp}
+// C++
+
+// Create the content area
+Dali::Toolkit::FlexContainer content = Dali::Toolkit::FlexContainer::New();
+content.SetParentOrigin( Dali::ParentOrigin::TOP_LEFT );
+content.SetAnchorPoint( Dali::AnchorPoint::TOP_LEFT );
+content.SetProperty( Dali::Toolkit::FlexContainer::Property::FLEX_DIRECTION, Dali::Toolkit::FlexContainer::ROW ); // display items horizontally
+content.SetProperty( Dali::Toolkit::FlexContainer::Property::JUSTIFY_CONTENT, Dali::Toolkit::FlexContainer::JUSTIFY_CENTER ); // align items horizontally center
+content.SetProperty( Dali::Toolkit::FlexContainer::Property::ALIGN_ITEMS, Dali::Toolkit::FlexContainer::ALIGN_CENTER ); // align items vertically center
+content.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::FLEX, 0.9f ); // 90 percent of available space in the cross axis
+
+// Add it to the main container
+flexContainer.Add( content );
+~~~
+
+Now we start to add items to the toolbar. The toolbar will have one button on the left, one button on the right, and a title always in the center (regardless of the screen size).
+To achieve that, we can simply make the title flexible so that it will automatically take all the available horizontal space left.
+We will also add some space around the items so that the layout looks nicer.
+~~~{.cpp}
+// C++
+
+// Add a button to the left of the toolbar
+Dali::Toolkit::PushButton prevButton = Dali::Toolkit::PushButton::New();
+prevButton.SetParentOrigin( Dali::ParentOrigin::TOP_LEFT );
+prevButton.SetAnchorPoint( Dali::AnchorPoint::TOP_LEFT );
+prevButton.SetMinimumSize( Dali::Vector2( 100.0f, 60.0f ) ); // this is the minimum size the button should keep
+prevButton.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::FLEX_MARGIN, Dali::Vector4(10.0f, 10.0f, 10.0f, 10.0f) ); // set 10 pixel margin around the button
+toolBar.Add( prevButton );
+
+// Set the button text
+Dali::Property::Map labelMap;
+labelMap[ "text" ]      = "Prev";
+labelMap[ "textColor" ] = Dali::Color::BLACK;
+prevButton.SetProperty( Dali::Toolkit::Button::Property::LABEL, labelMap );
+
+// Add a title to the center of the toolbar
+Dali::Toolkit::TextLabel title = Dali::Toolkit::TextLabel::New( "Gallery" );
+title.SetParentOrigin( Dali::ParentOrigin::TOP_LEFT );
+title.SetAnchorPoint( Dali::AnchorPoint::TOP_LEFT );
+title.SetResizePolicy( Dali::ResizePolicy::USE_NATURAL_SIZE, Dali::Dimension::ALL_DIMENSIONS );
+title.SetProperty( Dali::Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
+title.SetProperty( Dali::Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
+title.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::FLEX, 1.0f ); // take all the available space left apart from the two buttons
+title.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::FLEX_MARGIN, Dali::Vector4(10.0f, 10.0f, 10.0f, 10.0f) ); // set 10 pixel margin around the title
+toolBar.Add( title );
+
+// Add a button to the right of the toolbar
+Dali::Toolkit::PushButton nextButton = Dali::Toolkit::PushButton::New();
+nextButton.SetParentOrigin( Dali::ParentOrigin::TOP_LEFT );
+nextButton.SetAnchorPoint( Dali::AnchorPoint::TOP_LEFT );
+nextButton.SetMinimumSize( Dali::Vector2( 100.0f, 60.0f ) ); // this is the minimum size the button should keep
+nextButton.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::FLEX_MARGIN, Dali::Vector4(10.0f, 10.0f, 10.0f, 10.0f) ); // set 10 pixel margin around the button
+toolBar.Add( nextButton );
+
+// Set the button text
+labelMap[ "text" ] = "Next";
+nextButton.SetProperty( Dali::Toolkit::Button::Property::LABEL, labelMap );
+~~~
+
+This is really neat when running on devices with different size or changing from different orientation, because the toolbar will expand or shrink based on the available space and the title will always be in the center, therefore the layout of the toolbar will keep the same.
+Finally, we will add the image to the content area.
+~~~{.cpp}
+// C++
+
+// Add an image to the center of the content area
+Dali::Toolkit::ImageView imageView = Dali::Toolkit::ImageView::New( "image.jpg" );
+imageView.SetParentOrigin( Dali::ParentOrigin::TOP_LEFT );
+imageView.SetAnchorPoint( Dali::AnchorPoint::TOP_LEFT );
+content.Add( imageView );
+~~~
+
+As you can see, it is easy to make flexible containers in DALi. We can use these concepts to create responsive layouts.
+
+*/
diff --git a/docs/content/programming-guide/font-selection.md b/docs/content/programming-guide/font-selection.md
new file mode 100644 (file)
index 0000000..29e4387
--- /dev/null
@@ -0,0 +1,185 @@
+<!--
+/**-->
+
+# Font Selection {#font-selection}
+
+By default TextLabel or TextField will automatically select a suitable font from the platform.
+Typically fonts do not support all scripts, for example Latin fonts often do not provide Arabic glyphs.
+Therefore you should expect the text control to select different fonts for each script.
+
+Alternatively a font may be requested using either or all of FONT_FAMILY, FONT_STYLE, and POINT_SIZE properties:
+
+- FONT_FAMILY
+  Is a string with the font's family name. i.e. *FreeSerif*
+- FONT_STYLE
+  Is a json formatted string with the font's style. Possible *key, value* pairs are:
+  + *width* Modifies the space between glyphs. Possible values are:
+    - *ultraCondensed*
+    - *extraCondensed*
+    - *condensed*
+    - *semiCondensed*
+    - *normal*
+    - *semiExpanded*
+    - *expanded*
+    - *extraExpanded*
+    - *ultraExpanded*
+  + *weight* Modifies the thickness or darkness of the glyphs. Possible values are:
+    - *thin*
+    - *ultraLight*
+    - *extraLight*
+    - *light*
+    - *demiLight*
+    - *semiLight*
+    - *book*
+    - *normal*
+    - *regular*
+    - *medium*
+    - *demiBold*
+    - *semiBold*
+    - *bold*
+    - *ultraBold*
+    - *extraBold*
+    - *black*
+    - *heavy*
+    - *extraBlack*
+  + *slant* Whether to use italics. Usually *italic* is a different font whilst the *oblique* has been generated by slanting the *normal* one. Possible values are:
+    - *normal*
+    - *roman* Same as *normal*
+    - *italic*
+    - *oblique*
+- POINT_SIZE
+  Is a float with the font's size in points. To get the point size from pixels, could use the formula: <em>point_size = 72 * pixels / vertical_dpi</em> where <em>vertical_dpi</em> is the device's vertical resolution in dots per inch.
+
+~~~{.cpp}
+// C++
+
+label.SetProperty( TextLabel::Property::FONT_FAMILY, "FreeSerif" );
+label.SetProperty( TextLabel::Property::FONT_STYLE,
+                   Property::Map().Add( "weight", "bold" )
+                                  .Add( "slant", "italic" ) );
+label.SetProperty( TextLabel::Property::POINT_SIZE,  12.0f );
+~~~
+
+However the text control will fall-back to using the default font, if the requested font does not support the required scripts.
+
+### Font Styles
+
+Setting a font size programmatically is not ideal for applications which support multiple
+screen resolutions and platforms which support multiple logical font sizes.  Also, any
+changes to the platform font settings will override any sizes that have been programmatically
+set.
+
+A more flexible approach is to prepare various JSON stylesheets, and request a different style for each platform:
+
+~~~{.cpp}
+// C++
+StyleManager styleManager = StyleManager::Get();
+styleManager.RequestThemeChange( "example-path/example.json" );
+~~~
+
+To change the font for standard text controls, this JSON syntax can be used:
+
+~~~{.json}
+{
+  "styles":
+  {
+    "textlabel":
+    {
+      "fontFamily":"FreeSerif",
+      "fontStyle":
+      {
+        "weight":"bold",
+        "slant":"italic"
+      },
+      "pointSize":8
+    }
+  }
+}
+~~~
+
+However the same pointSize is unlikely to be suitable for all text controls in an application.
+To define custom styles for existing controls, simply set a style name for each case, and
+then provide a style override in JSON.
+
+To provide flexibility for the end user, the platform offers a mechanism to alter the logical
+font size between 0 and 4 inclusive. This logical size is mapped to a physical size using the
+stylesheets, by appending FontSizeN to the style name. These sections ("textlabelFontSizeN")
+in the style sheet are applied after the base section ("textlabel"), so take precedence.
+
+~~~{.cpp}
+  // C++
+
+  label.SetProperty( Control::Property::STYLE_NAME, "custom" );
+~~~
+~~~{.json}
+{
+  "styles":
+  {
+    "textlabel":
+    {
+      "fontFamily":"FreeSerif",
+      "fontStyle":
+      {
+        "weight":"bold",
+        "slant":"italic"
+      },
+    },
+
+    "textlabelFontSize0":
+    {
+      "pointSize":8
+    },
+    "textlabelFontSize1":
+    {
+      "pointSize":10
+    },
+    "textlabelFontSize2":
+    {
+      "pointSize":15
+    },
+    "textlabelFontSize3":
+    {
+      "pointSize":19
+    },
+    "textlabelFontSize4":
+    {
+      "pointSize":25
+    },
+
+    "customLabel":
+    {
+      "fontFamily":"TimesNewRoman",
+      "fontStyle":
+      {
+        "weight":"regular",
+        "slant":"regular"
+      },
+    },
+    "customLabelFontSize0":
+    {
+      "pointSize":10
+    },
+    "customLabelFontSize1":
+    {
+      "pointSize":12
+    },
+    "customLabelFontSize2":
+    {
+      "pointSize":15
+    },
+    "customLabelFontSize3":
+    {
+      "pointSize":20
+    },
+    "customLabelFontSize4":
+    {
+      "pointSize":28
+    }
+  }
+}
+~~~
+
+In the example above, at platform logical text size 0, standard text labels will have pointSize 8, and custom labels will have pointSize 10.
+
+
+*/
diff --git a/docs/content/programming-guide/fundamentals.md b/docs/content/programming-guide/fundamentals.md
new file mode 100644 (file)
index 0000000..c57e2e8
--- /dev/null
@@ -0,0 +1,85 @@
+<!--
+/**-->
+
+# DALi Fundamentals  {#fundamentals}
+
+## Actors and the Stage {#actors-and-stage}
+
+Actor is the primary object with which DALi applications interact.
+A DALi application uses a hierarchy of Dali::Actor objects to position visible content.
+An actor inherits a position relative to its parent, and can be moved relative to this point.
+UI controls can be built by combining multiple actors.
+
+The Stage is a top-level object used for displaying a tree of Actors.
+To display the contents of an actor, it must be added to the Dali::Stage,
+
+The following example shows how to connect a new actor to the stage:
+
+~~~{.cpp}
+Actor actor = Actor::New();
+Stage::GetCurrent().Add(actor);
+~~~
+
+~~~{.js}
+var actor = new dali.Actor();
+dali.stage.add( actor );
+~~~
+
+## The Coordinate System {#coordinate-system}
+
+The Stage has a 2D size, which matches the size of the application window.
+The default **unit 1 is 1 pixel with default camera and** the default coordinate system in DALi has the **origin at the top-left corner, with positive X to right, and position Y going
+downwards**.  This is intended to be convenient when laying-out 2D views.
+
+![ ](coordinate-system-and-stage.png)
+
+
+## Positioning Actors {#positioning-actors}
+
+An actor inherits its parent's position.  The relative position between the actor & parent is determined by 3 properties:
+
+1) ParentOrigin.  This Vector3 property defines a point within the parent actor's area.
+
+![ ](parent-origin.png)
+
+The default is "top-left", which can be visualized in 2D as (0, 0), but is actually Vector3(0, 0, 0.5) in the 3D DALi world.  The actor's position is relative to this point.
+
+2) AnchorPoint.  This Vector3 property defines a point within the child actor's area.
+
+![ ](anchor-point.png)
+
+The default is "center", which can be visualized in 2D as (0.5, 0.5), but is actually Vector3(0.5, 0.5, 0.5) in the 3D DALi world.  The actor's position is also relative to this point.
+
+3) Position.  This is the position vector between the parent-origin and anchor-point.
+
+![ ](actor-position.png)
+
+The default is (X = 0, Y = 0), so an actor placed directly without modifying the parent origin, anchor point or position would appear centred around the top left corner of its parent.
+
+An actor added directly to the stage with position (X = stageWidth*0.5, Y = stageHeight*0.5), would appear in the center of the screen.  Likewise an actor with position (X = actorWidth*0.5, Y = actorWidth*0.5), would appear at the top-left of the screen. However, basic positioning like that is normally done via changing the parent origin and/or anchor point instead - use ParentOrigin::CENTER and AnchorPoint::CENTER to place the actor in the center of the screen, and ParentOrigin::TOP_LEFT and AnchorPoint::TOP_LEFT to place it inside the screen on the top left.
+
+Note that since DALi is a 3D toolkit, this behaviour is the result of a default perspective camera setup.
+
+## Scene Graph {#scene-graph}
+
+From Wikipedia...
+  
+A scene graph is a collection of nodes in a graph or tree structure.
+A node may have many children but often only a single parent,
+with the effect of a parent applied to all its child nodes;
+an operation performed on a group automatically propagates
+its effect to all of its members. In many programs, associating
+a geometrical transformation matrix (see also transformation and matrix)
+at each group level and concatenating such matrices together is an
+efficient and natural way to process such operations. A common feature,
+for instance, is the ability to group related shapes/objects into a
+compound object that can then be moved, transformed, selected,
+etc. as easily as a single object.
+
+### How does this relate to the DALi public API?
+
+Actors are effectively nodes that receive input (touch events) and act as a
+container for draw-able elements (which are also nodes) and other actors.
+
+
+*/
diff --git a/docs/content/programming-guide/high-level-design.md b/docs/content/programming-guide/high-level-design.md
new file mode 100644 (file)
index 0000000..05994bd
--- /dev/null
@@ -0,0 +1,26 @@
+<!--
+/**-->
+
+# High Level Design {#dali-hld}
+
+## Components {#dali-components}
+
+ + **DALi Core:** Event handling, Scene Graph, Rendering, Resource Management
+ + **DALi Adaptor:** Threading Model, Integration with the main loop.
+ + **DALi Platform Abstraction:** Resource loading & decoding in multiple threads (part of dali-adaptor)
+ + **DALi Toolkit:** Reusable UI Controls, Effects & Scripting Support
+
+![ ](architecture.png)
+
+## Main, Update & Render Threads {#dali-threads}
+
+DALi uses a multithreaded architecture in order to provide the best performance and scalability.
+
+ + **Event Thread:** The main thread in which application code and event handling runs.
+ + **Update Thread:** Updates the nodes on the scene as well as running animations & constraints
+ + **Render Thread:** OpenGL drawing, texture and geometry uploading etc.
+ + **Resource Threads:** Loads images and decodes into bitmaps etc.
+
+![ ](dali-threads.png)
+
+*/
diff --git a/docs/content/programming-guide/input-style.md b/docs/content/programming-guide/input-style.md
new file mode 100644 (file)
index 0000000..f37f126
--- /dev/null
@@ -0,0 +1,17 @@
+<!--
+/**-->
+
+# Input Style {#input-style}
+
+The input style can be changed through the control properties. All subsequent characters added will be rendered with the new input style.
+
+Note the input style may change if the cursor is updated by tapping in a new position.
+
+Current supported input style properties are:
+
+- *INPUT_COLOR* Sets the input color. The property expects a Vector4 with the red, green, blue and alpha values clamped between 0 and 1.
+- *INPUT_FONT_FAMILY* Sets the input font's family name. The property expects the name of the font. If the new text is not supported by the given font a suitable one will be set.
+- *INPUT_FONT_STYLE* Sets the input font's style. The property expects a json formatted string with the font's style. See the [Font Selection](@ref font-selection) section for more details.
+- *INPUT_POINT_SIZE* Sets the input font's size. The property expects a float with the font's size in points. See the [Font Selection](@ref font-selection) section for more details.
+
+*/
diff --git a/docs/content/programming-guide/item-view.md b/docs/content/programming-guide/item-view.md
new file mode 100644 (file)
index 0000000..0242d19
--- /dev/null
@@ -0,0 +1,81 @@
+<!--
+/**-->
+
+# Item View {#item-view}
+
+An Item view is a scrollable container that contains several items.
+It can have several layouts.
+There are a few built-in layouts that the application writer can use:
+
+|GRID                    |SPIRAL                    |DEPTH                    |
+|:----------------------:|:------------------------:|:-----------------------:|
+|![ ](item-view/grid.png)|![ ](item-view/spiral.png)|![ ](item-view/depth.png)|
+
+The application writer can also create their own custom layout by inheriting from Dali::Toolkit::ItemLayout.
+
+## Item Factory
+
+To create an item-view, the application writer has to provide an item-factory.
+An ItemFactory provides methods to create items and how many items there are among other things.
+
+~~~{.cpp}
+class MyFactory : public Dali::Toolkit::ItemFactory
+{
+public:
+  virtual unsigned int GetNumberOfItems()
+  {
+    // Should return the number of items
+    return MY_ITEM_COUNT;
+  }
+
+  virtual Actor NewItem( unsigned int itemId )
+  {
+    // We should create the actor here that represents our item based on the itemId given.
+
+    // Here we'll create an ImageView which uses the the itemId to parse the image in a particular directory.
+    std::ostringstream imageName;
+    imageName << "my-image-folder/" << itemId << ".png"; // If item was 10, then this would result in my-image-folder/10.png
+
+    // Create the Image View from the image and return
+    return Dali::Toolkit::ImageView::New( imageName.str() );
+  }
+};
+~~~
+These overridden methods in our factory will be called by the Item View.
+
+## Creating an ItemView
+
+~~~{.cpp}
+MyFactory factory; // Should store this as a member variable
+Dali::Toolkit::ItemView itemView = Dali::Toolkit::ItemView::New( factory ); // Pass in our factory
+itemView.SetParentOrigin( ParentOrigin::CENTER );
+itemView.SetAnchorPoint( AnchorPoint::CENTER );
+
+// Now create a layout
+Dali::Toolkit::ItemLayoutPtr spiralLayout = Dali::Toolkit::DefaultItemLayout::New( Dali::Toolkit::DefaultItemLayout::SPIRAL );
+
+// ... and add the layout to the item view
+itemView.AddLayout( spiralLayout );
+
+// More layouts can be created and added to the item-view
+
+// Activate the layout
+itemView.ActivateLayout(
+  0,                                   // The layout ID matches the order in which layouts are added
+  Dali::Stage::GetCurrent().GetSize(), // Use the stage's size as our item-view size
+  0 );                                 // We want the item-view to appear straight away
+
+// And add to the stage
+Dali::Stage::GetCurrent().Add( itemView );
+~~~
+
+## Actions
+The item-view provides an action to stop the scroll animation if desired.
+
+~~~{.cpp}
+Property::Map attributes;
+itemView.DoAction( "stopScrolling", attributes );
+~~~
+
+
+*/
\ No newline at end of file
diff --git a/docs/content/programming-guide/layer.md b/docs/content/programming-guide/layer.md
new file mode 100644 (file)
index 0000000..a9627d5
--- /dev/null
@@ -0,0 +1,193 @@
+<!--
+/**-->
+# Layer ( Layer inherits from Actor) {#layer}
+
+ Layers provide a mechanism for overlaying groups of actors on top of each other.
+ Layers can also clip their contents to exclude any content outside a user defined area.
+  
+ ![ ](layers.png)
+  
+ When a layer is added to the stage it is assigned a unique depth value. By default the stage has a root layer with a depth value of 0.
+  
+ Layers are actors and inherit position, orientation and scale of their parent actor.
+ They are drawn in an order determined by a layer depth value.
+ The depth buffer is cleared before each layer is rendered, unless depth
+ test is disabled or there's no need for it based on the layers contents.
+
+**Note: Layers work independently of the actor hierarchy.**
+They can be positioned anywhere in the actor tree, but their draw order is always defined by their layer.getDepth() value.
+  
+  
+~~~{.cpp}
+// C++ example of adding an actor to the root layer
+
+//  using stage.add() will automatically add actor to the root layer
+Stage stage = Stage::GetCurrent();
+stage.add( myActor );
+
+// Or you can explicitly add actor to the root layer.
+Layer rootLayer = stage.GetRootLayer();
+rootLayer.add( myActor );  // adds an actor to the root layer
+
+// rootLayer.getDepth() == 0
+
+~~~
+
+Example To create two new layers on top of the root layer.
+  
+
+### Layer clipping
+
+Clips the contents of the layer to a rectangle.
+
+~~~{.cpp}
+// C++
+
+layer1.SetAnchorPoint( AnchorPoint::CENTER );
+layer1.SetParentOrigin( ParentOrigin::CENTER );
+layer1.SetClipping( true );
+layer1.SetClippingBox( 20, 20, 100, 100 ); // X, Y, Width, Height
+
+~~~
+
+### Re-ordering layers
+
+The following functions can be used to change the draw order of the layers.
+
+
+ - Raise() Raise the layer up by 1
+ - Lower() Lower the layer down by 1
+ - RaiseAbove( layer ) Ensures the layers depth is greater than the target layer
+ - LowerBelow( layer ) Ensures the layers depth is less than the target layer
+ - RaiseToTop() raise the layer to the top
+ - LowerToBottom() lower the layer to the bottom
+ - MoveAbove( layer ) Moves the layer directly above the given layer.
+ - MoveBelow( layer ) Moves the layer directly below the given layer.
+
+Note:
+ - The root layer can be moved above and below other layers. However, stage.add( actor ), will always use the root layer object.
+
+### Rendering order of actors inside of a layer
+
+Layers have two behaviour modes:
+
+ - LAYER_2D ( Default )
+ - LAYER_3D
+
+### Layer_2D
+
+~~~{.cpp}
+// C++
+layer.SetBehavior( Layer::LAYER_2D );
+~~~
+
+#### Background
+
+ - Graphics are drawn in DALi using renderers
+ - Actors can have zero or many renderers
+ - Renderers can be shared by actors
+ - Renderers have a depth index property
+ - In LAYER_2D mode, draw order of a renderer within a layer = Tree depth + renderer depth index
+  
+ When using  Layer_2D mode depth testing is disabled (depth buffer not used).
+  
+  With LAYER_2D, the draw order of the renderers is defined by both:
+
+ - Renderer depth index.
+ - Position of actor in the actor tree
+  
+
+Example:
+  
+We have two layers below. Everything in the root layer is drawn first.
+If we did dali.stage.getRootLayer().raiseToTop(), then the root layer would be drawn last.
+
+  
+![ ](layer2d.png)
+  
+
+The formula for calculating the draw order of a renderer is:  depthIndex + ( TREE_DEPTH_MULTIPLIER * tree depth ).
+Currently Layer::TREE_DEPTH_MULTIPLIER == 1000:
+~~~
+ Root (root layer) ( depth index offset of  0)
+ +->  Actor1    ( depth index offset of 1000)
+ ++-> Actor2    ( depth Index offset of 2000)
+ +++-> Actor3   ( depth Index offset of 3000)
+ +++-> Actor4   ( depth Index offset of 3000)
+ +++-> Actor5   ( depth Index offset of 3000)
+ +++-> Layer1   ( depth Index has no meaning for layers, layer draw order is independent of the hierarchy).
+ ++++-> Actor6   ( depth Index offset of 4000)
+ ++++-> Actor7   ( depth Index offset of 4000)
+ ++++-> Actor8   ( depth Index offset of 4000)
+~~~
+  
+Renderers with higher depth indices are rendered in front of renderers with smaller values.
+  
+Everything in the root layer gets rendered first, actors 1..5
+Then layer 1, actors 6..8
+  
+If we want to determine draw order of actors 6..8, we set the depthIndex on their renderers.
+For example if we want the render draw order to be 8, 7, 6, with 6 being drawn last.
+
+~~~{.js}
+  var rendererForActor6 = new dali.Renderer( geometry, material );
+  var rendererForActor7 = new dali.Renderer( geometry, material );
+  var rendererForActor8 = new dali.Renderer( geometry, material );
+
+  rendererForActor6.depthIndex = 2;   // drawn on top ( last)
+  rendererForActor7.depthIndex = 1;   // draw in the middle
+  rendererForActor8.depthIndex = 0;   // drawn on bottom ( first)
+
+  daliactor6.addRenderer( rendererForActor6 );  // renderer 6 drawn with index of 2 + 4000 = 4002
+  daliactor7.addRenderer( rendererForActor7 );  // renderer 7 drawn with index of 1 + 4000 = 4001
+  daliactor8.addRenderer( rendererForActor8 );  // renderer 8 drawn with depth index of 0 + 4000 = 4000
+
+~~~
+
+### Layer_3D
+
+~~~{.cpp}
+// C++
+layer.SetBehavior( Layer::LAYER_3D );
+~~~
+  
+When using this mode depth testing will be used ( depth buffer enabled ).
+  
+Opaque renderers are drawn first and write to the depth buffer.
+  
+Then transparent renderers are drawn with depth test enabled but depth write switched off.
+  
+ ![ ](layers3d.png)
+
+  
+Transparent renderers are drawn in order of distance
+from the camera ( painter's algorithm ).
+
+ ![ ](transSort.png)
+  
+
+Note:
+
+ - In LAYER_3D mode, actor tree hierarchy makes no difference to draw order
+ - When 2 transparent renderers are the same distance from the camera, you can use depth index to adjust which renderer is drawn first.
+
+  
+### Actor drawMode OVERLAY_2D
+
+Inside a layer it is possible to force a tree actors to be drawn on top everything else in the layer.
+  
+The draw order of the actors inside the tree marked OVERLAY_2D, the draw order is defined by the renderers depth index.
+Depth testing is not used.
+  
+
+### Layer Actor Specific Properties
+
+| Name                   |    Type    | Writable     | Animatable|
+|------------------------|------------|--------------|-----------|
+| clippingEnable         |BOOLEAN     | 0     |  X |
+| clippingBox            | ARRAY [0,0,400,600]) | 0 | X|
+| behaviour              | STRING ( "LAYER_2D" or "LAYER_3D") | 0 | X|
+
+  @extends Actor
+
+*/
diff --git a/docs/content/programming-guide/markup-style.md b/docs/content/programming-guide/markup-style.md
new file mode 100644 (file)
index 0000000..944a670
--- /dev/null
@@ -0,0 +1,142 @@
+<!--
+/**-->
+
+# Mark-up Style {#markup-style}
+
+Mark-up tags can be used within the text to set styles.
+
+By default the text controls don't process the mark-up string. To enable the mark-up string processing the property *ENABLE_MARKUP* must be set to *true*.
+
+~~~{.cpp}
+// C++
+
+TextField field = TextField::New();
+field.SetProperty( TextField::Property::ENABLE_MARKUP, true );
+
+Stage::GetCurrent().Add( field );
+~~~
+
+Note the mark-up processor doesn't check the correctness of the mark-up string. This may
+cause the text to be badly rendered.
+
+The table below describes the priorities when styles are applied while rendering text.
+|  |  |  |  |
+|--|--|--|--|
+| Priority 1 | Style set by markup string. | Will override the style set through the control properties. | i.e The \<color\> tag will override the *TEXT_COLOR* property. |
+| Priority 2 | Style set through the control properties. | Will override the default platform style. |  |
+| Priority 3 | Default platform style. |  |  |
+
+Font size has slightly different priorities - the size provided by the platform is a logical
+size, and can be mapped to physical point sizes using style sheets. There is a default set of
+sizes defined for DALi, and these can be overridden by application specific stylesheets. Thus
+the priorities are:
+
+|  |  |  |
+|--|--|--|
+| Priority 1 | Size set by markup string. | Will override the style set through the stylesheets. |
+| Priority 2 | Physical Size set by application style sheet | |
+| Priority 2 | Logical Size set by application style sheet | Mapping from platform logical to physical |
+| Priority 3 | Logical Size set by DALi style sheet | Mapping from platform logical to physical |
+
+See [Font Selection](@ref font-selection) for more details.
+
+Current supported tags are:
+
+## \<color\>
+
+Sets the color of the characters inside the tag. The *color* tag has a *value* attribute used to set the color. Possible values are: 'red', 'green', 'blue', 'yellow', 'magenta',
+ 'cyan', 'white', 'black' and 'transparent'. Web color and 32 bits hexadecimal 0xAARRGGBB formats are also supported.
+
+Examples below are equivalent, render the text in red. Second example codes the color in 0xAARRGGBB, third and fourth in web color with 3 and 6 characters.
+
+~~~{.cpp}
+// C++
+field.SetProperty( TextLabel::Property::TEXT, "<color value='red'>Red Text</color>" ); // Color coded with a text constant.
+~~~
+
+~~~{.cpp}
+// C++
+field.SetProperty( TextLabel::Property::TEXT, "<color value='0xFFFF0000'>Red Text</color>" ); // Color packed inside an ARGB hexadecimal value.
+~~~
+
+~~~{.cpp}
+// C++
+field.SetProperty( TextLabel::Property::TEXT, "<color value='#F00'>Red Text</color>" ); // Color packed with the web color format (3 characters).
+~~~
+
+~~~{.cpp}
+// C++
+field.SetProperty( TextLabel::Property::TEXT, "<color value='#FF0000'>Red Text</color>" ); // Color packed with the web color format (6 characters).
+~~~
+
+## \<font\>
+
+Sets the font values of the characters inside the tag.
+
+Supported attributes are:
+- *family* The name of the font.
+- *size* The size of the font in points.
+- *weight* The weight of the font.
+- *width* The width of the font
+- *slant* The slant of the font.
+
+See the [Font Selection](@ref font-selection) to have a view of the possible values for the *weight*, *width* and *slant* attributes.
+
+~~~{.cpp}
+// C++
+field.SetProperty( TextLabel::Property::TEXT, "<font family='SamsungSans' weight='bold'>Hello world</font>" );
+~~~
+
+## XHTML ENTITIES
+
+Single characters can be embedded into text using character entity references. These references have a numeric value as well as a named value.
+You can use either one of them.
+
+XHTML ENTITIES Format:
+- Named reference : "&entity_name;" (i.e. an ampersand, the entity name, and then a semi-colon).
+- Numeric reference:
+- a. Decimal reference : "&#decimal_code;" (i.e. an ampersand, a hash symbol (which signals that a number reference is coming), the character's number, and then a semi colon)
+- b. Hex reference     : "&#xhex-code;" (i.e. an ampersand, a hash symbol (which signals that a number reference is coming), x which indicates the character's number is in hex, and then a semi colon)
+
+
+~~~{.cpp}
+// C++
+field.SetProperty( TextLabel::Property::TEXT, "Named Entity: &amp;  Numeric Entity: Decimal Entity: &#9827;  Hex Entity: &#x2660;" );
+~~~
+
+![ ](XHTML_entity.png)
+
+## SPECIAL CHARACTERS HANDLING IN MARKUP
+
+Three special characters are supported :
+- < : Less Than. It means beginning of tag.
+- > : Greater Than. It means end of tag.
+- & : Ampersand. It means beginning of XHTML Entity.
+
+> "&" usage in markup style changed from Tizen 4.0.
+"To display special character needs as regular, prepend it with two backslashes in the string."
+
+Below are some examples
+
+~~~{.cpp}
+// C++ ( Wrong usage to print text "Testing of < special character" )
+field.SetProperty( TextLabel::Property::TEXT, "Testing of < special character" );
+~~~
+
+![ ](SpecialCharacter1.png)
+
+~~~{.cpp}
+// C++ ( Wrong usage to print text "Testing of & special character" )
+field.SetProperty( TextLabel::Property::TEXT, "Testing of & special character" );
+~~~
+
+![ ](SpecialCharacter1.png)
+
+~~~{.cpp}
+// C++ ( Correct usage to print text "Testing of & < > special characters" )
+field.SetProperty( TextLabel::Property::TEXT, "Testing of \\& \\< \\> special characters" );
+~~~
+
+![ ](SpecialCharacters.png)
+
+*/
diff --git a/docs/content/programming-guide/multi-touch-guide.md b/docs/content/programming-guide/multi-touch-guide.md
new file mode 100644 (file)
index 0000000..dd583b7
--- /dev/null
@@ -0,0 +1,145 @@
+<!--
+/**-->
+
+Multi-Touch Events
+==================
+
+Touch events are received via signals.
+
+For C++ API see Dali::Actor::TouchSignal() and Dali::Actor::HoveredSignal() for more details.
+
+### Hit Testing Rules Summary:
+
+ - An actor is only hittable if the actor's touch signal has a connection.
+ - An actor is only hittable when it is between the camera's near and far planes.
+ - If an actor is made insensitive, then the actor and its children are not hittable; see Dali::Actor::IsSensitive()
+ - If an actor's visibility flag is unset, then none of its children are hittable either; see Dali::Actor::IsVisible()
+ - To be hittable, an actor must have a non-zero size.
+ - If an actor's world color is fully transparent, then it is not hittable; see GetCurrentWorldColor()
+
+### Hit Test Algorithm:
+
+ - RenderTasks
+   - Hit testing is dependent on the camera used, which is specific to each RenderTask.
+
+ - Layers
+   - For each RenderTask, hit testing starts from the top-most layer and we go through all the
+     layers until we have a hit or there are none left.
+   - Before we perform a hit test within a layer, we check if all the layer's parents are visible
+     and sensitive.
+   - If they are not, we skip hit testing the actors in that layer altogether.
+   - If a layer is set to consume all touch, then we do not check any layers behind this layer.
+
+ - Actors
+   - The final part of hit testing is performed by walking through the actor tree within a layer.
+   - The following pseudo-code shows the algorithm used:
+
+
+~~~
+ HIT-TEST-WITHIN-LAYER( ACTOR )
+ {
+   // Only hit-test the actor and its children if it is sensitive and visible
+   IF ( ACTOR-IS-SENSITIVE &&
+           ACTOR-IS-VISIBLE )
+      {
+         // Depth-first traversal within current layer, visiting parent first
+
+         // Check whether current actor should be hit-tested
+         IF ( TOUCH-SIGNAL-NOT-EMPTY &&
+             ACTOR-HAS-NON-ZERO-SIZE &&
+             ACTOR-WORLD-COLOR-IS-NOT-TRANSPARENT )
+         {
+           // Hit-test current actor
+           IF ( ACTOR-HIT )
+           {
+               IF ( ACTOR-IS-OVERLAY || ( DISTANCE-TO-ACTOR < DISTANCE-TO-LAST-HIT-ACTOR ) )
+               {
+                 // The current actor is the closest actor that was underneath the touch
+                 LAST-HIT-ACTOR = CURRENT-ACTOR
+               }
+           }
+         }
+
+       // Keep checking children, in case we hit something closer
+        FOR-EACH CHILD (in order)
+       {
+         IF ( CHILD-IS-NOT-A-LAYER )
+         {
+             // Continue traversal for this child's sub-tree
+             HIT-TEST-WITHIN-LAYER ( CHILD )
+         }
+          // else we skip hit-testing the child's sub-tree altogether
+       }
+     }
+   }
+~~~
+ - Overlays always take priority (i.e. they're considered closer) regardless of distance.
+     The overlay children take priority over their parents, and overlay siblings take priority
+     over their previous siblings (i.e. reverse of rendering order):
+
+~~~
+      1
+     / \
+    /   \
+   2     5
+  / \     \
+ /   \     \
+3     4     6
+
+Hit Priority of above Actor tree (all overlays): 1 - Lowest. 6 - Highest.
+~~~
+
+ - Stencil Actors can be used to influence the result of hits within a layer.
+     If a Stencil Actor exists on a layer and that Actor is marked visible then a successful
+     hit can only take place in the area that the stencil Actor marks as visible.
+     The hit can be in any Stencil Actor in that layer, but must be in the region of one of them.
+     Stencil Actor inheritance behaves as with rendering in that any child of a Stencil Actor will
+     also be considered a Stencil Actor.
+
+ <i>Touch Event Delivery:</i>
+
+ - Delivery
+   - The hit actor's touch signal is emitted first; if it is not consumed by any of the listeners,
+     the parent's touch signal is emitted, and so on.
+   - If there are several touch points, then the delivery is only to the first touch point's hit
+     actor (and its parents).  There will be NO touch signal delivery for the hit actors of the
+     other touch points.
+   - The local coordinates are from the top-left (0.0f, 0.0f, 0.5f) of the hit actor.
+   - The following pseudo-code shows the delivery mechanism:
+
+~~~
+  EMIT-TOUCH-SIGNAL( ACTOR )
+  {
+    IF ( TOUCH-SIGNAL-NOT-EMPTY )
+    {
+      // Only do the emission if touch signal of actor has connections.
+        CONSUMED = TOUCH-SIGNAL( TOUCH-DATA )
+    }
+
+    IF ( NOT-CONSUMED )
+    {
+        // If event is not consumed then deliver it to the parent unless we reach the root actor
+        IF ( ACTOR-PARENT )
+        {
+          EMIT-TOUCH-SIGNAL( ACTOR-PARENT )
+        }
+    }
+  }
+~~~
+ - Leave State
+   - A "Leave" state is set when the first point exits the bounds of the previous first point's
+     hit actor (primary hit actor).
+   - When this happens, the last primary hit actor's touch signal is emitted with a "Leave" state
+     (only if it requires leave signals); see the actor property leaveRequired.
+
+
+ - Interrupted State
+   - If a system event occurs which interrupts the touch processing, then the last primary hit
+     actor's touch signals are emitted with an "Interrupted" state.
+   - If the last primary hit actor, or one of its parents, is no longer touchable, then its
+     touch signals are also emitted with an "Interrupted" state.
+   - If the consumed actor on touch-down is not the same as the consumed actor on touch-up, then
+     touch signals are also emitted from the touch-down actor with an "Interrupted" state.
+
+
+*/
diff --git a/docs/content/programming-guide/performance-profiling.md b/docs/content/programming-guide/performance-profiling.md
new file mode 100644 (file)
index 0000000..9a34b3a
--- /dev/null
@@ -0,0 +1,256 @@
+<!--
+/**-->
+
+# Performance Profiling  {#performanceprofiling}
+
+
+DALi has many mechanisms for analyzing performance including kernel, system and network logging.
+
+
+## Background
+The DALi rendering pipeline has 2 stages.
+
+Each stage is typically run once per frame.
+
+- Update
+  - Run animations
+  - Run constraints
+  - Run physics
+  - Update the scene-graph
+- Render
+  - Upload 3D data using OpenGL ( textures, vertex buffers etc).
+  - Draw the scene using OpenGL
+  
+
+Update produces data - **Writes** final object positions to a buffer
+  
+Render consumes data - **Reads** object positions from a buffer and draws with OpenGL
+
+![ ](update-render.png)
+
+  
+One reason for having 2 buffers is to allow both tasks to overlap and run in parallel in certain situations.
+E.g. if rendering is taking a long time (due to a texture upload), the Update thread can start work producing
+data for the next frame. The aim being to take advantage of multi-core CPU's.
+  
+To run at a solid 60 FPS (16 milliseconds per frame), it is recommended to stay below the following times:
+  
+ - Update: 4 milliseconds
+ - Render: 4 milliseconds
+  
+This will leave enough time for the output to be composited (if the system uses a compositor) and to avoid using
+too much CPU power.
+  
+The main DALi application thread which deals with event processing is independent of the update / render threads.
+This means animations won't stop if the main thread decides to do a long operation like downloading a file from the internet.
+  
+
+## Time Stamp Logging
+
+This type of logging is used for recording individual time stamped events.
+  
+Setting DALI_PERFORMANCE_TIMESTAMP_OUTPUT environment variable will enable time stamps.
+
+Tools such as Tizen dynamic analyzer and StageHand can be used to provide a GUI display of
+the output.
+
+
+The log options are:
+
+|  Bit |  Function                | Example      |
+|------|--------------------------|--------------|
+|   0  |  log markers to DALi log (dlog on Tizen) | DALI_PERFORMANCE_TIMESTAMP_OUTPUT=1 dali-demo |
+|   1  |  log markers to kernel trace ( logs to ftrace )| DALI_PERFORMANCE_TIMESTAMP_OUTPUT=2 dali-demo |
+|   2  |  log markers to system trace ( ttrace on Tizen for Tizen analyzer) | DALI_PERFORMANCE_TIMESTAMP_OUTPUT=4 dali-demo |
+|   3  |  log markers to network client (tcp port 3001+) | DALI_PERFORMANCE_TIMESTAMP_OUTPUT=8 dali-demo |
+
+  
+
+~~~
+DALI_PERFORMANCE_TIMESTAMP_OUTPUT=1 dali-demo
+INFO: DALI: 1134155.500142 (seconds), V_SYNC
+INFO: DALI: 1134155.500167 (seconds), UPDATE_START
+INFO: DALI: 1134155.500214 (seconds), PROCESS_EVENT_END
+INFO: DALI: 1134155.500659 (seconds), UPDATE_END
+INFO: DALI: 1134155.508039 (seconds), PROCESS_EVENT_START
+INFO: DALI: 1134155.508295 (seconds), PROCESS_EVENT_END
+INFO: DALI: 1134155.511109 (seconds), RENDER_START
+INFO: DALI: 1134155.511548 (seconds), RENDER_END
+INFO: DALI: 1134155.516899 (seconds), V_SYNC
+INFO: DALI: 1134155.516945 (seconds), UPDATE_START
+INFO: DALI: 1134155.517462 (seconds), UPDATE_END
+INFO: DALI: 1134155.527884 (seconds), RENDER_START
+INFO: DALI: 1134155.528108 (seconds), PROCESS_EVENT_START
+INFO: DALI: 1134155.528327 (seconds), RENDER_END
+INFO: DALI: 1134155.528358 (seconds), PROCESS_EVENT_END
+INFO: DALI: 1134155.528388 (seconds), PROCESS_EVENT_START
+INFO: DALI: 1134155.528749 (seconds), PROCESS_EVENT_END
+INFO: DALI: 1134155.533672 (seconds), V_SYNC
+~~~
+
+### Markers that are logged
+
+| Marker | Description
+|--------|-------------
+| V_SYNC.| The heart beat which represents DALi should start creating a new frame if anything has changed. Runs at display refresh rate, typically 60Hz |
+| UPDATE_START | DALi update task has started |
+| UPDATE_START | DALi update task has finished |
+| RENDER_START | DALi render task has started |
+| RENDER_END | DALi render task has finished |
+| PROCESS_EVENT_START | DALi main thread processing events (e.g. in response to a touch event or a timer) |
+| PROCESS_EVENT_START | DALi main thread processing events finished |
+| SWAP_START | glSwapBuffers started (todo) |
+| SWAP_END | glSwapBuffers end  (todo) |
+| PAUSE  | Application paused |
+| RESUME | Application resumed |
+
+### Custom time stamps for application developers
+
+A developer can output custom markers using the PerformanceLogger API (C++ only currently)
+
+~~~
+PerformanceLogger logger = PerformanceLogger::New("MyMarker");
+logger.AddMarker(PerformanceLogger::START_EVENT);
+
+// do stuff
+
+logger.AddMarker(PerformanceLogger::END_EVENT);
+~~~
+
+## Statistics logging
+
+Statistics logging uses DALi log output which on Tizen is dlog, but this can also be used on desktop by redirecting stderr to a file.
+
+Setting DALI_LOG_PERFORMANCE_STATS environment variable will enable time stamps.
+
+The log options are:
+
+|  Bit |  Function                | Example      |
+|------|--------------------------|--------------|
+|   0  |  log all statistics to the DALi log | DALI_LOG_PERFORMANCE_STATS=1 dali-demo |
+|   1  |  log update and render statistics to the DALi log| DALI_LOG_PERFORMANCE_STATS=2 dali-demo |
+|   2  |  log event (main) task statistics to the DALi log| DALI_LOG_PERFORMANCE_STATS=4 dali-demo |
+|   3  |  log custom marker statistics to the DALi log | DALI_LOG_PERFORMANCE_STATS=8 dali-demo |
+
+Example output
+~~~
+$ export DALI_LOG_PERFORMANCE_STATS=1
+$ dali-demo
+
+ Event, min 0.04 ms, max 5.27 ms, total (0.1 secs), avg 0.28 ms, std dev 0.73 ms
+ Update, min 0.29 ms, max 0.91 ms, total (0.5 secs), avg 0.68 ms, std dev 0.15 ms
+ Render, min 0.33 ms, max 0.97 ms, total (0.6 secs), avg 0.73 ms, std dev 0.17 ms
+ TableViewInit, min 76.55 ms, max 76.55 ms, total (0.1 secs), avg 76.55 ms, std dev 0.00 ms
+~~~
+
+If nothing is animating DALi will enter a paused state to save power. At this
+point nothing will be logged.
+
+### Custom statistics for application developers
+
+This is identical to the custom timestamp example.
+~~~
+PerformanceLogger logger = PerformanceLogger::New("MyMarker");
+logger.AddMarker(PerformanceLogger::START_EVENT);
+
+// do stuff
+
+logger.AddMarker(PerformanceLogger::END_EVENT);
+~~~
+
+
+## Application profiling
+
+ The main application thread in DALi is used to process and respond to events such as touch, key, mouse, gestures and timers.
+
+Example:
+~~~
+$ export DALI_LOG_PERFORMANCE_STATS=4
+$ dali-demo
+$
+$ ...
+$ INFO: DALI:  Event, min 0.04 ms, max 5.27 ms, total (0.1 secs), avg 0.28 ms, std dev 0.73 ms
+~~~
+
+Inside the event processing, the application may be listening for certain events.
+For example when an actor is touched, some application code may be run in an OnTouch callback.
+By checking the max times you can check for any spikes that occur when interacting with the application.
+
+Example:
+~~~
+$ INFO: DALI: Event , min 0.10 ms, max 500.01 ms, total (6.4 secs), avg 20.83 ms
+
+- Something has taken 500 ms = 1/2 second during event processing.
+- Need to investigate what the application is doing for 1/2 a second.
+~~~
+
+
+## Using ftrace for timestamp logging
+
+~~~
+DALI_PERFORMANCE_TIMESTAMP_OUTPUT=2 dali-demo
+~~~
+
+Ftrace is a kernel tracer designed to help developers find out what is going on inside the kernel.
+It can be used for analyzing how long DALi takes to perform different tasks and
+what DALi is doing in relation to other system processes / interrupts.
+  
+On Tizen if the kernel has been built with ftrace enabled, then DALi can log out to ftrace.
+This gives exact time stamps of the main events in DALi.
+Current markers that are logged:
+
+
+
+### Checking ftrace is working on Linux
+
+Documentation for ftrace:
+Follow these instructions to ensure the debugfs has been mounted, and the kernel you are using
+has been built with ftrace enabled.
+
+https://www.kernel.org/doc/Documentation/trace/ftrace.txt
+
+To check ftrace is working:
+~~~
+$ cd /sys/kernel/debug/tracing
+$ echo 1 > tracing_enabled    (enabled tracing)
+$ echo "test" > trace_marker
+$ echo 0 > tracing_enabled    (disable tracing)
+$ cat trace
+#
+#          TASK-PID    CPU#    TIMESTAMP  FUNCTION
+#             | |       |          |         |
+         <...>-2539  [001] 267964.345607: tracing_mark_write: test
+
+
+If the message did not get added to the trace, then check the write permissions on trace_marker file. E.g.
+$ chmod ugoa+w trace_marker
+~~~
+To view DALi markers in trace file
+
+~~~
+$ export DALI_LOG_PERFORMANCE=2
+$ dali-demo
+$
+$ cat /sys/kernel/debug/tracing/trace
+
+  <...>-3330  [000] 785155.216611: tracing_mark_write: SPI_EV_DALI_V_SYNC
+  <...>-3328  [003] 785155.216644: tracing_mark_write: SPI_EV_DALI_UPDATE_START
+  <...>-3328  [003] 785155.217045: tracing_mark_write: SPI_EV_DALI_UPDATE_END
+  <...>-3329  [001] 785155.227418: tracing_mark_write: SPI_EV_DALI_RENDER_START
+  <...>-3329  [001] 785155.227807: tracing_mark_write: SPI_EV_DALI_RENDER_END
+  <...>-3330  [000] 785155.233336: tracing_mark_write: SPI_EV_DALI_V_SYNC
+  <...>-3328  [002] 785155.233374: tracing_mark_write: SPI_EV_DALI_UPDATE_START
+  <...>-3328  [002] 785155.233672: tracing_mark_write: SPI_EV_DALI_UPDATE_END
+  <...>-3329  [001] 785155.235161: tracing_mark_write: SPI_EV_DALI_RENDER_START
+  <...>-3329  [001] 785155.235475: tracing_mark_write: SPI_EV_DALI_RENDER_END
+  <...>-3330  [000] 785155.250029: tracing_mark_write: SPI_EV_DALI_V_SYNC
+  <...>-3328  [003] 785155.250065: tracing_mark_write: SPI_EV_DALI_UPDATE_START
+  <...>-3328  [003] 785155.250330: tracing_mark_write: SPI_EV_DALI_UPDATE_END
+  <...>-3329  [001] 785155.252860: tracing_mark_write: SPI_EV_DALI_RENDER_START
+  <...>-3329  [001] 785155.253178: tracing_mark_write: SPI_EV_DALI_RENDER_END
+  <...>-3329  [001] 785155.264508: tracing_mark_write: SPI_EV_DALI_RENDER_START
+  <...>-3329  [001] 785155.265006: tracing_mark_write: SPI_EV_DALI_RENDER_END
+~~~
+*/
+
+
diff --git a/docs/content/programming-guide/performance-tips.md b/docs/content/programming-guide/performance-tips.md
new file mode 100644 (file)
index 0000000..d72ec04
--- /dev/null
@@ -0,0 +1,37 @@
+<!--
+/**-->
+
+# Performance Tips {#performancetips}
+
+## High CPU occupancy
+
+  - Try to reduce actor count ( less actors == less processing)
+  - Delete any actors that are not visible, or move them off stage
+  - Use TextureAtlases ( reduces OpenGL driver calls to glBindTexture
+  - Optimize / reduce any constraints used
+
+## High GPU occupancy
+
+  - Reduce visible actor count ( == less draw calls)
+  - For 2D UI graphics which require no z sorting you can use
+
+~~~{.cpp}
+// C++
+// In this mode depth testing is turned off and order is determined by the hierarchy (depth-first search order).
+// Not always recommended if there is going to be a lot of overdraw ( if lots of actors are on top of each other)
+
+Actor::SetDrawMode( DrawMode::OVERLAY_2D ); // C++
+~~~
+
+  - Use TextureAtlases (reduces state changes in the GPU)
+  - Use compressed textures
+  - Use lower quality textures, e.g. smaller, lower number of bits per pixel
+  - Avoid using too many textures which contain alpha and require blending
+  - Avoid using too many Dali::Layer with depth testing enabled. Otherwise the layer has to clear the depth buffer.
+  - Optimize any shaders used. Pixel shaders should be kept as lean as possible.
+
+
+
+*/
+
+
diff --git a/docs/content/programming-guide/popup.md b/docs/content/programming-guide/popup.md
new file mode 100644 (file)
index 0000000..4ea5dd2
--- /dev/null
@@ -0,0 +1,391 @@
+<!--
+/**-->
+
+[TOC]
+
+# Popup {#popup}
+  
+![ ](./popup-example.png)
+
+## Description {#popupdescription}
+  
+The Popup control provides a generic way of displaying modal content.
+  
+The content is displayed until it is dismissed by hiding the Popup.
+
+While the Popup is visible, it is displayed within a layer that is placed above any other actors.
+
+Content behind the Popup is dimmed by default, although this is configurable.
+  
+
+## Contents {#popupcontents}
+  
+
+The Popup is designed to be generic, but provide the necessary layout functionality to achieve this.
+
+The Popup window is broken down into the following areas:
+  
+PopupBackgroundImage: This is the frame that appears around the edge of the Popup.
+  
+Within the Popup there are three main fields:
+  
+- Title
+- Content
+- Footer
+  
+![ ](./popup-fields.png)
+  
+Each field can contain any Actor.
+  
+Note: All actor properties are optional, allowing any combination of content areas.
+Example: Image only popup (using the content field):
+![ ](./popup-image-content.png)
+  
+### Example content: {#popupfieldexample}
+  
+- Title:   TextLabel
+- Content: ImageView or TextLabel
+- Footer:  PushButton or Actor containing two PushButtons
+  
+## Setting and getting the display state {#popupdisplaystate}
+  
+The popup will not be shown immediately upon parenting it / adding it to the stage. First the display state must be set.
+The display state is represented by the property DISPLAY_STATE. It can be set with SHOWN and HIDDEN to show or hide the Popup.
+However, when getting the state, you will also be told if the Popup is in the process of SHOWING or HIDING.
+  
+ | Value    | Setting the state              | Getting the state              |
+ |----------|--------------------------------|--------------------------------|
+ | SHOWN    | Show the popup                 | The popup is fully shown       |
+ | HIDDEN   | Hide the popup                 | The popup is fully hidden      |
+ | SHOWING  |                                | The popup is transitioning in  |
+ | HIDING   |                                | The popup is transitioning out |
+  
+
+## Signals {#popupsignals}
+  
+### Display State Signals {#popupdisplaystatesignals}
+  
+All four state changes cause notifications via four respective signals that can be connected to.
+  
+### OutsideTouched Signal {#popupoutsidetouched}
+  
+This signal is emitted whenever a touch is received outside of the popups area.
+This is typically used to hide / dismiss the popup, but can be ignored if it is desired to force the user to make a selection using the controls within the Popup.
+  
+
+## Transition effects {#popuptransitioneffects}
+  
+The Popup object has built-in transitional animation effects.
+These can be user-defined by setting ANIMATION_MODE to CUSTOM, and setting the ENTRY_ANIMATION and
+EXIT_ANIMATION properties accordingly.
+  
+The default to fading in and out.
+  
+
+## Types of Popup {#popuptypes}
+  
+The Popup can be configured to a preset type by using named types within the type-registry.
+  
+These types are modifications / specializations of a Popup. They provide the library user with a shortcut way of creating a specific type of Popup.
+  
+
+The Popup control features a "Toast" popup type. This is a Popup that appears at the bottom of the screen, typically with some text. They are normally for informational purposes only.
+  
+
+### Key differences of the Toast popup {#popuptoastdifferences}
+  
+- The Popup will auto-hide itself after a few seconds.
+- It is touch-transparent. This means touch events go through the Popup to Actors below, giving it non-modal behaviour.
+- The backing is not dimmed. This allows the user to continue their actions without distraction.
+  
+Note: All the above features can be set or unset manually on the Popup control if desired.
+  
+Popup types can be created with the TypeRegistry (as they are not separate classes).
+  
+
+### Example: {#popuptoastexample}
+  
+![ ](./popup-toast.png)
+
+Here is the code to produce the above example:
+  
+C++
+~~~{.cpp}
+TypeInfo typeInfo = TypeRegistry::Get().GetTypeInfo( "PopupToast" );
+if( typeInfo )
+{
+  BaseHandle baseHandle = typeInfo.CreateInstance();
+  if( baseHandle )
+  {
+    Toolkit::Popup popup = Toolkit::Popup::DownCast( baseHandle );
+    popup.SetTitle( Toolkit::TextLabel::New( "This is a Toast Popup.\nIt will auto-hide itself" ) );
+    Stage::GetCurrent().Add( popup );
+    popup.SetDisplayState( Toolkit::Popup::SHOWN );
+  }
+}
+~~~
+  
+
+## Contextual Mode {#popupcontextualmode}
+  
+Contextual Mode allows the popup can appear adjacent to it's parent in screen space.
+  
+If disabled, the Popup will ignore it's parent and appear centered on the stage (user positioning can override this).
+
+If enabled, the contextual mode can be set to four directions. The Popup will be made adjacent on the selected axis.
+  
+EG:
+~~~{.cpp}
+myPopup.SetProperty( Toolkit::Popup::Properties::CONTEXTUAL_MODE, "BELOW" );
+~~~
+  
+Will make the top of the Popup appear just below the bottom of the parent object (plus a margin).
+  
+The default is: NON_CONTEXTUAL which means no layout or positioning is performed.
+  
+| ContextualMode    | Layout                                                  |
+|-------------------|---------------------------------------------------------|
+| NON_CONTEXTUAL    | No contextual layout is performed                       |
+| ABOVE             | Popup is above vertically, centered horizontally        |
+| RIGHT             | Popup is to the right horizontally, centered vertically |
+| BELOW             | Popup is below vertically, centered horizontally        |
+| LEFT              | Popup is to the left horizontally, centered vertically  |
+  
+
+## Properties {#popupproperties}
+  
+Various properties provide more configuration on the Popup's styling.
+  
+This is a breakdown of remaining properties not described in detail above.
+  
+
+| Property               | Type    | Description                                                              |
+|------------------------|---------|--------------------------------------------------------------------------|
+| TOUCH_TRANSPARENT      | bool    | If true, allow touch events to travel through the popup.                 |
+| TAIL_VISIBILITY        | bool    | If true, display a tail image on one of the edges of the popup.          |
+| TAIL_POSITION          | Vector3 | Describes the position of the tail image. Orientation is inferred.       |
+| ANIMATION_DURATION     | float   | Duration used for entry and exit transition animations.                  |
+| AUTO_HIDE_DELAY        | int     | If non-zero, the number of milliseconds before the popup will auto-hide. |
+| BACKING_ENABLED        | bool    | True if backing (dimmed background) is enabled.                          |
+| BACKING_COLOR          | Vector4 | The color of the dimmed background.                                      |
+| TAIL_UP_IMAGE          | string  | The image to use for the tail if above the popup.                        |
+| TAIL_DOWN_IMAGE        | string  | The image to use for the tail if below the popup.                        |
+| TAIL_LEFT_IMAGE        | string  | The image to use for the tail if to the left of the popup.               |
+| TAIL_RIGHT_IMAGE       | string  | The image to use for the tail if to the right of the popup.              |
+  
+
+# ConfirmationPopup Control {#popupconfirmation}
+  
+The ConfirmationPopup control provides a simple interface for providing automatic connection to control signals for common-use Popup use-cases.
+  
+ConfirmationPopup will automatically provide signals for 1 or 2 controls.
+Note: The controls do not need to be PushButtons.
+These signals are dynamically created. The controls (typically PushButtons) must be specifically named so the ConfirmationPopup can locate them.
+  
+## Step 1 {#popupconfirmationstep1}
+Name your controls.
+  
+- Name your first control, or OK control:      "controlOk"
+- Name your second control, or Cancel control: "controlCancel"
+  
+## Step 2 {#popupconfirmationstep2}
+Tell the ConfirmationPopup the names of the signals to connect to for each control.
+For example, if we are using PushButtons as controls, the signal name would be "clicked".
+This allows us to use different control types.
+  
+- Set property "connectSignalOkSelected" with the name of the signal to connect to within the first control.
+- Set property "connectSignalCancelSelected" with the name of the signal to connect to within the second control.
+  
+## Step 3 {#popupconfirmationstep3}
+Connect to the following respective signals within ConfirmationPopup:
+  
+- Connect to signal "controlSignalOk" to be signalled for the first control.
+- Connect to signal "controlSignalCancel" to be signalled for the second control.
+  
+The ConfirmationPopup will dynamically make the connection between the signalling control, and your signal handler.
+  
+This allows connection of signals within both C++ APIs and JSON.
+If more manual control or customizable layout is needed, then it is recommended to use the Popup widget directly for full control.
+  
+The JSON code example at the bottom of this document uses the ConfirmationPopup to allow signal connection from within the JSON description.
+  
+
+# C++ example of a Popup with two buttons {#popupexamplec}
+  
+This example creates a Popup with:
+  
+- Title:   TextLabel
+- Content: TextLabel
+- Footer:  ImageView (an image border around the buttons)
+            - PushButton (OK control)
+            - PushButton (Cancel control)
+  
+The example connects signals to the two buttons, and to the OutsideTouched signal.
+  
+~~~{.cpp}
+Toolkit::Popup popup = Toolkit::Popup::New();
+
+Toolkit::TextLabel titleActor = Toolkit::TextLabel::New( "Title" );
+titleActor.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::WHITE );
+titleActor.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
+popup.SetTitle( titleActor );
+
+Toolkit::TextLabel contentActor = Toolkit::TextLabel::New( "Content text" );
+contentActor.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::WHITE );
+contentActor.SetProperty( Toolkit::TextLabel::Property::MULTI_LINE, true );
+contentActor.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
+popup.SetContent( contentActor );
+
+// Create the footer: Two buttons surrounded by an image.
+ImageView footer = ImageView::New( DEFAULT_CONTROL_AREA_IMAGE_PATH );
+footer.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
+footer.SetResizePolicy( ResizePolicy::FIXED, Dimension::HEIGHT );
+footer.SetSize( 0.0f, 80.0f );
+footer.SetAnchorPoint( AnchorPoint::CENTER );
+footer.SetParentOrigin( ParentOrigin::CENTER );
+
+Toolkit::PushButton okButton = Toolkit::PushButton::New();
+okButton.SetLabelText( "OK" );
+okButton.SetParentOrigin( ParentOrigin::CENTER );
+okButton.SetAnchorPoint( AnchorPoint::CENTER );
+okButton.SetResizePolicy( ResizePolicy::SIZE_FIXED_OFFSET_FROM_PARENT, Dimension::ALL_DIMENSIONS );
+okButton.SetSizeModeFactor( Vector3( -20.0f, -20.0f, 0.0 ) );
+okButton.ClickedSignal().Connect( this, &MyExample::OnOKButtonClicked );
+
+Toolkit::PushButton cancelButton = Toolkit::PushButton::New();
+cancelButton.SetLabelText( "Cancel" );
+cancelButton.SetParentOrigin( ParentOrigin::CENTER );
+cancelButton.SetAnchorPoint( AnchorPoint::CENTER );
+cancelButton.SetResizePolicy( ResizePolicy::SIZE_FIXED_OFFSET_FROM_PARENT, Dimension::ALL_DIMENSIONS );
+cancelButton.SetSizeModeFactor( Vector3( -20.0f, -20.0f, 0.0 ) );
+cancelButton.ClickedSignal().Connect( this, &MyExample::OnCancelButtonClicked );
+
+// Set up the footer's layout.
+Toolkit::TableView controlLayout = Toolkit::TableView::New( 1, 2 );
+controlLayout.SetParentOrigin( ParentOrigin::CENTER );
+controlLayout.SetAnchorPoint( AnchorPoint::CENTER );
+controlLayout.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
+controlLayout.SetCellPadding( Size( 10.0f, 10.0f ) );
+controlLayout.SetRelativeWidth( 0, 0.5f );
+controlLayout.SetRelativeWidth( 1, 0.5f );
+controlLayout.SetCellAlignment( Toolkit::TableView::CellPosition( 0, 0 ), HorizontalAlignment::CENTER, VerticalAlignment::CENTER );
+controlLayout.SetCellAlignment( Toolkit::TableView::CellPosition( 0, 1 ), HorizontalAlignment::CENTER, VerticalAlignment::CENTER );
+controlLayout.AddChild( okButton, Toolkit::TableView::CellPosition( 0, 0 ) );
+controlLayout.AddChild( cancelButton, Toolkit::TableView::CellPosition( 0, 1 ) );
+footer.Add( controlLayout );
+popup.SetFooter( footer );
+
+popup.OutsideTouchedSignal().Connect( this, &MyExample::OnPopupOutsideTouched );
+
+// Add to stage (the popup is still invisible at this point).
+Stage::GetCurrent().Add( popup );
+
+// Display the popup.
+mPopup.SetDisplayState( Toolkit::Popup::SHOWN );
+~~~
+  
+
+# JSON example of a Popup with two buttons {#popupexamplejson}
+  
+This example creates a Popup with:
+  
+- Title:   TextLabel
+- Content: TextLabel
+- Footer:  Control
+            - PushButton (OK control)
+            - PushButton (Cancel control)
+  
+The example connects signals to the two buttons, and to the OutsideTouched signal.
+This time without an image around the buttons. This could be added in the same way as the C++ example however.
+  
+
+~~~{.json}
+{
+  "constants": {
+    "CONFIG_SCRIPT_LOG_LEVEL": "Verbose"
+  },
+  "stage": [
+    {
+      "type": "ConfirmationPopup",
+      "name": "confirmationPopup",
+      "parentOrigin": [0.5, 0.55, 0.5],
+      "anchorPoint": "CENTER",
+      "widthResizePolicy": "SIZE_RELATIVE_TO_PARENT",
+      "heightResizePolicy": "USE_NATURAL_SIZE",
+      "sizeModeFactor": [0.65, 1.0, 1.0],
+      "tailVisibility": false,
+      "displayChangeAnimationDuration": 1.0,
+      "contextualMode": "NON_CONTEXTUAL",
+      "animationMode": "ZOOM",
+      "connectSignalOkSelected": "clicked",
+      "connectSignalCancelSelected": "clicked",
+      "title": {
+        "type": "TextLabel",
+        "text": "Title text",
+        "textColor": [1, 1, 1, 1]
+      },
+      "content": {
+        "type": "TextLabel",
+        "text": "Content text",
+        "padding": [20, 20, 20, 0],
+        "textColor": [1, 1, 1, 1]
+      },
+      "footer": {
+        "type": "Control",
+        "size": [0, 80, 0],
+        "widthResizePolicy": "FILL_TO_PARENT",
+        "heightResizePolicy": "FIXED",
+        "parentOrigin": "CENTER",
+        "anchorPoint": "CENTER",
+        "actors": [
+          {
+            "type": "PushButton",
+            "name": "controlOk",
+            "parentOrigin": "CENTER_LEFT",
+            "anchorPoint": "CENTER_LEFT",
+            "position": [20, 0, 0],
+            "size": [0, 0, 0],
+            "labelText": "OK"
+          },
+          {
+            "type": "PushButton",
+            "name": "controlCancel",
+            "parentOrigin": "CENTER_RIGHT",
+            "anchorPoint": "CENTER_RIGHT",
+            "position": [-20, 0, 0],
+            "size": [0, 0, 0],
+            "labelText": "Cancel"
+          }
+        ]
+      },
+      "signals": [
+        {
+          "name": "controlSignalOk",
+          "action": "set",
+          "actor": "confirmationPopup",
+          "property": "displayState",
+          "value": "HIDDEN"
+        },
+        {
+          "name": "controlSignalCancel",
+          "action": "set",
+          "actor": "confirmationPopup",
+          "property": "displayState",
+          "value": "HIDDEN"
+        },
+        {
+          "name": "touchedOutside",
+          "action": "set",
+          "actor": "confirmationPopup",
+          "property": "displayState",
+          "value": "HIDDEN"
+        }
+      ]
+    }
+  ]
+}
+~~~
+  
+
+*/
+
diff --git a/docs/content/programming-guide/programming-languages.md b/docs/content/programming-guide/programming-languages.md
new file mode 100644 (file)
index 0000000..ea391b2
--- /dev/null
@@ -0,0 +1,61 @@
+<!--
+/**-->
+
+# Programming Languages {#programming-languages}
+
+DALi applications can be written in several different programming languages.
+
+## C++ {#c-plus-plus}
+
+~~~{.cpp}
+Dali::Actor actor = Dali::Actor::New();
+actor.SetParentOrigin( Dali::ParentOrigin::CENTER );
+actor.SetAnchorPoint( Dali::AnchorPoint::CENTER );
+Dali::Stage::GetCurrent().Add( actor );
+...
+bool OnPressed( Dali::Actor, const TouchData& touch )
+{
+  Dali::Animation anim = Dali::Animation::New( 1.5f );
+  anim.AnimateTo( Property( actor, Actor::Property::POSITION ), Vector3( 200, -100, 0 ), AlphaFunctions::Bounce );
+  anim.play();
+  return true; // consume the touch event
+}
+...
+actor.TouchSignal().Connect( &OnPressed );
+~~~
+
+## JSON {#json-support}
+
+~~~{.json}
+{
+ "animations":
+  {
+    "move":
+    {
+      "duration": 1.5,
+      "properties":
+      [
+        {
+          "actor":"image",
+          "property":"position",
+          "value":[200,-100,0],
+          "alphaFunction": "BOUNCE"
+        }
+      ]
+    }
+  },
+  "stage":
+  [
+    {
+      "name":"image",
+      "type":"Actor",
+      "anchorPoint": "CENTER",
+      "parentOrigin": "CENTER",
+      "signals" :
+      [
+        { "name" : "touch", "action": "play", "animation": "move" }
+      ]
+    }
+  ]
+}
+~~~
index a1a95e970cc5e961d88d6a5cec87b43e4681ae90..7f5f32727d52c88dafc39e3937d85bacaf86d1cf 100644 (file)
@@ -215,31 +215,6 @@ Property lookup via index should always be used unless the indicies cannot be kn
 
 @clip{"properties.cpp", // C++ EXAMPLE, // C++ EXAMPLE END}
 
-<br>
-<hr>
-@section property-use-example-js Property use in JavaScript
-
-Note that constraints cannot be used within JavaScript, so below is a simple example that sets one of the default properties; scale:
-
-@code
-var imageView = new dali.Control( "ImageView" );
-
-// by default an actor is anchored to the top-left of it's parent actor
-// change it to the middle
-imageView.parentOrigin = dali.CENTER;
-
-// Set an image view property
-imageView.image = {
-  "visualType" : "IMAGE",
-  "url": "images/icon-0.png",
-  "desiredWidth" : 100,
-  "desiredHeight" : 100
-};
-
-// add to the stage
-dali.stage.add( imageView );
-@endcode
-
 <br>
 <hr>
 @section property-use-example-json Property use in JSON
diff --git a/docs/content/programming-guide/resource-image-scaling.md b/docs/content/programming-guide/resource-image-scaling.md
new file mode 100644 (file)
index 0000000..8e8c597
--- /dev/null
@@ -0,0 +1,349 @@
+<!--
+/**-->
+
+[TOC]
+
+# Resource Image Scaling {#resourceimagescaling}
+  
+## Introduction {#resourceimagescaling-introduction}
+  
+Resource Image Scaling provides automatic image resizing (without changing aspect) based on settings provided by the developer.
+This operation is performed at load time.
+  
+### Developer options:
+* A target size of the image - this could be the full screen size for example.
+* A Fitting mode - This determines how the image is fitted to the target dimensions. If necessary the image will be cropped, or have borders added automatically.
+* A Sampling Mode - This determines the quality of the scaling (by specifying the type of filtering to use).
+  
+### Benefits of Resource Image Scaling:
+* Scaled image will typically be 1-to-1 size ratio with on screen pixels, giving quality benefits.
+* Scaling performed at load time, so run time speed is improved.
+* Ease of use allows applications handling lots of images of different sizes to be created quickly and easily.
+  
+## Use-Case Example {#resourceimagescaling-basicexample}
+While common uses of images in DALi applications involve fixed sized images under the developer's control, e.g. for button backgrounds, in other cases such as galleries and wallpapers an application must display a variety of images and adapt to different screen sizes and densities.
+
+There are more code examples later in this document under [API usage](#resourceimagescaling-apidetails). For now we will just give one full code example to show how this feature is used..
+  
+Let's say we are writing a home-screen application for a smart phone.
+Here we have a large, square image that we want to set as the wallpaper on a tall and narrow phone screen.
+We want to fill the screen without distorting the image or having black borders, and wasting as few pixels from the source image as possible.
+  
+![ ](example-scale-to-fill-problem.jpg)
+  
+DALi provides the concept of a `FittingMode` to specify how a source image is mapped into a target rectangle, and the one we need here is `FittingMode::SCALE_TO_FILL` as it guarantees to cover all of the pixels of the target dimensions specified.
+A second concept of a `SamplingMode` controls how source image pixels are combined during the scaling and allows the developer to trade speed for quality.
+Since our image is to be loaded once and reused, we use `SamplingMode::BOX_THEN_LINEAR` which is the highest quality option.
+  
+In this case, `SCALE_TO_FILL` will perform this sequence of operations:
+  
+![ ](example-scale-to-fill-sequence.jpg)
+  
+We can pass the stage dimensions to the `ResourceImage` creator function as the desired rectangle and ask it to map the image to the screen as shown here:
+  
+~~~{.cpp}
+ // C++
+ ResourceImage image = ResourceImage::New(
+  "gallery-large-12.jpg",
+  Dali::ImageDimensions( stage.GetSize().x, stage.GetSize().y ),
+  Dali::FittingMode::SCALE_TO_FILL,
+  Dali::SamplingMode::BOX_THEN_LINEAR );
+~~~
+  
+
+## Workflow {#resourceimagescaling-workflow}
+  
+![ ](workflow-main.png)
+  
+The workflow for achieving the final scaled image is (in order):
+  
+- Target Size: Determine target size (from source image size and any user specified target dimensions).
+- Target Image Dimensions: Determine the size the image should be scaled to (taking Fitting Mode into account)
+- Scaling: Perform a scale to target image dimensions using the specified Sampling mode.
+- Crop or Add Borders: Automatically performed as necessary to maintain final target aspect (actual stored data size could be smaller).
+  
+
+
+### Determine Target Dimensions {#resourceimagescaling-targetdimensions}
+  
+![ ](workflow-1.png)
+  
+An application has several options for specifying the target rectangle for the image to be fitted to.
+The application may request dimensions through `ResourceImage::New()`:
+  
+  - `Not specifying either dimension`: IE. Width and Height set to 0 - The target dimensions become the same as the source.
+
+  - `Just one dimension specified, Width OR Height (the other dimension set to 0)`:
+    The unspecified dimension will be derived from the specified one whilst maintaining the aspect of the source image. The specified and calculated dimensions become the target dimensions. See more on this case [below](#resourceimagescalingzerodimensions).
+     
+  - `Width AND Height both specified` The requested dimensions pass straight through to become the target for fitting.
+  
+![ ](scaling-fitting-target-dimensions.png)
+
+The result of this process is an `(x, y)` target size to fit the image in the next step.
+  
+
+
+### Target Image Dimensions {#resourceimagescaling-targetimagedimensions}
+
+![ ](workflow-2.png)
+  
+#### Fitting Mode {#resourceimagescaling-fittingmode}
+  
+DALi provides a number of strategies for mapping the pixels of an image onto the target box derived above.
+It provides a `FittingMode` enumeration to the developer to select a mapping or fitting approach.
+These are `SCALE_TO_FILL`, `SHRINK_TO_FIT`, `FIT_WIDTH`, and `FIT_HEIGHT` and their effect is best appreciated visually:
+  
+The operation of each of these modes is as follows:
+  
+| `FittingMode` | **Operation** |
+| ------------- | ------------- |
+| `SCALE_TO_FILL` | Centers the image on the target box and uniformly scales it so that it matches the target in one dimension and extends outside the target in the other. Chooses the dimension to match that results in the fewest pixels outside the target. Trims away the parts of the image outside the target box so as to match it exactly. This guarantees all of the target area is filled. |
+| `SHRINK_TO_FIT` | Centers the image on the target box and uniformly scales it so that it matches the target in one dimension and fits inside it in the other. This guarantees that all of the source image area is visible. |
+| `FIT_WIDTH` | Centers the image on the target box and uniformly scales it so that it matches the target width without regard for the target height. |
+| `FIT_HEIGHT` | Centers the image on the target box and uniformly scales it so that it matches the target in height without regard for the target width. |
+  
+
+![ ](fitting-mode-options.png)
+  
+<sub> **Fitting modes**: *The top row shows the effect of each mode when a tall target rectangle is applied to a square image. The middle row applies a wide target to a square raw image. The bottom row uses a target with the same aspect ratio as the raw image. This example shows that `SCALE_TO_FILL` is the only option for which the dimensions of the fitted image result fill all the area of the target. Others would be letterboxed with borders. `SHRINK_TO_FIT` is always equal to one of `FIT_WIDTH` or `FIT_HEIGHT`: in each case it is the minimum of them. As a special case, where the aspect ratio of raw image and target match, all fitting modes generate an exact match final image and are equivalent to each other.* </sub>
+  
+
+Note: The image is scaled to the same aspect and shrunk to fit depending on fitting mode. It is not upscaled. See: [Upscaling](#resourceimagescalingupscaling).
+  
+  
+
+### Scaling {#resourceimagescaling-scaling}
+  
+![ ](workflow-3.png)
+  
+To perform the scaling stage, the source image is scaled to a (factor of) the target image size using the specified Sampling Mode/
+  
+The process of scaling an image can be expensive in CPU cycles and add latency to the loading of each resource.
+To allow the developer to trade-off speed against quality for different use cases, DALi provides the `SamplingMode` enum, which can be passed to `ResourceImage::New()`.
+Two of these modes produce bitmaps which differ from the dimensions calculated by the fitting algorithm and so have a memory trade-off as well. The full set of modes is explained below.
+  
+| `SamplingMode` | **Operation** |
+| ------------- | --------- |
+| `NEAREST` | Use simple point sampling when scaling. For each pixel in output image, just one pixel is chosen from the input image. This is the fastest, crudest option but suffers the worst from aliasing artifacts so should only be used for fast previews, or where the source image is known to have very low-frequency features. |
+| `LINEAR` | Uses a weighted bilinear filter with a `(2,2)` footprint when scaling. For each output pixel, four input pixels are averaged from the input image. This is a good quality option, equivalent to the GPU's filtering and works well at least down to a `0.5` scaling. |
+| `BOX` | Uses an iterated `(2,2)` box filter to repeatedly halve the image in both dimensions, averaging adjacent pixels until the the result is approximately right for the fitting target rectangle. For each output pixel some number of pixels from the sequence `[4,16,64,256,1024,...]` are averaged from the input image, where the number averaged depends on the degree of scaling requested. This provides a very high quality result and is free from aliasing artifacts because of the iterated averaging. *The resulting bitmap will not exactly match the dimensions calculated by the fitting mode but it will be within a factor of two of it and have the same aspect ratio as it.*   |
+| `BOX_THEN_NEAREST` | Applies the `BOX` mode to get within a factor of two of the fitted dimensions, and then finishes off with `NEAREST` to reach the exact dimensions. |
+| `BOX_THEN_LINEAR` | Applies the `BOX` mode to get within a factor of two of the fitted dimensions, and then finishes off with `LINEAR` to reach the exact dimensions. This is the slowest option and of equivalent quality to `BOX`. It is superior to `BOX` in that is uses an average of 62% of the memory and exactly matches the dimensions calculated by fitting. **This is the best mode for most use cases**.  |
+| `NO_FILTER` | Disables scaling altogether. In conjunction with `SCALE_TO_FILL` mode this can be useful as the edge trimming of that fitting mode is still applied. An example would be a gallery application, where a database of prescaled thumbnails of approximately the correct size need to be displayed in a regular grid of equal-sized cells, while being loaded at maximum speed. |
+  
+
+Here are all the modes applied to scaling-down a `(640,720)` line art and text JPEG image to a `(218, 227)` thumbnail:
+  
+|  |  | |
+| ---- | ---- | --- |
+| ![ ](sampling_modes_no_filter.png) | ![ ](sampling_modes_nearest.png) | ![ ](sampling_modes_linear.png) |
+| **NO_FILTER** | **NEAREST** | **LINEAR** |
+| ![ ](sampling_modes_box.png) | ![ ](sampling_modes_box_then_nearest.png) | ![ ](sampling_modes_box_then_linear.png) |
+| **BOX** | **BOX_THEN_NEAREST** | **BOX_THEN_LINEAR** |
+  
+These are screenshots, showing how the images are rendered in a DALi demo.
+There is an additional level of GPU bilinear filtering happening at render time.
+The best way to get a feel for the best sampling mode for different image types is to play with the [examples](#resourceimagescaling-samplingmodesdemoexamples).
+  
+  
+
+### Crop or Add Borders {#resourceimagescaling-croporaddborders}
+  
+![ ](workflow-4.png)
+  
+Lastly, the image data will be cropped, or have borders added automatically as necessary.
+This is done to ensure the image correctly fits the aspect of the target window, whilst maintaining the aspect of the source image.
+  
+Images that have an alpha channel will be given transparent borders. Otherwise black is used.
+  
+  
+
+## Using the API (With source code examples) {#resourceimagescaling-apidetails}
+  
+This section contains more detail about using the API to setup the desired behaviour.
+
+`ResourceImage` :: New has the following parameters:
+- **path**: Identifier for the image (allows raw image width and height to be retrieved).
+- **requested dimensions**: These are either `(0,0)`, a width, a height, or a (width, height) pair and either directly, or after reading the image raw dimensions and doing some math, define a target rectangle to fit the image to.
+- **fitting mode**: one of four strategies for mapping images onto the target rectangle.
+- **sampling mode** Different quality options for the scaling.
+  
+### Code Examples {#resourceimagescaling-targetdimensionsexamples}
+If we have a `(320, 240)` image called "flower.jpg", we use these options in code as below.
+  
+**Case 1**: In these two equivalent loads, the target dimensions are not specified, so will be `(320, 240)` so the image will be loaded at its raw dimensions without modification.
+~~~{.cpp}
+// C++
+ResourceImage image1 = ResourceImage::New( "flower.png" );
+ResourceImage image2 = ResourceImage::New( "flower.png", ImageDimensions( 0, 0 ) );
+~~~
+  
+
+**Case 2**: In these loads, the target dimensions will be `(160, 120)` as the zero dimension is derived from the aspect ratio of the raw image.
+~~~{.cpp}
+// C++
+ResourceImage image1 = ResourceImage::New( "flower.png", ImageDimensions( 160, 0 ) );
+ResourceImage image2 = ResourceImage::New( "flower.png", ImageDimensions( 0, 120 ) );
+~~~
+  
+
+**Case 3**: In this load, the target dimensions will be `(111, 233)`.
+~~~{.cpp}
+// C++
+ResourceImage image = ResourceImage::New( "flower.png", ImageDimensions( 111, 233 ) );
+~~~
+  
+
+### Fitting an image's dimensions to the target box {#resourceimagescaling-codeexamplesfittingmodes}
+  
+The result of the fitting modes defined [here](#resourceimagescaling-targetimagedimensions) only differ when the target box has a different aspect ratio than the source image.
+Images may still be scaled down, depending on the target dimensions, but the specified fitting mode will not have an effect.
+  
+EG:
+~~~{.cpp}
+// C++
+// Image on 'disk' is 320x240.
+ResourceImage image = ResourceImage::New( "flower.png", ImageDimensions( 32, 24 ) );
+// Image will be loaded at (32, 24), regardless of fitting mode.
+~~~
+  
+
+### Passing a Zero Dimension {#resourceimagescalingzerodimensions}
+  
+Passing in a single zero dimension is equivalent to specifying `FIT_WIDTH` or `FIT_HEIGHT` `FittingMode`s. When a non-zero width and zero height are specified, the fitting done will be identical to the result using `FittingMode` `FIT_WIDTH`. When passing a zero width and non-zero height, the effect of applying the chosen `FittingMode` to the calculated target dimensions is always identical to applying the `FIT_HEIGHT` mode.
+  
+* `ResourceImage::New( ImageDimensions( x, 0 ), <ANY_FITTING_MODE> )` =
+  `ResourceImage::New( ImageDimensions( x, <ANYTHING> ), FittingMode::FIT_WIDTH )`
+* `ResourceImage::New( ImageDimensions( 0, y ), <ANY_FITTING_MODE> )` =
+  `ResourceImage::New( ImageDimensions( <ANYTHING>, y), FittingMode::FIT_HEIGHT )`
+  
+This falls out of the the fact that the fitting modes are strategies for the case when the aspect ratio of the raw image differs from the aspect ratio of the target dimensions, but the zero dimension behavior always ensures that the target dimensions have the same aspect ratio as the raw image's so the fitting modes are all equivalent.
+  
+Therefore, if `(x!=0, y=0)`, fittingMode = `FIT_WIDTH`,
+and if `(x=0, y=!0)`, fittingMode = `FIT_HEIGHT`, irrespective of fitting mode passed by the application (if any).
+This shortcut is provided as a convenience to the developer and allows FIT_WIDTH or FIT_HEIGHT to be specified compactly:
+~~~{.cpp}
+// C++
+// FIT_WIDTH:
+ResourceImage image = ResourceImage::New("flower.png", ImageDimensions(x, 0));
+// FIT_HEIGHT:
+ResourceImage image = ResourceImage::New("flower.png", ImageDimensions(0, y));
+~~~
+  
+Note:
+- If both values are specified as 0, both dimensions are taken from the source image.
+- If both dimensions are not 0, this value becomes the 'natural size' even if it differs from the actual pixel dimensions loaded. [This requires some care in rendering to avoid distortion](#resourceimagescaling-samplingmodesrendernaturalsize).
+  
+
+### Code Examples for Sampling Modes  {#resourceimagescaling-codeexamplessamplingmodes}
+  
+
+In the following code example an image is loaded to be a thumbnail but with differing quality, speed, and memory implications.
+~~~{.cpp}
+// C++
+ResourceImage image1 = ResourceImage::New( "flower.png",
+    ImageDimensions( 240, 240 ), FittingMode::SCALE_TO_FILL, SamplingMode::NEAREST );
+  
+ResourceImage image2 = ResourceImage::New( "flower.png",
+    ImageDimensions( 240, 240 ), FittingMode::SCALE_TO_FILL, SamplingMode::NO_FILTER );
+  
+ResourceImage image3 = ResourceImage::New( "flower.png",
+    ImageDimensions( 240, 240 ), FittingMode::SCALE_TO_FILL, SamplingMode::BOX );
+  
+ResourceImage image4 = ResourceImage::New( "flower.png",
+    ImageDimensions( 240, 240 ), FittingMode::SCALE_TO_FILL, SamplingMode::BOX_THEN_LINEAR );
+~~~
+  
+  
+
+
+### Notes on speed VS quality {#resourceimagescaling-speedvsquality}
+  
+If we imagine flower.jpg is a 560*512 photo with high frequency details, the results of this are (image references are from above example):
+* `image1` loads fast, uses minimal space, has poor quality.
+* `image2` loads even faster, uses 4.6 * minimal space, has good quality.
+* `image3` loads moderately slow, uses 1.3 * minimal space, has good quality.
+* `image4` loads slowest, uses minimal space, has good quality.
+  
+Note that `BOX`, `BOX_THEN_NEAREST` and `BOX_THEN_LINEAR` can work particularly well for JPEG images as they can use fast downscaling typically built-in to the JPEG codec on supported platforms on the fly while decoding. In this case the caveats about using them having a speed trade-off given above do not apply.
+  
+  
+
+
+## Demo Examples {#resourceimagescaling-samplingmodesdemoexamples}
+  
+Load time image scaling is spread throughout the DALi examples.
+Search for `"ImageDimensions"` in the dali-demo project to see it used.
+There is also a specific demo to show all of the fitting and scaling modes.
+which lives in the demo project at `examples/image-scaling-and-filtering`.
+  
+![ ](./demo-fitting-sampling.png)
+  
+Touch the arrows in the top corners to changes image.
+Drag the resize handle in the corner of the image to change the requested size and trigger an immediate image reload.
+Use the buttons at the bottom of the screen to select any of the fitting and sampling modes from the popups which appear.
+This demo does not take any of the special measures [described here](#resourceimagescaling-naturalsizecompensation) to correct for the natural size != pixel dimensions discrepancy so all fitting modes other than `SCALE_TO_FILL` show distortion.
+  
+A second specific demo shows the effect of a filter mode on a single image loaded into various requested rectangles side by side.
+It can be found under `examples/image-scaling-irregular-grid`.
+  
+![ ](./demo-sampling-modes.jpg)
+  
+Touch the button at top-left to change image.
+The button at top-right changes sampling mode.
+You will see strong differences between sampling modes where the image contains high frequency details such as hair and in the large black and white image, but much less in some others such as the Statue of Liberty which is mostly covered by a smooth gradient.
+  
+  
+
+## Further Notes {#resourceimagescaling-furthernotes}
+  
+### Upscaling {#resourceimagescaling-upscaling}
+  
+DALi refuses to upscale images at load time in order to conserve memory.
+If the application requests an image size the specified fitting mode) would require scaling up, DALi will instead return an image with the same aspect ratio but limited to the largest dimensions that do not exceed the raw ones.
+EG. The actual image could be a fraction of the size of the target image dimensions.
+Upscaling can still be effected at render time by setting the size of an actor to the desired size.
+  
+  
+
+### Compressed Textures and Scaling {#resourceimagescaling-compressedtextures}
+  
+Compressed textures cannot be scaled at load time as their formats are designed to be uploaded directly to GPU memory. To achieve scaling of compressed textures, set the desired size on the attached `ImageView` for scaling at render time instead.
+  
+  
+
+### Compensation for Natural Size != Pixel Width / Height {#resourceimagescaling-naturalsizecompensation}
+  
+Because the *natural size* of an image is
+[taken from the requested dimensions](#resourceimagescaling-samplingmodesdimensionflow)
+passed to `ResourceImage::New()` rather than passing through the same calculations that result in the eventual pixel width and height loaded,
+the *natural size* and pixel dimensions of an image will differ when loaded with scaling.
+It is inherent in the definition of fitting modes other than `SCALE_TO_FILL` not to match the requested dimensions, so in general, images loaded with them must have this mismatch between *natural size* and actual pixel width.
+  
+It is not possible in general to draw a scaled resource image using its natural size as the `ImageView`'s size without it appearing stretched in one dimension.
+This is the case for example by default with size negotiation in effect or when an image is simply passed to an actor at creation time.
+  
+There are circumstance, however, in which the the natural size of a resource image loaded will exactly match its post-load pixel dimensions:
+  
+- No scaling is requested.
+- The application chooses a combination of requested dimensions, fitting mode, and sampling mode which the scaling sub-system can match exactly. This is the case:
+   *  For all downscaling using `SCALE_TO_FILL` fitting mode and not using `BOX` or `NO_FILTER` sampling modes.
+   * The app uses `SHRINK_TO_FIT`, `FIT_WIDTH`, or `FIT_HEIGHT` and the requested dimensions passed-in are both smaller than the raw ones and have the same aspect ratio as them, and it is not using `BOX` or `NO_FILTER` sampling modes.
+  
+In these cases the image may be used freely in layouts controlled by size negotiation.
+Additionally, if the requested size has the same aspect ratio as the eventual pixel array loaded, and the fitting mode is `SCALE_TO_FILL` or `BOX` and `NO_FILTER` sampling modes are avoided, even if they don't match in dimensions exactly, the eventual image will be drawn without aspect ratio distortion although it will be scaled at render time.
+  
+The fitting and scaling modes [demo](#resourceimagescalingsamplingmodesdemoexamples) allows this behavior to be be explored dynamically when the fitting mode is changed from `SCALE_TO_FILL`.
+  
+The application can of course only pass dimensions which are just right if it happens to know the raw dimensions or if it accesses the the image resource and reads the raw dimensions from its header.
+  
+The application can get a scaled resource image rendered correctly to screen with one of three strategies:
+  
+  1. Use one of the special cases above.
+  2. Read the image header from disk, recreate the dimension deriving, fitting, and sampling logic described in this document, and use that to generate a pair of requested dimensions which match the eventual image dimensions.
+  3. Use the requested dimensions it really wants to but then read the image header from disk, recreate the dimension deriving, fitting, and sampling logic described in this document, and set the size of an `ImageView` to that size explicitly rather than relying on the *natural size* of the image.
+  
+
+
+*/
diff --git a/docs/content/programming-guide/resource-tracking.md b/docs/content/programming-guide/resource-tracking.md
new file mode 100644 (file)
index 0000000..d4635a9
--- /dev/null
@@ -0,0 +1,56 @@
+<!--
+/**-->
+
+# Resource Tracking {#resourcetracking}
+
+## Enable Logging
+
+Setting DALI_ENABLE_LOG environment variable to RESOURCE_LOG will enable resource usage logging in DALi applications.
+On target resource logging utilizes dlog, but this can also be used on desktop by redirecting stderr to a file.
+The generated information includes any image files that are loaded with their dimensions,
+GPU memory consumption, CPU RAM used and details of texture atlases created.
+
+## Viewing Resource Logs
+
+dalireslog.sh is installed as part of the DALi Adaptor package and can be found in the adaptors/tizen/scripts folder.
+The script shows a summary of memory used by resources.
+USAGE:
+./dalireslog.sh [FILE]
+if FILE isn't specified, the script will try to use dlogutil.
+
+### Example:
+~~~{.bash}
+sh-4.1$ ./dalireslog.sh
+
+**On a separate terminal:**
+
+sh-4.1$ DALI_ENABLE_LOG=RESOURCE_LOG /opt/apps/com.samsung.dali-demo/bin/album.example
+~~~
+Example on desktop:
+~~~{.bash}
+jon-doe\@ws-1234$ DALI_ENABLE_LOG=RESOURCE_LOG blind-effect.example 2>/home/SERILOCAL/john.doe/log.txt
+
+**On a separate terminal:**
+
+dalireslog.sh ~/log.txt
+
+~~~
+
+### Displayed information:
+
+|  | |
+|--|-|
+| 3D | amount of GPU memory used by application |
+| MEM Atlas | amount of GPU memory used by texture atlases (usually this refers to font atlases)
+| Number of atlases | how many texture atlases are present in memory.|
+
+A list of files is displayed in the main view, with different color codes representing different states:
+
+| | |
+|-|-|
+|CPU | resource is in memory, but hasn't been uploaded to a GL texture.|
+|GPU | resource has been uploaded to a GL texture, bitmap buffer discarded.|
+|CPUGPU | resource has been uploaded to a GL texture, but still present in CPU memory as well.|
+|DISCARDED | resource has been discarded, memory freed up |
+
+ */
diff --git a/docs/content/programming-guide/resources.md b/docs/content/programming-guide/resources.md
new file mode 100644 (file)
index 0000000..4dc718d
--- /dev/null
@@ -0,0 +1,62 @@
+<!--
+/**-->
+# Resources {#resources}
+
+## Resource Image {#resource-image}
+
+A resource image is an image that is loaded using a file path or a URL.
+
+To create a resource image:
+~~~{.cpp}
+Dali::ResourceImage image = Dali::ResourceImage::New( "/my-path/my-image.png" );
+~~~
+Which can then be used with actors (e.g. ImageView).
+
+Resources are loaded in separate threads.
+The application can connect to the Dali::ResourceImage::LoadingFinishedSignal() to get notified when the image has loaded.
+
+By default, resource images start loading immediately and the data is released only when the ResourceImage handle is destroyed.
+To optimize an application's memory footprint, the application can ask resources to be only loaded when actually required and
+their data to be released automatically when they are no longer being used (not being used by Actors).
+~~~{.cpp}
+Dali::ResourceImage image = Dali::ResourceImage::New( "/my-path/my-image.png", Dali::ResourceImage::ON_DEMAND, Dali::Image::UNUSED );
+~~~
+If Dali::Image::UNUSED is used, then when the ResourceImage is used again, the resource data is reloaded automatically.
+
+If the application requires the image dimensions immediately, then they can be retrieved synchronously:
+~~~{.cpp}
+Dali::ImageDimensions dimensions = Dali::ResourceImage::GetImageSize( "/my-path/my-image.png" );
+~~~
+This is a disk read which can be slow and will block the event thread, so should only be used if absolutely necessary.
+
+## 9-Patch Image {#resource-9-patch}
+
+DALi has support for 9-patch images.
+These are stretchable, repeatable images which are reduced to their smallest size.
+Essentially, an image is sliced up into 9 squares and the four corners do not change size at all.
+The other 5 segments are stretched (or repeated) to allow the whole image to scale appropriately.
+
+DALi has inbuilt support for *.9.png, *.9.jpg etc. images as well.
+More information about these images can be found here: http://developer.android.com/tools/help/draw9patch.html
+
+The following is an example of a *.9.png image:
+![ ](resource/9-patch.png)
+
+Zoomed in, the red section shows the part that will be repeated.
+The four corners areas remain static.
+The one pixel border will also be stripped out.
+![ ](resource/9-patch-zoomed.png)
+
+And if the image is given a 200 by 200 size, it will look like the following:
+![ ](resource/9-patch-full.png)
+
+## Buffer Image {#resource-buffer}
+
+A BufferImage represents an image resource in the form of a pixel buffer data that can be provided by the application developer.
+The application can then write to this buffer as required and the image is updated on the screen.
+
+~~~{.cpp}
+Dali::BufferImage image = Dali::BufferImage::New( 200, 200 ); // Creates a 200 by 200 pixel buffer with a color-depth of 32-bits (with alpha)
+~~~
+
+*/
diff --git a/docs/content/programming-guide/script-hello.md b/docs/content/programming-guide/script-hello.md
new file mode 100644 (file)
index 0000000..f1fc87e
--- /dev/null
@@ -0,0 +1,35 @@
+<!--
+/**-->
+
+ # Hello World - JSON layout{#script-hello}
+
+ The following JSON code is the minimum required to put the sentence "Hello World" on the screen.
+
+~~~{.json}
+{
+ // a tree of actors
+ "stage": [{
+   "name": "text-label",
+   "type": "TextLabel",
+   "text": "Hello World",
+   "parentOrigin": "CENTER"
+ }]
+}
+~~~
+
+ The following code loads the JSON file
+
+~~~{.cpp}
+ // C++
+ Builder builder = Builder::New();
+
+ std::string json_data(ReadFile("layout.json"));
+
+ builder.LoadFromString(json_data);
+
+ builder.AddActors( Stage::GetCurrent().GetRootLayer() );
+
+ ~~~
+
+
+*/
diff --git a/docs/content/programming-guide/script-json-specification.md b/docs/content/programming-guide/script-json-specification.md
new file mode 100644 (file)
index 0000000..f689518
--- /dev/null
@@ -0,0 +1,456 @@
+<!--
+/**-->
+
+[TOC]
+
+# DALi JSON Specification  {#script-json-specification}
+
+## Overview {#overview}
+
+This document describes the DALi JSON specification.
+The format is not yet formally versioned within the JSON.
+
+# General format {#format}
+
+The JSON format supports
+
+- Named templates for on demand creation of
+ - Actors/ Controls
+ - Animations
+- Style sets
+ - Dynamically change the style of Actor hierarchies
+ - Animate to a style set
+- Includes
+ - Build style sets up by merging JSON
+- Creating Scene content on load
+ - Controls created without any code
+
+
+Concrete Actors and Controls can be created from types registered in the
+DALi Type Registry.
+
+Template, style and scene sections all configure Actors and Controls via
+the DALi property system.
+
+The JSON format deviates from the formal JSON specification and allows C style comments.
+
+~~~
+    {                                        //
+      "version": 0,                          // Version Number
+      "includes":                            // Include section
+      [                                      //
+       "base-theme.json"                     // Include file to merge into the
+                                             // JSON
+      ]                                      //
+      "constants":                           // Constant replacement section
+      {                                      //
+        ...                                  //
+      },                                     //
+      "templates":                           // Template library section
+      {                                      //
+        "basic-text":                        // A named template
+        {                                    // } key value properties
+         ...                                 //
+         "actors":                           // A tree of sub actors
+         [                                   //
+         ...                                 //
+         ]                                   //
+        }                                    //
+        },                                   //
+        "styles":                            // Named Style set section
+        {                                    //
+        "light-theme":                       // Style set name
+        {                                    //
+         ...                                 //
+        },                                   //
+        dark-theme":                         //
+        {                                    //
+         ...                                 //
+        },                                   //
+      }                                      //
+      "stage":                               // Stage section
+      [                                      //
+       {                                     // Actors|Controls to create on JSON file load
+       "type": "basic-text",                 // A DALi Control or a template name
+       "styles":["base-theme","light-theme"] // Style list to apply to this instance
+       }                                     //
+      ]                                      //
+    }                                        //
+~~~
+
+# Top level sections {#sections}
+
+## Includes {#includes}
+
+The "includes" section is an array of file names to be merged in order to
+create a final in memory JSON tree.
+
+The merge process will walk key, value attributes from the root JSON
+node and overwrite previous values with the newer values.
+
+- If the key does not exist then it will be created.
+- If the newer value is a different type then the newer type will persist.
+- Where both values are objects the merge will descend into the object.
+- Where both values are arrays the merge will replace the old array entirely.
+
+The merge is relatively simple and is expected to be used to build up
+from base themes to custom themes where there are few conflicts and
+simple direct replacements are desired.
+
+### Constants {#constants}
+
+The merge behaviour when a file has constants and includes is
+
+1. Constants are loaded first
+2. Includes file list is merged in order
+3. All other (non constant) data is merged
+
+The include merge is recursive, so step (2) above will cause the
+constants in the first included file to be merged first.
+
+## Constants {#constantdetail}
+
+The constants section supports sub-string and full property replacement.
+
+~~~
+    {
+    "constants":                        // Constant replacement section
+    {                                   //
+      "IMAGES": "/usr/share/images/",   // Constants can be set here or in code.
+      "SIZE": [100,100,1]               //
+    },                                  //
+    ...                                 //
+    {                                   //
+      "type":"ImageView"               // An DALi type or a template name
+      "image":                          //
+      {                                 //
+        "url":"{IMAGES}b.jpg"      // Image filename substring replacement
+      },                                //
+      "size": "{SIZE}"                  //
+    }                                   //  Property replacement
+    }                                   //
+~~~
+
+The type of the constant should match the expected type of the property.
+
+A property constant cannot be used for sub string replacement; a string
+constant should be used.
+
+With a property replacement, the replace site must contain a string
+where the first and last positions are braces.
+
+## Templates {#templates}
+
+The template section supports the creation of actor instances. The
+template name can be used in code to create an actor tree.
+
+~~~{.cpp}
+// C++
+
+Builder builder = Builder::New();
+std::string jsonData = loadFile("my-app.json");
+builder.LoadFromString( jsonData );
+
+actorTree = builder.Create("basic-text");
+~~~
+
+Templates consist of a name, multiple property-value configurations and
+an optional actor sub hierarchy.
+
+~~~{.json}
+   {                                    //
+   "templates":                         //  Template library section
+   {                                    //
+   "basic-text":                        //  The template name
+   {                                    //
+     "type":"ImageView",               //  Concrete DALi Type/Class to create
+     "styles":["base-style"],           //  Style list to apply
+     "name":"image",                    //  }
+     "image":                           //  } property name : value
+     {                                  //  }
+     "url":"{IMAGES}/b.jpg"        //
+     },                                 //
+     "parentOrigin": "CENTER"           //
+     ...                                //
+     "actors":                          //  A tree of sub actors
+     [                                  //
+     {                                  //
+     "type":"TextView"                  //
+     "name":"text",                     //
+     "text":"Hello World",              //
+     "parentOrigin": "CENTER",          //
+     }                                  //
+     ]                                  //
+   }                                    //
+   }                                    //
+~~~
+
+A template has a special 'type' property which must contain a concrete
+DALi Actor or Control type name.
+
+A template has a special 'styles' property which contains a list of
+styles to apply when creating using the template.
+
+## Styles {#styles}
+
+The styles section supports a named set of properties that can be
+applied to an actor or actor tree.
+
+~~~{.cpp}
+// C++
+
+Builder.ApplyStyle("light-theme", myActor);
+~~~
+
+The styles can also be applied as an animation.
+
+~~~{.cpp}
+Builder.AnimateTo("light-theme", myActor, TimePeriod(0, 10));
+~~~
+
+
+
+~~~
+   {                                   //
+   "styles":                           // Style set section
+   {                                   //
+   "light-theme":                      // Style-set name
+   {                                   //
+     "color":[1,1,1,1]                 // }
+     "position":[0,-120,0],            // } properties to set on the given actor
+     "rotation":[0,0,30],              // }
+     "actors":                         //
+     {                                 // Sub Actors are referenced by name
+       "title-text":                   // Actor name to search for under given actor
+       {                               //
+         "color":[1,1,1,1]             // }
+         "position":[0,-120,0],        // } properties to set if 'title-text' is found
+         "rotation":[0,0,30],          // }
+       }
+     },                                //
+     "icon":                           //
+     {                                 //
+       "color":[1,1,1,1]               //
+     }                                 //
+    },                                 //
+    "dark-theme":                      //
+    {                                  //
+    }                                  //
+   }                                   //
+~~~
+
+When applied to an actor tree the actors are referenced by name. Names
+are not unique in DALi.
+
+When a style is applied in code DALi will perform a depth first search
+stopping with the first matching name.
+
+Typically an application developer will apply the style to the template
+root actor and not the stage root actor. Therefore in most uses cases
+name conflicts are not expected.
+
+## Animations {#animations}
+
+The animation section defines a library of animation definitions.
+
+The animations can be created by name from code.
+
+They can also be created automatically from JSON in an actor signal.
+
+~~~
+    {                                    //
+    "animations":                        // Animation library
+    {                                    //
+     "rotate":                           // An Animation named rotate
+     {                                   //
+     "duration": 10,                     // Duration in seconds
+     "loop": false,                      // Whether to loop.
+     "endAction": "Bake",                // Whether to set final value(bake) or
+                                         // reset
+     "disconnectAction": "Discard",      // Whether 'Bake' or 'Discard' when disconnected
+     "properties":
+     [
+                                         // Properties changed in this animation
+     {
+     "actor":"image",                    // Actor found by name from the stage
+     "property":"rotation",              // Property to change
+     "value":[0, 0.1, 0, 0],             // Value to set
+     "alphaFunction": "EASE\_IN\_OUT",   // Interpolation function
+                                         //
+     "timePeriod":                       // Time period for change
+     {"delay": 0,
+      "duration": 3
+      }
+     },
+     ...                                 // 1 or more property changes per animation
+     },                                  //
+     ...                                 //
+    },                                   //
+~~~
+
+### Splines {#splines}
+
+An animation property can be defined with a path and forward direction
+instead of a single final value.
+
+Paths are defined in a top level path section and referenced by the
+animation property.
+
+~~~
+    {                                    //
+    "paths":                             // Path library
+     {                                   //
+     "path0":                            // Path definition by name
+     {                                   //
+     "points":[                          // points
+       [-150, -50, 0],
+       [0.0,70.0,0.0],
+       [190.0,-150.0,0.0]
+      ],
+                                         // curvature automatically creates
+     "curvature":0.35,                   // controlPoints
+                                         //
+     "controlPoints": [...]              // Otherwise controlPoints can be
+                                         // directly specified.
+     }                                   //
+     },                                  //
+    "animations":                        //
+    {                                    //
+     "pathAnimation":
+     {
+     "duration": 3.0,
+     "properties":
+     [
+     {
+     "actor": "greeting2",
+                                         // Path is mandatory for spline
+     "path":"path0",                     // animation.
+     "forward":[1,0,0],                  // Forward vector specifies orientation
+                                         // whilst travelling along the path
+     "alphaFunction": "EASE\_IN\_OUT",   // (optional)
+     "timePeriod":
+     {
+     "delay": 0,
+     "duration": 3
+     }
+     },
+     ...
+                                         // Other properties changes can use
+     ]                                   // paths or values in the same
+                                         // animation.
+    },                                   //
+    }                                    //
+~~~
+
+At least one of the vertex or fragment fields is mandatory. All
+other fields are optional will use internal defaults.
+
+Actors have an "effect" field that refers to the shader effect
+instance to use with that actor.
+
+### Animating shaders {#animatingshaders}
+
+Shader uniforms can be animated as if they are properties of the actor.
+
+When the animation is created from code (or from a signal) the property
+name search begins on the actor, if it isn't found the search continues
+on the attached renderer, and then on the attached shader object.
+
+The actor property names and shader uniform names must not clash for the
+uniform to animate correctly.
+
+The actor needs to register the uniform properties as custom animatable
+properties.
+
+~~~
+{
+  "animations":
+  {
+    "rotate":                          \\ An Animation named rotate
+    {
+      "properties":                    \\ Properties changed in this animation
+      [
+        {
+          "actor": "image",            \\ Actor found by name from the stage
+          "property": "uTranslate",    \\ Uniform name specified as if it is a property of the object
+          "value": [10, 20],           \\ Target value of uniform
+          ...
+        }
+      ]
+    },
+    ...
+  },
+  "stage":
+  [
+    {
+      "type": "ImageView",
+      "name": "image",                 \\ Name of the actor
+      ...
+      "image":
+      {
+        ...
+        "shader":                      \\ ImageView has a shader property where we can set a custom shader
+        {
+          "vertexShader": "..."        \\ Vertex shader with uniform "uTranslate"
+        }
+      },
+      "animatableProperties":          \\ Custom properties that the actor needs to register
+      {
+        "uTranslate": [0, 0]           \\ The name should match the uniform we want to animate
+      },
+      ...
+    },
+    ...
+  ]
+}
+~~~
+
+## Stage {#stage}
+
+The stage section supports the immediate creation of actors at the time
+the JSON is loaded.
+
+The stage is a tree of actors that can be added to DALi's stage object.
+
+~~~
+// C++
+builder = Dali.Builder();
+json_text = load("layout.json");
+builder.Load(json\_text);
+stage = Dali.Stage.GetCurrent();
+builder.AddActors( stage.GetRootLayer()); // Add actors to the stage root layer
+~~~
+
+~~~
+    {                                    \\
+    "stage":                             \\  Stage Section Number
+    [                                    \\  An array of actors
+     {
+     "type": "ImageView",
+     ...
+     "actors":                           \\  Each actor can have children
+                                         \\ creating a tree
+     [
+     {
+     "type": "TextView",
+                                         \\  The Type to create; this can be a
+     ...                                 \\ concrete DALi type (actor/control)
+                                         \\ or a template name.
+     "styles": ["base-style"]
+                                         \\  A list of styles to apply to the
+     }                                   \\ created type.
+     ]
+     }
+    ]
+    }
+~~~
+
+# Actor and Control Properties {#actorprop}
+
+Each control has a set of supported properties documented in the "DALi
+UI Control Specification".
+
+Please refer to the above document for further information about specific
+controls.
+
+*/
diff --git a/docs/content/programming-guide/script-overview.md b/docs/content/programming-guide/script-overview.md
new file mode 100644 (file)
index 0000000..ff2dd06
--- /dev/null
@@ -0,0 +1,208 @@
+<!--
+/**-->
+
+# Scripting Overview  {#scriptoverview}
+
+DALi has JSON to support:
+- layouting
+- theme / styling
+- templated actor/control creation
+- basic actions
+- DALi GUI builder generates JSON files. Allows UI designers to create / modify the application look and feel.
+
+JSON support is built in to DALi.
+
+Files can be loaded inside any DALi application, or from command line using the launcher (part of dali-demo).
+
+~~~{.cpp}
+scripting.example hello-world.json
+~~~
+
+We currently have JSON example files held in dali-demo/resources/scripts
+  
+# JSON
+
+JSON file contains different sections:
+- **Templates** actor & control tree creation
+- **Styles** used to style actor & control trees
+- **Animations**
+- **Instances** of objects for path, renderTasks, frameBuffers
+- **Stage**. A list of actors / controls that can be added to the stage
+- **Constants**  (e.g. positions / colors, that can be references by other parts of the JSON file);
+- **Actions**
+  
+## Examples
+
+### JSON templates section
+  
+~~~{.json}
+
+    “templates”:
+    {
+      "name":"users",
+      "type":"Actor",
+      "parentOrigin":"TOP_CENTER",
+      "anchorPoint":"TOP_CENTER",
+      "size":"{DEFAULT_MENU_USER_SIZE}",
+      "colorMode":"USE_OWN_COLOR",
+      "actors":
+      [
+        {
+          "name":"usersBackground",
+          "type":"ImageView",
+          "parentOrigin":"CENTER",
+          "anchorPoint":"CENTER",
+          "size":"{DEFAULT_MENU_USER_SIZE}",
+          "colorMode":"USE_OWN_COLOR",
+          "image":{ "url":"{IMAGE_PATH}white-pixel.png" },
+          "color":"{DEFAULT_MENU_BACKGROUND_COLOR}"
+        },
+        {
+          "name":"icon",
+          "type":"ImageView",
+          "parentOrigin":"TOP_CENTER",
+          "anchorPoint":"TOP_CENTER",
+          "position":[0,41,1],
+          "image":{ "url":"{IMAGE_PATH}ico_man_nor.png" }
+        },
+      ]
+    },
+
+
+~~~
+
+#### C++ example
+
+~~~{.cpp}
+Builder builder = Builder::New();
+
+std::string jsonData = loadFile("my-app.json");
+
+builder.LoadFromString( jsonData );
+
+Actor userActorTree = builder.Create("users");
+~~~
+
+
+### JSON styles section
+
+~~~{.json}
+“styles”:
+  {
+    “live-tv-focus":
+    {
+      "actors":
+      {
+        "background":
+        {
+          "image":{ "filename":"{IMAGE_PATH}live_tv_background.png" },
+          "color":"{DEFAULT_MENU_ITEM_COLOR_1}"
+        },
+        "icon":
+        {
+          "image":{ "filename":"{IMAGE_PATH}icn_live_tv_foc.png" }
+        },
+        "label":
+        {
+          "colorAlpha":1,
+          "text":"<font size='20' weight='bold'><b>LIVE</b></font>"
+        }
+      }
+    },
+  }
+~~~
+
+#### C++ example
+
+~~~{.cpp}
+builder.ApplyStyle( "live-tv-focus", tvIcon );
+~~~
+
+### JSON animations section
+
+~~~{.json}
+"animations":
+  {
+    "animate-show":
+    {
+      "duration":0.5,
+      "properties":
+      [
+        {
+          "actor":"background",
+          "property":"positionX",
+          "value":30,
+          "alphaFunction":"EASE_IN_OUT"
+        },
+        {
+          "actor":"itemsBackground",
+          "property":"colorAlpha",
+          "value":0.85,
+          "timePeriod": {"delay": 0.25, "duration": 0.25 },
+          "alphaFunction":"EASE_IN_OUT"
+        },
+        {
+          "actor":"usersBackground",
+          "property":"colorAlpha",
+          "value":0.85,
+          "timePeriod": {"delay": 0.25, "duration": 0.25 },
+          "alphaFunction":"EASE_IN_OUT"
+        }
+      ]
+    },
+~~~
+
+#### C++ example
+
+~~~{.cpp}
+// C+++
+
+Animation anim = builder.createAnimation( "animate-show", propertyMap );
+~~~
+
+### JSON stage section
+
+~~~{.json}
+
+“stage": [{
+      "name":"simple-table",
+      "type":"TableView",
+      "backgroundColor": [0.5,0.5,0,1],
+      "parentOrigin": "CENTER",
+      "size":[400,500,1],
+      "rows": 4,
+      "columns":4,
+      "cellPadding": [10, 5],
+      "layoutAnimationDuration": 0.5,
+      "layoutRows": {  // set the height of the rows
+        "0": { "policy": "fixed", "value": 40 },
+        "1": { "policy": "relative", "value": 0.33 },
+        "2": { "policy": "fixed", "value": 120 }
+      },
+      "layoutColumns": { // set the widths of the columns
+        "1": { "policy": "fixed", "value": 150 },
+        "2": { "policy": "relative", "value": 0.35 },
+        "3": { "policy": "relative", "value": 0.15 }
+      },
+      "actors": [{
+          "name":"gallery-1",
+          "type":"ImageView",
+          "image": {
+            "url": "{DALI_IMAGE_DIR}gallery-large-1.jpg"
+          },
+          "customProperties": { // properties registered dynamically
+            "cellIndices": [0,0],// property to specify the top-left cell this child occupies
+            "rowSpan":4, // property to specify how many rows this child occupies, if not set, default value is 1
+            "columnSpan":1 // property to specify how many columns this child occupies
+            ....
+~~~
+
+#### C++ example
+
+~~~{.cpp}
+// add all actors under stage section to the root layer
+builder.AddActors( Stage::GetCurrent().GetRootLayer() );
+~~~
+
+
+*/
diff --git a/docs/content/programming-guide/signals-actions.md b/docs/content/programming-guide/signals-actions.md
new file mode 100644 (file)
index 0000000..89a4130
--- /dev/null
@@ -0,0 +1,21 @@
+<!--
+/**-->
+# Signals & Actions {#signals-actions}
+
+## Signals {#signals}
+
+Classes in DALi provide signals which are emitted whenever a certain action or event occurs.
+The application can connect to these signals using if it wishes to be informed of this occurrence.
+Standard C Style functions can be used to connect to these signals if no local data needs to be accessed, otherwise a class method can also be connected.
+
+Applications can manually disconnect from signals when required but DALi also provides safe signal disconnection.
+This means that when the connecting object is deleted, the signal is automatically disconnected.
+
+## Actions {#actions}
+
+Classes in DALi can perform a certain number of actions.
+For example, an animation provides the ability to "play" or "stop" using an action.
+DALi provides a framework which allows users to set up actions for their classes.
+This is particularly helpful when trying to invoke an action using scripting.
+
+*/
diff --git a/docs/content/programming-guide/stage-hand.md b/docs/content/programming-guide/stage-hand.md
new file mode 100644 (file)
index 0000000..8193c58
--- /dev/null
@@ -0,0 +1,167 @@
+<!--
+/**-->
+
+# Stagehand Visual Debugger for DALi {#stagehand}
+
+![ ](blocks.png)
+
+## Introduction
+
+Stagehand  is an open source tool that allows a developer to:
+
+- Connect to a DALi application running on:
+ - Tizen
+ - Ubuntu
+- View a wireframe of the current scene on top of a screen shot
+- Modify properties in the scene
+- Monitor performance of the application
+
+  
+Full source code is available from http://github.com/gamoeba/stagehand.git
+
+Stagehand is released under the Apache 2 licence.
+
+## Installing StageHand on Ubuntu
+
+http://www.gamoeba.com/stagehand/
+
+Install both files on the website. Start with the QT dependencies first.
+
+
+## How it works
+
+Stagehand connects to DALi via the network using a TCP/IP connection.
+  
+![ ](inner-workings.png)
+
+## Connecting Stagehand to your DALi application
+
+### Preparing DALi
+
+Stagehand connects to DALi via network using a TCP/IP connection, to enable this, your dali-adaptor RPM must be built with a configure option: `--enable-networklogging`
+
+Here is an example dali-adaptor configure line:
+~~~
+$ CXXFLAGS="-g -O0 -Wno-unused-local-typedefs" CXX="ccache g++" ./configure --prefix=$DESKTOP_PREFIX --enable-debug=yes --enable-profile=UBUNTU --enable-networklogging
+~~~
+
+Once this RPM is installed, you can run your DALi application and connect Stagehand to it.
+  
+
+### Network setup
+
+To enable network control on DALi, an environment variable must be set:
+
+~~~
+$ export DALI_NETWORK_CONTROL=1 to enable
+~~~
+Or run the application with the variable set.
+~~~
+$ DALI_NETWORK_CONTROL=1 /usr/apps/com.samsung.dali-demo/bin/dali-demo
+~~~
+
+Check what network port the application is using. It will be from port 3031 onwards.
+  
+If running DALi on desktop, just type netstat -tlnp. On Tizen log into the device and run netstat. E.g.
+~~~
+$ su
+
+$ netstat -tlpn
+~~~
+
+![ ](netstat.png)
+
+
+### Connecting with Stagehand
+
+Click the settings icons below
+  
+![ ](stagehand-settings.png)
+
+
+### Connecting to DALi running on Tizen
+
+Here we are connecting to a device running SDB
+  
+![ ](stagehand-tizen-connection.png)
+
+### Connect to DALi running on Desktop ( Ubuntu )
+  
+![ ](stagehand-ubuntu-connection.png)
+
+## Using Stagehand
+
+Click Refresh to load the current scene from the device.
+  
+![ ](stagehand-refesh.png)
+
+Click screen shot to get overlay current screen
+  
+![ ](stagehand-screenshot.png)
+
+To cycle through the actor hierarchy, keep clicking the same spot. Alternatively, select using the actor tree.
+
+  
+![ ](stagehand-mainscreen.png)
+
+
+Click the save icon to save the scene
+  
+![ ](stagehand-save.png)
+
+Zooming in and out
+  
+![ ](stagehand-zoom.png)
+
+Modifying the scene
+  
+![ ](stagehand-modify.png)
+
+## Performance monitoring
+
+To enable performance option. Edit
+  
+~/.stagehand/stagehand.ini
+  
+Set perfmode=on
+
+Restart application. Click performance
+  
+![ ](stagehand-performance.png)
+
+## Trouble shooting
+
+You can manually check the network is enabled on the DALi application using netcat.
+
+In the example below we are connecting to a Tizen device using SDB port forwarding.
+  
+After running nc localhost 3031 we type help
+  
+![ ](stagehand-netcat.png)
+
+
+## Tizen smack
+
+
+If you can't connect to a DALi application, but using netstat you can see a port is open.
+  
+Check the smack log for errors:
+~~~
+tail -f -n 10 /var/log/audit/audit.log | grep 'internet'
+~~~
+
+If it is being blocked, you temporarily enable it by editing:
+  
+~~~
+ /etc/smack/accesses2.d/ your-app-name
+
+then add: system::user_internet …..app-name rw
+~~~
+## Tizen Emulator connection problem
+
+
+Make sure  DALi application is run using launch_app:
+~~~
+launch_app [APP_ID] __AUL_SDK__ DEBUG __DLP_DEBUG_ARG__ :10003
+~~~
+
diff --git a/docs/content/programming-guide/text-auto-scrolling.md b/docs/content/programming-guide/text-auto-scrolling.md
new file mode 100644 (file)
index 0000000..bc37279
--- /dev/null
@@ -0,0 +1,61 @@
+<!--
+/**-->
+
+# Text auto scrolling {#text-auto-scrolling}
+
+## Overview
+
+Auto TextLabel scrolling enables the text to scroll within the control, it can be used if text exceeds the boundary of the control hence showing the full content.
+It will also scroll text that is smaller than the control and ensure the same bit of text is not visible at the same time, this gap can be configured to be larger.
+
+If the number of loops (repetitions) is not set then once triggered to start it will scroll until requested to stop.
+If loop count is set to 3 for example it will scroll the text 3 times.
+
+![ ](AutoScroll.gif)
+
+### Usage
+
+At version 1.1.35 auto scrolling is only supported in single line, multiline text will not scroll and Text should be BEGIN aligned.
+
+The ENABLE_AUTO_SCROLL property should be set to TRUE to enable scrolling.
+
+The scroll speed, gap and loop count can be set in the stylesheet or provided by Dali::Handle::SetProperty. See the description of each below.
+
+Once enabled it will start scrolling until the loop count is completed or the ENABLE_AUTO_SCROLL set to false, setting ENABLE_AUTO_SCROLL to false will let the
+text complete it's current scrolling loop then stop.
+
+## The additional properties below can be set to customize the scrolling behaviour
+
+#### AUTO_SCROLL_SPEED
+
+This controls the speed of the scrolling, the speed should be provided as pixels/second.
+
+#### AUTO_SCROLL_LOOP_COUNT
+
+This specifies how many times the text will complete a full scroll cycle.
+If not set then it will keep scrolling until ENABLE_AUTO_SCROLL is set to false.
+
+Setting ENABLE_AUTO_SCROLL to false will stop scrolling whilst still maintaining the original loop count value for when it is next started.
+
+#### AUTO_SCROLL_GAP
+
+This specifies the amount of whitespace to display before the scrolling text is shown again.
+
+This will be increased if the given value is not large enough to prevent the same bit of text being visible at two locations in the control.
+
+Provide the distance in pixels.
+
+### Scroll Direction
+
+The scroll direction is chosen automatically with the following rules:
+
+If the text is single-lined it will scroll left when the text is Left to Right (LTR) or scroll right if text is Right to Left (RTL).
+
+If the text is multi-lined it will scroll upwards. ( Not supported at 1.1.35 )
+
+### Text Label Scrolling Properties
+
+The properties used by TextLabel for Auto Scrolling are listed [here](@ref TextLabelProperties)
+
+
+*/
diff --git a/docs/content/programming-guide/text-editor.md b/docs/content/programming-guide/text-editor.md
new file mode 100644 (file)
index 0000000..f038054
--- /dev/null
@@ -0,0 +1,117 @@
+<!--
+/**-->
+
+# Text Editor {#text-editor}
+
+## Overview
+
+The Dali::Toolkit::TextEditor is a control which provides a multi-line editable text.
+
+### Basic usage
+
+Add the text-editor to the stage.
+
+~~~{.cpp}
+// C++
+
+TextEditor editor = TextEditor::New();
+
+Stage::GetCurrent().Add( editor );
+~~~
+
+When the TextEditor is tapped, it will automatically gain the keyboard focus. Key events will then result in text being inserted.
+After text has been entered, it can be retrieved from the TEXT property.
+
+~~~{.cpp}
+// C++
+
+Property::Value editorText = editor.GetProperty( TextEditor::Property::TEXT );
+std::cout << "Received text: " << editorText.Get< std::string >() << std::endl;
+~~~
+
+### Font Selection
+
+By default TextEditor will automatically select a suitable font from the platform. However, a different font could be selected. See the [Font Selection](@ref font-selection) section for more details.
+
+### Mark-up Style
+
+Mark-up tags can be used to change the style of the text. See the [Mark-up Style](@ref markup-style) section for more details.
+
+### Input Style
+
+The input style can be changed through the control properties.See the [Input Style](@ref input-style) section for more details.
+
+### Text Alignment
+
+TextEditor displays a multi-line of text, which will scroll if there is not enough room for the text displayed.
+If there is enough room, then the text can be aligned horizontally to the beginning, end, or center of the available area:
+
+~~~{.cpp}
+// C++
+
+editor.SetProperty( TextEditor::Property::HORIZONTAL_ALIGNMENT, "BEGIN" ); // "CENTER" or "END"
+~~~
+
+### Copy and Paste  (Selection)
+
+Text can be selected by a long press or double tapping it. See the [Copy and Paste](@ref copy-n-paste) section for more details.
+
+### TextEditor Decorations
+
+#### Color
+
+To change the color of the text, the recommended way is to use the TEXT_COLOR property.
+
+~~~{.cpp}
+// C++
+editor.SetProperty( TextEditor::Property::TEXT_COLOR, Color::CYAN );
+~~~
+
+### TextEditor Properties
+
+ Name (JSON)                       |  Name (C++)                          |  Type        | Writable     | Animatable
+-----------------------------------|--------------------------------------|--------------|--------------|-----------
+ renderingBackend                  | RENDERING_BACKEND                    |  INTEGER     | O            | X
+ text                              | TEXT                                 |  STRING      | O            | X
+ textColor                         | TEXT_COLOR                           |  VECTOR4     | O            | X
+ fontFamily                        | FONT_FAMILY                          |  STRING      | O            | X
+ fontStyle                         | FONT_STYLE                           |  STRING      | O            | X
+ pointSize                         | POINT_SIZE                           |  FLOAT       | O            | X
+ horizontalAlignment               | HORIZONTAL_ALIGNMENT                 |  STRING      | O            | X
+ verticalAlignment                 | VERTICAL_ALIGNMENT                   |  STRING      | O            | X
+ scrollThreshold                   | SCROLL_THRESHOLD                     |  FLOAT       | O            | X
+ scrollSpeed                       | SCROLL_SPEED                         |  FLOAT       | O            | X
+ primaryCursorColor                | PRIMARY_CURSOR_COLOR                 |  VECTOR4     | O            | X
+ secondaryCursorColor              | SECONDARY_CURSOR_COLOR               |  VECTOR4     | O            | X
+ enableCursorBlink                 | ENABLE_CURSOR_BLINK                  |  BOOLEAN     | O            | X
+ cursorBlinkInterval               | CURSOR_BLINK_INTERVAL                |  FLOAT       | O            | X
+ cursorBlinkDuration               | CURSOR_BLINK_DURATION                |  FLOAT       | O            | X
+ cursorWidth                       | CURSOR_WIDTH                         |  INTEGER     | O            | X
+ grabHandleImage                   | GRAB_HANDLE_IMAGE                    |  STRING      | O            | X
+ grabHandlePressedImage            | GRAB_HANDLE_PRESSED_IMAGE            |  STRING      | O            | X
+ selectionHandleImageLeft          | SELECTION_HANDLE_IMAGE_LEFT          |  STRING      | O            | X
+ selectionHandleImageRight         | SELECTION_HANDLE_IMAGE_RIGHT         |  STRING      | O            | X
+ selectionHandlePressedImageLeft   | SELECTION_HANDLE_PRESSED_IMAGE_LEFT  |  STRING      | O            | X
+ selectionHandlePressedImageRight  | SELECTION_HANDLE_PRESSED_IMAGE_RIGHT |  STRING      | O            | X
+ selectionHandleMarkerImageLeft    | SELECTION_HANDLE_MARKER_IMAGE_LEFT   |  MAP         | O            | X
+ selectionHandleMarkerImageRight   | SELECTION_HANDLE_MARKER_IMAGE_RIGHT  |  MAP         | O            | X
+ selectionHighlightColor           | SELECTION_HIGHLIGHT_COLOR            |  VECTOR4     | O            | X
+ decorationBoundingBox             | DECORATION_BOUNDING_BOX              |  RECTANGLE   | O            | X
+ enableMarkup                      | ENABLE_MARKUP                        |  BOOLEAN     | O            | X
+ inputColor                        | INPUT_COLOR                          |  VECTOR4     | O            | X
+ inputFontFamily                   | INPUT_FONT_FAMILY                    |  STRING      | O            | X
+ inputFontStyle                    | INPUT_FONT_STYLE                     |  STRING      | O            | X
+ inputPointSize                    | INPUT_POINT_SIZE                     |  FLOAT       | O            | X
+ lineSpacing                       | LINE_SPACING                         |  FLOAT       | O            | X
+ inputLineSpacing                  | INPUT_LINE_SPACING                   |  FLOAT       | O            | X
+ underline                         | UNDERLINE                            |  STRING      | O            | X
+ inputUnderline                    | INPUT_UNDERLINE                      |  STRING      | O            | X
+ shadow                            | SHADOW                               |  STRING      | O            | X
+ inputShadow                       | INPUT_SHADOW                         |  STRING      | O            | X
+ emboss                            | EMBOSS                               |  STRING      | O            | X
+ inputEmboss                       | INPUT_EMBOSS                         |  STRING      | O            | X
+ outline                           | OUTLINE                              |  STRING      | O            | X
+ inputOutline                      | INPUT_OUTLINE                        |  STRING      | O            | X
+
+
+*/
diff --git a/docs/content/programming-guide/text-field.md b/docs/content/programming-guide/text-field.md
new file mode 100644 (file)
index 0000000..3a3188f
--- /dev/null
@@ -0,0 +1,129 @@
+<!--
+/**-->
+
+# Text Field {#text-field}
+
+## Overview
+
+The Dali::Toolkit::TextField is a control which provides a single-line editable text field.
+
+### Basic usage
+
+Before any text has been entered, the TextField can display some placeholder text.
+An alternative placeholder can be displayed when the TextField has keyboard focus.
+For example a TextField used to enter a user name could initially show "Unknown Name", and then show "Enter Name." when the cursor is shown.
+
+Note *CR+LF* new line characters are replaced by a *LF* one.
+
+~~~{.cpp}
+// C++
+
+TextField field = TextField::New();
+field.SetProperty( TextField::Property::PLACEHOLDER_TEXT, "Unnamed Name" );
+field.SetProperty( TextField::Property::PLACEHOLDER_TEXT_FOCUSED, "Enter Name." );
+
+Stage::GetCurrent().Add( field );
+~~~
+
+When the TextField is tapped, it will automatically gain the keyboard focus. Key events will then result in text being inserted, and the placeholder text will be removed.
+After text has been entered, it can be retrieved from the TEXT property.
+
+~~~{.cpp}
+// C++
+
+Property::Value fieldText = field.GetProperty( TextField::Property::TEXT );
+std::cout << "Received text: " << fieldText.Get< std::string >() << std::endl;
+~~~
+
+### Font Selection
+
+By default TextField will automatically select a suitable font from the platform. However, a different font could be selected. See the [Font Selection](@ref font-selection) section for more details.
+
+### Mark-up Style
+
+Mark-up tags can be used to change the style of the text. See the [Mark-up Style](@ref markup-style) section for more details.
+
+### Input Style
+
+The input style can be changed through the control properties. See the [Input Style](@ref input-style) section for more details.
+
+### Text Alignment
+
+TextField displays a single-line of text, which will scroll if there is not enough room for the text displayed.
+If there is enough room, then the text can be aligned horizontally to the beginning, end, or center of the available area:
+
+~~~{.cpp}
+// C++
+
+field.SetProperty( TextField::Property::HORIZONTAL_ALIGNMENT, "BEGIN" ); // "CENTER" or "END"
+~~~
+
+### Copy and Paste  (Selection)
+
+Text can be selected by a long press or double tapping it. See the [Copy and Paste](@ref copy-n-paste) section for more details.
+
+### TextField Decorations
+
+#### Color
+
+To change the color of the text, the recommended way is to use the TEXT_COLOR property.
+An alternative color can be used for placeholder text by setting PLACEHOLDER_TEXT_COLOR.
+Note that unlike the Actor::COLOR property, these properties will not affect child Actors added to the TextField.
+
+~~~{.cpp}
+// C++
+field.SetProperty( TextField::Property::TEXT_COLOR, Color::CYAN );
+field.SetProperty( TextField::Property::PLACEHOLDER_TEXT_COLOR, Color::BLACK );
+~~~
+
+### Text Field Properties
+
+ Name (JSON)                       |  Name (C++)                          |  Type        | Writable     | Animatable
+-----------------------------------|--------------------------------------|--------------|--------------|-----------
+ renderingBackend                  | RENDERING_BACKEND                    |  INTEGER     | O            | X
+ text                              | TEXT                                 |  STRING      | O            | X
+ placeholderText                   | PLACEHOLDER_TEXT                     |  STRING      | O            | X
+ placeholderTextFocused            | PLACEHOLDER_TEXT_FOCUSED             |  STRING      | O            | X
+ fontFamily                        | FONT_FAMILY                          |  STRING      | O            | X
+ fontStyle                         | FONT_STYLE                           |  STRING      | O            | X
+ pointSize                         | POINT_SIZE                           |  FLOAT       | O            | X
+ maxLength                         | MAX_LENGTH                           |  INTEGER     | O            | X
+ exceedPolicy                      | EXCEED_POLICY                        |  INTEGER     | O            | X
+ horizontalAlignment               | HORIZONTAL_ALIGNMENT                 |  STRING      | O            | X
+ verticalAlignment                 | VERTICAL_ALIGNMENT                   |  STRING      | O            | X
+ textColor                         | TEXT_COLOR                           |  VECTOR4     | O            | X
+ placeholderTextColor              | PLACEHOLDER_TEXT_COLOR               |  VECTOR4     | O            | X
+ primaryCursorColor                | PRIMARY_CURSOR_COLOR                 |  VECTOR4     | O            | X
+ secondaryCursorColor              | SECONDARY_CURSOR_COLOR               |  VECTOR4     | O            | X
+ enableCursorBlink                 | ENABLE_CURSOR_BLINK                  |  BOOLEAN     | O            | X
+ cursorBlinkInterval               | CURSOR_BLINK_INTERVAL                |  FLOAT       | O            | X
+ cursorBlinkDuration               | CURSOR_BLINK_DURATION                |  FLOAT       | O            | X
+ cursorWidth                       | CURSOR_WIDTH                         |  INTEGER     | O            | X
+ grabHandleImage                   | GRAB_HANDLE_IMAGE                    |  STRING      | O            | X
+ grabHandlePressedImage            | GRAB_HANDLE_PRESSED_IMAGE            |  STRING      | O            | X
+ scrollThreshold                   | SCROLL_THRESHOLD                     |  FLOAT       | O            | X
+ scrollSpeed                       | SCROLL_SPEED                         |  FLOAT       | O            | X
+ selectionHandleImageLeft          | SELECTION_HANDLE_IMAGE_LEFT          |  STRING      | O            | X
+ selectionHandleImageRight         | SELECTION_HANDLE_IMAGE_RIGHT         |  STRING      | O            | X
+ selectionHandlePressedImageLeft   | SELECTION_HANDLE_PRESSED_IMAGE_LEFT  |  STRING      | O            | X
+ selectionHandlePressedImageRight  | SELECTION_HANDLE_PRESSED_IMAGE_RIGHT |  STRING      | O            | X
+ selectionHandleMarkerImageLeft    | SELECTION_HANDLE_MARKER_IMAGE_LEFT   |  MAP         | O            | X
+ selectionHandleMarkerImageRight   | SELECTION_HANDLE_MARKER_IMAGE_RIGHT  |  MAP         | O            | X
+ selectionHighlightColor           | SELECTION_HIGHLIGHT_COLOR            |  VECTOR4     | O            | X
+ decorationBoundingBox             | DECORATION_BOUNDING_BOX              |  RECTANGLE   | O            | X
+ inputMethodSettings               | INPUT_METHOD_SETTINGS                |  MAP         | O            | X
+ inputColor                        | INPUT_COLOR                          |  VECTOR4     | O            | X
+ enableMarkup                      | ENABLE_MARKUP                        |  BOOLEAN     | O            | X
+ inputFontFamily                   | INPUT_FONT_FAMILY                    |  STRING      | O            | X
+ inputFontStyle                    | INPUT_FONT_STYLE                     |  STRING      | O            | X
+ inputPointSize                    | INPUT_POINT_SIZE                     |  FLOAT       | O            | X
+ underline                         | UNDERLINE                            |  STRING      | O            | X
+ inputUnderline                    | INPUT_UNDERLINE                      |  STRING      | O            | X
+ shadow                            | SHADOW                               |  STRING      | O            | X
+ inputShadow                       | INPUT_SHADOW                         |  STRING      | O            | X
+ emboss                            | EMBOSS                               |  STRING      | O            | X
+ inputEmboss                       | INPUT_EMBOSS                         |  STRING      | O            | X
+ outline                           | OUTLINE                              |  STRING      | O            | X
+ inputOutline                      | INPUT_OUTLINE                        |  STRING      | O            | X
+
+*/
diff --git a/docs/content/programming-guide/text-label.md b/docs/content/programming-guide/text-label.md
new file mode 100644 (file)
index 0000000..4629482
--- /dev/null
@@ -0,0 +1,268 @@
+<!--
+/**-->
+
+# Text Label {#text-label}
+
+## Overview
+
+The Dali::Toolkit::TextLabel is a Dali::Toolkit::Control which renders a short text string.  
+Text labels are lightweight, non-editable and do not respond to user input.
+
+### Basic usage
+
+To display a TextLabel the TEXT property must be set using a UTF-8 string.
+
+Note *CR+LF* new line characters are replaced by a *LF* one.
+
+~~~{.cpp}
+// C++
+
+TextLabel label = TextLabel::New();
+label.SetProperty( TextLabel::Property::TEXT, "Hello World" );
+label.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+Stage::GetCurrent().Add( label );
+~~~
+
+The label must also be added to the stage, or to an actor which is on the stage.  
+The position of the label on-screen is dependent on the parentOrigin and anchorPoint properties.  
+
+|  |  |
+|--|--|
+| (ParentOrigin::TOP_LEFT, AnchorPoint::TOP_LEFT) | ![ ](TextLabelTopLeft.png)   |
+
+### Font Selection
+
+By default TextLabel will automatically select a suitable font from the platform. However, a different font could be selected. See the [Font Selection](@ref font-selection) section for more details.
+
+### Mark-up Style
+
+Mark-up tags can be used to change the style of the text. See the [Mark-up Style](@ref markup-style) section for more details.
+
+### Text Alignment
+
+Wrapping can be enabled using the MULTI_LINE property:
+
+~~~{.cpp}
+// C++
+
+label.SetProperty( TextLabel::Property::MULTI_LINE, true );
+~~~
+
+The text can be either aligned horizontally to the beginning, end, or center of the available area:
+
+~~~{.cpp}
+// C++
+
+label.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "BEGIN" ); // "CENTER" or "END"
+~~~
+
+|  |  |
+|--|--|
+| Here is the "BEGIN" alignment shown for left-to-right (Latin)   |  right-to-left (Arabic) scripts |
+| ![ ](LatinBegin.png) | ![ ](ArabicBegin.png) |
+| Here is the "CENTER" alignment shown for left-to-right (Latin)  | right-to-left (Arabic) scripts:|
+| ![ ](LatinCenter.png) | ![ ](ArabicCenter.png) |
+| Here is the "END" alignment shown for left-to-right (Latin)  | right-to-left (Arabic) scripts:|
+| ![ ](LatinEnd.png) | ![ ](ArabicEnd.png) |
+
+
+
+The text's alignment and order can be modified to match the direction of the system language.
+
+If the MATCH_SYSTEM_LANGUAGE_DIRECTION property is set to true then the direction of the text is ignored, instead the text is aligned and ordered as the system default language.
+
+~~~{.cpp}
+// C++
+
+label.SetProperty( Toolkit::DevelTextLabel::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION, true );
+~~~
+
+|  |  |
+|--|--|
+| Current system language direction left-to-right | |
+| MATCH_SYSTEM_LANGUAGE_DIRECTION set to TRUE. | MATCH_SYSTEM_LANGUAGE_DIRECTION set to FALSE (default). |
+| BEGIN alignment | BEGIN alignment  |
+| ![ ](HelloWorld-System-BEGIN.png) | ![ ](HelloWorld-Default-BEGIN.png) |
+| CENTER alignment | CENTER alignment  |
+| ![ ](HelloWorld-System-CENTER.png) | ![ ](HelloWorld-Default-CENTER.png) |
+| END alignment | END alignment  |
+| ![ ](HelloWorld-System-END.png) | ![ ](HelloWorld-Default-END.png) |
+
+
+|  |  |
+|--|--|
+| Current system language direction left-to-right | Current system language direction right-to-left |
+| ![ ](LTR_order.png)  | ![ ](RTL_order.png) |
+
+
+The examples above assume that the TextLabel size greater than the minimum required.  
+The next section provides details about the other size related options.
+
+## Negotiating size
+
+\link size-negotiation Size negotiation \endlink is a layouting feature supported by UI controls such as TextLabel.
+  
+There are several resize policies which are commonly used with TextLabels.
+  
+The following examples show TextLabels actual size by setting a colored background, whilst the black area represents the size of the parent control:  
+
+### Using natural size
+
+With a "natural" size TextLabel will be large enough to display the text without wrapping, and will not have extra space to align the text within.  
+Therefore in this example the same result would be displayed, regardless of the alignment or multi-line properties.  
+
+~~~{.cpp}
+// C++
+
+TextLabel label = TextLabel::New( "Hello World" );
+label.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+label.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS );
+label.SetBackgroundColor( Color::BLUE );
+Stage::GetCurrent().Add( label );
+~~~
+
+
+ ![ ](HelloWorld-NaturalSize.png)
+
+
+### Height-for-width negotiation
+
+To layout text labels vertically, a fixed (maximum) width should be provided by the parent control.  
+Each TextLabel will then report a desired height for the given width.  
+Here is an example of this behavior using TableView as the parent:
+
+~~~{.cpp}
+// C++
+TableView parent = TableView::New( 3, 1 );
+parent.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
+parent.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
+parent.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+Stage::GetCurrent().Add( parent );
+
+TextLabel label = TextLabel::New( "Hello World" );
+label.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+label.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
+label.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
+label.SetBackgroundColor( Color::BLUE );
+parent.AddChild( label, TableView::CellPosition( 0, 0 ) );
+parent.SetFitHeight( 0 );
+
+label = TextLabel::New( "A Quick Brown Fox Jumps Over The Lazy Dog" );
+label.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+label.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
+label.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
+label.SetBackgroundColor( Color::GREEN );
+label.SetProperty( TextLabel::Property::MULTI_LINE, true );
+parent.AddChild( label, TableView::CellPosition( 1, 0 ) );
+parent.SetFitHeight( 1 );
+
+label = TextLabel::New( "لإعادة ترتيب الشاشات، يجب تغيير نوع العرض إلى شبكة قابلة للتخصيص." );
+label.SetAnchorPoint( AnchorPoint::TOP_LEFT );
+label.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
+label.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
+label.SetBackgroundColor( Color::BLUE );
+label.SetProperty( TextLabel::Property::MULTI_LINE, true );
+parent.AddChild( label, TableView::CellPosition( 2, 0 ) );
+parent.SetFitHeight( 2 );
+~~~
+
+ ![ ](HelloWorld-HeightForWidth.png)
+
+
+Note that the "Hello World" text label (above) has been given the full width, not the natural width.
+
+### TextLabel Decorations
+
+#### Color
+
+To change the color of the text, the recommended way is to use the TEXT_COLOR property.  
+Note that unlike the Actor::COLOR property, this will not affect child Actors added to the TextLabel.  
+
+~~~{.cpp}
+// C++
+label.SetProperty( TextLabel::Property::TEXT, "Red Text" );
+label.SetProperty( TextLabel::Property::TEXT_COLOR, Color::RED );
+~~~
+
+ ![ ](RedText.png)
+
+#### Drop Shadow
+
+To add a drop-shadow to the text, simply set the SHADOW property. Shadow parameters can be set through a json string or through a property map, see the examples below.
+
+~~~{.cpp}
+ // C++
+
+stage.SetBackgroundColor( Color::BLUE );
+
+label1.SetProperty( TextLabel::Property::TEXT, "Plain Text" );
+
+label2.SetProperty( TextLabel::Property::TEXT, "Text with Shadow" );
+label2.SetProperty( TextLabel::Property::SHADOW, "{\"offset\":\"1 1\",\"color\":\"black\"}" );
+
+label3.SetProperty( TextLabel::Property::TEXT, "Text with Bigger Shadow" );
+label3.SetProperty( TextLabel::Property::SHADOW, "{\"offset\":\"2 2\",\"color\":\"black\"}" );
+
+label4.SetProperty( TextLabel::Property::TEXT, "Text with Color Soft Shadow" );
+
+Property::Map shadow;
+shadow.Insert( "offset", Vector2(1.0f, 1.0f) );
+shadow.Insert( "color", Color::RED );
+shadow.Insert( "blurRadius", 2.0f ); // A value of 0 indicates no blur. The bigger the radius, the more blurry.
+label4.SetProperty( TextLabel::Property::SHADOW, shadow );
+
+~~~
+
+![ ](PlainText.png)
+
+
+![ ](TextWithShadow.png)
+
+![ ](TextWithBiggerShadow.png)
+
+
+![ ](TextWithColorShadow.png)
+
+
+#### Underline
+
+The text can be underlined by setting UNDERLINE_ENABLED.  
+The color can also be selected using the UNDERLINE_COLOR property.  
+
+~~~{.cpp}
+// C++
+label1.SetProperty( TextLabel::Property::TEXT, "Text with Underline" );
+label1.SetProperty( TextLabel::Property::UNDERLINE_ENABLED, true );
+
+label2.SetProperty( TextLabel::Property::TEXT, "Text with Color Underline" );
+label2.SetProperty( TextLabel::Property::UNDERLINE_ENABLED, true );
+label2.SetProperty( TextLabel::Property::UNDERLINE_COLOR, Color::GREEN );
+~~~
+
+![ ](TextWithUnderline.png)
+
+
+![ ](TextWithColorUnderline.png)
+
+By default the underline height will be taken from the font metrics, however this can be overridden using the UNDERLINE_HEIGHT property:
+
+~~~{.cpp}
+// C++
+
+label1.SetProperty( TextLabel::Property::UNDERLINE_HEIGHT, 1.0f );
+~~~
+
+![ ](TextWith1pxUnderline.png)
+
+### Auto Scrolling
+
+![ ](AutoScroll.gif)
+
+The \link text-auto-scrolling Auto text scrolling \endlink section details how to scroll text automatically.
+
+### Text Label Properties
+
+The properties used by TextLabel are listed [here](@ref TextLabelProperties)
+
+
+*/
diff --git a/docs/content/programming-guide/visuals.md b/docs/content/programming-guide/visuals.md
new file mode 100644 (file)
index 0000000..3a58a6d
--- /dev/null
@@ -0,0 +1,672 @@
+<!--
+/**-->
+
+# Visuals {#visuals}
+
+Visuals provide reusable rendering logic which can be used by all controls.
+This means that custom controls do not have to create actors, they can just reuse the existing visuals which increases performance.
+Visuals reuse geometry, shaders etc. across controls and manages the renderer and texture to exist only when the control is on-stage.
+Additionally, they respond to actor size and color change, while also providing clipping at the renderer level.
+DALi provides the following visuals:
+ + [Color](@ref color-visual)
+ + [Gradient](@ref gradient-visual)
+ + [Image](@ref image-visuals)
+ + [Border](@ref border-visual)
+ + [Mesh](@ref mesh-visual)
+ + [Primitive](@ref primitive-visual)
+ + [Text](@ref text-visual)
+ + [Wireframe](@ref wireframe-visual)
+Controls can provide properties that allow users to specify the visual type ( visualType ).
+Setting visual properties are done via a property map.
+The **visualType** field in the property map specifies the visual to use/create.
+This is required to avoid ambiguity as multiple visuals may be capable of rendering the same contents.
+
+Visuals have a **transform** field in the property map to allow layouting within a control. If this field is not set, then the visual defaults to filling the control. The **transform** field has a property map with the following keys:
+
+| Property                                                       | String       | Type              | Required | Description                                                                                 |
+|----------------------------------------------------------------|--------------|:-----------------:|:--------:|---------------------------------------------------------------------------------------------|
+| Dali::Toolkit::Visual::Transform::Property::OFFSET        | offset       | VECTOR2           | No       | The offset of the visual.                                                                   |
+| Dali::Toolkit::Visual::Transform::Property::SIZE          | size         | VECTOR2           | No       | The size of the visual.                                                                     |
+| Dali::Toolkit::Visual::Transform::Property::OFFSET_POLICY | offsetPolicy | VECTOR4           | No       | Whether the offset components are Relative or Absolute [More info](@ref offset-size-policy) |
+| Dali::Toolkit::Visual::Transform::Property::SIZE_POLICY   | sizePolicy   | VECTOR4           | No       | Whether the size components are Relative or Absolute [More info](@ref offset-size-policy)   |
+| Dali::Toolkit::Visual::Transform::Property::ORIGIN        | origin       | INTEGER or STRING | No       | The origin of the visual within the control's area. [More info](@ref align-type)            |
+| Dali::Toolkit::Visual::Transform::Property::ANCHOR_POINT  | anchorPoint  | INTEGER or STRING | No       | The anchor point of the visual. [More info](@ref align-type)                                |
+
+## Offset & Size Policy  {#offset-size-policy}
+
+The offset and size policies can be either Relative or Absolute.
+
+| Enumeration                                             | String   | Description                                                                   |
+|---------------------------------------------------------|----------|-------------------------------------------------------------------------------|
+| Dali::Toolkit::Visual::Transform::Policy::RELATIVE | RELATIVE | *Default*. The size or offset value represents a ratio of the control's size  |
+| Dali::Toolkit::Visual::Transform::Policy::ABSOLUTE | ABSOLUTE | The size or offset value represents world units (pixels)                      |
+
+For example, an offsetPolicy of [ RELATIVE, RELATIVE ], a sizePolicy of [ ABSOLUTE, ABSOLUTE ], an offset of ( 0, 0.25 ) and a size of ( 20, 20 ) means the visual will be 20 pixels by 20 pixels in size, positioned 25% above the center of the control.
+
+## Alignment  {#align-type}
+| Enumeration                                          | String  | Description                                                                                          |
+|------------------------------------------------------|---------|------------------------------------------------------------------------------------------------------|
+| Dali::Toolkit::Align::TOP_BEGIN | TOP_BEGIN | Aligns to the top of the vertical axis and the beginning of the horizontal axis (The left or right edge in Left-To-Right or Right-to-Left layouts, respectively) |
+| Dali::Toolkit::Align::TOP_CENTER | TOP_CENTER | Aligns to the top of the vertical axis and the center of the horizontal axis |
+| Dali::Toolkit::Align::TOP_END | TOP_END | Aligns to the top of the vertical axis and end of the horizontal axis (The right or left edge in Left-To-Right or Right-to-Left layouts, respectively) |
+| Dali::Toolkit::Align::CENTER_BEGIN | CENTER_BEGIN | Aligns to the center of the vertical axis and the beginning of the horizontal axis|
+| Dali::Toolkit::Align::CENTER | CENTER | Aligns to the center of the control |
+| Dali::Toolkit::Align::CENTER_END | CENTER_END | Aligns to the center of the vertical axis and end of the horizontal axis |
+| Dali::Toolkit::Align::BOTTOM_BEGIN | BOTTOM_BEGIN | Aligns to the bottom of the vertical axis and the beginning of the horizontal axis|
+| Dali::Toolkit::Align::BOTTOM_CENTER | BOTTOM_CENTER | Aligns to the bottom of the vertical axis and the center of the horizontal axis
+| Dali::Toolkit::Align::BOTTOM_END | BOTTOM_END | Aligns to the bottom of the vertical axis and end of the horizontal axis |
+Visuals also have a custom **shader** property. Whilst it's possible to change the shader, please note that some visuals rely on the vertex shader to perform certain functions. For example, the NPatch visual uses the vertex shader to perform the stretching. The **shader** property is a Property::Map with the following keys:
+
+
+| Property                                                  | String         | Type                       | Required | Description                                                                                |
+|-----------------------------------------------------------|----------------|:--------------------------:|:--------:|--------------------------------------------------------------------------------------------|
+| Dali::Toolkit::Visual::Shader::Property::VERTEX_SHADER    | vertexShader   | STRING or ARRAY of STRING  | No       | The vertex shader code. Can use an array of strings to split shader over multiple lines.   |
+| Dali::Toolkit::Visual::Shader::Property::FRAGMENT_SHADER  | fragmentShader | STRING or ARRAY of STRING  | No       | The fragment shader code. Can use an array of strings to split shader over multiple lines. |
+| Dali::Toolkit::Visual::Shader::Property::SUBDIVIDE_GRID_X | subdivideGridX | INTEGER                    | No       | How to subdivide the grid along the X-Axis. Defaults to 1.                                 |
+| Dali::Toolkit::Visual::Shader::Property::SUBDIVIDE_GRID_Y | subdivideGridY | INTEGER                    | No       | How to subdivide the grid along the Y-Axis. Defaults to 1.                                 |
+| Dali::Toolkit::Visual::Shader::Property::HINTS            | hints          | INTEGER or ARRAY of STRING | No       | Shader hints bitmask [More info](@ref shader-hints)                                        |
+
+## Shader hints {#shader-hints}
+
+This is a bitmask giving hints to the renderer about what the shader does, in order to help the rendering system optimise it's rendering.
+
+The bitmask can have the following values:
+
+| Value | Description |
+|-------------------------------------------|----------------------------------------|
+| Dali::Shader::Hint::NONE | No hints |
+| Dali::Shader::Hint::OUTPUT_IS_TRANSPARENT | Might generate transparent alpha from opaque inputs |
+| Dali::Shader::Hint::MODIFIES_GEOMETRY | Might change the position of vertices - this disables culling optimizations |
+
+
+See also Dali::Shader::Hint::Value enumeration.
+
+___________________________________________________________________________________________________
+
+## Color Visual {#color-visual}
+
+Renders a color to the visual's quad geometry.
+![ ](visuals/color-visual.png)
+
+### Properties Supported
+
+**VisualType:** Dali::Toolkit::Visual::COLOR, "COLOR"
+
+| Property                                        | String   | Type    | Required | Description               |
+|-------------------------------------------------|----------|:-------:|:--------:|---------------------------|
+| Dali::Toolkit::ColorVisual::Property::MIX_COLOR | mixColor | VECTOR4 | Yes      | The color required. |
+
+### Usage
+
+~~~{.cpp}
+// C++
+Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
+
+Dali::Property::Map map;
+map[ Visual::Property::TYPE ] = Dali::Toolkit::Visual::COLOR;
+map[ ColorVisual::Property::MIX_COLOR ] = Color::RED;
+
+control.SetProperty( Control::Property::BACKGROUND, map );
+~~~
+___________________________________________________________________________________________________
+
+## Gradient Visual {#gradient-visual}
+
+Renders a smooth transition of colors to the visual's quad geometry.
+Both Linear and Radial gradients are supported.
+
+| Linear | Radial |
+|--------|--------|
+| ![ ](visuals/linear-gradient-visual.png) | ![ ](visuals/radial-gradient-visual.png) |
+
+### Properties Supported
+
+**VisualType:** Dali::Toolkit::Visual::GRADIENT, "GRADIENT"
+
+| Property                                                | String        | Type              | Required   | Description                                                                                                      |
+|---------------------------------------------------------|---------------|:-----------------:|:----------:|------------------------------------------------------------------------------------------------------------------|
+| Dali::Toolkit::GradientVisual::Property::START_POSITION | startPosition | VECTOR2           | For Linear | The start position of the linear gradient.                                                                       |
+| Dali::Toolkit::GradientVisual::Property::END_POSITION   | endPosition   | VECTOR2           | For Linear | The end position of the linear gradient.                                                                         |
+| Dali::Toolkit::GradientVisual::Property::CENTER         | center        | VECTOR2           | For Radial | The center point of the gradient.                                                                                |
+| Dali::Toolkit::GradientVisual::Property::RADIUS         | radius        | FLOAT             | For Radial | The size of the radius.                                                                                          |
+| Dali::Toolkit::GradientVisual::Property::STOP_OFFSET    | stopOffset    | ARRAY of FLOAT    | No         | All the stop offsets. If not supplied default is 0.0 and 1.0.                                                    |
+| Dali::Toolkit::GradientVisual::Property::STOP_COLOR     | stopColor     | ARRAY of VECTOR4  | Yes        | The color at those stop offsets. At least 2 required to show a gradient.                                         |
+| Dali::Toolkit::GradientVisual::Property::UNITS          | units         | INTEGER or STRING | No         | Defines the coordinate system. [More info](@ref gradient-visual-units)                                           |
+| Dali::Toolkit::GradientVisual::Property::SPREAD_METHOD  | spreadMethod  | INTEGER or STRING | No         | Indicates what happens if gradient starts or ends inside bounds. [More info](@ref gradient-visual-spread-method) |
+
+If the *stopOffset* and *stopColor* arrays do not have the same number of elements, then the minimum of the two is used as the stop points.
+
+### Units {#gradient-visual-units}
+
+Defines the coordinate system for the attributes:
+ + Start (x1, y1) and End (x2 and y2) points of a line if using a linear gradient.
+ + Center point (cx, cy) and radius (r) of a circle if using a radial gradient.
+| Enumeration                                               | String              | Description                                                                                                                                    |
+|-----------------------------------------------------------|---------------------|------------------------------------------------------------------------------------------------------------------------------------------------|
+| Dali::Toolkit::GradientVisual::Units::OBJECT_BOUNDING_BOX | OBJECT_BOUNDING_BOX | *Default*. Uses the normals for the start, end & center points, i.e. top-left is (-0.5, -0.5) and bottom-right is (0.5, 0.5).                  |
+| Dali::Toolkit::GradientVisual::Units::USER_SPACE          | USER_SPACE          | Uses the user coordinates for the start, end & center points, i.e. in a 200 by 200 control, top-left is (0, 0) and bottom-right is (200, 200). |
+
+### Spread Method {#gradient-visual-spread-method}
+
+Indicates what happens if the gradient starts or ends inside the bounds of the target rectangle.
+
+| Enumeration                                          | String  | Description                                                                                          |
+|------------------------------------------------------|---------|------------------------------------------------------------------------------------------------------|
+| Dali::Toolkit::GradientVisual::SpreadMethod::PAD     | PAD     | *Default*. Uses the terminal colors of the gradient to fill the remainder of the quad geometry.               |
+| Dali::Toolkit::GradientVisual::SpreadMethod::REFLECT | REFLECT | Reflect the gradient pattern start-to-end, end-to-start, start-to-end etc. until the quad geometry is filled. |
+| Dali::Toolkit::GradientVisual::SpreadMethod::REPEAT  | REPEAT  | Repeat the gradient pattern start-to-end, start-to-end, start-to-end etc. until the quad geometry is filled.  |
+
+### Usage
+
+**Linear:**
+~~~{.cpp}
+// C++
+Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
+
+Dali::Property::Map map;
+map[ Visual::Property::TYPE ] = Dali::Toolkit::Visual::GRADIENT;
+map[ GradientVisual::Property::START_POSITION ] = Vector2( 0.5f, 0.5f );
+map[ GradientVisual::Property::END_POSITION ] = Vector2( -0.5f, -0.5f );
+
+Dali::Property::Array stopOffsets;
+stopOffsets.PushBack( 0.0f );
+stopOffsets.PushBack( 0.3f );
+stopOffsets.PushBack( 0.6f );
+stopOffsets.PushBack( 0.8f );
+stopOffsets.PushBack( 1.f );
+map[ GradientVisual::Property::STOP_OFFSET ] = stopOffsets;
+
+Dali::Property::Array stopColors;
+stopColors.PushBack( Vector4( 129.f, 198.f, 193.f, 255.f )/255.f );
+stopColors.PushBack( Vector4( 196.f, 198.f, 71.f, 122.f )/255.f );
+stopColors.PushBack( Vector4( 214.f, 37.f, 139.f, 191.f )/255.f );
+stopColors.PushBack( Vector4( 129.f, 198.f, 193.f, 150.f )/255.f );
+stopColors.PushBack( Color::YELLOW );
+map[ GradientVisual::Property::STOP_COLOR ] = stopColors;
+
+control.SetProperty( Control::Property::BACKGROUND, map );
+~~~
+
+**Radial:**
+~~~{.cpp}
+// C++
+Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
+
+Dali::Property::Map map;
+map[ Visual::Property::TYPE ] = Dali::Toolkit::Visual::GRADIENT;
+map[ GradientVisual::Property::CENTER ] = Vector2( 0.5f, 0.5f );
+map[ GradientVisual::Property::RADIUS ] = 1.414f;
+
+Dali::Property::Array stopOffsets;
+stopOffsets.PushBack( 0.0f );
+stopOffsets.PushBack( 0.3f );
+stopOffsets.PushBack( 0.6f );
+stopOffsets.PushBack( 0.8f );
+stopOffsets.PushBack( 1.f );
+map[ GradientVisual::Property::STOP_OFFSET ] = stopOffsets;
+
+Dali::Property::Array stopColors;
+stopColors.PushBack( Vector4( 129.f, 198.f, 193.f, 255.f )/255.f );
+stopColors.PushBack( Vector4( 196.f, 198.f, 71.f, 122.f )/255.f );
+stopColors.PushBack( Vector4( 214.f, 37.f, 139.f, 191.f )/255.f );
+stopColors.PushBack( Vector4( 129.f, 198.f, 193.f, 150.f )/255.f );
+stopColors.PushBack( Color::YELLOW );
+map[ GradientVisual::Property::STOP_COLOR ] = stopColors;
+
+control.SetProperty( Control::Property::BACKGROUND, map );
+~~~
+___________________________________________________________________________________________________
+
+## Image Visual {#image-visuals}
+
+Renders an image into the visual's geometry.
+Depending on the extension of the image, a different visual is provided to render the image onto the screen.
+ + [Normal (Quad)](@ref image-visual)
+ + [N-Patch](@ref n-patch-visual)
+ + [SVG](@ref svg-visual)
+ + [Animated Image]( @ref animated-image-visual )
+___________________________
+### Normal {#image-visual}
+Renders a raster image ( jpg, png etc.) into the visual's quad geometry.
+![ ](visuals/image-visual.png)
+
+#### Properties Supported
+
+**VisualType:** Dali::Toolkit::Visual::IMAGE, "IMAGE"
+
+| Property                                             | String        | Type              | Required | Description                                                                                                              |
+|------------------------------------------------------|---------------|:-----------------:|:--------:|--------------------------------------------------------------------------------------------------------------------------|
+| Dali::Toolkit::ImageVisual::Property::URL            | url           | STRING            | Yes      | The URL of the image.                                                                                                    |
+| Dali::Toolkit::ImageVisual::Property::FITTING_MODE   | fittingMode   | INTEGER or STRING | No       | Fitting options, used when resizing images to fit desired dimensions. [More info](@ref resourceimagescaling-fittingmode) |
+| Dali::Toolkit::ImageVisual::Property::SAMPLING_MODE  | samplingMode  | INTEGER or STRING | No       | Filtering options, used when resizing images to sample original pixels. [More info](@ref resourceimagescaling-scaling)   |
+| Dali::Toolkit::ImageVisual::Property::DESIRED_WIDTH  | desiredWidth  | INT               | No       | The desired image width. Will use actual image width if not specified.                                                   |
+| Dali::Toolkit::ImageVisual::Property::DESIRED_HEIGHT | desiredHeight | INT               | No       | The desired image height. Will use actual image height if not specified.                                                 |
+| Dali::Toolkit::ImageVisual::Property::PIXEL_AREA     | pixelArea     | VECTOR4           | No       | The image area to be displayed, default value is [0.0, 0.0, 1.0, 1.0]                                                    |
+| Dali::Toolkit::ImageVisual::Property::WRAP_MODE_U    | wrapModeU     | INTEGER or STRING | No       | Wrap mode for u coordinate, valid values are CLAMP_TO_EDGE(default), REPEAT, MIRRORED_REPEAT                               |
+| Dali::Toolkit::ImageVisual::Property::WRAP_MODE_V    | wrapModeV     | INTEGER or STRING | No       | Wrap mode for v coordinate, valid values are CLAMP_TO_EDGE(default), REPEAT, MIRRORED_REPEAT                               |
+
+#### Usage
+
+~~~{.cpp}
+// C++
+Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
+
+Dali::Property::Map map;
+map[ Visual::Property::TYPE ] = Dali::Toolkit::Visual::IMAGE;
+map[ ImageVisual::Property::URL ] = "path-to-image.jpg";
+
+control.SetProperty( Control::Property::BACKGROUND, map );
+~~~
+___________________________________________________________________________________________________
+
+### N-Patch {#n-patch-visual}
+
+Renders an n-patch or a 9-patch image. Uses non-quad geometry. Both geometry and texture are cached to reduce memory consumption if the same n-patch image is used elsewhere.
+![ ](visuals/n-patch-visual.png)
+
+#### Properties Supported
+
+**VisualType:** Dali::Toolkit::Visual::IMAGE, "IMAGE"
+
+| Property                                          | String        | Type    | Required | Description                      |
+|---------------------------------------------------|---------------|:-------:|:--------:|----------------------------------|
+| Dali::Toolkit::ImageVisual::Property::URL         | url           | STRING  | Yes      | The URL of the n-patch image.    |
+| Dali::Toolkit::ImageVisual::Property::BORDER_ONLY | borderOnly    | BOOLEAN | No       | If true, only draws the borders. |
+
+#### Usage
+
+~~~{.cpp}
+// C++
+Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
+
+Dali::Property::Map map;
+
+map[ Visual::Property::TYPE ] = Dali::Toolkit::Visual::IMAGE;
+map[ Dali::Toolkit::ImageVisual::Property::URL ] = "path-to-image.9.png";
+
+control.SetProperty( Control::Property::BACKGROUND, map );
+~~~
+___________________________________________________________________________________________________
+
+### SVG {#svg-visual}
+
+Renders a svg image into the visual's quad geometry.
+#### Features: SVG Tiny 1.2 specification
+
+**supported:**
+  * basic shapes
+  * paths
+  * solid color fill
+  * gradient color fill
+  * solid color stroke
+**not supported:**
+  * gradient color stroke
+  * dash array stroke
+  * view box
+  * text
+  * clip path
+
+<div style="width:300px">
+</div>
+<div style="width:300px">
+![ ](visuals/svg-visual.svg)
+</div>
+
+#### Properties Supported
+
+**VisualType:** Dali::Toolkit::Visual::IMAGE, "IMAGE"
+
+| Property                                  | String | Type    | Required | Description                      |
+|-------------------------------------------|--------|:-------:|:--------:|----------------------------------|
+| Dali::Toolkit::ImageVisual::Property::URL | url    | STRING  | Yes      | The URL of the SVG image.    |
+
+#### Usage
+
+~~~{.cpp}
+// C++
+Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
+
+Dali::Property::Map map;
+
+map[ Visual::Property::TYPE ] = Dali::Toolkit::Visual::IMAGE;
+map[ Dali::Toolkit::ImageVisual::Property::URL ] = "path-to-image.svg";
+
+control.SetSize( 200.f, 200.f );
+control.SetProperty( Control::Property::BACKGROUND, map );
+~~~
+___________________________________________________________________________________________________
+
+## Animated Image Visual {#animated-image-visual}
+
+Renders an animated image into the visual's quad geometry. Currently, only the GIF format is supported.
+
+![ ](animated-image-visual.gif)
+
+#### Properties Supported
+
+**VisualType:** Dali::Toolkit::Visual::IMAGE, "IMAGE"
+
+| Property                                          | String     | Type              | Required | Description                                                                                  |
+|---------------------------------------------------|------------|:-----------------:|:--------:|----------------------------------------------------------------------------------------------|
+| Dali::Toolkit::ImageVisual::Property::URL         | url        | STRING            | Yes      | The URL of the animated image.                                                               |
+| Dali::Toolkit::ImageVisual::Property::PIXEL_AREA  | pixelArea  | VECTOR4           | No       | The image area to be displayed, default value is [0.0, 0.0, 1.0, 1.0]                        |
+| Dali::Toolkit::ImageVisual::Property::WRAP_MODE_U | wrapModeU  | INTEGER or STRING | No       | Wrap mode for u coordinate, valid values are CLAMP_TO_EDGE(default), REPEAT, MIRRORED_REPEAT |
+| Dali::Toolkit::ImageVisual::Property::WRAP_MODE_V | wrapModeV  | INTEGER or STRING | No       | Wrap mode for v coordinate, valid values are CLAMP_TO_EDGE(default), REPEAT, MIRRORED_REPEAT |
+
+#### Usage
+
+~~~{.cpp}
+// C++
+Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
+
+control.SetProperty( Control::Property::BACKGROUND,
+                     Property::Map().Add( Visual::Property::TYPE, Dali::Toolkit::Visual::IMAGE )
+                                    .Add( Dali::Toolkit::ImageVisual::Property::URL, "path-to-image.gif" ) );
+~~~
+___________________________________________________________________________________________________
+
+## Border Visual {#border-visual}
+
+Renders a color as an internal border to the visual's geometry.
+![ ](visuals/border-visual.png)
+
+### Properties Supported
+
+**VisualType:** Dali::Toolkit::Visual::BORDER, "BORDER"
+
+| Property                                             | String        | Type    | Required | Description                                      |
+|------------------------------------------------------|---------------|:-------:|:--------:|--------------------------------------------------|
+| Dali::Toolkit::BorderVisual::Property::COLOR         | borderColor   | VECTOR4 | Yes      | The color of the border.                         |
+| Dali::Toolkit::BorderVisual::Property::SIZE          | borderSize    | FLOAT   | Yes      | The width of the border (in pixels).             |
+| Dali::Toolkit::BorderVisual::Property::ANTI_ALIASING | antiAliasing  | BOOLEAN | No       | Whether anti-aliasing of the border is required. |
+
+### Usage
+
+~~~{.cpp}
+// C++
+Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
+
+Dali::Property::Map map;
+
+map[ Visual::Property::TYPE ] = Dali::Toolkit::Visual::BORDER;
+map[ BorderVisual::Property::COLOR ] = Color::BLUE;
+map[ BorderVisual::Property::SIZE ] = 5.0f;
+
+control.SetProperty( Control::Property::BACKGROUND, map );
+~~~
+___________________________________________________________________________________________________
+
+## Mesh Visual {#mesh-visual}
+
+Renders a mesh using a .obj file, optionally with textures provided by a mtl file. Scaled to fit the control.
+![ ](visuals/mesh-visual.png)
+### Properties Supported
+**VisualType:** Dali::Toolkit::Visual::MESH, "MESH"
+
+| Property                                              | String         | Type               | Required          | Description                                                                                      |
+|-------------------------------------------------------|----------------|:------------------:|:-----------------:|--------------------------------------------------------------------------------------------------|
+| Dali::Toolkit::MeshVisual::Property::OBJECT_URL       | objectUrl      | STRING             | Yes               | The location of the ".obj" file.                                                                 |
+| Dali::Toolkit::MeshVisual::Property::MATERIAL_URL     | materialUrl    | STRING             | No                | The location of the ".mtl" file. Leave blank for a textureless object.                           |
+| Dali::Toolkit::MeshVisual::Property::TEXTURES_PATH    | texturesPath   | STRING             | If using material | Path to the directory the textures (including gloss and normal) are stored in.                   |
+| Dali::Toolkit::MeshVisual::Property::SHADING_MODE     | shadingMode    | INTEGER or STRING  | No                | Sets the type of shading mode that the mesh will use. [More info](@ref mesh-visual-shading-mode) |
+| Dali::Toolkit::MeshVisual::Property::USE_MIPMAPPING   | useMipmapping  | BOOLEAN            | No                | Flag for whether to use mipmaps for textures or not. Default true.                               |
+| Dali::Toolkit::MeshVisual::Property::USE_SOFT_NORMALS | useSoftNormals | BOOLEAN            | No                | Flag for whether to average normals at each point to smooth textures or not. Default true.       |
+| Dali::Toolkit::MeshVisual::Property::LIGHT_POSITION   | lightPosition  | VECTOR3            | No                | The position, in stage space, of the point light that applies lighting to the model.             |
+### Shading Mode {#mesh-visual-shading-mode}
+
+When specifying the shading mode, if anything the mode requires is missing, a simpler mode that can be handled with what has been supplied will be used instead.
+**Possible values:**
+| Enumeration                                                                     | String                                   | Description                                                                                                             |
+|---------------------------------------------------------------------------------|------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|
+| Dali::Toolkit::MeshVisual::ShaderType::TEXTURELESS_WITH_DIFFUSE_LIGHTING        | TEXTURELESS_WITH_DIFFUSE_LIGHTING        | *Simplest*. One color that is lit by ambient and diffuse lighting.                                                      |
+| Dali::Toolkit::MeshVisual::ShaderType::TEXTURED_WITH_SPECULAR_LIGHTING          | TEXTURED_WITH_SPECULAR_LIGHTING          | Uses only the visual image textures provided with specular lighting in addition to ambient and diffuse lighting.        |
+| Dali::Toolkit::MeshVisual::ShaderType::TEXTURED_WITH_DETAILED_SPECULAR_LIGHTING | TEXTURED_WITH_DETAILED_SPECULAR_LIGHTING | Uses all textures provided including a gloss, normal and texture map along with specular, ambient and diffuse lighting. |
+
+### Usage
+
+~~~{.cpp}
+// C++
+Dali::Stage stage = Dali::Stage::GetCurrent();
+Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
+
+Dali::Property::Map map;
+
+map[ Visual::Property::TYPE  ] = Dali::Toolkit::Visual::MESH;
+map[ MeshVisual::Property::OBJECT_URL ] = "home/models/Dino.obj";
+map[ MeshVisual::Property::MATERIAL_URL ] = "home/models/Dino.mtl";
+map[ MeshVisual::Property::TEXTURES_PATH ] = "home/images/";
+
+control.SetProperty( Control::Property::BACKGROUND, map );
+~~~
+
+___________________________________________________________________________________________________
+
+## Primitive Visual {#primitive-visual}
+
+Renders a simple 3D shape, such as a cube or sphere. Scaled to fit the control.
+
+The shapes are generated with clockwise winding and back-face culling on by default.
+
+![ ](visuals/cube.png)
+### Properties Supported
+
+**VisualType:** Dali::Toolkit::Visual::PRIMITIVE, "PRIMITIVE"
+
+| Property                                                      | String            | Type               | Description                                                                                                     | Default Value                                           | Range                          |
+|---------------------------------------------------------------|-------------------|:------------------:|-----------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------:|:------------------------------:|
+| Dali::Toolkit::PrimitiveVisual::Property::SHAPE               | shape             | INTEGER or STRING  | The specific shape to render. [More info](@ref shape-details)                                                   | Dali::Toolkit::PrimitiveVisual::Shape::SPHERE, "SPHERE" | [See list](@ref shape-details) |
+| Dali::Toolkit::PrimitiveVisual::Property::MIX_COLOR           | mixColor          | VECTOR4            | The color of the shape.                                                                                         | (0.5, 0.5, 0.5, 1.0)                                    | 0.0 - 1.0 for each             |
+| Dali::Toolkit::PrimitiveVisual::Property::SLICES              | slices            | INTEGER            | The number of slices as you go around the shape. [More info](@ref slices-details)                               | 128                                                     | 1 - 255                        |
+| Dali::Toolkit::PrimitiveVisual::Property::STACKS              | stacks            | INTEGER            | The number of stacks as you go down the shape. [More info](@ref stacks-details)                                 | 128                                                     | 1 - 255                        |
+| Dali::Toolkit::PrimitiveVisual::Property::SCALE_TOP_RADIUS    | scaleTopRadius    | FLOAT              | The scale of the radius of the top circle of a conical frustrum.                                                | 1.0                                                     | ≥ 0.0                          |
+| Dali::Toolkit::PrimitiveVisual::Property::SCALE_BOTTOM_RADIUS | scaleBottomRadius | FLOAT              | The scale of the radius of the bottom circle of a conical frustrum.                                             | 1.5                                                     | ≥ 0.0                          |
+| Dali::Toolkit::PrimitiveVisual::Property::SCALE_HEIGHT        | scaleHeight       | FLOAT              | The scale of the height of a conic.                                                                             | 3.0                                                     | > 0.0                          |
+| Dali::Toolkit::PrimitiveVisual::Property::SCALE_RADIUS        | scaleRadius       | FLOAT              | The scale of the radius of a cylinder.                                                                          | 1.0                                                     | > 0.0                          |
+| Dali::Toolkit::PrimitiveVisual::Property::SCALE_DIMENSIONS    | scaleDimensions   | VECTOR3            | The dimensions of a cuboid. Scales in the same fashion as a 9-patch image.                                      | Vector3::ONE                                            | > 0.0 for each                 |
+| Dali::Toolkit::PrimitiveVisual::Property::BEVEL_PERCENTAGE    | bevelPercentage   | FLOAT              | Determines how bevelled the cuboid should be, based off the smallest dimension. [More info](@ref bevel-details) | 0.0 (no bevel)                                          | 0.0 - 1.0                      |
+| Dali::Toolkit::PrimitiveVisual::Property::BEVEL_SMOOTHNESS    | bevelSmoothness   | FLOAT              | Defines how smooth the bevelled edges should be.                                                                | 0.0 (sharp edges)                                       | 0.0 - 1.0                      |
+| Dali::Toolkit::PrimitiveVisual::Property::LIGHT_POSITION      | lightPosition     | VECTOR3            | The position, in stage space, of the point light that applies lighting to the model.                            | (Offset outwards from the center of the screen.)        | Unlimited                      |
+
+### Shapes {#shape-details}
+
+There are six shapes that can be chosen, some of which are simplified specialisations of another.
+
+| Enumeration                                             | String           | Description                                                                       | Parameters                                                    |
+|---------------------------------------------------------|------------------|-----------------------------------------------------------------------------------|---------------------------------------------------------------|
+| Dali::Toolkit::PrimitiveVisual::Shape::SPHERE           | SPHERE           | *Default*.                                                                        | color, slices, stacks                                         |
+| Dali::Toolkit::PrimitiveVisual::Shape::CONICAL_FRUSTRUM | CONICAL_FRUSTRUM | The area bound between two circles, i.e. a cone with the tip removed.             | color, scaleTopRadius, scaleBottomRadius, scaleHeight, slices |
+| Dali::Toolkit::PrimitiveVisual::Shape::CONE             | CONE             | Equivalent to a conical frustrum with top radius of zero.                         | color, scaleBottomRadius, scaleHeight, slices                 |
+| Dali::Toolkit::PrimitiveVisual::Shape::CYLINDER         | CYLINDER         | Equivalent to a conical frustrum with equal radii for the top and bottom circles. | color, scaleRadius, scaleHeight, slices                       |
+| Dali::Toolkit::PrimitiveVisual::Shape::CUBE             | CUBE             | Equivalent to a bevelled cube with a bevel percentage of zero.                    | color, scaleDimensions                                        |
+| Dali::Toolkit::PrimitiveVisual::Shape::OCTAHEDRON       | OCTAHEDRON       | Equivalent to a bevelled cube with a bevel percentage of one.                     | color, scaleDimensions                                        |
+| Dali::Toolkit::PrimitiveVisual::Shape::BEVELLED_CUBE    | BEVELLED_CUBE    | A cube/cuboid with all edges flattened to some degree.                            | color, scaleDimensions, bevelPercentage, bevelSmoothness      |
+
+#### Examples below:
+
+**sphere:**
+![ ](visuals/sphere.png)
+**conics:**
+| Frustrum | Cone | Cylinder |
+|----------|------|----------|
+| ![ ](visuals/conical-frustrum.png) | ![ ](visuals/cone.png) | ![ ](visuals/cylinder.png) |
+### Bevel {#bevel-details}
+Bevel percentage ranges from 0.0 to 1.0. It affects the ratio of the outer face widths to the width of the overall cube, as shown:
+| 0.0 ( cube) | 0.3 | 0.7 | 1.0 (octahedron) |
+|-------------|-----|-----|------------------|
+| ![ ](visuals/cube.png) | ![ ](visuals/bevelled-cube-low.png) | ![ ](visuals/bevelled-cube-high.png) | ![ ](visuals/octahedron.png) |
+### Slices {#slices-details}
+For spheres and conical frustrums, 'slices' determines how many divisions there are as you go around the object.
+![ ](visuals/slices.png)
+### Stacks {#stacks-details}
+For spheres, 'stacks' determines how many layers there are as you go down the object.
+![ ](visuals/stacks.png)
+### Usage
+**sphere**
+~~~{.cpp}
+// C++
+Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
+
+Dali::Property::Map map;
+
+map[ Visual::Property::TYPE ] = Dali::Toolkit::Visual::PRIMITIVE;
+map[ PrimitiveVisual::Property::SHAPE ] = PrimitiveVisual::Shape::SPHERE;
+map[ PrimitiveVisual::Property::MIX_COLOR ] = Vector4( 1.0, 0.5, 0.0, 1.0 );
+
+control.SetProperty( Control::Property::BACKGROUND, map );
+~~~
+
+**conical frustrum**
+
+~~~{.cpp}
+// C++
+Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
+
+Dali::Property::Map map;
+
+map[ Visual::Property::TYPE ] = Dali::Toolkit::Visual::PRIMITIVE;
+map[ PrimitiveVisual::Property::SHAPE ] = PrimitiveVisual::Shape::CONICAL_FRUSTRUM;
+map[ PrimitiveVisual::Property::MIX_COLOR ] = Vector4( 1.0, 0.5, 0.0, 1.0 );
+map[ PrimitiveVisual::Property::SCALE_TOP_RADIUS ] = 1.0f;
+map[ PrimitiveVisual::Property::SCALE_BOTTOM_RADIUS ] = 1.5f;
+map[ PrimitiveVisual::Property::SCALE_HEIGHT ] = 3.0f;
+
+control.SetProperty( Control::Property::BACKGROUND, map );
+~~~
+
+**bevelled cube**
+
+~~~{.cpp}
+// C++
+Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
+
+Dali::Property::Map map;
+
+map[ Visual::Property::TYPE ] = Dali::Toolkit::Visual::PRIMITIVE;
+map[ PrimitiveVisual::Property::SHAPE ] = PrimitiveVisual::Shape::BEVELLED_CUBE;
+map[ PrimitiveVisual::Property::MIX_COLOR ] = Vector4( 1.0, 0.5, 0.0, 1.0 );
+map[ PrimitiveVisual::Property::BEVEL_PERCENTAGE ] = 0.4f;
+
+control.SetProperty( Control::Property::BACKGROUND, map );
+~~~
+___________________________________________________________________________________________________
+
+## Text Visual {#text-visual}
+
+Renders text within a control.
+
+![ ](visuals/HelloWorld.png)
+
+### Properties
+
+**VisualType:** Dali::Toolkit::Visual::TEXT, "TEXT"
+
+| Property                                                    | String              | Type          | Required | Description                                                                   | Default                |
+|-------------------------------------------------------------|---------------------|:-------------:|:--------:|-------------------------------------------------------------------------------|------------------------|
+| Dali::Toolkit::TextVisual::Property::TEXT                   | text                | STRING        | Yes      | The text to display in UTF-8 format                                           |                        |
+| Dali::Toolkit::TextVisual::Property::FONT_FAMILY            | fontFamily          | STRING        | No       | The requested font family to use                                              |                        |
+| Dali::Toolkit::TextVisual::Property::FONT_STYLE             | fontStyle           | MAP           | No       | The requested font style to use                                               |                        |
+| Dali::Toolkit::TextVisual::Property::POINT_SIZE             | pointSize           | FLOAT         | Yes      | The size of font in points                                                    |                        |
+| Dali::Toolkit::TextVisual::Property::MULTI_LINE             | multiLine           | BOOLEAN       | No       | The single-line or multi-line layout option                                   | false                  |
+| Dali::Toolkit::TextVisual::Property::HORIZONTAL_ALIGNMENT   | horizontalAlignment | STRING        | No       | The line horizontal alignment: "BEGIN", "CENTER", "END"                       | "BEGIN"                |
+| Dali::Toolkit::TextVisual::Property::VERTICAL_ALIGNMENT     | verticalAlignment   | STRING        | No       | The line vertical alignment: "TOP",   "CENTER", "BOTTOM"                      | "TOP"                  |
+| Dali::Toolkit::TextVisual::Property::TEXT_COLOR             | textColor           | VECTOR4       | No       | The color of the text                                                         | Color::BLACK           |
+| Dali::Toolkit::TextVisual::Property::ENABLE_MARKUP         | enableMarkup           | BOOL       | No       | If mark up should be enabled |                                                        |
+
+### Usage
+
+~~~{.cpp}
+    // C++
+    Dali::Stage stage = Dali::Stage::GetCurrent();
+    stage.SetBackgroundColor( Dali::Color::WHITE );
+
+    Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
+    control.SetParentOrigin( ParentOrigin::CENTER );
+
+    Dali::Property::Map map;
+    map[ Dali::Toolkit::Visual::Property::TYPE ] = Dali::Toolkit::Visual::TEXT;
+    map[ Dali::Toolkit::TextVisual::Property::TEXT ] = "Hello world";
+    map[ Dali::Toolkit::TextVisual::Property::TEXT_COLOR ] = Dali::Color::BLACK;
+    map[ Dali::Toolkit::TextVisual::Property::FONT_FAMILY ] = "Sans";
+    map[ Dali::Toolkit::TextVisual::Property::POINT_SIZE ] = 30.f;
+    map[ Dali::Toolkit::TextVisual::Property::HORIZONTAL_ALIGNMENT ] = "CENTER";
+    map[ Dali::Toolkit::TextVisual::Property::VERTICAL_ALIGNMENT ] = "CENTER";
+
+    control.SetProperty( Dali::Toolkit::Control::Property::BACKGROUND, map );
+
+    stage.Add( control );
+~~~
+
+## Wireframe Visual {#wireframe-visual}
+
+Renders a wireframe around a quad geometry.
+Is mainly used for debugging and is the visual that replaces all other visuals when [Visual Debug Rendering](@ref debugrendering) is turned on.
+![ ](visuals/wireframe-visual.png)
+
+### Properties
+
+**VisualType:** Dali::Toolkit::Visual::WIREFRAME, "WIREFRAME"
+
+### Usage
+
+~~~{.cpp}
+// C++
+Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
+
+Dali::Property::Map map;
+map[ Visual::Property::TYPE ] = Dali::Toolkit::Visual::WIREFRAME;
+
+control.SetProperty( Control::Property::BACKGROUND, map );
+~~~
+
+
+
+*/
diff --git a/docs/content/shared-javascript-and-cpp-documentation/accessibility.md b/docs/content/shared-javascript-and-cpp-documentation/accessibility.md
deleted file mode 100644 (file)
index d0ca80c..0000000
+++ /dev/null
@@ -1,273 +0,0 @@
-<!--
-/**-->
-
-[TOC]
-
-# Accessibility{#accessibility}
-
-
-## Introduction - What is Accessibility? {#accessibilityintroduction}
-
-Accessibility describes functionality designed to aid usage by the visually impaired.
-  
-This includes:
-- Reading out selections or other on-screen items via text-to-speech.
-- Item selection being controlled with gestures to aid selecting other small hard to select entities.
-  
-
-## Accessibility within DALi {#accessibilitydali}
-
-DALi will pick up the system's current accessibility state (and subsequent changes to it) and enable its internal accessibility mode based on this.
-  
-DALi includes an Accessibility Manager which provides public API control of the order of object selection by gesture, and text to be read out per actor or control.
-  
-It further provides many signals that represent accessibility gestures. These gestures can range from a simple actor selection through to a more control-specific concept like "page-up", which an application developer may want to provide an implementation for.
-  
-Furthermore, these APIs can be used not only with existing actors and controls, but also when creating a custom control.
-  
-The AccessibilityManager lives within DALi Toolkit. Please see accessibility-manager.h for the full API.
-
-
-## Accessibility Focus {#accessibilityfocus}
-
-<!-- Float image to the right of the text -->
-<div style="float: right">
-    ![ ](../assets/img/accessibility/accessibility-focus.png) ![ ](./accessibility-focus.png)
-</div>
-
-Visibly, when enabled, accessibility will typically show an actor (or actors) as focused. This is represented by default with yellow rectangular frame around the actor. See this section for [modifying the appearance of the accessibility focus](#accessibilityfocusappearance).
-  
-Once in accessibility mode, normal control is disabled and accessibility gestures must be used to access content.
-DALi actors and controls will no longer receive tap gestures or click events when they are touched once (as they normally would).
-  
-Note: The accessibility focus is also referred to as the Focus Indicator.
-
-
-### Moving the focus with gestures {#accessibilitygestures}
-
-Accessibility recognizes many gesture types to move the accessibility focus from actor to actor.
-  
-Note:
-  
-- Some of these gestures have pre-defined, automatic behaviour.
-- Some gestures require an specific implementation to be added to use.
-- All can be caught as signals if extra control is needed.
-  
-To test (and understand) this behaviour, you can use the Tizen adaptor which uses the following gestures to perform basic operation:
-  
-Note: The gestures that perform these actions are platform specific. These are the gestures implemented in the Tizen adaptor for example only.
-  
-- Swiping right and left will move the focus forward and backward one item.
-- Doing a left or right swipe-return (where a direction is swiped forwards and backwards quickly) will move to the previous or next page - DALi cannot know what a page is within your application so these gestures can only work if implemented manually.
-  
-
-![ ](../assets/img/accessibility/accessibility-focus-order.png) ![ ](./accessibility-focus-order.png)
-
-### Activation {#accessibilityactivation}
-
-Activation describes an operation performed on a selected actor, typically an on-tap or on-click event.
-  
-Activating an actor in accessibility mode will call a virtual function, as well as signal, for that actor.
-Depending on the platform this can be triggered in different ways.
-When activated, the built in actor types (like PushButton) will do the equivalent of a tap.
-  
-Custom-built actor types will need to implement activation in order to perform a specific behaviour. See the [Custom Controls](#accessibilitycustomcontrol) section.
-  
-Therefore, to tap an actor (EG. Click a button) in accessibility mode, the following must be done:
-  
-- The actor needs to be selected first (using gestures specific to the platform).
-- Then activated, by using the activation gesture.
-  
-## Scrolling {#accessibilityscrolling}
-
-Scrolling around a view outside of accessibility is normally performed by simply holding one finger and dragging (in the appropriate direction).
-Within accessibility this can be overridden and performed with a different gesture type to achieve the same effect.
-  
-Example: For the Tizen platform scrolling is performed with a two-finger drag.
-
-
-## Basic functionality {#accessibilitybasicfunctionality}
-
-### Using the Accessibility Manager functionality {#accessibilityfunctionality}
-
-Accessibility information is stored within the accessibility manager itself rather than within actors.
-This allows the manager to have a global view of focusable actors and their order.
-  
-The Accessibility Manager is a singleton (owned by the singleton service) and can be accessed via its static Get() method:
-  
-~~~{.cpp}
-// Get the accessibility manager singleton.
-accessibilityManager accessibilityManager = AccessibilityManager::Get();
-~~~
-
-
-### Controlling where the focus will move {#accessibilitymovingfocus}
-
-In order to provide automatic focus movement, the accessibility manager must be told the focus order of any actors to be selected.
-This order is a linear order. It can move forwards or backwards only (there is no concept of "up" or "down").
-  
-The order of a particular actor can be set with a call to the accessibility manager like so:
-  
-~~~{.cpp}
-// 6 is an int representing this actor's position in the focus chain.
-accessibilityManager.SetFocusOrder( actor, 6 );
-~~~
-  
-The focus order of each actor in the focus chain is unique. If there is another actor assigned with the same focus order already, the new actor will be inserted to the focus chain with that focus order, and the focus order of the original actor and all the actors followed in the focus chain will be increased accordingly.
-  
-If the focus order assigned to the actor is 0, it means that actor's focus order is undefined (e.g. the actor has a description but with no focus order being set yet) and therefore that actor is not focusable.
-  
-Moving focus to a particular actor directly can be done with SetCurrentFocusActor like so:
-  
-~~~{.cpp}
-// Move focus to the first item on our applications page.
-AccessibilityManager accessibilityManager = AccessibilityManager::Get();
-  
-accessibilityManager.SetCurrentFocusActor( table.GetChildAt( 0 ) );
-~~~
-
-### Modifying the appearance of the accessibility focus {#accessibilityfocusappearance}
-
-The focus graphic itself can be customized.
-It can be an image (EG. A nine-patch border) or any other type of actor.
-  
-It can be set using this method within C++:
-  
-~~~{.cpp}
-accessibilityManager.SetFocusIndicatorActor( myCustomIndicatorActor );
-~~~
-
-
-### Using activation {#accessibilityusingactivation}
-
-If the application would like to perform specific behaviour when an entity is activated, it can catch the activation by connecting to a signal like this:
-  
-~~~{.cpp}
-AccessibilityManager::Get().FocusedActorActivatedSignal().Connect( this, &MyClass::OnFocusedActorActivated );
-~~~
-  
-Controlling the activation behaviour within a custom control is covered in the [custom control section](#accessibilitycustomcontrol)
-
-
-## Focus groups {#accessibilityfocusgroups}
-
-<!-- Float image to the right of the text -->
-<div style="float: right">
-    ![ ](../assets/img/accessibility/accessibility-focus-group.png) ![ ](./accessibility-focus-group.png)
-</div>
-
-Group mode allows the limiting of focusable actors.
-  
-Example: If a popup appears, you may want the focus to be limited to only the OK and Cancel buttons. You can do this by setting the popup as a focus group and turning on group mode, the focus will be limited.
-  
-~~~{.cpp}
-// Create a parent actor and add two children to it.
-Actor groupActor = Actor::New();
-
-Actor child1 = Actor::New();
-groupActor.Add( child1 );
-
-Actor child2 = Actor::New();
-groupActor.Add( child2 );
-
-AccessibilityManager accessibilityManager = AccessibilityManager::Get();
-
-// Mark the parent as a focus group. Now focus movement *can* be limited to the children of this actor.
-// Note: That this is not enabled until specified.
-accessibilityManager.SetFocusGroup( groupActor, true );
-
-// Enable the focus group mode.
-accessibilityManager.SetGroupMode( true );
-~~~
-
-
-### Wrap mode {#accessibilitywrapmode}
-
-Wrap mode allows the focus to wrap back to the beginning once the end is reached.
-  
-In group mode this will move to the beginning of the current focus group.
-  
-~~~{.cpp}
-AccessibilityManager accessibilityManager = AccessibilityManager::Get();
-
-// Enable wrap mode.
-accessibilityManager.SetWrapMode( true );
-~~~
-
-
-## Using Accessibility {#accessibilityusage}
-
-### Using accessibility with existing actors {#accessibilityactors}
-
-This example sets up a 3 by 3 grid of actors with the following accessibility functionality:
-  
-  - They have a focus order that moves from top left to bottom right (when using the accessibility next and previous gestures).
-  - They contain text that will be spoken out loud (via text-to-speech) when the focus changes.
-  
-Note that all the above is set via the AccessibilityManager and not as properties within the actors.
-  
-The text spoken per tile will be the LABEL, TRAIT and HINT (in that order).
-  
-~~~{.cpp}
-Toolkit::TableView table = Toolkit::TableView::New( 3, 3 );
-int tileNumber = 0;
-for( int row = 0; row < 3; ++row )
-{
-  for( int column = 0; column < 3; ++column )
-  {
-    // Create a solid color actor, with some text.
-    Actor tile = Toolkit::CreateSolidColorActor( Vector4( 1.0f, 1.0f, 0.0f, 1.0f ) );
-    Toolkit::TextLabel text = Toolkit::TextLabel::New( tileNames[tileNumber] );
-    tile.Add( text );
-
-    // Get the accessibility manager singleton.
-    accessibilityManager accessibilityManager = AccessibilityManager::Get();
-
-    // Set the focus order of this actor.
-    accessibilityManager.SetFocusOrder( tile, tileNumber );
-
-    // Set up the accessibility information for this actor (this will be read out with text-to-speech).
-    accessibilityManager.SetAccessibilityAttribute( tile, Dali::Toolkit::AccessibilityManager::ACCESSIBILITY_LABEL, tileNames[tileNumber] );
-    accessibilityManager.SetAccessibilityAttribute( tile, Dali::Toolkit::AccessibilityManager::ACCESSIBILITY_TRAIT, "Tile" );
-    accessibilityManager.SetAccessibilityAttribute( tile, Dali::Toolkit::AccessibilityManager::ACCESSIBILITY_HINT, "You can run this example");
-
-    // Lay out our actor within the table view.
-    table.AddChild( tile, Toolkit::TableView::CellPosition( row, column ) );
-
-    tileNumber++;
-  }
-}
-Stage::GetCurrent().Add( table );
-~~~
-
-### Using accessibility within a custom control (C++) {#accessibilitycustomcontrol}
-
-Accessibility behaviour can be customized in a custom UI control by overriding all or some of the following methods.
-
-| Method                     | Description                                                                                                                                                                |
-|----------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| OnAccessibilityActivated   | When the control is *activated* or selected, in accessibility mode.                                                                                                        |
-| OnAccessibilityPan         | When an accessibility pan gesture occurs while this control is focused.                                                                                                   |
-| OnAccessibilityTouch       | Touch events are delivered differently in Accessibility mode. This method should be overridden if some special behaviour is required when these touch events are received. |
-| OnAccessibilityValueChange | When a value is changed while this control is focused (e.g. value change of a slider control).                                                                            |
-| OnAccessibilityZoom        | Should be overridden if behaviour is required when the magnification level changes when this control is focused.                                                          |
-If these events are consumed, then the method should return true.
-The default behaviour in the control base classes returns false, i.e. not consumed.
-### Using accessibility signals for extra control {#accessibilitysignals}
-
-For more specific control of functionality when accessibility is enabled, there are several signals within the accessibility manager's public API that can be connected to.
-  
-The main categories of signals are:
-  
-- The signal when the accessibility status is detected as being toggled on or off: StatusChangedSignal()
-- Focus changes can cause FocusChangedSignal() and FocusOvershotSignal(). These can be connected to in order to provide custom actions when the focus is moved around the screen.
-- The activated signal when an actor has been activated (typically by a focus, then double tap): ActionActivateSignal()
-- Gesture received signals: There are many of these. They are each linked to the many accessibility gestures that can be received by the system.
-  
-Please see accessibility-manager.h within DALi Toolkit for the full API.
-
-
-@class _Guide_Accessibility
-*/
diff --git a/docs/content/shared-javascript-and-cpp-documentation/animation.md b/docs/content/shared-javascript-and-cpp-documentation/animation.md
deleted file mode 100644 (file)
index f979870..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-<!--
-/**-->
-
-# Animation {#animation}
-
-DALi provides a rich and easy to use animation framework which allows the creation of visually rich applications.
-Dali::Animation can be used to animate the properties of any number of objects, typically Actors.
-
-## Creating a basic Animation {#animation-basics}
-
-Create an animation object that will take place over 3 seconds:
-~~~{.cpp}
-Dali::Animation animation = Animation::New( 3.0f );
-~~~
-
-### Animating Properties
-
-There are two distinct ways in which properties can be animated within DALi:
-- **AnimateTo:** The property will animate **TO** the value in the given time.
-- **AnimateBy:** The property will animate **BY** the value in the given time.
-
-(Assume actor1 & actor2 are at position 10.0f, 10.0f, 0.0f at the start of the animation)
-~~~{.cpp}
-// Animate the position of actor1 TO 10.0f, 50.0f, 0.0f
-animation.AnimateTo( Property( actor1, Dali::Actor::Property::POSITION ), Vector3(10.0f, 50.0f, 0.0f) ); // End Position: 10.0f, 50.0f, 0.0f
-
-// Animate the position of actor2 BY 10.0f, 50.0f, 0.0f
-animation.AnimateBy( Property( actor2, Dali::Actor::Property::POSITION ), Vector3(10.0f, 50.0f, 0.0f) ); // End Position: 20.0f, 60.0f, 0.0f
-~~~
-
-Note, for rotations, AnimateTo uses spherical linear interpolation to animate to the new orientation (i.e. it will take the shortest path). Because of this, the number of complete revolutions in any given angle will be reduced to 0. For example,
-
-(Assume actor1 is at orientation 0 degrees about Z-Axis at the start of the animation)
-~~~{.cpp}
-// Animate the orientation of actor1 to 390 degrees about the Z-AXIS
-animation.AnimateTo( Property( actor1, Dali::Actor::Property::ORIENTATION ), AngleAxis( Degree( 390 ), Vector3::ZAXIS ) );
-~~~
-
-will only rotate 30 degrees about the Z axis, as that is the shortest path to the final orientation.
-
-AnimateBy will preserve the full revolution count of any angle passed in using AngleAxis, for example, AngleAxis( Degree( 770 ), Vector3::ZAXIS ) will revolve 2 full times before reaching the final angle of 50 degrees from the original orientation.
-
-However, because Quaternions do not preserve the revolution count, AnimateBy will only rotate 50 degrees if the relative value is constructed using a Quaternion. For example,
-
-(Assume actor1 and actor 2 are at orientation 0 degrees about Z-Axis at the start of the animation)
-~~~{.cpp}
-// Animate the orientation of actor1 3.5 times about the Z-AXIS
-animation.AnimateBy( Property( actor1, Dali::Actor::Property::ORIENTATION ), AngleAxis( Degree( 360 * 3.5 ), Vector3::ZAXIS ) );
-
-// But the same degree value will only rotate 180 degrees if a Quaternion is used instead:
-animation.AnimateBy( Property( actor2, Dali::Actor::Property::ORIENTATION ), Quaternion( Degree( 360 * 3.5 ), Vector3::ZAXIS ) );
-~~~
-
-### Playback Control
-
-When an animation is created, it can be played:
-~~~{.cpp}
-animation.Play();
-~~~
-
-Stop and Pause are also supported.
-~~~{.cpp}
-animation.Stop();
-animation.Pause();
-~~~
-
-### Notifications
-
-Using DALi's signal framework, applications can be notified when the animation finishes:
-
-~~~{.cpp}
-
-void ExampleCallback( Animation& source )
-{
-  std::cout << "Animation has finished" << std::endl;
-}
-...
-animation.FinishedSignal().Connect( &ExampleCallback );
-~~~
-
-### Alpha Functions
-
-Alpha functions are used in animations to specify the rate of change of the animation parameter over time.
-The built in supported functions can be viewed in Dali::AlphaFunction::BuiltinFunction.
-
-It is possible to specify a different alpha function for each animator in an Animation object:
-~~~{.cpp}
-animation.AnimateTo( Property( actor1, Dali::Actor::Property::POSITION ), Vector3(10.0f, 50.0f, 0.0f), Dali::AlphaFunction::EASE_IN );
-~~~
-
-### Other Actions
-
-An animation can be looped:
-~~~{.cpp}
-animation.SetLooping( true );
-~~~
-
-By default, when an animation ends, the properties that it was animating are BAKED.
-However, the property changes can be **discarded** when the animation ends (or is stopped):
-~~~{.cpp}
-animation.SetEndAction( Animation::Discard );
-~~~
-
-## Key-Frame Animation {#animation-key-frame}
-
-DALi provides support for animating between several different values, i.e. key-frames.
-A key frame takes a progress value between 0.0f and 1.0f (0 and 100% respectively) and portrays the value of the property when the animation has progressed that much.
-You can create several key frames:
-~~~{.cpp}
-Dali::KeyFrames keyFrames = Dali::KeyFrames::New();
-keyFrames.Add( 0.0f, Vector3( 10.0f, 10.0f, 10.0f ) );
-keyFrames.Add( 0.7f, Vector3( 200.0f, 200.0f, 200.0f ) );
-keyFrames.Add( 1.0f, Vector3( 100.0f, 100.0f, 100.0f ) );
-~~~
-And then add them to your animation.
-~~~{.cpp}
-animation.AnimateBetween( Property( actor1, Dali::Actor::Property::POSITION ), keyFrames );
-~~~
-When you play the animation, DALi will animate the position of actor1 between the key-frames specified.
-'actor1' will animate from (10.0f, 10.0f, 10.0f) to (200.0f, 200.f, 200.0f) by 70% of the animation time,
-and then spend the remaining time animating back to (100.0f, 100.0f, 100.0f).
-
-The advantage of specifying a key-frame at 0% is that regardless of where 'actor1' is, it will start from position (10.0f, 10.0f, 10.0f).
-If AnimateTo was used, then the start position would have been actor1's current position.
-
-## Path Animations {#animation-paths}
-
-A Dali::Path can be used to animate the position and orientation of actors.
-
-![ ](animation/animated-path.png)
-
-The black points in the diagram are points where the DALi logo will travel to.
-The red points are the control points which express the curvature of the path on the black points.
-
-This, in code will be represented as follows:
-~~~{.cpp}
-Path path = Path::New();
-path.AddPoint( Vector3( 50.0f, 10.0f, 0.0f ));
-path.AddPoint( Vector3( 90.0f, 50.0f, 0.0f ));
-path.AddPoint( Vector3( 10.0f, 90.0f, 0.0f ));
-~~~
-The control points can be added manually using Dali::Path::AddControlPoint or Path can auto-generate them for you:
-~~~{.cpp}
-path.GenerateControlPoints(0.25f);
-~~~
-Here 0.25f represents the curvature of the path you require. Please see Dali::Path::GenerateControlPoints for more information.
-
-To animate actor1 along this path:
-~~~{.cpp}
-animation.Animate( actor1, path, Vector3::ZERO );
-~~~
-The third parameter is the forward vector (in local space coordinate system) that will be oriented with the path's tangent direction.
diff --git a/docs/content/shared-javascript-and-cpp-documentation/build-guide.md b/docs/content/shared-javascript-and-cpp-documentation/build-guide.md
deleted file mode 100644 (file)
index 9a35da8..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-<!--
-/**-->
-# Build Guide {#build-guide}
-
-## Ubuntu {#build-ubuntu}
-
-These instructions explain how to build the DALi library for the Ubuntu 14.04 desktop environment.
-
-### Minimum Requirements
-
-+ Ubuntu 14.04
-+ Ensure ALL sources are selected:
- + Go to Ubuntu Settings and then to "Software & Updates".
- + In the "Ubuntu Software" tab, ensure ALL software sources are ticked. (This is required because we install some community-maintained free & open-source software).
-
-### Creating a DALi environment
-
-DALi provides a script to set up your desktop environment. This script can be found in the dali-core repository.
-
-+ Fetch ALL 4 repositories from tizen.org.
-+ In the parent directory of these repositories, run the following command:
-  ~~~{.sh}
-  dali-core/build/scripts/dali_env -c
-  ~~~
-  This will also download any dependencies that the dali repositories require.
-
-+ You can save the environment variables to a file:
-  ~~~{.sh}
-  dali-env/opt/bin/dali_env -s > setenv
-  ~~~
-
-The last few steps only need to be done once.
-
-You will have to source your environment variables every time you open up a new terminal (or you can add to .bashrc if you prefer).
-You can do this by sourcing the '''setenv''' script you created above:
-~~~{.sh}
-. setenv
-~~~
-
-### Building the repositories
-
-#### dali-core
-~~~{.sh}
-cd dali-core/build/tizen
-autoreconf --install
-./configure --prefix=$DESKTOP_PREFIX
-make install -j8
-~~~
-
-#### dali-adaptor
-~~~{.sh}
-cd dali-adaptor/build/tizen
-autoreconf --install
-./configure --prefix=$DESKTOP_PREFIX --enable-profile=UBUNTU
-make install -j8
-~~~
-
-#### dali-toolkit
-~~~{.sh}
-cd dali-toolkit/build/tizen
-autoreconf --install
-./configure --prefix=$DESKTOP_PREFIX
-make install -j8
-~~~
-
-#### dali-demo
-~~~{.sh}
-cd dali-demo/build/tizen
-cmake -DCMAKE_INSTALL_PREFIX=$DESKTOP_PREFIX .
-make install -j8
-~~~
-
-### Running dali-demo
-
-Ensure you have sourced your environment as mentioned above and then just run:
-~~~{.sh}
-dali-demo
-~~~
-
-*/
diff --git a/docs/content/shared-javascript-and-cpp-documentation/copy-and-paste.md b/docs/content/shared-javascript-and-cpp-documentation/copy-and-paste.md
deleted file mode 100644 (file)
index 668359a..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-<!--
-/**-->
-
-# Copy and Paste  (Selection) {#copy-n-paste}
-
-Text can be selected by a long press or double tapping it.   Depending on certain conditions a popup could be shown giving options including [CUT][COPY][PASTE], [SELECT ALL] or [CLIPBOARD]. Below these conditions will be explained.
-
-[CUT] or [COPY] send the selected text to the clipboard ready to be pasted directly or via the clipboard UI.   Pressing [PASTE] will paste the top item from the clipboard (what has just been copied, possibly from another application).  If the system supports a clipboard UI this can be displayed by pressing the [CLIPBOARD] button.
-
-Empty text means the user has not inputted any text, a text-control containing special characters or purely whitespace is not empty.
-
-Below shows how the popup will look depending on the state of the text-control.
-
-|  |  |
-|--|--|
-| Condition: Long press/double tap when empty text but clipboard has content  |  Condition: Long press/double tap when text-control contains text |
-|[PASTE][CLIPBOARD] buttons shown| [CUT][COPY], [SELECT ALL] unless all text selected and [PASTE][CLIPBOARD] if content to paste. |
-|    ![ ](../assets/img/text-controls/EmptyTextClipboardHasContent.png) ![ ](./EmptyTextClipboardHasContent.png) |   ![ ](../assets/img/text-controls/SelectingText.png) ![ ](./SelectingText.png) |
-| Condition: Long press/double tap popup when text-control contains just whitespace | Condition: Empty text & clipboard empty |
-| Whitespace treated as regular text, [CUT][COPY] shown and [PASTE][CLIPBOARD] if content to paste. As all text is selected there is no need for [SELECT ALL] |  No popup shown after long press/double tap|
-|  ![ ](../assets/img/text-controls/SelectAllWhitespace.png) ![ ](./SelectAllWhitespace.png) | ![ ](../assets/img/text-controls/EmptyTextAndNoContentToPaste.png) ![ ](./EmptyTextAndNoContentToPaste.png)|
-| Condition: Long press/(double tap) on whitespace which is following text | Condition: Tapping text or panning grab handle |
-| [PASTE][CLIPBOARD] shown if something to paste. [SELECT ALL] as more text to select | If content in clipboard [PASTE][CLIPBOARD] popup will be shown. |
-| ![ ](../assets/img/text-controls/SelectWhitespaceAfterText.png) ![ ](./SelectWhitespaceAfterText.png) | ![ ](../assets/img/text-controls/TapAfterCopyingText.png) ![ ](./TapAfterCopyingText.png) |
-
-
-*/
diff --git a/docs/content/shared-javascript-and-cpp-documentation/creating-custom-controls.md b/docs/content/shared-javascript-and-cpp-documentation/creating-custom-controls.md
deleted file mode 100644 (file)
index c5d3a7c..0000000
+++ /dev/null
@@ -1,500 +0,0 @@
-<!--
-/**-->
-
-[TOC]
-
-# Creating Custom UI Controls {#creating-custom-controls}
-
-DALi provides the ability to create custom UI controls.
-This can be done by extending Dali::Toolkit::Control and Dali::Toolkit::Internal::Control classes.
-Custom controls are created using the [handle/body idiom](@ref handle-body-idiom) used in DALi.
-![ ](../assets/img/creating-custom-controls/control-handle-body.png)
-![ ](creating-custom-controls/control-handle-body.png)
-Namespaces are important
-+ The handle & body classes should have the same name but in different namespaces
-+ TypeRegistry relies on this convention
-+ Here our custom control requires
-  + MyUIControl
-  + Internal::MyUIControl
-### General Guidelines:
-+ Try to avoid adding C++ APIs as they become difficult to maintain.
-  + Use **properties** as much as possible as Controls should be data driven.
-  + These controls will be used through JavaScript and JSON files so need to be compatible.
-+ Bear in mind that the Control can be updated when the properties change (e.g. style change)
-  + Ensure control deals with these property changes gracefully
-  + Not just the first time they are set
-+ Use Visuals rather than creating several child Actors
-  + DALi rendering pipeline more efficient
-+ Accessibility actions should be considered when designing the Control.
-+ Consider using signals if the application needs to be react to changes in the control state.
-+ Use of Gestures should be preferred over analysing raw touch events
-+ Check if you need to chain up to base class if overriding certain methods
-___________________________________________________________________________________________________
-
-## Rendering Content {#creating-controls-rendering-content}
-
-To render content, the required actors can be created and added to the control itself as its children.
-However, this solution is not fully optimised and means extra actors will be added, and thus, need to be processed by DALi.
-Controls should be as generic as possible so the recommendation is to re-use visuals to create the content required as described in the [Visuals](@ref visuals) section.
-Currently, this is devel-api though, so is subject to change.
-![ ](../assets/img/creating-custom-controls/rendering.png)
-![ ](creating-custom-controls/rendering.png)
-
-To add a visual to a control, first create a Property for the visual of type MAP, and ensure the name has a suffix of "_VISUAL". Then the visual is normally defined in the stylesheet, and the definition sent via SetProperty(), where you would then create the visual:
-
-~~~{.cpp}
-// C++
-void Internal::MyUIControl::SetProperty( BaseObject* object, Property::Index index, const Property::Value& value )
-{
-  MyUIControl control = MyUIControl::DownCast( Dali::BaseHandle( object ) );
-  switch( index )
-  {
-    case MyUIControl::Property::MY_VISUAL:
-    {
-      Toolkit::VisualFactory visualFactory = Toolkit::VisualFactory::Get();
-      const Property::Map *map = value.GetMap();
-      if( map && !map->Empty() )
-      {
-        Toolkit::Visual::Base visual = visualFactory.CreateVisual( *map );
-        GetImplementation( control ).RegisterVisual( index, visual );
-      }
-      break;
-    }
-    //...
-  }
-}
-~~~
-
-The [Visuals](@ref visuals) section describes the property maps that can be used for each visual type.
-
-___________________________________________________________________________________________________
-
-## Ensuring Control is Stylable {#creating-controls-stylable}
-
-DALi's property system allows custom controls to be easily styled.
-The [JSON Syntax](@ref script-json-specification) is used in the stylesheets:
-**JSON Styling Syntax Example:**
-~~~
-{
-  "styles":
-  {
-    "textfield":
-    {
-      "pointSize":18,
-      "primaryCursorColor":[0.0,0.72,0.9,1.0],
-      "secondaryCursorColor":[0.0,0.72,0.9,1.0],
-      "cursorWidth":1,
-      "selectionHighlightColor":[0.75,0.96,1.0,1.0],
-      "grabHandleImage" : "{DALI_STYLE_IMAGE_DIR}cursor_handler_drop_center.png",
-      "selectionHandleImageLeft" : {"filename":"{DALI_STYLE_IMAGE_DIR}selection_handle_drop_left.png" },
-      "selectionHandleImageRight": {"filename":"{DALI_STYLE_IMAGE_DIR}selection_handle_drop_right.png" }
-    }
-  }
-}
-~~~
-Styling gives the UI designer the ability to change the look and feel of the control without any code changes.
-| Normal Style | Customized Style |
-|:------------:|:----------------:|
-|![ ](../assets/img/creating-custom-controls/popup-normal.png) ![ ](creating-custom-controls/popup-normal.png) | ![ ](../assets/img/creating-custom-controls/popup-styled.png) ![ ](creating-custom-controls/popup-styled.png)|
-More information regarding styling can be found in the [Styling](@ref styling) section.
-___________________________________________________________________________________________________
-
-### Type Registration {#creating-controls-type-registration}
-
-The TypeRegistry is used to register your custom control.
-This allows the creation of the control via a JSON file, as well as registering properties, signals and actions.
-To ensure your control is stylable, the process described in [Type Registration](@ref type-registration) should be followed.
-
-#### Properties
-To aid development, some macros are provided for registering properties which are described in the [Property](@ref properties) section.
-Control properties can be one of three types:
- + **Event-side only:** A function is called to set this property or to retrieve the value of this property.
-                        Usually, the value is stored as a member parameter of the Impl class.
-                        Other operations can also be done, as required, in this called function.
- + **Animatable Properties:** These are double-buffered properties that can be animated.
- + **Custom Properties:** These are dynamic properties that are created for every single instance of the control.
-                          Therefore, these tend to take a lot of memory and are usually used by applications or other controls to dynamically set certain attributes on their children.
-                          The index for these properties can also be different for every instance.
-Careful consideration must be taken when choosing which property type to use for the properties of the custom control.
-For example, an Animatable property type can be animated but requires a lot more resources (both in its execution and memory footprint) compared to an event-side only property.
-___________________________________________________________________________________________________
-
-## Control Services {#creating-controls-control-services}
-
-### Initialization {#creating-controls-init}
-
-Controls are initialized in two steps: in the constructor, and then in the Initialize() method.
-This is so that a handle/body connection is made within DALi Core.
-See Dali::CustomActor & Dali::CustomActorImpl for more information.
-It is recommended to do provide a New() method in the custom control implementation where the Initialize() method should be called.
-
-~~~{.cpp}
-// C++
-MyUIControl Internal::MyUIControl::New()
-{
-  // Create the implementation, temporarily owned on stack
-  IntrusivePtr< Internal::MyUIControl > controlImpl = new Internal::MyUIControl;
-
-  // Pass ownership to handle
-  MyUIControl handle( *controlImpl );
-
-  // Second-phase init of the implementation
-  controlImpl->Initialize();
-
-  return handle;
-}
-~~~
-Another advantage of using a New() method is that the constructor for MyUIControl can be made private (or protected).
-This will trigger the Dali::Toolkit::Internal::Control Initialize() method which will in-turn, call the virtual method OnInitialize().
-This should be overridden by the custom ui control.
-~~~{.cpp}
-// C++
-void Internal::MyUIControl::OnInitialize()
-{
-  // Create visuals using the VisualFactory, register events etc.
-  // Register any created visuals with Control base class
-}
-~~~
-___________________________________________________________________________________________________
-
-### Control Behaviour {#creating-controls-behaviour}
-
-Dali::Toolkit::Internal::Control provides several behaviours which are specified through its constructor (@ref Dali::Toolkit::Internal::Control::Control()).
-| Behaviour                            | Description                                                                                                    |
-|--------------------------------------|----------------------------------------------------------------------------------------------------------------|
-| CONTROL_BEHAVIOUR_DEFAULT              | Default behavior (size negotiation is on, style change is monitored, event callbacks are not called.                                      |
-| DISABLE_SIZE_NEGOTIATION             | If our control does not need size negotiation, i.e. control will be skipped by the size negotiation algorithm. |
-| REQUIRES_HOVER_EVENTS                | If our control requires [hover events](@ref creating-controls-events).                                         |
-| REQUIRES_WHEEL_EVENTS                | If our control requires [wheel events](@ref creating-controls-events).                                         |
-| DISABLE_STYLE_CHANGE_SIGNALS         | True if control should not monitor style change signals such as Theme/Font change.                                         |
-| REQUIRES_KEYBOARD_NAVIGATION_SUPPORT | True if need to support keyboard navigation.                                                                   |
-___________________________________________________________________________________________________
-
-### Touch, Hover & Wheel Events {#creating-controls-events}
-
-+ A **touch** is when any touch occurs within the bounds of the custom actor. Connect to Dali::Actor::TouchSignal().
-+ A **hover event** is when a pointer moves within the bounds of a custom actor (e.g. mouse pointer or hover pointer).
-+ A **wheel event** is when the mouse wheel (or similar) is moved while hovering over an actor (via a mouse pointer or hover pointer).
-If the control needs to utilize hover and wheel events, then the correct behaviour flag should be used when constructing the control and then the appropriate method should be overridden.
-~~~{.cpp}
-// C++
-bool Internal::MyUIControl::OnHoverEvent( const HoverEvent& event )
-{
-  bool consumed = false;
-
-  // Handle hover event
-
-  // Return true if handled/consumed, false otherwise
-  return consumed;
-}
-~~~
-~~~{.cpp}
-// C++
-bool Internal::MyUIControl::OnWheelEvent( const WheelEvent& event )
-{
-  bool consumed = false;
-
-  // Handle wheel event
-
-  // Return true if handled/consumed, false otherwise
-  return consumed;
-}
-~~~
-___________________________________________________________________________________________________
-
-### Gestures {#creating-controls-gestures}
-
-DALi has a gesture system which analyses a stream of touch events and attempts to determine the intention of the user.
-The following gesture detectors are provided:
- + **Pan:** When the user starts panning (or dragging) one or more fingers.
-            The panning should start from within the bounds of the control.
- + **Pinch:** Detects when two touch points move towards or away from each other.
-              The center point of the pinch should be within the bounds of the control.
- + **Tap:** When the user taps within the bounds of the control.
- + **LongPress:** When the user presses and holds on a certain point within the bounds of a control.
-The control base class provides basic set up to detect these gestures.
-If any of these detectors are required then this can be specified in the OnInitialize() method (or as required).
-~~~{.cpp}
-// C++
-void Internal::MyUIControl::OnInitialize()
-{
-  // Only enable pan gesture detection
-  EnableGestureDetection( Gesture::Pan );
-
-  // Or if several gestures are required
-  EnableGestureDetection( Gesture::Type( Gesture::Pinch | Gesture::Tap | Gesture::LongPress ) );
-}
-~~~
-The above snippet of code will only enable the default gesture detection for each type.
-If customization of the gesture detection is required, then the gesture-detector can be retrieved and set up accordingly in the same method.
-~~~{.cpp}
-// C++
-PanGestureDetector panGestureDetector = GetPanGestureDetector();
-panGestureDetector.AddDirection( PanGestureDetector::DIRECTION_VERTICAL );
-~~~
-Finally, the appropriate method should be overridden:
-~~~{.cpp}
-// C++
-void Internal::MyUIControl::OnPan( const PanGesture& pan )
-{
-  // Handle pan-gesture
-}
-~~~
-~~~{.cpp}
-// C++
-void Internal::MyUIControl::OnPinch( const PinchGesture& pinch )
-{
-  // Handle pinch-event
-}
-~~~
-~~~{.cpp}
-// C++
-void Internal::MyUIControl::OnTap( const TapGesture& tap )
-{
-  // Handle tap-gesture
-}
-~~~
-~~~{.cpp}
-// C++
-void Internal::MyUIControl::OnLongPress( const LongPressGesture& longPress )
-{
-  // Handle long-press-gesture
-}
-~~~
-___________________________________________________________________________________________________
-
-### Accessibility {#creating-controls-accessibility}
-
-Accessibility is functionality that has been designed to aid usage by the visually impaired.
-More information can be found in the [Accessibility](@ref accessibility) section.
-Accessibility behaviour can be customized in the control by overriding certain virtual methods.
-This is detailed [here](@ref accessibilitycustomcontrol).
-___________________________________________________________________________________________________
-
-### Signals {#creating-controls-signals}
-
-If applications need to react to changes in the control state, controls can inform those applications using Dali::Signal.
-
-First, create a signature of the function the signal will call in the handle header file:
-~~~{.cpp}
-// C++: my-ui-control.h
-typedef Signal< void () > SignalType;
-~~~
-Then Create methods to get to the signal:
-~~~{.cpp}
-// C++: my-ui-control.h
-MyUIControl::SignalType& MyCustomSignal();
-~~~
-
-The source file should just call the impl:
-~~~{.cpp}
-// C++: my-ui-control.cpp
-MyUIControl::SignalType& MyUIControl::MyCustomSignal()
-{
-  return Dali::Toolkit::GetImplementation( *this ).MyCustomSignal();
-}
-~~~
-In the impl file, create an instance of the signal as follows and return it in the appropriate method:
-~~~{.cpp}
-// C++: my-ui-control-impl.h
-public:
-
-  MyUIControl::SignalType MyUIControl::MyCustomSignal()
-  {
-    return mMyCustomSignal;
-  }
-
-private:
-
-  MyUIControl::SignalType mMyCustomSignal;
-~~~
-Then, when you wish to emit this signal:
-~~~{.cpp}
-// C++: my-ui-control-impl.cpp
-mMyCustomSignal.Emit();
-~~~
-There is no need to check if there is anything connected to this signal as this is done by the framework.
-The application can then connect to the signal as follows:
-~~~{.cpp}
-void AppFunction()
-{
-  // Do Something
-}
-
-...
-
-customControl.MyCustomSignal.Connect( this, &AppFunction );
-~~~
-___________________________________________________________________________________________________
-
-### Children Added/Removed {#creating-controls-children}
-
-Methods are provided that can be overridden if notification is required when a child is added or removed from our control.
-An up call to the Control class is necessary if these methods are overridden.
-~~~{.cpp}
-// C++
-void Internal::MyUIControl::OnChildAdd( Actor& child );
-{
-  // Do any other operations required upon child addition
-
-  // Up call to Control at the end
-  Control::OnChildAdd( child );
-}
-~~~
-~~~{.cpp}
-// C++
-void Internal::MyUIControl::OnChildRemove( Actor& child );
-{
-  // Do any other operations required upon child removal
-
-  // Up call to Control at the end
-  Control::OnChildRemove( child );
-}
-~~~
-Avoid adding or removing the child again within these methods.
-___________________________________________________________________________________________________
-
-### Stage Connection {#creating-controls-stage}
-
-Methods are provided that can be overridden if notification is required when our control is connected to or disconnected from the stage.
-An up call to the Control class is necessary if these methods are overridden.
-~~~{.cpp}
-// C++
-void Internal::MyUIControl::OnStageConnection( int depth )
-{
-  // Do any other operations required upon stage connection
-
-  // Up call to Control at the end
-  Control::OnStageConnection( depth );
-}
-~~~
-~~~{.cpp}
-// C++
-void Internal::MyUIControl::OnStageDisconnection()
-{
-  // Do any other operations required upon stage disconnection
-
-  // Up call to Control at the end
-  Control::OnStageDisconnection();
-}
-~~~
-___________________________________________________________________________________________________
-
-### Size Negotiation {#creating-controls-size-negotiation}
-
-The following methods must be overridden for size negotiation to work correctly with a custom control.
-~~~{.cpp}
-// C++
-Vector3 Internal::MyUIControl::GetNaturalSize()
-{
-  // Return the natural size of the control
-  // This depends on our layout
-  // If we have one visual, then we can return the natural size of that
-  // If we have more visuals, then we need to calculate their positions within our control and work out the overall size we would like our control to be
-
-  // After working out the natural size of visuals that belong to this control,
-  // should also chain up to ensure other visuals belonging to the base class are
-  // also taken into account:
-  Vector2 baseSize = Control::GetNaturalSize(); // returns the size of the background.
-}
-~~~
-~~~{.cpp}
-// C++
-float Internal::MyUIControl::GetHeightForWidth( float width )
-{
-  // Called by the size negotiation algorithm if we have a fixed width
-  // We should calculate the height we would like our control to be for that width
-
-  // Should also chain up to determine the base class's preferred height:
-  float baseHeight = Control::GetHeightForWidth( width );
-
-}
-~~~
-~~~{.cpp}
-// C++
-float Internal::MyUIControl::GetWidthForHeight( float height )
-{
-  // Called by the size negotiation algorithm if we have a fixed height
-  // We should calculate the width we would like our control to be for that height
-
-  // Should also chain up to determine the base class's preferred width:
-  float baseWidth = Control::GetWidth( height );
-}
-~~~
-~~~{.cpp}
-// C++
-void Internal::MyUIControl::OnRelayout( const Vector2& size, RelayoutContainer& container )
-{
-  // The size is what we have been given and what our control needs to fit into
-  // Here, we need to set the position and the size of our visuals
-  // If we have other controls/actors as children
-  //  - Add the control/actor to the container paired with the size required
-  //  - To ensure this works, you need to set up the control with a relayout policy of USE_ASSIGNED_SIZE
-  //  - DO NOT CALL SetSize on this control: This will trigger another size negotiation calculation
-  // DO NOT chain up to base class.
-}
-~~~
-More information on size negotiation can be found [here](@ref size-negotiation-controls).
-___________________________________________________________________________________________________
-
-### Clipping Support {#creating-controls-clipping}
-
-When an Actor is set to clip its children, the renderers have to be added manually in order to specify what its children need to clip to.
-The Control base class automates the creation of the visuals when it is set to clip its children.
-This is only done if the application or custom control writer has not
-added any Renderers to the Control or registered any visuals
-(regardless of whether these visuals are enabled or not).
-If custom control writers want to define the clipping visuals themselves, then they should register all required visuals before the control is staged.
-___________________________________________________________________________________________________
-
-### Other Features {#creating-controls-other}
-
- + [Background](@ref background)
-___________________________________________________________________________________________________
-
-@class _Guide_Creating_UI_Controls
-
-*/
diff --git a/docs/content/shared-javascript-and-cpp-documentation/dali-introduction.md b/docs/content/shared-javascript-and-cpp-documentation/dali-introduction.md
deleted file mode 100644 (file)
index 7cdb3aa..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-<!--
-/**-->
-
-# DALi 3D ( Dynamic Animation Library ) {#dali-introduction}
-
-DALi is a quick and easy way of allowing developers to create Rich UI Applications like:
-
- + Image & Video galleries
- + Music players
- + Games
- + Maps
- + Homescreens / launch pads
- + Advanced watch faces for wearable devices
-
-DALi is based on OpenGL ES 2.0 & 3.0, however it hides the complexity of
-the OpenGL API from developers and provides a clean cross-platform C++ & JavaScript framework.
-
-## Features {#dali-features}
-
- + Create Images & Text
- + Create shaders using GLSL
- + Provide multiple cameras and render targets
- + Provides Layers to aid in 2D UI layout
- + Easy to use Animation framework
- + Automatic background loading of resources ( images / text / meshes )
- + Runs all animations in a separate thread. This helps maintain 60 FPS even if JavaScript is performing a long operation ( e.g. Garbage Collection ).
- + Provides keyboard / touch / mouse handling
-
-![ ](screen-shot.png)
-
-*/
diff --git a/docs/content/shared-javascript-and-cpp-documentation/debug-rendering.md b/docs/content/shared-javascript-and-cpp-documentation/debug-rendering.md
deleted file mode 100644 (file)
index f71eec2..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<!--
-/**-->
-
-# Debug rendering {#debugrendering}
-
-Setting DALI_DEBUG_RENDERING environment variable will enable the visual debugging.
-
-Then, every concrete visual ( ColorVisual, BorderVisual, ImageVisual, GradientVisual, etc. ) is replaced with a wireframe visual.
-The wireframe visual renders a simple quad wireframe, so that the control layout and scene structure is clearly displayed.
-
-## Example:
-~~~{.bash}
-sh-4.1$ DALI_DEBUG_RENDERING=1 /usr/apps/com.samsung.dali-demo/bin/blocks.example
-~~~
-
-![ ](../assets/img/debug-rendering/debug-blocks.png)
-![ ](debug-blocks.png)
-
-
diff --git a/docs/content/shared-javascript-and-cpp-documentation/documentation-guide.md b/docs/content/shared-javascript-and-cpp-documentation/documentation-guide.md
deleted file mode 100644 (file)
index 397428a..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-<!--
-/**-->
-
-# Writing documentation for the DALi programming guide  {#documentationguide}
-
-To allow documentation to be shared between C++ and JavaScript, please follow these guidelines:
-
- - Create a mark down file (.md) using GitHub Flavoured Markdown https://help.github.com/articles/github-flavored-markdown/
- - Put it into the shared C++ / JavaScript documentation: dali-toolkit/docs/content/shared-javascript-and-cpp-documentation/~
- - Include code samples for both C++ and JavaScript in the mark down.
- - See script-overview.md overview in dali-toolkit/docs/content/shared-javascript-and-cpp-documentation for an example
- - For YUIDOC to parse the file it needs:
-   - Enclosed in code comment block
-   - Have a class tag with a description of the file
- - For DOXYGEN to link to the mark down it currently needs a reference {hash myfile}
-  
-
-#### Images
- Images are shared between both Doxygen and YUIDOC tools using a symbolic link.
- You need to link to the image twice in shared documentation.
- This is because YUIDOC stores images in a folder called assets/img/  which is relative to the HTML pages.
- Where as Doxygen copies all images in to the same folder as the HTML generated pages.
-
- ~~~
-![ ](../assets/img/screen-shot.png)    // required for YUIDOC
-![ ](screen-shot.png)                  // required for Doxygen
-
-The space between the brackets is the alternative text. This means you will never see a broken image symbol.
-~~~
-  
-## Example
-
-Please have a look at the numerous markdown files to see the header and footer requirements.
-
-You can add tags to your headings as follows:
-~~~{.md}
-# MyChapter {#my-chapter}
-~~~
-Which will allow you to link to this section as follows:
-~~~{.md}
-[Go To MyChapter](@ref my-chapter)
-~~~
-
-Code blocks can be enclosed within 2 blocks of 3 tildes(~).
-
-You can even specify your language type, for example:
-~~~{.md}
-~~~{.cpp}
-...
-~~~{.js}
-~~~
-
-#### Why use GitHub flavoured markdown?
- - Table support is good and language specific code blocks are easier to define ( javascript/C++).
- - Doxygen and YUIDOC both support it.
-
-
-@class _Guide_Writing_DALi_Programming_Guide_Documentation
-
-*/
diff --git a/docs/content/shared-javascript-and-cpp-documentation/emscripten.md b/docs/content/shared-javascript-and-cpp-documentation/emscripten.md
deleted file mode 100644 (file)
index 9960e35..0000000
+++ /dev/null
@@ -1,199 +0,0 @@
-<!--
-/**-->
-
-[TOC]
-
-# DALi Emscripten {#emscripten}
-  
-
-## Introduction - What is Emscripten? {#emscripten-introduction}
-  
-Emscripten is a backend for LLVM that allows C and C++ to be compiled to Javascript.
-This can then be run within a web browser at near native speed (without plugins).
-  
-## DALi Emscripten {#emscripten-dali}
-  
-Dali-Core can be built using with Emscripten producing a Javascript version of DALi.
-A web page can then be made with HTML, and by embedding Javascript can reference and control the DALi Javascript canvas.
-  
-This allows you to have a DALi canvas within a web page that can either:
-- Run autonomously
-- Be controlled by HTML / Javascript controls elsewhere on the web page
-  
-The necessary scripts for building are included within each DALi repository.
-  
-
-# Building DALi Emscripten {#emscripten-building}
-  
-Within each DALi repository, the README file gives the respective instructions for building that repository.
-In summary, this process involves:
-  
-- Setting up a DALi environment with the Emscripten SDK (the dali_env script will do this if specified)
-- Building dali-core as Javascript (using Emscriptens configure and make replacements)
-- Building dali-adaptor Emscripten replacement with a separate build script found in dali-adaptor
-- Installing the examples within the dali-demo repository
-  
-## Build Artifacts {#emscripten-artifacts}
-  
-Each step in the build process will produce artifacts that will be written to the DALi environment directory.
-  
-- dali-core: Produces a dali-core.so in bytecode.
-- dali-adaptor: Produces:
-  - dali-emscripten.js (the main DALi Javascript runtime).
-  - dali-wrapper.js    (wrapped DALi calls that call into their cpp-built-to-js counterpart to execute DALi calls).
-- dali-toolkit: Note: Does not currently have Emscripten support.
-- dali-demo: Does not build with Emscripten, but includes some Javascript examples that can be run with an Emscripten build of DALi.
-  
-
-# Running The Examples {#emscripten-examples}
-  
-After building by following the README within each repository, navigate to the emscripten directory within your DALi environment. Assuming your DESKTOP_PREFIX environment variable is set (from your DALi environment), run:
-  
-~~~
-cd $DESKTOP_PREFIX/share/emscripten
-~~~
-  
-You will see the following files (among others):
-  
-- dali-toy.html          - An interactive DALi editor. Add actors, edit shaders and more.
-- dali-toy.js            - Required runtime for dali-toy.
-- dali-doc-demo.html     - Live documentation demo (a document containing a live DALi canvas).
-- dali-tests.html        - Live unit tests for DALi Emscripten.
-- dali-emscripten.html   - Required DALi Emscripten runtime.
-- dali-emscripten.js     - Required DALi Emscripten runtime.
-- dali-wrapper.js        - Required DALi Emscripten runtime.
-  
-The other files within the directory are part of the live unit tests.
-  
-You can use various browsers to run the examples, however for compatibility we recommend chrome.
-To install chrome on Ubuntu:
-  
-~~~
-sudo apt-get install chromium-browser
-~~~
-  
-To run an example:
-  
-<br>
-~~~
-chromium-browser ./dali-toy.html
-~~~
-  
-![ ](../assets/img/emscripten/emscripten-dali-toy.png) ![ ](./emscripten-dali-toy.png)
-  
-<br><br>
-~~~
-chromium-browser ./dali-doc-demo.html
-~~~
-  
-![ ](../assets/img/emscripten/emscripten-live-doc.png) ![ ](./emscripten-live-doc.png)
-  
-<br><br>
-
-
-# Running The Live Unit Tests {#emscripten-tests}
-  
-Included are some live unit tests.
-These run as a web page within a browser, a DALi canvas is created and used to run each test.
-The QUnit test suite is used (included within the repository for compatibility).
-  
-![ ](../assets/img/emscripten/emscripten-tests.png) ![ ](./emscripten-tests.png)
-  
-<br>
-
-For the tests to work correctly, the web page should be run through a web server, rather than directly with a browser.
-This can be achieved simply using npms's zero configuration command line server: "http-server".
-  
-To install "http-server":
-  
-~~~
-npm install http-server -g
-~~~
-  
-To start the server, just run:
-  
-~~~
-http-server
-~~~
-  
-This will give the following output:
-  
-~~~
-http-server
-Starting up http-server, serving ./
-Available on:
-  http://127.0.0.1:8080
-  http://106.1.10.118:8080
-Hit CTRL-C to stop the server
-~~~
-  
-This will automatically create a server and serve the contents of the current directory.
-The command outputs the URL to paste into your browser, in the above case:
-  
-So to run the tests:
-  
-- cd $DESKTOP_PREFIX/share/emscripten
-- http-server
-- Open a browser and paste the URL into the address bar.
-- Click "All" to run all the tests.
-- After a short while the tests will complete and any errors will be shown.
-- A test can be re-run by clicking the "Rerun" link by that test. There is also a global Rerun option.
-  
-# Debugging & Usage Tips {#emscripten-debugging}
-  
-Most browsers provide a Javascript console.
-In many cases this will open when inspecting an element. However to jump straight to the console (within chromium), press:
-  
-- "Ctrl + Shift + J" (Windows/Linux)
-- "Command + Option + J" (Mac)
-  
-From this console, any references within your Javascript code and DALi itself can be accessed directly.
-This allows you to run commands live.
-  
-EG. Within the console you could enter:
-  
-~~~
-var MyActor = new dali.Actor();
-MyActor.name = "MyName";
-...
-MyActor.name
-<- "MyName"
-~~~
-  
-You can also inspect elements like so:
-  
-~~~
-var MyActor = new dali.Actor();
-MyActor
-<- ▶ Object {$$: Object}
-~~~
-  
-Then clicking on the tree node toggle "▶" Will expand the objects hierarchy like so:
-  
-~~~
-▼ Object {$$: Object}
-  ▶ $$: Object
-    anchorPoint: (...)
-  ▶ get anchorPoint: function ()
-  ▶ set anchorPoint: function (newValue)
-    anchorPointX: (...)
-  ▶ get anchorPointX: function ()
-  ▶ set anchorPointX: function (newValue)
-  <etc>
-~~~
-  
-You can then further expand the tree by clicking on the "▶" nodes.
-  
-You can also expand the "(...)" sections to show type information, EG:
-  
-~~~
-    anchorPoint: (...)
-Becomes:
-    anchorPoint: Array[3]
-~~~
-  
-Note: You can access and modify existing objects created by the Javascript also.
-  
-
-@class _Guide_Emscripten
-*/
diff --git a/docs/content/shared-javascript-and-cpp-documentation/flex-container.md b/docs/content/shared-javascript-and-cpp-documentation/flex-container.md
deleted file mode 100644 (file)
index cbe2e6d..0000000
+++ /dev/null
@@ -1,689 +0,0 @@
-<!--
-/**-->
-
-# Flex Container  {#flex-container}
-
-Flexbox is a CSS3 web layout model which allows responsive elements within a container, automatically arranged to different size screens or devices.
-FlexContainer implements a subset of the Flexbox spec (defined by W3C) at: https://www.w3.org/TR/css-flexbox-1/
-The flex container has the ability to alter the width and/or height of its children (i.e. flex items) to best fill the available space on any display device.
-The container expands items to fill available free space, or shrinks them to prevent overflow.
-Below is an illustration of the various directions and terms as applied to a flex container with the "flex direction" defined as "row".
-![ ](../assets/img/flex-container/flex-container.jpg)
-![ ](flex-container/flex-container.jpg)
-DALi supports the following subset of Flexbox properties.
-## Properties supported by flex container:
-
- + [contentDirection](@ref content-direction)
- + [flexDirection](@ref flex-direction)
- + [flexWrap](@ref flex-wrap)
- + [justifyContent](@ref justify-content)
- + [alignItems](@ref align-items)
- + [alignContent](@ref align-content)
-___________________________________________________________________________________________________
-
-## contentDirection {#content-direction}
-contentDirection specifies the primary direction in which content is ordered on a line.
-| LTR (left-to-right) | RTL (right-to-left) |
-|--------|--------|
-| ![ ](../assets/img/flex-container/content-direction-ltr.jpg) ![ ](flex-container/content-direction-ltr.jpg) | ![ ](../assets/img/flex-container/content-direction-rtl.jpg) ![ ](flex-container/content-direction-rtl.jpg) |
-The possible values for this property are:
-| Property Value | Description                                 |
-|----------------|---------------------------------------------|
-| INHERIT        | Inherits the same direction from the parent |
-| LTR            | From left to right                          |
-| RTL            | From right to left                          |
-### Usage
-
-~~~{.cpp}
-// C++
-Dali::Toolkit::FlexContainer flexContainer = Dali::Toolkit::FlexContainer::New();
-flexContainer.SetProperty( Dali::Toolkit::FlexContainer::Property::CONTENT_DIRECTION, Dali::Toolkit::FlexContainer::RTL );
-~~~
-
-~~~{.js}
-// JavaScript
-var flexContainer = new dali.Control("FlexContainer");
-flexContainer.contentDirection = "RTL";
-~~~
-___________________________________________________________________________________________________
-
-## flexDirection {#flex-direction}
-flexDirection specifies the direction of the main axis which determines the direction that flex items are laid out.
-![ ](../assets/img/flex-container/flex-direction.jpg)
-![ ](flex-container/flex-direction.jpg)
-The possible values for this property are:
-| Property Value | Description                                 |
-|----------------|---------------------------------------------|
-| COLUMN         | The flex items are laid out vertically as a column                          |
-| COLUMN_REVERSE | The flex items are laid out vertically as a column, but in reverse order    |
-| ROW            | The flex items are laid out horizontally as a row                       |
-| ROW_REVERSE    | The flex items are laid out horizontally as a row, but in reverse order |
-### Usage
-
-~~~{.cpp}
-// C++
-Dali::Toolkit::FlexContainer flexContainer = Dali::Toolkit::FlexContainer::New();
-flexContainer.SetProperty( Dali::Toolkit::FlexContainer::Property::FLEX_DIRECTION, Dali::Toolkit::FlexContainer::ROW_REVERSE );
-~~~
-
-~~~{.js}
-// JavaScript
-var flexContainer = new dali.Control("FlexContainer");
-flexContainer.flexDirection = "rowReverse";
-~~~
-___________________________________________________________________________________________________
-
-## flexWrap {#flex-wrap}
-flexWrap specifies whether the flex items should wrap or not if there is no enough room for them on one flex line.
-![ ](../assets/img/flex-container/flex-wrap.jpg)
-![ ](flex-container/flex-wrap.jpg)
-The possible values for this property are:
-| Property Value | Description                                 |
-|----------------|---------------------------------------------|
-| NO_WRAP        | Flex items laid out in single line (shrunk to fit the flex container along the main axis) |
-| WRAP           | Flex items laid out in multiple lines if needed                                           |
-### Usage
-
-~~~{.cpp}
-// C++
-Dali::Toolkit::FlexContainer flexContainer = Dali::Toolkit::FlexContainer::New();
-flexContainer.SetProperty( Dali::Toolkit::FlexContainer::Property::FLEX_WRAP, Dali::Toolkit::FlexContainer::NO_WRAP );
-~~~
-
-~~~{.js}
-// JavaScript
-var flexContainer = new dali.Control("FlexContainer");
-flexContainer.flexWrap = "noWrap";
-~~~
-___________________________________________________________________________________________________
-
-## justifyContent {#justify-content}
-justifyContent specifies the alignment of flex items when they do not use all available space on the main axis.
-![ ](../assets/img/flex-container/justify-content.jpg)
-![ ](flex-container/justify-content.jpg)
-The possible values for this property are:
-| Property Value | Description                                 |
-|----------------|---------------------------------------------|
-| JUSTIFY_FLEX_START      | Items are positioned at the beginning of the container                     |
-| JUSTIFY_CENTER          | Items are positioned at the center of the container                        |
-| JUSTIFY_FLEX_END        | Items are positioned at the end of the container                           |
-| JUSTIFY_SPACE_BETWEEN   | Items are positioned with equal space between the lines                    |
-| JUSTIFY_SPACE_AROUND    | Items are positioned with equal space before, between, and after the lines |
-### Usage
-
-~~~{.cpp}
-// C++
-Dali::Toolkit::FlexContainer flexContainer = Dali::Toolkit::FlexContainer::New();
-flexContainer.SetProperty( Dali::Toolkit::FlexContainer::Property::JUSTIFY_CONTENT, Dali::Toolkit::FlexContainer::JUSTIFY_SPACE_BETWEEN );
-~~~
-
-~~~{.js}
-// JavaScript
-var flexContainer = new dali.Control("FlexContainer");
-flexContainer.justifyContent = "spaceBetween";
-~~~
-___________________________________________________________________________________________________
-
-## alignItems {#align-items}
-alignItems specifies the alignment of flex items when they do not use all available space on the cross axis.
-![ ](../assets/img/flex-container/align-items.jpg)
-![ ](flex-container/align-items.jpg)
-The possible values for this property are:
-| Property Value | Description                                 |
-|----------------|---------------------------------------------|
-| ALIGN_FLEX_START | Items are aligned at the beginning of the container |
-| ALIGN_CENTER     | Items are aligned at the center of the container    |
-| ALIGN_FLEX_END   | Items are aligned at the end of the container       |
-| ALIGN_STRETCH    | Items are stretched to fit the container            |
-### Usage
-
-~~~{.cpp}
-// C++
-Dali::Toolkit::FlexContainer flexContainer = Dali::Toolkit::FlexContainer::New();
-flexContainer.SetProperty( Dali::Toolkit::FlexContainer::Property::ALIGN_ITEMS, Dali::Toolkit::FlexContainer::ALIGN_FLEX_START );
-~~~
-
-~~~{.js}
-// JavaScript
-var flexContainer = new dali.Control("FlexContainer");
-flexContainer.alignItems = "flexStart";
-~~~
-___________________________________________________________________________________________________
-
-## alignContent {#align-content}
-alignContent specifies the alignment of flex lines when they do not use all available space on the cross axis, so only works when there are multiple lines.
-![ ](../assets/img/flex-container/align-content.jpg)
-![ ](flex-container/align-content.jpg)
-The possible values for this property are:
-| Property Value | Description                                 |
-|----------------|---------------------------------------------|
-| ALIGN_FLEX_START | Items are aligned at the beginning of the container |
-| ALIGN_CENTER     | Items are aligned at the center of the container    |
-| ALIGN_FLEX_END   | Items are aligned at the end of the container       |
-### Usage
-
-~~~{.cpp}
-// C++
-Dali::Toolkit::FlexContainer flexContainer = Dali::Toolkit::FlexContainer::New();
-flexContainer.SetProperty( Dali::Toolkit::FlexContainer::Property::ALIGN_CONTENT, Dali::Toolkit::FlexContainer::ALIGN_FLEX_END );
-~~~
-
-~~~{.js}
-// JavaScript
-var flexContainer = new dali.Control("FlexContainer");
-flexContainer.alignContent = "flexEnd";
-~~~
-___________________________________________________________________________________________________
-
-## Custom properties supported by flex item:
-
- + [flex](@ref flex)
- + [alignSelf](@ref align-self)
- + [flexMargin](@ref flex-margin)
-These non-animatable properties are registered dynamically to each child which would be added to the flex container, and once added their values can not be changed.
-When an actor is added to the flex container, these properties are checked to decide how to lay out the actor inside the flex container.
-___________________________________________________________________________________________________
-
-## flex {#flex}
-By default, the items in the flex container are not flexible. If set, this property makes the item flexible, which means the item can alter its width/height in order to receive the specified proportion of the free space in the flex container.
-If all items in the flex container use this pattern, their sizes will be proportional to the specified flex factor.
-Flex items will not shrink below their minimum size (if set using Dali::Actor::SetMinimumSize).
-![ ](../assets/img/flex-container/flex.jpg)
-![ ](flex-container/flex.jpg)
-
-### Usage
-
-Below is the example code for the items to achieve the proportion of free space as illustrated above.
-~~~{.cpp}
-// C++
-
-// Create the flex container
-Dali::Toolkit::FlexContainer flexContainer = Dali::Toolkit::FlexContainer::New();
-
-// Set the flex direction to lay out the items horizontally
-flexContainer.SetProperty( Dali::Toolkit::FlexContainer::Property::FLEX_DIRECTION, Dali::Toolkit::FlexContainer::ROW );
-
-// Create flex items and set the proportion
-Dali::Toolkit::Control item1 = Dali::Toolkit::Control::New();
-item1.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::FLEX, 1.0f );
-flexContainer.Add( item1 );
-
-Dali::Toolkit::Control item2 = Dali::Toolkit::Control::New();
-item2.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::FLEX, 3.0f );
-flexContainer.Add( item2 );
-
-Dali::Toolkit::Control item3 = Dali::Toolkit::Control::New();
-item3.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::FLEX, 1.0f );
-flexContainer.Add( item3 );
-
-Dali::Toolkit::Control item4 = Dali::Toolkit::Control::New();
-item4.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::FLEX, 2.0f );
-flexContainer.Add( item4 );
-
-Dali::Toolkit::Control item5 = Dali::Toolkit::Control::New();
-item5.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::FLEX, 1.0f );
-flexContainer.Add( item5 );
-
-~~~
-
-~~~{.js}
-// JavaScript
-
-// Create the flex container
-var flexContainer = new dali.Control("FlexContainer");
-
-// Set the flex direction to lay out the items horizontally
-flexContainer.flexDirection = "row";
-
-// Create flex items and set the proportion
-var item1 = new dali.Control();
-item1.flex = 1.0;
-flexContainer.add(item1);
-
-var item2 = new dali.Control();
-item2.flex = 3.0;
-flexContainer.add(item2);
-
-var item3 = new dali.Control();
-item3.flex = 1.0;
-flexContainer.add(item3);
-
-var item4 = new dali.Control();
-item4.flex = 2.0;
-flexContainer.add(item4);
-
-var item5 = new dali.Control();
-item5.flex = 1.0;
-flexContainer.add(item5);
-
-~~~
-___________________________________________________________________________________________________
-
-## alignSelf {#align-self}
-alignSelf specifies how the item will align along the cross axis, if set, this overrides the default alignment for all items defined by the container’s [alignItems](@ref align-items) property.
-![ ](../assets/img/flex-container/align-self.jpg)
-![ ](flex-container/align-self.jpg)
-The possible values for this property are:
-| Property Value | Description                                 |
-|----------------|---------------------------------------------|
-| ALIGN_AUTO       | Items inherit the same alignment from the parent by default (as specified by the container’s [alignItems](@ref align-items) property) |
-| ALIGN_FLEX_START | Items are aligned at the beginning of the container |
-| ALIGN_CENTER     | Items are aligned at the center of the container    |
-| ALIGN_FLEX_END   | Items are aligned at the end of the container       |
-| ALIGN_STRETCH    | Items are stretched to fit the container            |
-### Usage
-
-Below is the example code for the items to achieve the alignment on the cross axis as illustrated above.
-~~~{.cpp}
-// C++
-
-// Create the flex container
-Dali::Toolkit::FlexContainer flexContainer = Dali::Toolkit::FlexContainer::New();
-
-// Set the flex direction to lay out the items horizontally
-flexContainer.SetProperty( Dali::Toolkit::FlexContainer::Property::FLEX_DIRECTION, Dali::Toolkit::FlexContainer::ROW );
-
-// Set the items to be aligned at the beginning of the container on the cross axis by default
-flexContainer.SetProperty( Dali::Toolkit::FlexContainer::Property::ALIGN_ITEMS, Dali::Toolkit::FlexContainer::ALIGN_FLEX_START );
-
-// Create flex items and add them to the flex container
-Dali::Toolkit::Control item1 = Dali::Toolkit::Control::New();
-item1.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::ALIGN_SELF, Dali::Toolkit::FlexContainer::ALIGN_CENTER ); // Align item1 at the center of the container
-flexContainer.Add( item1 );
-
-Dali::Toolkit::Control item2 = Dali::Toolkit::Control::New();
-flexContainer.Add( item2 ); // item2 is aligned at the beginning of the container
-
-Dali::Toolkit::Control item3 = Dali::Toolkit::Control::New();
-item3.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::ALIGN_SELF, Dali::Toolkit::FlexContainer::ALIGN_FLEX_END ); // Align item3 at the bottom of the container
-flexContainer.Add( item3 );
-
-Dali::Toolkit::Control item4 = Dali::Toolkit::Control::New();
-flexContainer.Add( item4 ); // item4 is aligned at the beginning of the container
-
-~~~
-
-~~~{.js}
-// JavaScript
-
-// Create the flex container
-var flexContainer = new dali.Control("FlexContainer");
-
-// Set the flex direction to lay out the items horizontally
-flexContainer.flexDirection = "row";
-
-// Set the items to be aligned at the beginning of the container on the cross axis by default
-flexContainer.alignItems = "flexStart";
-
-// Create flex items and add them to the flex container
-var item1 = new dali.Control();
-item1.alignSelf = "center"; // Align item1 at the center of the container
-flexContainer.add(item1);
-
-var item2 = new dali.Control();
-flexContainer.add(item2); // item2 is aligned at the beginning of the container
-
-var item3 = new dali.Control();
-item1.alignSelf = "flexEnd"; // Align item3 at the bottom of the container
-flexContainer.add(item3);
-
-var item4 = new dali.Control();
-flexContainer.add(item4); // item4 is aligned at the beginning of the container
-
-~~~
-___________________________________________________________________________________________________
-
-## flexMargin {#flex-margin}
-Each flex item inside the flex container is treated as a box (in CSS term) which is made up of:
-
- + content: The content of the item.
- + padding: The space around the content (inside the border) of the item.
- + border: The border that goes around the padding and the content of the item.
- + flexMargin: The space outside the border.
-![ ](../assets/img/flex-container/flex-margin.jpg)
-![ ](flex-container/flex-margin.jpg)
-In DALi, the size of the flex item = content size + padding + border.
-flexMargin specifies the space around the flex item.
-### Usage
-
-~~~{.cpp}
-// C++
-
-// Create the flex container
-Dali::Toolkit::FlexContainer flexContainer = Dali::Toolkit::FlexContainer::New();
-
-// Create flex item
-Dali::Toolkit::Control item = Dali::Toolkit::Control::New();
-
-// Add the margin around the item
-item.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::FLEX_MARGIN, Vector4(10.0f, 10.0f, 10.0f, 10.0f) );
-
-// Add the item to the container
-flexContainer.Add( item );
-~~~
-
-~~~{.js}
-// JavaScript
-
-// Create the flex container
-var flexContainer = new dali.Control("FlexContainer");
-
-// Create flex items
-var item = new dali.Control();
-
-// Add the margin around the item
-item.flexMargin = [10.0, 10.0, 10.0, 10.0];
-
-// Add the item to the container
-flexContainer.add(item);
-~~~
-
-___________________________________________________________________________________________________
-
-## Example of creating Flexbox layout using FlexContainer
-
-Now let's see how to create a Gallery like layout (as shown below) using FlexContainer.
-
-![ ](../assets/img/flex-container/flexbox-demo.jpg)
-![ ](flex-container/flexbox-demo.jpg)
-Firstly, we create a flex container as the whole view and set its resize policy to fill its parent (i.e. the stage).
-
-~~~{.cpp}
-// C++
-
-// Create the main flex container
-Dali::Toolkit::FlexContainer flexContainer = Dali::Toolkit::FlexContainer::New();
-flexContainer.SetParentOrigin( Dali::ParentOrigin::TOP_LEFT );
-flexContainer.SetAnchorPoint( Dali::AnchorPoint::TOP_LEFT );
-flexContainer.SetResizePolicy( Dali::ResizePolicy::FILL_TO_PARENT, Dali::Dimension::ALL_DIMENSIONS );
-flexContainer.SetBackgroundColor( Dali::Color::WHITE ); // set the background color to be white
-
-// Add it to the stage
-Dali::Stage::GetCurrent().Add( flexContainer );
-~~~
-
-~~~{.js}
-// JavaScript
-
-// Create the main flex container
-var flexContainer = new dali.Control("FlexContainer");
-flexContainer.parentOrigin = dali.TOP_LEFT;
-flexContainer.anchorPoint = dali.TOP_LEFT;
-flexContainer.widthResizePolicy = "FILL_TO_PARENT";
-flexContainer.heightResizePolicy = "FILL_TO_PARENT";
-flexContainer.backgroundColor = dali.COLOR_WHITE; // set the background color to be white
-
-// Add it to the stage
-dali.stage.add( flexContainer );
-~~~
-We want to set the flex direction of this main container to column, as we want the toolbar and the actual content to be displayed vertically.
-~~~{.cpp}
-// C++
-
-// Display toolbar and content vertically
-flexContainer.SetProperty( Dali::Toolkit::FlexContainer::Property::FLEX_DIRECTION, Dali::Toolkit::FlexContainer::COLUMN );
-~~~
-
-~~~{.js}
-// JavaScript
-
-// Display toolbar and content vertically
-flexContainer.flexDirection = "column";
-~~~
-Now we create a flex container as the toolbar and add it to the main container. Because the flex direction in the main container is column, the toolbar will be arranged on the top of the main container.
-~~~{.cpp}
-// C++
-
-// Create the toolbar
-Dali::Toolkit::FlexContainer toolBar = Dali::Toolkit::FlexContainer::New();
-toolBar.SetParentOrigin( Dali::ParentOrigin::TOP_LEFT );
-toolBar.SetAnchorPoint( Dali::AnchorPoint::TOP_LEFT );
-toolBar.SetBackgroundColor( Dali::Color::CYAN ); // Set the background color for the toolbar
-
-// Add it to the main container
-flexContainer.Add( toolBar );
-~~~
-
-~~~{.js}
-// JavaScript
-
-// Create the toolbar area
-var toolBar = new dali.Control("FlexContainer");
-toolBar.parentOrigin = dali.TOP_LEFT;
-toolBar.anchorPoint = dali.TOP_LEFT;
-toolBar.backgroundColor = dali.COLOR_CYAN; // Set the background color for the toolbar
-
-// Add it to the main container
-flexContainer.add(toolBar);
-~~~
-We want the buttons and title to be displayed horizontally and vertically aligned to the center of the toolbar, so we set its flex direction to row and set its alignItems property to center.
-We also want the toolbar and the actual content to share the height of the main container, so that the toolbar will occupy 10 percent of the whole vertical space and the content will occupy the rest of the vertical space.
-This can be achieved by setting the flex property.
-~~~{.cpp}
-// C++
-
-toolBar.SetProperty( Dali::Toolkit::FlexContainer::Property::FLEX_DIRECTION, Dali::Toolkit::FlexContainer::ROW ); // display toolbar items horizontally
-toolBar.SetProperty( Dali::Toolkit::FlexContainer::Property::ALIGN_ITEMS, Dali::Toolkit::FlexContainer::ALIGN_CENTER ); // align toolbar items vertically center
-toolBar.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::FLEX, 0.1f ); // 10 percent of available space in the cross axis
-~~~
-
-~~~{.js}
-// JavaScript
-
-toolBar.flexDirection = "row"; // display toolbar items horizontally
-toolBar.alignItems = "center"; // align toolbar items vertically center
-toolBar.flex = 0.1; // 10 percent of available space in the cross axis
-~~~
-Then we create another flex container as the content area to display the image, and it will be displayed in the bottom of the main container.
-We want the item inside it to be horizontally and vertically centered, so that the image will always be in the center of the content area.
-
-~~~{.cpp}
-// C++
-
-// Create the content area
-Dali::Toolkit::FlexContainer content = Dali::Toolkit::FlexContainer::New();
-content.SetParentOrigin( Dali::ParentOrigin::TOP_LEFT );
-content.SetAnchorPoint( Dali::AnchorPoint::TOP_LEFT );
-content.SetProperty( Dali::Toolkit::FlexContainer::Property::FLEX_DIRECTION, Dali::Toolkit::FlexContainer::ROW ); // display items horizontally
-content.SetProperty( Dali::Toolkit::FlexContainer::Property::JUSTIFY_CONTENT, Dali::Toolkit::FlexContainer::JUSTIFY_CENTER ); // align items horizontally center
-content.SetProperty( Dali::Toolkit::FlexContainer::Property::ALIGN_ITEMS, Dali::Toolkit::FlexContainer::ALIGN_CENTER ); // align items vertically center
-content.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::FLEX, 0.9f ); // 90 percent of available space in the cross axis
-
-// Add it to the main container
-flexContainer.Add( content );
-~~~
-
-~~~{.js}
-// JavaScript
-
-// Create the content area
-var content = new dali.Control("FlexContainer");
-content.parentOrigin = dali.TOP_LEFT;
-content.anchorPoint = dali.TOP_LEFT;
-content.flexDirection = "row";
-content.alignItems = "center"; // align items vertically center
-content.justifyContent = "center"; // align items horizontally center
-content.flex = 0.9; // 90 percent of available space in the cross axis
-
-// Add it to the main container
-flexContainer.add(content);
-~~~
-Now we start to add items to the toolbar. The toolbar will have one button on the left, one button on the right, and a title always in the center (regardless of the screen size).
-To achieve that, we can simply make the title flexible so that it will automatically take all the available horizontal space left.
-We will also add some space around the items so that the layout looks nicer.
-~~~{.cpp}
-// C++
-
-// Add a button to the left of the toolbar
-Dali::Toolkit::PushButton prevButton = Dali::Toolkit::PushButton::New();
-prevButton.SetParentOrigin( Dali::ParentOrigin::TOP_LEFT );
-prevButton.SetAnchorPoint( Dali::AnchorPoint::TOP_LEFT );
-prevButton.SetMinimumSize( Dali::Vector2( 100.0f, 60.0f ) ); // this is the minimum size the button should keep
-prevButton.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::FLEX_MARGIN, Dali::Vector4(10.0f, 10.0f, 10.0f, 10.0f) ); // set 10 pixel margin around the button
-toolBar.Add( prevButton );
-
-// Set the button text
-Dali::Property::Map labelMap;
-labelMap[ "text" ]      = "Prev";
-labelMap[ "textColor" ] = Dali::Color::BLACK;
-prevButton.SetProperty( Dali::Toolkit::Button::Property::LABEL, labelMap );
-
-// Add a title to the center of the toolbar
-Dali::Toolkit::TextLabel title = Dali::Toolkit::TextLabel::New( "Gallery" );
-title.SetParentOrigin( Dali::ParentOrigin::TOP_LEFT );
-title.SetAnchorPoint( Dali::AnchorPoint::TOP_LEFT );
-title.SetResizePolicy( Dali::ResizePolicy::USE_NATURAL_SIZE, Dali::Dimension::ALL_DIMENSIONS );
-title.SetProperty( Dali::Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
-title.SetProperty( Dali::Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
-title.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::FLEX, 1.0f ); // take all the available space left apart from the two buttons
-title.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::FLEX_MARGIN, Dali::Vector4(10.0f, 10.0f, 10.0f, 10.0f) ); // set 10 pixel margin around the title
-toolBar.Add( title );
-
-// Add a button to the right of the toolbar
-Dali::Toolkit::PushButton nextButton = Dali::Toolkit::PushButton::New();
-nextButton.SetParentOrigin( Dali::ParentOrigin::TOP_LEFT );
-nextButton.SetAnchorPoint( Dali::AnchorPoint::TOP_LEFT );
-nextButton.SetMinimumSize( Dali::Vector2( 100.0f, 60.0f ) ); // this is the minimum size the button should keep
-nextButton.SetProperty( Dali::Toolkit::FlexContainer::ChildProperty::FLEX_MARGIN, Dali::Vector4(10.0f, 10.0f, 10.0f, 10.0f) ); // set 10 pixel margin around the button
-toolBar.Add( nextButton );
-
-// Set the button text
-labelMap[ "text" ] = "Next";
-nextButton.SetProperty( Dali::Toolkit::Button::Property::LABEL, labelMap );
-~~~
-
-~~~{.js}
-// JavaScript
-
-// Add a button to the left of the toolbar
-var prevButton = new dali.Control("PushButton");
-prevButton.name = "Prev";
-prevButton.parentOrigin = dali.TOP_LEFT;
-prevButton.anchorPoint = dali.TOP_LEFT;
-prevButton.minimumSize = [100.0, 60.0]; // this is the minimum size the button should keep
-prevButton.labelText = "Prev";
-prevButton.flexMargin = [10, 10, 10, 10]; // set 10 pixel margin around the button
-
-toolBar.add( prevButton );
-
-// Add a title to the center of the toolbar
-var title = new dali.Control("TextLabel");
-title.parentOrigin = dali.TOP_LEFT;
-title.anchorPoint = dali.TOP_LEFT;
-title.widthResizePolicy = "USE_NATURAL_SIZE";
-title.heightResizePolicy = "USE_NATURAL_SIZE";
-title.horizontalAlignment = "CENTER";
-title.verticalAlignment = "CENTER";
-title.text = "Gallery";
-title.flex = 1.0; // take all the available space left apart from the two buttons
-title.flexMargin = [10, 10, 10, 10]; // set 10 pixel margin around the title
-
-toolBar.add( title );
-
-// Add a button to the right of the toolbar
-var nextButton = new dali.Control("PushButton");
-nextButton.name = "Next";
-nextButton.parentOrigin = dali.TOP_LEFT;
-nextButton.anchorPoint = dali.TOP_LEFT;
-nextButton.minimumSize = [100.0, 60.0]; // this is the minimum size the button should keep
-nextButton.labelText = "Next";
-nextButton.flexMargin = [10, 10, 10, 10]; // set 10 pixel margin around the button
-
-toolBar.add( nextButton );
-~~~
-This is really neat when running on devices with different size or changing from different orientation, because the toolbar will expand or shrink based on the available space and the title will always be in the center, therefore the layout of the toolbar will keep the same.
-Finally, we will add the image to the content area.
-~~~{.cpp}
-// C++
-
-// Add an image to the center of the content area
-Dali::Toolkit::ImageView imageView = Dali::Toolkit::ImageView::New( "image.jpg" );
-imageView.SetParentOrigin( Dali::ParentOrigin::TOP_LEFT );
-imageView.SetAnchorPoint( Dali::AnchorPoint::TOP_LEFT );
-content.Add( imageView );
-~~~
-
-~~~{.js}
-// JavaScript
-
-// Add an image to the center of the content area
-imageView = new dali.Control("ImageView");
-imageView.image = "image.jpg";
-imageView.parentOrigin = dali.TOP_LEFT;
-imageView.anchorPoint = dali.TOP_LEFT;
-content.add( imageView );
-~~~
-As you can see, it is easy to make flexible containers in DALi. We can use these concepts to create responsive layouts.
-@class _Guide_Flex_Container
-
-*/
diff --git a/docs/content/shared-javascript-and-cpp-documentation/font-selection.md b/docs/content/shared-javascript-and-cpp-documentation/font-selection.md
deleted file mode 100644 (file)
index f7855fe..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-<!--
-/**-->
-
-# Font Selection {#font-selection}
-
-By default TextLabel or TextField will automatically select a suitable font from the platform.
-Typically fonts do not support all scripts, for example Latin fonts often do not provide Arabic glyphs.
-Therefore you should expect the text control to select different fonts for each script.
-
-Alternatively a font may be requested using either or all of FONT_FAMILY, FONT_STYLE, and POINT_SIZE properties:
-
-- FONT_FAMILY
-  Is a string with the font's family name. i.e. *FreeSerif*
-- FONT_STYLE
-  Is a json formatted string with the font's style. Possible *key, value* pairs are:
-  + *width* Modifies the space between glyphs. Possible values are:
-    - *ultraCondensed*
-    - *extraCondensed*
-    - *condensed*
-    - *semiCondensed*
-    - *normal*
-    - *semiExpanded*
-    - *expanded*
-    - *extraExpanded*
-    - *ultraExpanded*
-  + *weight* Modifies the thickness or darkness of the glyphs. Possible values are:
-    - *thin*
-    - *ultraLight*
-    - *extraLight*
-    - *light*
-    - *demiLight*
-    - *semiLight*
-    - *book*
-    - *normal*
-    - *regular*
-    - *medium*
-    - *demiBold*
-    - *semiBold*
-    - *bold*
-    - *ultraBold*
-    - *extraBold*
-    - *black*
-    - *heavy*
-    - *extraBlack*
-  + *slant* Whether to use italics. Usually *italic* is a different font whilst the *oblique* has been generated by slanting the *normal* one. Possible values are:
-    - *normal*
-    - *roman* Same as *normal*
-    - *italic*
-    - *oblique*
-- POINT_SIZE
-  Is a float with the font's size in points. To get the point size from pixels, could use the formula: <em>point_size = 72 * pixels / vertical_dpi</em> where <em>vertical_dpi</em> is the device's vertical resolution in dots per inch.
-
-~~~{.cpp}
-// C++
-
-label.SetProperty( TextLabel::Property::FONT_FAMILY, "FreeSerif" );
-label.SetProperty( TextLabel::Property::FONT_STYLE,
-                   Property::Map().Add( "weight", "bold" )
-                                  .Add( "slant", "italic" ) );
-label.SetProperty( TextLabel::Property::POINT_SIZE,  12.0f );
-~~~
-
-~~~{.js}
-// JavaScript
-
-label.fontFamily = "FreeSerif";
-label.fontStyle = {
-                    "weight" : "bold",
-                    "slant"  : "italic"
-                  };
-label.pointSize = 12;
-~~~
-
-However the text control will fall-back to using the default font, if the requested font does not support the required scripts.
-
-### Font Styles
-
-Setting a font size programmatically is not ideal for applications which support multiple
-screen resolutions and platforms which support multiple logical font sizes.  Also, any
-changes to the platform font settings will override any sizes that have been programmatically
-set.
-
-A more flexible approach is to prepare various JSON stylesheets, and request a different style for each platform:
-
-~~~{.cpp}
-// C++
-StyleManager styleManager = StyleManager::Get();
-styleManager.RequestThemeChange( "example-path/example.json" );
-~~~
-
-To change the font for standard text controls, this JSON syntax can be used:
-
-~~~{.json}
-{
-  "styles":
-  {
-    "textlabel":
-    {
-      "fontFamily":"FreeSerif",
-      "fontStyle":
-      {
-        "weight":"bold",
-        "slant":"italic"
-      },
-      "pointSize":8
-    }
-  }
-}
-~~~
-
-However the same pointSize is unlikely to be suitable for all text controls in an application.
-To define custom styles for existing controls, simply set a style name for each case, and
-then provide a style override in JSON.
-
-To provide flexibility for the end user, the platform offers a mechanism to alter the logical
-font size between 0 and 4 inclusive. This logical size is mapped to a physical size using the
-stylesheets, by appending FontSizeN to the style name. These sections ("textlabelFontSizeN")
-in the style sheet are applied after the base section ("textlabel"), so take precedence.
-
-~~~{.cpp}
-  // C++
-
-  label.SetProperty( Control::Property::STYLE_NAME, "custom" );
-~~~
-~~~{.js}
-  // JavaScript
-
-  label.styleName = "customLabel"';
-~~~
-
-~~~{.json}
-{
-  "styles":
-  {
-    "textlabel":
-    {
-      "fontFamily":"FreeSerif",
-      "fontStyle":
-      {
-        "weight":"bold",
-        "slant":"italic"
-      },
-    },
-
-    "textlabelFontSize0":
-    {
-      "pointSize":8
-    },
-    "textlabelFontSize1":
-    {
-      "pointSize":10
-    },
-    "textlabelFontSize2":
-    {
-      "pointSize":15
-    },
-    "textlabelFontSize3":
-    {
-      "pointSize":19
-    },
-    "textlabelFontSize4":
-    {
-      "pointSize":25
-    },
-
-    "customLabel":
-    {
-      "fontFamily":"TimesNewRoman",
-      "fontStyle":
-      {
-        "weight":"regular",
-        "slant":"regular"
-      },
-    },
-    "customLabelFontSize0":
-    {
-      "pointSize":10
-    },
-    "customLabelFontSize1":
-    {
-      "pointSize":12
-    },
-    "customLabelFontSize2":
-    {
-      "pointSize":15
-    },
-    "customLabelFontSize3":
-    {
-      "pointSize":20
-    },
-    "customLabelFontSize4":
-    {
-      "pointSize":28
-    }
-  }
-}
-~~~
-
-In the example above, at platform logical text size 0, standard text labels will have pointSize 8, and custom labels will have pointSize 10.
-
-
-*/
diff --git a/docs/content/shared-javascript-and-cpp-documentation/fundamentals.md b/docs/content/shared-javascript-and-cpp-documentation/fundamentals.md
deleted file mode 100644 (file)
index d341445..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-<!--
-/**-->
-
-# DALi Fundamentals  {#fundamentals}
-
-## Actors and the Stage {#actors-and-stage}
-
-Actor is the primary object with which DALi applications interact.
-A DALi application uses a hierarchy of Dali::Actor objects to position visible content.
-An actor inherits a position relative to its parent, and can be moved relative to this point.
-UI controls can be built by combining multiple actors.
-
-The Stage is a top-level object used for displaying a tree of Actors.
-To display the contents of an actor, it must be added to the Dali::Stage,
-
-The following example shows how to connect a new actor to the stage:
-
-~~~{.cpp}
-Actor actor = Actor::New();
-Stage::GetCurrent().Add(actor);
-~~~
-
-~~~{.js}
-var actor = new dali.Actor();
-dali.stage.add( actor );
-~~~
-
-## The Coordinate System {#coordinate-system}
-
-The Stage has a 2D size, which matches the size of the application window.
-The default **unit 1 is 1 pixel with default camera and** the default coordinate system in DALi has the **origin at the top-left corner, with positive X to right, and position Y going
-downwards**.  This is intended to be convenient when laying-out 2D views.
-
-![ ](../assets/img/coordinate-system-and-stage.png)
-![ ](coordinate-system-and-stage.png)
-
-
-## Positioning Actors {#positioning-actors}
-
-An actor inherits its parent's position.  The relative position between the actor & parent is determined by 3 properties:
-
-1) ParentOrigin.  This Vector3 property defines a point within the parent actor's area.
-
-![ ](../assets/img/parent-origin.png)
-![ ](parent-origin.png)
-
-The default is "top-left", which can be visualized in 2D as (0, 0), but is actually Vector3(0, 0, 0.5) in the 3D DALi world.  The actor's position is relative to this point.
-
-2) AnchorPoint.  This Vector3 property defines a point within the child actor's area.
-
-![ ](../assets/img/anchor-point.png)
-![ ](anchor-point.png)
-
-The default is "center", which can be visualized in 2D as (0.5, 0.5), but is actually Vector3(0.5, 0.5, 0.5) in the 3D DALi world.  The actor's position is also relative to this point.
-
-3) Position.  This is the position vector between the parent-origin and anchor-point.
-
-![ ](../assets/img/actor-position.png)
-![ ](actor-position.png)
-
-The default is (X = 0, Y = 0), so an actor placed directly without modifying the parent origin, anchor point or position would appear centred around the top left corner of its parent.
-
-An actor added directly to the stage with position (X = stageWidth*0.5, Y = stageHeight*0.5), would appear in the center of the screen.  Likewise an actor with position (X = actorWidth*0.5, Y = actorWidth*0.5), would appear at the top-left of the screen. However, basic positioning like that is normally done via changing the parent origin and/or anchor point instead - use ParentOrigin::CENTER and AnchorPoint::CENTER to place the actor in the center of the screen, and ParentOrigin::TOP_LEFT and AnchorPoint::TOP_LEFT to place it inside the screen on the top left.
-
-Note that since DALi is a 3D toolkit, this behaviour is the result of a default perspective camera setup.
-
-## Scene Graph {#scene-graph}
-
-From Wikipedia...
-  
-A scene graph is a collection of nodes in a graph or tree structure.
-A node may have many children but often only a single parent,
-with the effect of a parent applied to all its child nodes;
-an operation performed on a group automatically propagates
-its effect to all of its members. In many programs, associating
-a geometrical transformation matrix (see also transformation and matrix)
-at each group level and concatenating such matrices together is an
-efficient and natural way to process such operations. A common feature,
-for instance, is the ability to group related shapes/objects into a
-compound object that can then be moved, transformed, selected,
-etc. as easily as a single object.
-
-### How does this relate to the DALi public API?
-
-Actors are effectively nodes that receive input (touch events) and act as a
-container for draw-able elements (which are also nodes) and other actors.
-
-@class _Guide_DALi_Fundamentals
-
-*/
diff --git a/docs/content/shared-javascript-and-cpp-documentation/high-level-design.md b/docs/content/shared-javascript-and-cpp-documentation/high-level-design.md
deleted file mode 100644 (file)
index eaa18a3..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<!--
-/**-->
-
-# High Level Design {#dali-hld}
-
-## Components {#dali-components}
-
- + **DALi Core:** Event handling, Scene Graph, Rendering, Resource Management
- + **DALi Adaptor:** Threading Model, Integration with the main loop.
- + **DALi Platform Abstraction:** Resource loading & decoding in multiple threads (part of dali-adaptor)
- + **DALi Toolkit:** Reusable UI Controls, Effects & Scripting Support
-
-![ ](../assets/img/architecture.png)
-![ ](architecture.png)
-
-## Main, Update & Render Threads {#dali-threads}
-
-DALi uses a multithreaded architecture in order to provide the best performance and scalability.
-
- + **Event Thread:** The main thread in which application code and event handling runs.
- + **Update Thread:** Updates the nodes on the scene as well as running animations & constraints
- + **Render Thread:** OpenGL drawing, texture and geometry uploading etc.
- + **Resource Threads:** Loads images and decodes into bitmaps etc.
-
-![ ](../assets/img/dali-threads.png)
-![ ](dali-threads.png)
-
-*/
diff --git a/docs/content/shared-javascript-and-cpp-documentation/input-style.md b/docs/content/shared-javascript-and-cpp-documentation/input-style.md
deleted file mode 100644 (file)
index f37f126..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<!--
-/**-->
-
-# Input Style {#input-style}
-
-The input style can be changed through the control properties. All subsequent characters added will be rendered with the new input style.
-
-Note the input style may change if the cursor is updated by tapping in a new position.
-
-Current supported input style properties are:
-
-- *INPUT_COLOR* Sets the input color. The property expects a Vector4 with the red, green, blue and alpha values clamped between 0 and 1.
-- *INPUT_FONT_FAMILY* Sets the input font's family name. The property expects the name of the font. If the new text is not supported by the given font a suitable one will be set.
-- *INPUT_FONT_STYLE* Sets the input font's style. The property expects a json formatted string with the font's style. See the [Font Selection](@ref font-selection) section for more details.
-- *INPUT_POINT_SIZE* Sets the input font's size. The property expects a float with the font's size in points. See the [Font Selection](@ref font-selection) section for more details.
-
-*/
diff --git a/docs/content/shared-javascript-and-cpp-documentation/item-view.md b/docs/content/shared-javascript-and-cpp-documentation/item-view.md
deleted file mode 100644 (file)
index 0242d19..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-<!--
-/**-->
-
-# Item View {#item-view}
-
-An Item view is a scrollable container that contains several items.
-It can have several layouts.
-There are a few built-in layouts that the application writer can use:
-
-|GRID                    |SPIRAL                    |DEPTH                    |
-|:----------------------:|:------------------------:|:-----------------------:|
-|![ ](item-view/grid.png)|![ ](item-view/spiral.png)|![ ](item-view/depth.png)|
-
-The application writer can also create their own custom layout by inheriting from Dali::Toolkit::ItemLayout.
-
-## Item Factory
-
-To create an item-view, the application writer has to provide an item-factory.
-An ItemFactory provides methods to create items and how many items there are among other things.
-
-~~~{.cpp}
-class MyFactory : public Dali::Toolkit::ItemFactory
-{
-public:
-  virtual unsigned int GetNumberOfItems()
-  {
-    // Should return the number of items
-    return MY_ITEM_COUNT;
-  }
-
-  virtual Actor NewItem( unsigned int itemId )
-  {
-    // We should create the actor here that represents our item based on the itemId given.
-
-    // Here we'll create an ImageView which uses the the itemId to parse the image in a particular directory.
-    std::ostringstream imageName;
-    imageName << "my-image-folder/" << itemId << ".png"; // If item was 10, then this would result in my-image-folder/10.png
-
-    // Create the Image View from the image and return
-    return Dali::Toolkit::ImageView::New( imageName.str() );
-  }
-};
-~~~
-These overridden methods in our factory will be called by the Item View.
-
-## Creating an ItemView
-
-~~~{.cpp}
-MyFactory factory; // Should store this as a member variable
-Dali::Toolkit::ItemView itemView = Dali::Toolkit::ItemView::New( factory ); // Pass in our factory
-itemView.SetParentOrigin( ParentOrigin::CENTER );
-itemView.SetAnchorPoint( AnchorPoint::CENTER );
-
-// Now create a layout
-Dali::Toolkit::ItemLayoutPtr spiralLayout = Dali::Toolkit::DefaultItemLayout::New( Dali::Toolkit::DefaultItemLayout::SPIRAL );
-
-// ... and add the layout to the item view
-itemView.AddLayout( spiralLayout );
-
-// More layouts can be created and added to the item-view
-
-// Activate the layout
-itemView.ActivateLayout(
-  0,                                   // The layout ID matches the order in which layouts are added
-  Dali::Stage::GetCurrent().GetSize(), // Use the stage's size as our item-view size
-  0 );                                 // We want the item-view to appear straight away
-
-// And add to the stage
-Dali::Stage::GetCurrent().Add( itemView );
-~~~
-
-## Actions
-The item-view provides an action to stop the scroll animation if desired.
-
-~~~{.cpp}
-Property::Map attributes;
-itemView.DoAction( "stopScrolling", attributes );
-~~~
-
-
-*/
\ No newline at end of file
diff --git a/docs/content/shared-javascript-and-cpp-documentation/javascript-wrapping-guide.md b/docs/content/shared-javascript-and-cpp-documentation/javascript-wrapping-guide.md
deleted file mode 100644 (file)
index b2eef34..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-<!--
-/**-->
-
-# JavaScript wrapping guide  {#javascriptwrapping}
-
-This guide outlines what files to modify when the DALi C++ public API changes.
-
-## Background
-
-We use Google's V8 to run JavaScript code.
-https://developers.google.com/v8/get_started
-
-#### Folder structure
-
-There is a folder for each type of wrapped object.
-  
-
-The filename for a wrapped type are always object-wrapper.xxx
-The filename for the static functions that forward calls to DALi are always object-api.xxx
-  
-The current file / folder structure is as follows:
-  
-![ ](../assets/img/javascript-wrapping-guide/folder-view.png)
-![ ](folder-view.png)
-
-
-## What to do when the DALi public API changes:
-
-### New property has been added
-- No code change required.
-- It will be automatically available using the dot notation. E.g. actor.my_new_property = true;
-
-### New property type has been added
-- modify property-value-wrapper.h / .cpp to support the new type
-
-### New function added to an object
-- Add the function name to function table in my-object-wrapper.cpp
-- Add the forwarding function to my-object-api.cpp/.h
-- Ensure you have created YUIDOC documentation above the function
-  
-![ ](../assets/img/javascript-wrapping-guide/adding-function.png)
-![ ](adding-function.png)
-
-### New object added
-
-This is an example of wrapping a new DALi C++ object called Light.
-
-- in dali-wrapper.cpp in ConstructorFunctionTable insert the constructor in the table.
-  
-![ ](../assets/img/javascript-wrapping-guide/constructors.png)
-![ ](constructors.png)
-  
-
-Objects registered in this table can be created in JavaScript as follows:
-
-~~~{.js}
-var light = new dali.Light();
-~~~
-
-- Add the Light to the Type enum in BaseWrappedObject class.
-  
-![ ](../assets/img/javascript-wrapping-guide/base-wrapped-types.png)
-![ ](base-wrapped-types.png)
-  
-
--  Create the light-wrapper / light-api files
-  
-If Light inherits from Handle then use path-wrapper and path-api as a template to create light-wrapper and light-api
-( inherits from HandleWrapper)
-  
-Otherwise use animation-wrapper and animation-api as a template ( inherits from BaseWrappedObject)
-
-
-
-## Design
-![ ](../assets/img/javascript-wrapping-guide/high-level-design.png)
-![ ](high-level-design.png)
-
-
-![ ](../assets/img/javascript-wrapping-guide/plugin-creation.png)
-![ ](plugin-creation.png)
-
-
-![ ](../assets/img/javascript-wrapping-guide/plugin-execution.png)
-![ ](plugin-execution.png)
-
-### Internals
-In order to wrap DALi C++ objects in JavaScript, we use
-hidden fields inside the JavaScript object.
-
-
-  
-| JavaScript Object                     |   _   |  C++ WrappedObject  (e.g. ImageWrapper)|
-|---------------------------------------|-------|----------------------------------------|
-| Hidden internal fields                |       |                                        |
-| *Pointer to a     WrappedObject       | ----> |      Handle to a Dali::Image object    |
-| Type of wrapped object (e.g. Image)   |       |                                        |
-  
-
-So if you call
-~~~{.js}
-var name = myActor.getId();
-~~~
-v8 will detect myActor is a wrapped object, and call getId() on that wrapped object.
-The wrapped object, then forwards the command to the real DALi object.
-  
-Whenever we want to access functions / properties of that wrapped object, we unwrap it
-to get access to the DALi object.
-  
-Each wrapped object registers with DALi garbage collector so they can be deleted
-when DALi shuts down
-
-@class _Guide_JavaScript_Wrapping
-
-*/
diff --git a/docs/content/shared-javascript-and-cpp-documentation/layer.md b/docs/content/shared-javascript-and-cpp-documentation/layer.md
deleted file mode 100644 (file)
index 3cde152..0000000
+++ /dev/null
@@ -1,278 +0,0 @@
-<!--
-/**-->
-# Layer ( Layer inherits from Actor) {#layer}
-
- Layers provide a mechanism for overlaying groups of actors on top of each other.
- Layers can also clip their contents to exclude any content outside a user defined area.
-  
- ![ ](../assets/img/layer/layers.png)
- ![ ](layers.png)
-  
- When a layer is added to the stage it is assigned a unique depth value. By default the stage has a root layer with a depth value of 0.
-  
- Layers are actors and inherit position, orientation and scale of their parent actor.
- They are drawn in an order determined by a layer depth value.
- The depth buffer is cleared before each layer is rendered, unless depth
- test is disabled or there's no need for it based on the layers contents.
-
-**Note: Layers work independently of the actor hierarchy.**
-They can be positioned anywhere in the actor tree, but their draw order is always defined by their layer.getDepth() value.
-  
-~~~{.js}
-// JavaScript Example of adding an actor to the root layer
-
-//  using stage.add() will automatically add actor to the root layer
-dali.stage.add( myActor );
-
-// Or you can explicitly add actor to the root layer.
-var rootLayer = dali.stage.getRootLayer();
-rootLayer.add( myActor );  // adds an actor to the root layer
-
-// rootLayer.getDepth() == 0
-
-~~~
-  
-  
-~~~{.cpp}
-// C++ example of adding an actor to the root layer
-
-//  using stage.add() will automatically add actor to the root layer
-Stage stage = Stage::GetCurrent();
-stage.add( myActor );
-
-// Or you can explicitly add actor to the root layer.
-Layer rootLayer = stage.GetRootLayer();
-rootLayer.add( myActor );  // adds an actor to the root layer
-
-// rootLayer.getDepth() == 0
-
-~~~
-
-Example To create two new layers on top of the root layer.
-  
-
-~~~{.js}
-// JavaScript 
-
-var layer1 = new dali.Layer();
-var layer2 = new dali.Layer();
-
-// the initially depth order of each layer, depends on the order
-// it is added to the stage.
-
-dali.stage.add( layer1 );  // will be drawn on top of root layer
-dali.stage.add( layer2 );  // will be drawn on top of layer 1
-
-dali.stage.add( myActor1);
-layer1.add( myActor2);
-layer2.add( myActor3);
-
-// dali.stage.getRootLayer().getDepth = 0  myActor1 drawn first ( on bottom )
-// layer1.getDepth() == 1                  myActor2 drawn second ( in middle )
-// layer2.getDepth() == 2                  myActor3 drawn last ( on top )
-~~~
-
-### Layer clipping
-
-Clips the contents of the layer to a rectangle.
-
-~~~{.js}
-// JavaScript
-
-layer1.anchorPoint = dali.CENTER;
-layer1.parentOrigin = dali.CENTER;
-layer1.clippingEnable = true;
-layer1.clippingBox = [20,20,100,100];  // X, Y, Width, Height
-~~~
-
-~~~{.cpp}
-// C++
-
-layer1.SetAnchorPoint( AnchorPoint::CENTER );
-layer1.SetParentOrigin( ParentOrigin::CENTER );
-layer1.SetClipping( true );
-layer1.SetClippingBox( 20, 20, 100, 100 ); // X, Y, Width, Height
-
-~~~
-
-### Re-ordering layers
-
-The following functions can be used to change the draw order of the layers.
-
-
- - Raise() Raise the layer up by 1
- - Lower() Lower the layer down by 1
- - RaiseAbove( layer ) Ensures the layers depth is greater than the target layer
- - LowerBelow( layer ) Ensures the layers depth is less than the target layer
- - RaiseToTop() raise the layer to the top
- - LowerToBottom() lower the layer to the bottom
- - MoveAbove( layer ) Moves the layer directly above the given layer.
- - MoveBelow( layer ) Moves the layer directly below the given layer.
-
-Note:
- - The root layer can be moved above and below other layers. However, stage.add( actor ), will always use the root layer object.
-
-### Rendering order of actors inside of a layer
-
-Layers have two behaviour modes:
-
- - LAYER_2D ( Default )
- - LAYER_3D
-
-### Layer_2D
-
-~~~{.js}
-// JavaScript
-layer.behaviour = "LAYER_2D";
-~~~
-
-~~~{.cpp}
-// C++
-layer.SetBehavior( Layer::LAYER_2D );
-~~~
-
-#### Background
-
- - Graphics are drawn in DALi using renderers
- - Actors can have zero or many renderers
- - Renderers can be shared by actors
- - Renderers have a depth index property
- - In LAYER_2D mode, draw order of a renderer within a layer = Tree depth + renderer depth index
-  
- When using  Layer_2D mode depth testing is disabled (depth buffer not used).
-  
-  With LAYER_2D, the draw order of the renderers is defined by both:
-
- - Renderer depth index.
- - Position of actor in the actor tree
-  
-
-Example:
-  
-We have two layers below. Everything in the root layer is drawn first.
-If we did dali.stage.getRootLayer().raiseToTop(), then the root layer would be drawn last.
-
-  
-![ ](../assets/img/layer/layer2d.png)
-![ ](layer2d.png)
-  
-
-The formula for calculating the draw order of a renderer is:  depthIndex + ( TREE_DEPTH_MULTIPLIER * tree depth ).
-Currently Layer::TREE_DEPTH_MULTIPLIER == 1000:
-~~~
- Root (root layer) ( depth index offset of  0)
- +->  Actor1    ( depth index offset of 1000)
- ++-> Actor2    ( depth Index offset of 2000)
- +++-> Actor3   ( depth Index offset of 3000)
- +++-> Actor4   ( depth Index offset of 3000)
- +++-> Actor5   ( depth Index offset of 3000)
- +++-> Layer1   ( depth Index has no meaning for layers, layer draw order is independent of the hierarchy).
- ++++-> Actor6   ( depth Index offset of 4000)
- ++++-> Actor7   ( depth Index offset of 4000)
- ++++-> Actor8   ( depth Index offset of 4000)
-~~~
-  
-Renderers with higher depth indices are rendered in front of renderers with smaller values.
-  
-Everything in the root layer gets rendered first, actors 1..5
-Then layer 1, actors 6..8
-  
-If we want to determine draw order of actors 6..8, we set the depthIndex on their renderers.
-For example if we want the render draw order to be 8, 7, 6, with 6 being drawn last.
-
-~~~{.js}
-  var rendererForActor6 = new dali.Renderer( geometry, material );
-  var rendererForActor7 = new dali.Renderer( geometry, material );
-  var rendererForActor8 = new dali.Renderer( geometry, material );
-
-  rendererForActor6.depthIndex = 2;   // drawn on top ( last)
-  rendererForActor7.depthIndex = 1;   // draw in the middle
-  rendererForActor8.depthIndex = 0;   // drawn on bottom ( first)
-
-  daliactor6.addRenderer( rendererForActor6 );  // renderer 6 drawn with index of 2 + 4000 = 4002
-  daliactor7.addRenderer( rendererForActor7 );  // renderer 7 drawn with index of 1 + 4000 = 4001
-  daliactor8.addRenderer( rendererForActor8 );  // renderer 8 drawn with depth index of 0 + 4000 = 4000
-
-~~~
-
-### Layer_3D
-
-~~~{.js}
-// JavaScript
-layer.behaviour = "LAYER_3D";
-~~~
-
-~~~{.cpp}
-// C++
-layer.SetBehavior( Layer::LAYER_3D );
-~~~
-  
-When using this mode depth testing will be used ( depth buffer enabled ).
-  
-Opaque renderers are drawn first and write to the depth buffer.
-  
-Then transparent renderers are drawn with depth test enabled but depth write switched off.
-  
- ![ ](../assets/img/layer/layers3d.png)
- ![ ](layers3d.png)
-
-  
-Transparent renderers are drawn in order of distance
-from the camera ( painter's algorithm ).
-
- ![ ](../assets/img/layer/transSort.png)
- ![ ](transSort.png)
-  
-
-Note:
-
- - In LAYER_3D mode, actor tree hierarchy makes no difference to draw order
- - When 2 transparent renderers are the same distance from the camera, you can use depth index to adjust which renderer is drawn first.
-
-  
-### Actor drawMode OVERLAY_2D
-
-Inside a layer it is possible to force a tree actors to be drawn on top everything else in the layer.
-  
-The draw order of the actors inside the tree marked OVERLAY_2D, the draw order is defined by the renderers depth index.
-Depth testing is not used.
-  
-
-Example:
-
-~~~{.js}
-// JavaScript
-var layer = new dali.Layer();
-
-layer.behaviour = "LAYER_3D"
-
-dali.stage.add( layer );
-
-layer.add( myActor1 );
-layer.add( myActor2 );
-
-myActor3.drawMode = "OVERLAY_2D";
-
-layer.add( myActor3 );   // actor 3 is drawn on top of actor 1 and 2 as it's in the OVERLAY.
-
-myActor3.add( myActor4 ); // actor 4 is drawn on top of actor 3, which is drawn on top of actor 1 and 2.
-
-myActor3.add( myActor5);  // the depth index of actor 4 and 5 renderers will determine which is drawn first
-~~~
-
-  
-
-
-
-### Layer Actor Specific Properties
-
-| Name                   |    Type    | Writable     | Animatable|
-|------------------------|------------|--------------|-----------|
-| clippingEnable         |BOOLEAN     | 0     |  X |
-| clippingBox            | ARRAY [0,0,400,600]) | 0 | X|
-| behaviour              | STRING ( "LAYER_2D" or "LAYER_3D") | 0 | X|
-
-  @class Layer
-  @extends Actor
-
-*/
diff --git a/docs/content/shared-javascript-and-cpp-documentation/markup-style.md b/docs/content/shared-javascript-and-cpp-documentation/markup-style.md
deleted file mode 100755 (executable)
index 5697959..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-<!--
-/**-->
-
-# Mark-up Style {#markup-style}
-
-Mark-up tags can be used within the text to set styles.
-
-By default the text controls don't process the mark-up string. To enable the mark-up string processing the property *ENABLE_MARKUP* must be set to *true*.
-
-~~~{.cpp}
-// C++
-
-TextField field = TextField::New();
-field.SetProperty( TextField::Property::ENABLE_MARKUP, true );
-
-Stage::GetCurrent().Add( field );
-~~~
-
-~~~{.js}
-// JavaScript
-
-var field = new dali.TextField();
-field.enableMarkup = true;
-
-dali.stage.add( field );
-~~~
-
-Note the mark-up processor doesn't check the correctness of the mark-up string. This may
-cause the text to be badly rendered.
-
-The table below describes the priorities when styles are applied while rendering text.
-|  |  |  |  |
-|--|--|--|--|
-| Priority 1 | Style set by markup string. | Will override the style set through the control properties. | i.e The \<color\> tag will override the *TEXT_COLOR* property. |
-| Priority 2 | Style set through the control properties. | Will override the default platform style. |  |
-| Priority 3 | Default platform style. |  |  |
-
-Font size has slightly different priorities - the size provided by the platform is a logical
-size, and can be mapped to physical point sizes using style sheets. There is a default set of
-sizes defined for DALi, and these can be overridden by application specific stylesheets. Thus
-the priorities are:
-
-|  |  |  |
-|--|--|--|
-| Priority 1 | Size set by markup string. | Will override the style set through the stylesheets. |
-| Priority 2 | Physical Size set by application style sheet | |
-| Priority 2 | Logical Size set by application style sheet | Mapping from platform logical to physical |
-| Priority 3 | Logical Size set by DALi style sheet | Mapping from platform logical to physical |
-
-See [Font Selection](@ref font-selection) for more details.
-
-Current supported tags are:
-
-## \<color\>
-
-Sets the color of the characters inside the tag. The *color* tag has a *value* attribute used to set the color. Possible values are: 'red', 'green', 'blue', 'yellow', 'magenta',
- 'cyan', 'white', 'black' and 'transparent'. Web color and 32 bits hexadecimal 0xAARRGGBB formats are also supported.
-
-Examples below are equivalent, render the text in red. Second example codes the color in 0xAARRGGBB, third and fourth in web color with 3 and 6 characters.
-
-~~~{.cpp}
-// C++
-field.SetProperty( TextLabel::Property::TEXT, "<color value='red'>Red Text</color>" ); // Color coded with a text constant.
-~~~
-
-~~~{.js}
-// JavaScript
-
-field.text = "<color value='red'>Red Text</color>"; // Color coded with a text constant.
-~~~
-
-~~~{.cpp}
-// C++
-field.SetProperty( TextLabel::Property::TEXT, "<color value='0xFFFF0000'>Red Text</color>" ); // Color packed inside an ARGB hexadecimal value.
-~~~
-
-~~~{.js}
-// JavaScript
-
-field.text = "<color value='0xFFFF0000'>Red Text</color>"; // Color packed inside an ARGB hexadecimal value.
-~~~
-
-~~~{.cpp}
-// C++
-field.SetProperty( TextLabel::Property::TEXT, "<color value='#F00'>Red Text</color>" ); // Color packed with the web color format (3 characters).
-~~~
-
-~~~{.js}
-// JavaScript
-
-field.text = "<color value='#F00'>Red Text</color>"; // Color packed with the web color format (3 characters).
-~~~
-
-~~~{.cpp}
-// C++
-field.SetProperty( TextLabel::Property::TEXT, "<color value='#FF0000'>Red Text</color>" ); // Color packed with the web color format (6 characters).
-~~~
-
-~~~{.js}
-// JavaScript
-
-field.text = "<color value='#FF0000'>Red Text</color>"; // Color packed with the web color format (6 characters).
-~~~
-
-## \<font\>
-
-Sets the font values of the characters inside the tag.
-
-Supported attributes are:
-- *family* The name of the font.
-- *size* The size of the font in points.
-- *weight* The weight of the font.
-- *width* The width of the font
-- *slant* The slant of the font.
-
-See the [Font Selection](@ref font-selection) to have a view of the possible values for the *weight*, *width* and *slant* attributes.
-
-~~~{.cpp}
-// C++
-field.SetProperty( TextLabel::Property::TEXT, "<font family='SamsungSans' weight='bold'>Hello world</font>" );
-~~~
-
-~~~{.js}
-// JavaScript
-
-field.text = "<font family='SamsungSans' weight='bold'>Hello world</font>";
-~~~
-
-## XHTML ENTITIES
-
-Single characters can be embedded into text using character entity references. These references have a numeric value as well as a named value.
-You can use either one of them.
-
-XHTML ENTITIES Format:
-- Named reference : "&entity_name;" (i.e. an ampersand, the entity name, and then a semi-colon).
-- Numeric reference:
-- a. Decimal reference : "&#decimal_code;" (i.e. an ampersand, a hash symbol (which signals that a number reference is coming), the character's number, and then a semi colon)
-- b. Hex reference     : "&#xhex-code;" (i.e. an ampersand, a hash symbol (which signals that a number reference is coming), x which indicates the character's number is in hex, and then a semi colon)
-
-
-~~~{.cpp}
-// C++
-field.SetProperty( TextLabel::Property::TEXT, "Named Entity: &amp;  Numeric Entity: Decimal Entity: &#9827;  Hex Entity: &#x2660;" );
-~~~
-
-![ ](XHTML_entity.png)
-
-## SPECIAL CHARACTERS HANDLING IN MARKUP
-
-Three special characters are supported :
-- < : Less Than. It means beginning of tag.
-- > : Greater Than. It means end of tag.
-- & : Ampersand. It means beginning of XHTML Entity.
-
-> "&" usage in markup style changed from Tizen 4.0.
-"To display special character needs as regular, prepend it with two backslashes in the string."
-
-Below are some examples
-
-~~~{.cpp}
-// C++ ( Wrong usage to print text "Testing of < special character" )
-field.SetProperty( TextLabel::Property::TEXT, "Testing of < special character" );
-~~~
-
-![ ](SpecialCharacter1.png)
-
-~~~{.cpp}
-// C++ ( Wrong usage to print text "Testing of & special character" )
-field.SetProperty( TextLabel::Property::TEXT, "Testing of & special character" );
-~~~
-
-![ ](SpecialCharacter1.png)
-
-~~~{.cpp}
-// C++ ( Correct usage to print text "Testing of & < > special characters" )
-field.SetProperty( TextLabel::Property::TEXT, "Testing of \\& \\< \\> special characters" );
-~~~
-
-![ ](SpecialCharacters.png)
-
-*/
diff --git a/docs/content/shared-javascript-and-cpp-documentation/multi-touch-guide.md b/docs/content/shared-javascript-and-cpp-documentation/multi-touch-guide.md
deleted file mode 100644 (file)
index f870d4b..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-<!--
-/**-->
-
-Multi-Touch Events
-==================
-
-Touch events are received via signals.
-
-For C++ API see Dali::Actor::TouchSignal() and Dali::Actor::HoveredSignal() for more details.
-
-For JavaScript use actor.connect( "touch", myCallback ) and actor.connect("hovered", myCallback );
-
-### Hit Testing Rules Summary:
-
- - An actor is only hittable if the actor's touch signal has a connection.
- - An actor is only hittable when it is between the camera's near and far planes.
- - If an actor is made insensitive, then the actor and its children are not hittable; see Dali::Actor::IsSensitive()
- - If an actor's visibility flag is unset, then none of its children are hittable either; see Dali::Actor::IsVisible()
- - To be hittable, an actor must have a non-zero size.
- - If an actor's world color is fully transparent, then it is not hittable; see GetCurrentWorldColor()
-
-### Hit Test Algorithm:
-
- - RenderTasks
-   - Hit testing is dependent on the camera used, which is specific to each RenderTask.
-
- - Layers
-   - For each RenderTask, hit testing starts from the top-most layer and we go through all the
-     layers until we have a hit or there are none left.
-   - Before we perform a hit test within a layer, we check if all the layer's parents are visible
-     and sensitive.
-   - If they are not, we skip hit testing the actors in that layer altogether.
-   - If a layer is set to consume all touch, then we do not check any layers behind this layer.
-
- - Actors
-   - The final part of hit testing is performed by walking through the actor tree within a layer.
-   - The following pseudo-code shows the algorithm used:
-
-
-~~~
- HIT-TEST-WITHIN-LAYER( ACTOR )
- {
-   // Only hit-test the actor and its children if it is sensitive and visible
-   IF ( ACTOR-IS-SENSITIVE &&
-           ACTOR-IS-VISIBLE )
-      {
-         // Depth-first traversal within current layer, visiting parent first
-
-         // Check whether current actor should be hit-tested
-         IF ( TOUCH-SIGNAL-NOT-EMPTY &&
-             ACTOR-HAS-NON-ZERO-SIZE &&
-             ACTOR-WORLD-COLOR-IS-NOT-TRANSPARENT )
-         {
-           // Hit-test current actor
-           IF ( ACTOR-HIT )
-           {
-               IF ( ACTOR-IS-OVERLAY || ( DISTANCE-TO-ACTOR < DISTANCE-TO-LAST-HIT-ACTOR ) )
-               {
-                 // The current actor is the closest actor that was underneath the touch
-                 LAST-HIT-ACTOR = CURRENT-ACTOR
-               }
-           }
-         }
-
-       // Keep checking children, in case we hit something closer
-        FOR-EACH CHILD (in order)
-       {
-         IF ( CHILD-IS-NOT-A-LAYER )
-         {
-             // Continue traversal for this child's sub-tree
-             HIT-TEST-WITHIN-LAYER ( CHILD )
-         }
-          // else we skip hit-testing the child's sub-tree altogether
-       }
-     }
-   }
-~~~
- - Overlays always take priority (i.e. they're considered closer) regardless of distance.
-     The overlay children take priority over their parents, and overlay siblings take priority
-     over their previous siblings (i.e. reverse of rendering order):
-
-~~~
-      1
-     / \
-    /   \
-   2     5
-  / \     \
- /   \     \
-3     4     6
-
-Hit Priority of above Actor tree (all overlays): 1 - Lowest. 6 - Highest.
-~~~
-
- - Stencil Actors can be used to influence the result of hits within a layer.
-     If a Stencil Actor exists on a layer and that Actor is marked visible then a successful
-     hit can only take place in the area that the stencil Actor marks as visible.
-     The hit can be in any Stencil Actor in that layer, but must be in the region of one of them.
-     Stencil Actor inheritance behaves as with rendering in that any child of a Stencil Actor will
-     also be considered a Stencil Actor.
-
- <i>Touch Event Delivery:</i>
-
- - Delivery
-   - The hit actor's touch signal is emitted first; if it is not consumed by any of the listeners,
-     the parent's touch signal is emitted, and so on.
-   - If there are several touch points, then the delivery is only to the first touch point's hit
-     actor (and its parents).  There will be NO touch signal delivery for the hit actors of the
-     other touch points.
-   - The local coordinates are from the top-left (0.0f, 0.0f, 0.5f) of the hit actor.
-   - The following pseudo-code shows the delivery mechanism:
-
-~~~
-  EMIT-TOUCH-SIGNAL( ACTOR )
-  {
-    IF ( TOUCH-SIGNAL-NOT-EMPTY )
-    {
-      // Only do the emission if touch signal of actor has connections.
-        CONSUMED = TOUCH-SIGNAL( TOUCH-DATA )
-    }
-
-    IF ( NOT-CONSUMED )
-    {
-        // If event is not consumed then deliver it to the parent unless we reach the root actor
-        IF ( ACTOR-PARENT )
-        {
-          EMIT-TOUCH-SIGNAL( ACTOR-PARENT )
-        }
-    }
-  }
-~~~
- - Leave State
-   - A "Leave" state is set when the first point exits the bounds of the previous first point's
-     hit actor (primary hit actor).
-   - When this happens, the last primary hit actor's touch signal is emitted with a "Leave" state
-     (only if it requires leave signals); see the actor property leaveRequired.
-
-
- - Interrupted State
-   - If a system event occurs which interrupts the touch processing, then the last primary hit
-     actor's touch signals are emitted with an "Interrupted" state.
-   - If the last primary hit actor, or one of its parents, is no longer touchable, then its
-     touch signals are also emitted with an "Interrupted" state.
-   - If the consumed actor on touch-down is not the same as the consumed actor on touch-up, then
-     touch signals are also emitted from the touch-down actor with an "Interrupted" state.
-
-@class MultiTouch
-
-*/
diff --git a/docs/content/shared-javascript-and-cpp-documentation/performance-profiling.md b/docs/content/shared-javascript-and-cpp-documentation/performance-profiling.md
deleted file mode 100644 (file)
index 99a05b4..0000000
+++ /dev/null
@@ -1,258 +0,0 @@
-<!--
-/**-->
-
-# Performance Profiling  {#performanceprofiling}
-
-
-DALi has many mechanisms for analyzing performance including kernel, system and network logging.
-
-
-## Background
-The DALi rendering pipeline has 2 stages.
-
-Each stage is typically run once per frame.
-
-- Update
-  - Run animations
-  - Run constraints
-  - Run physics
-  - Update the scene-graph
-- Render
-  - Upload 3D data using OpenGL ( textures, vertex buffers etc).
-  - Draw the scene using OpenGL
-  
-
-Update produces data - **Writes** final object positions to a buffer
-  
-Render consumes data - **Reads** object positions from a buffer and draws with OpenGL
-
-![ ](../assets/img/performance/update-render.png)
-![ ](update-render.png)
-
-  
-One reason for having 2 buffers is to allow both tasks to overlap and run in parallel in certain situations.
-E.g. if rendering is taking a long time (due to a texture upload), the Update thread can start work producing
-data for the next frame. The aim being to take advantage of multi-core CPU's.
-  
-To run at a solid 60 FPS (16 milliseconds per frame), it is recommended to stay below the following times:
-  
- - Update: 4 milliseconds
- - Render: 4 milliseconds
-  
-This will leave enough time for the output to be composited (if the system uses a compositor) and to avoid using
-too much CPU power.
-  
-The main DALi application thread which deals with event processing is independent of the update / render threads.
-This means animations won't stop if the main thread decides to do a long operation like downloading a file from the internet.
-  
-
-## Time Stamp Logging
-
-This type of logging is used for recording individual time stamped events.
-  
-Setting DALI_PERFORMANCE_TIMESTAMP_OUTPUT environment variable will enable time stamps.
-
-Tools such as Tizen dynamic analyzer and StageHand can be used to provide a GUI display of
-the output.
-
-
-The log options are:
-
-|  Bit |  Function                | Example      |
-|------|--------------------------|--------------|
-|   0  |  log markers to DALi log (dlog on Tizen) | DALI_PERFORMANCE_TIMESTAMP_OUTPUT=1 dali-demo |
-|   1  |  log markers to kernel trace ( logs to ftrace )| DALI_PERFORMANCE_TIMESTAMP_OUTPUT=2 dali-demo |
-|   2  |  log markers to system trace ( ttrace on Tizen for Tizen analyzer) | DALI_PERFORMANCE_TIMESTAMP_OUTPUT=4 dali-demo |
-|   3  |  log markers to network client (tcp port 3001+) | DALI_PERFORMANCE_TIMESTAMP_OUTPUT=8 dali-demo |
-
-  
-
-~~~
-DALI_PERFORMANCE_TIMESTAMP_OUTPUT=1 dali-demo
-INFO: DALI: 1134155.500142 (seconds), V_SYNC
-INFO: DALI: 1134155.500167 (seconds), UPDATE_START
-INFO: DALI: 1134155.500214 (seconds), PROCESS_EVENT_END
-INFO: DALI: 1134155.500659 (seconds), UPDATE_END
-INFO: DALI: 1134155.508039 (seconds), PROCESS_EVENT_START
-INFO: DALI: 1134155.508295 (seconds), PROCESS_EVENT_END
-INFO: DALI: 1134155.511109 (seconds), RENDER_START
-INFO: DALI: 1134155.511548 (seconds), RENDER_END
-INFO: DALI: 1134155.516899 (seconds), V_SYNC
-INFO: DALI: 1134155.516945 (seconds), UPDATE_START
-INFO: DALI: 1134155.517462 (seconds), UPDATE_END
-INFO: DALI: 1134155.527884 (seconds), RENDER_START
-INFO: DALI: 1134155.528108 (seconds), PROCESS_EVENT_START
-INFO: DALI: 1134155.528327 (seconds), RENDER_END
-INFO: DALI: 1134155.528358 (seconds), PROCESS_EVENT_END
-INFO: DALI: 1134155.528388 (seconds), PROCESS_EVENT_START
-INFO: DALI: 1134155.528749 (seconds), PROCESS_EVENT_END
-INFO: DALI: 1134155.533672 (seconds), V_SYNC
-~~~
-
-### Markers that are logged
-
-| Marker | Description
-|--------|-------------
-| V_SYNC.| The heart beat which represents DALi should start creating a new frame if anything has changed. Runs at display refresh rate, typically 60Hz |
-| UPDATE_START | DALi update task has started |
-| UPDATE_START | DALi update task has finished |
-| RENDER_START | DALi render task has started |
-| RENDER_END | DALi render task has finished |
-| PROCESS_EVENT_START | DALi main thread processing events (e.g. in response to a touch event or a timer) |
-| PROCESS_EVENT_START | DALi main thread processing events finished |
-| SWAP_START | glSwapBuffers started (todo) |
-| SWAP_END | glSwapBuffers end  (todo) |
-| PAUSE  | Application paused |
-| RESUME | Application resumed |
-
-### Custom time stamps for application developers
-
-A developer can output custom markers using the PerformanceLogger API (C++ only currently)
-
-~~~
-PerformanceLogger logger = PerformanceLogger::New("MyMarker");
-logger.AddMarker(PerformanceLogger::START_EVENT);
-
-// do stuff
-
-logger.AddMarker(PerformanceLogger::END_EVENT);
-~~~
-
-## Statistics logging
-
-Statistics logging uses DALi log output which on Tizen is dlog, but this can also be used on desktop by redirecting stderr to a file.
-
-Setting DALI_LOG_PERFORMANCE_STATS environment variable will enable time stamps.
-
-The log options are:
-
-|  Bit |  Function                | Example      |
-|------|--------------------------|--------------|
-|   0  |  log all statistics to the DALi log | DALI_LOG_PERFORMANCE_STATS=1 dali-demo |
-|   1  |  log update and render statistics to the DALi log| DALI_LOG_PERFORMANCE_STATS=2 dali-demo |
-|   2  |  log event (main) task statistics to the DALi log| DALI_LOG_PERFORMANCE_STATS=4 dali-demo |
-|   3  |  log custom marker statistics to the DALi log | DALI_LOG_PERFORMANCE_STATS=8 dali-demo |
-
-Example output
-~~~
-$ export DALI_LOG_PERFORMANCE_STATS=1
-$ dali-demo
-
- Event, min 0.04 ms, max 5.27 ms, total (0.1 secs), avg 0.28 ms, std dev 0.73 ms
- Update, min 0.29 ms, max 0.91 ms, total (0.5 secs), avg 0.68 ms, std dev 0.15 ms
- Render, min 0.33 ms, max 0.97 ms, total (0.6 secs), avg 0.73 ms, std dev 0.17 ms
- TableViewInit, min 76.55 ms, max 76.55 ms, total (0.1 secs), avg 76.55 ms, std dev 0.00 ms
-~~~
-
-If nothing is animating DALi will enter a paused state to save power. At this
-point nothing will be logged.
-
-### Custom statistics for application developers
-
-This is identical to the custom timestamp example.
-~~~
-PerformanceLogger logger = PerformanceLogger::New("MyMarker");
-logger.AddMarker(PerformanceLogger::START_EVENT);
-
-// do stuff
-
-logger.AddMarker(PerformanceLogger::END_EVENT);
-~~~
-
-
-## Application profiling
-
- The main application thread in DALi is used to process and respond to events such as touch, key, mouse, gestures and timers.
-
-Example:
-~~~
-$ export DALI_LOG_PERFORMANCE_STATS=4
-$ dali-demo
-$
-$ ...
-$ INFO: DALI:  Event, min 0.04 ms, max 5.27 ms, total (0.1 secs), avg 0.28 ms, std dev 0.73 ms
-~~~
-
-Inside the event processing, the application may be listening for certain events.
-For example when an actor is touched, some application code may be run in an OnTouch callback.
-By checking the max times you can check for any spikes that occur when interacting with the application.
-
-Example:
-~~~
-$ INFO: DALI: Event , min 0.10 ms, max 500.01 ms, total (6.4 secs), avg 20.83 ms
-
-- Something has taken 500 ms = 1/2 second during event processing.
-- Need to investigate what the application is doing for 1/2 a second.
-~~~
-
-
-## Using ftrace for timestamp logging
-
-~~~
-DALI_PERFORMANCE_TIMESTAMP_OUTPUT=2 dali-demo
-~~~
-
-Ftrace is a kernel tracer designed to help developers find out what is going on inside the kernel.
-It can be used for analyzing how long DALi takes to perform different tasks and
-what DALi is doing in relation to other system processes / interrupts.
-  
-On Tizen if the kernel has been built with ftrace enabled, then DALi can log out to ftrace.
-This gives exact time stamps of the main events in DALi.
-Current markers that are logged:
-
-
-
-### Checking ftrace is working on Linux
-
-Documentation for ftrace:
-Follow these instructions to ensure the debugfs has been mounted, and the kernel you are using
-has been built with ftrace enabled.
-
-https://www.kernel.org/doc/Documentation/trace/ftrace.txt
-
-To check ftrace is working:
-~~~
-$ cd /sys/kernel/debug/tracing
-$ echo 1 > tracing_enabled    (enabled tracing)
-$ echo "test" > trace_marker
-$ echo 0 > tracing_enabled    (disable tracing)
-$ cat trace
-#
-#          TASK-PID    CPU#    TIMESTAMP  FUNCTION
-#             | |       |          |         |
-         <...>-2539  [001] 267964.345607: tracing_mark_write: test
-
-
-If the message did not get added to the trace, then check the write permissions on trace_marker file. E.g.
-$ chmod ugoa+w trace_marker
-~~~
-To view DALi markers in trace file
-
-~~~
-$ export DALI_LOG_PERFORMANCE=2
-$ dali-demo
-$
-$ cat /sys/kernel/debug/tracing/trace
-
-  <...>-3330  [000] 785155.216611: tracing_mark_write: SPI_EV_DALI_V_SYNC
-  <...>-3328  [003] 785155.216644: tracing_mark_write: SPI_EV_DALI_UPDATE_START
-  <...>-3328  [003] 785155.217045: tracing_mark_write: SPI_EV_DALI_UPDATE_END
-  <...>-3329  [001] 785155.227418: tracing_mark_write: SPI_EV_DALI_RENDER_START
-  <...>-3329  [001] 785155.227807: tracing_mark_write: SPI_EV_DALI_RENDER_END
-  <...>-3330  [000] 785155.233336: tracing_mark_write: SPI_EV_DALI_V_SYNC
-  <...>-3328  [002] 785155.233374: tracing_mark_write: SPI_EV_DALI_UPDATE_START
-  <...>-3328  [002] 785155.233672: tracing_mark_write: SPI_EV_DALI_UPDATE_END
-  <...>-3329  [001] 785155.235161: tracing_mark_write: SPI_EV_DALI_RENDER_START
-  <...>-3329  [001] 785155.235475: tracing_mark_write: SPI_EV_DALI_RENDER_END
-  <...>-3330  [000] 785155.250029: tracing_mark_write: SPI_EV_DALI_V_SYNC
-  <...>-3328  [003] 785155.250065: tracing_mark_write: SPI_EV_DALI_UPDATE_START
-  <...>-3328  [003] 785155.250330: tracing_mark_write: SPI_EV_DALI_UPDATE_END
-  <...>-3329  [001] 785155.252860: tracing_mark_write: SPI_EV_DALI_RENDER_START
-  <...>-3329  [001] 785155.253178: tracing_mark_write: SPI_EV_DALI_RENDER_END
-  <...>-3329  [001] 785155.264508: tracing_mark_write: SPI_EV_DALI_RENDER_START
-  <...>-3329  [001] 785155.265006: tracing_mark_write: SPI_EV_DALI_RENDER_END
-~~~
-@class _Guide_Performance_Profiling
-*/
-
-
diff --git a/docs/content/shared-javascript-and-cpp-documentation/performance-tips.md b/docs/content/shared-javascript-and-cpp-documentation/performance-tips.md
deleted file mode 100644 (file)
index 7a9617f..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-<!--
-/**-->
-
-# Performance Tips {#performancetips}
-
-## High CPU occupancy
-
-  - Try to reduce actor count ( less actors == less processing)
-  - Delete any actors that are not visible, or move them off stage
-  - Use TextureAtlases ( reduces OpenGL driver calls to glBindTexture
-  - Optimize / reduce any constraints used
-
-## High GPU occupancy
-
-  - Reduce visible actor count ( == less draw calls)
-  - For 2D UI graphics which require no z sorting you can use
-
-~~~{.cpp}
-// C++
-// In this mode depth testing is turned off and order is determined by the hierarchy (depth-first search order).
-// Not always recommended if there is going to be a lot of overdraw ( if lots of actors are on top of each other)
-
-Actor::SetDrawMode( DrawMode::OVERLAY_2D ); // C++
-~~~
-
-~~~{.js}
-// JavaScript
-// In this mode depth testing is turned off and order is determined by the hierarchy (depth-first search order).
-// Not always recommended if there is going to be a lot of overdraw ( if lots of actors are on top of each other)
-
-actor.drawMode = dali.DRAW_MODE_OVERLAY_2D;
-~~~
-  - Use TextureAtlases ( reduces state changes in the GPU)
-  - Use compressed textures
-  - Use lower quality textures, e.g. smaller, lower number of bits per pixel
-  - Use Dali::NinePatchImage  where possible.
-  - Avoid using too many textures which contain alpha and require blending
-  - Avoid using too many Dali::Layer with depth testing enabled. Otherwise the layer has to clear the depth buffer.
-  - Optimize any shaders used. Pixel shaders should be kept as lean as possible.
-
-
-@class _Guide_Performance_Tips
-
-*/
-
-
diff --git a/docs/content/shared-javascript-and-cpp-documentation/popup.md b/docs/content/shared-javascript-and-cpp-documentation/popup.md
deleted file mode 100644 (file)
index af526f4..0000000
+++ /dev/null
@@ -1,392 +0,0 @@
-<!--
-/**-->
-
-[TOC]
-
-# Popup {#popup}
-  
-![ ](../assets/img/popup/popup-example.png) ![ ](./popup-example.png)
-
-## Description {#popupdescription}
-  
-The Popup control provides a generic way of displaying modal content.
-  
-The content is displayed until it is dismissed by hiding the Popup.
-
-While the Popup is visible, it is displayed within a layer that is placed above any other actors.
-
-Content behind the Popup is dimmed by default, although this is configurable.
-  
-
-## Contents {#popupcontents}
-  
-
-The Popup is designed to be generic, but provide the necessary layout functionality to achieve this.
-
-The Popup window is broken down into the following areas:
-  
-PopupBackgroundImage: This is the frame that appears around the edge of the Popup.
-  
-Within the Popup there are three main fields:
-  
-- Title
-- Content
-- Footer
-  
-![ ](../assets/img/popup/popup-fields.png) ![ ](./popup-fields.png)
-  
-Each field can contain any Actor.
-  
-Note: All actor properties are optional, allowing any combination of content areas.
-Example: Image only popup (using the content field):
-![ ](../assets/img/popup/popup-image-content.png) ![ ](./popup-image-content.png)
-  
-### Example content: {#popupfieldexample}
-  
-- Title:   TextLabel
-- Content: ImageView or TextLabel
-- Footer:  PushButton or Actor containing two PushButtons
-  
-## Setting and getting the display state {#popupdisplaystate}
-  
-The popup will not be shown immediately upon parenting it / adding it to the stage. First the display state must be set.
-The display state is represented by the property DISPLAY_STATE. It can be set with SHOWN and HIDDEN to show or hide the Popup.
-However, when getting the state, you will also be told if the Popup is in the process of SHOWING or HIDING.
-  
- | Value    | Setting the state              | Getting the state              |
- |----------|--------------------------------|--------------------------------|
- | SHOWN    | Show the popup                 | The popup is fully shown       |
- | HIDDEN   | Hide the popup                 | The popup is fully hidden      |
- | SHOWING  |                                | The popup is transitioning in  |
- | HIDING   |                                | The popup is transitioning out |
-  
-
-## Signals {#popupsignals}
-  
-### Display State Signals {#popupdisplaystatesignals}
-  
-All four state changes cause notifications via four respective signals that can be connected to.
-  
-### OutsideTouched Signal {#popupoutsidetouched}
-  
-This signal is emitted whenever a touch is received outside of the popups area.
-This is typically used to hide / dismiss the popup, but can be ignored if it is desired to force the user to make a selection using the controls within the Popup.
-  
-
-## Transition effects {#popuptransitioneffects}
-  
-The Popup object has built-in transitional animation effects.
-These can be user-defined by setting ANIMATION_MODE to CUSTOM, and setting the ENTRY_ANIMATION and
-EXIT_ANIMATION properties accordingly.
-  
-The default to fading in and out.
-  
-
-## Types of Popup {#popuptypes}
-  
-The Popup can be configured to a preset type by using named types within the type-registry.
-  
-These types are modifications / specializations of a Popup. They provide the library user with a shortcut way of creating a specific type of Popup.
-  
-
-The Popup control features a "Toast" popup type. This is a Popup that appears at the bottom of the screen, typically with some text. They are normally for informational purposes only.
-  
-
-### Key differences of the Toast popup {#popuptoastdifferences}
-  
-- The Popup will auto-hide itself after a few seconds.
-- It is touch-transparent. This means touch events go through the Popup to Actors below, giving it non-modal behaviour.
-- The backing is not dimmed. This allows the user to continue their actions without distraction.
-  
-Note: All the above features can be set or unset manually on the Popup control if desired.
-  
-Popup types can be created with the TypeRegistry (as they are not separate classes).
-  
-
-### Example: {#popuptoastexample}
-  
-![ ](../assets/img/popup/popup-toast.png) ![ ](./popup-toast.png)
-
-Here is the code to produce the above example:
-  
-C++
-~~~{.cpp}
-TypeInfo typeInfo = TypeRegistry::Get().GetTypeInfo( "PopupToast" );
-if( typeInfo )
-{
-  BaseHandle baseHandle = typeInfo.CreateInstance();
-  if( baseHandle )
-  {
-    Toolkit::Popup popup = Toolkit::Popup::DownCast( baseHandle );
-    popup.SetTitle( Toolkit::TextLabel::New( "This is a Toast Popup.\nIt will auto-hide itself" ) );
-    Stage::GetCurrent().Add( popup );
-    popup.SetDisplayState( Toolkit::Popup::SHOWN );
-  }
-}
-~~~
-  
-
-## Contextual Mode {#popupcontextualmode}
-  
-Contextual Mode allows the popup can appear adjacent to it's parent in screen space.
-  
-If disabled, the Popup will ignore it's parent and appear centered on the stage (user positioning can override this).
-
-If enabled, the contextual mode can be set to four directions. The Popup will be made adjacent on the selected axis.
-  
-EG:
-~~~{.cpp}
-myPopup.SetProperty( Toolkit::Popup::Properties::CONTEXTUAL_MODE, "BELOW" );
-~~~
-  
-Will make the top of the Popup appear just below the bottom of the parent object (plus a margin).
-  
-The default is: NON_CONTEXTUAL which means no layout or positioning is performed.
-  
-| ContextualMode    | Layout                                                  |
-|-------------------|---------------------------------------------------------|
-| NON_CONTEXTUAL    | No contextual layout is performed                       |
-| ABOVE             | Popup is above vertically, centered horizontally        |
-| RIGHT             | Popup is to the right horizontally, centered vertically |
-| BELOW             | Popup is below vertically, centered horizontally        |
-| LEFT              | Popup is to the left horizontally, centered vertically  |
-  
-
-## Properties {#popupproperties}
-  
-Various properties provide more configuration on the Popup's styling.
-  
-This is a breakdown of remaining properties not described in detail above.
-  
-
-| Property               | Type    | Description                                                              |
-|------------------------|---------|--------------------------------------------------------------------------|
-| TOUCH_TRANSPARENT      | bool    | If true, allow touch events to travel through the popup.                 |
-| TAIL_VISIBILITY        | bool    | If true, display a tail image on one of the edges of the popup.          |
-| TAIL_POSITION          | Vector3 | Describes the position of the tail image. Orientation is inferred.       |
-| ANIMATION_DURATION     | float   | Duration used for entry and exit transition animations.                  |
-| AUTO_HIDE_DELAY        | int     | If non-zero, the number of milliseconds before the popup will auto-hide. |
-| BACKING_ENABLED        | bool    | True if backing (dimmed background) is enabled.                          |
-| BACKING_COLOR          | Vector4 | The color of the dimmed background.                                      |
-| TAIL_UP_IMAGE          | string  | The image to use for the tail if above the popup.                        |
-| TAIL_DOWN_IMAGE        | string  | The image to use for the tail if below the popup.                        |
-| TAIL_LEFT_IMAGE        | string  | The image to use for the tail if to the left of the popup.               |
-| TAIL_RIGHT_IMAGE       | string  | The image to use for the tail if to the right of the popup.              |
-  
-
-# ConfirmationPopup Control {#popupconfirmation}
-  
-The ConfirmationPopup control provides a simple interface for providing automatic connection to control signals for common-use Popup use-cases.
-  
-ConfirmationPopup will automatically provide signals for 1 or 2 controls.
-Note: The controls do not need to be PushButtons.
-These signals are dynamically created. The controls (typically PushButtons) must be specifically named so the ConfirmationPopup can locate them.
-  
-## Step 1 {#popupconfirmationstep1}
-Name your controls.
-  
-- Name your first control, or OK control:      "controlOk"
-- Name your second control, or Cancel control: "controlCancel"
-  
-## Step 2 {#popupconfirmationstep2}
-Tell the ConfirmationPopup the names of the signals to connect to for each control.
-For example, if we are using PushButtons as controls, the signal name would be "clicked".
-This allows us to use different control types.
-  
-- Set property "connectSignalOkSelected" with the name of the signal to connect to within the first control.
-- Set property "connectSignalCancelSelected" with the name of the signal to connect to within the second control.
-  
-## Step 3 {#popupconfirmationstep3}
-Connect to the following respective signals within ConfirmationPopup:
-  
-- Connect to signal "controlSignalOk" to be signalled for the first control.
-- Connect to signal "controlSignalCancel" to be signalled for the second control.
-  
-The ConfirmationPopup will dynamically make the connection between the signalling control, and your signal handler.
-  
-This allows connection of signals within both C++, JSON and JavaScript APIs.
-If more manual control or customizable layout is needed, then it is recommended to use the Popup widget directly for full control.
-  
-The JSON code example at the bottom of this document uses the ConfirmationPopup to allow signal connection from within the JSON description.
-  
-
-# C++ example of a Popup with two buttons {#popupexamplec}
-  
-This example creates a Popup with:
-  
-- Title:   TextLabel
-- Content: TextLabel
-- Footer:  ImageView (an image border around the buttons)
-            - PushButton (OK control)
-            - PushButton (Cancel control)
-  
-The example connects signals to the two buttons, and to the OutsideTouched signal.
-  
-~~~{.cpp}
-Toolkit::Popup popup = Toolkit::Popup::New();
-
-Toolkit::TextLabel titleActor = Toolkit::TextLabel::New( "Title" );
-titleActor.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::WHITE );
-titleActor.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
-popup.SetTitle( titleActor );
-
-Toolkit::TextLabel contentActor = Toolkit::TextLabel::New( "Content text" );
-contentActor.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Color::WHITE );
-contentActor.SetProperty( Toolkit::TextLabel::Property::MULTI_LINE, true );
-contentActor.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
-popup.SetContent( contentActor );
-
-// Create the footer: Two buttons surrounded by an image.
-ImageView footer = ImageView::New( DEFAULT_CONTROL_AREA_IMAGE_PATH );
-footer.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
-footer.SetResizePolicy( ResizePolicy::FIXED, Dimension::HEIGHT );
-footer.SetSize( 0.0f, 80.0f );
-footer.SetAnchorPoint( AnchorPoint::CENTER );
-footer.SetParentOrigin( ParentOrigin::CENTER );
-
-Toolkit::PushButton okButton = Toolkit::PushButton::New();
-okButton.SetLabelText( "OK" );
-okButton.SetParentOrigin( ParentOrigin::CENTER );
-okButton.SetAnchorPoint( AnchorPoint::CENTER );
-okButton.SetResizePolicy( ResizePolicy::SIZE_FIXED_OFFSET_FROM_PARENT, Dimension::ALL_DIMENSIONS );
-okButton.SetSizeModeFactor( Vector3( -20.0f, -20.0f, 0.0 ) );
-okButton.ClickedSignal().Connect( this, &MyExample::OnOKButtonClicked );
-
-Toolkit::PushButton cancelButton = Toolkit::PushButton::New();
-cancelButton.SetLabelText( "Cancel" );
-cancelButton.SetParentOrigin( ParentOrigin::CENTER );
-cancelButton.SetAnchorPoint( AnchorPoint::CENTER );
-cancelButton.SetResizePolicy( ResizePolicy::SIZE_FIXED_OFFSET_FROM_PARENT, Dimension::ALL_DIMENSIONS );
-cancelButton.SetSizeModeFactor( Vector3( -20.0f, -20.0f, 0.0 ) );
-cancelButton.ClickedSignal().Connect( this, &MyExample::OnCancelButtonClicked );
-
-// Set up the footer's layout.
-Toolkit::TableView controlLayout = Toolkit::TableView::New( 1, 2 );
-controlLayout.SetParentOrigin( ParentOrigin::CENTER );
-controlLayout.SetAnchorPoint( AnchorPoint::CENTER );
-controlLayout.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS );
-controlLayout.SetCellPadding( Size( 10.0f, 10.0f ) );
-controlLayout.SetRelativeWidth( 0, 0.5f );
-controlLayout.SetRelativeWidth( 1, 0.5f );
-controlLayout.SetCellAlignment( Toolkit::TableView::CellPosition( 0, 0 ), HorizontalAlignment::CENTER, VerticalAlignment::CENTER );
-controlLayout.SetCellAlignment( Toolkit::TableView::CellPosition( 0, 1 ), HorizontalAlignment::CENTER, VerticalAlignment::CENTER );
-controlLayout.AddChild( okButton, Toolkit::TableView::CellPosition( 0, 0 ) );
-controlLayout.AddChild( cancelButton, Toolkit::TableView::CellPosition( 0, 1 ) );
-footer.Add( controlLayout );
-popup.SetFooter( footer );
-
-popup.OutsideTouchedSignal().Connect( this, &MyExample::OnPopupOutsideTouched );
-
-// Add to stage (the popup is still invisible at this point).
-Stage::GetCurrent().Add( popup );
-
-// Display the popup.
-mPopup.SetDisplayState( Toolkit::Popup::SHOWN );
-~~~
-  
-
-# JSON example of a Popup with two buttons {#popupexamplejson}
-  
-This example creates a Popup with:
-  
-- Title:   TextLabel
-- Content: TextLabel
-- Footer:  Control
-            - PushButton (OK control)
-            - PushButton (Cancel control)
-  
-The example connects signals to the two buttons, and to the OutsideTouched signal.
-This time without an image around the buttons. This could be added in the same way as the C++ example however.
-  
-
-~~~{.json}
-{
-  "constants": {
-    "CONFIG_SCRIPT_LOG_LEVEL": "Verbose"
-  },
-  "stage": [
-    {
-      "type": "ConfirmationPopup",
-      "name": "confirmationPopup",
-      "parentOrigin": [0.5, 0.55, 0.5],
-      "anchorPoint": "CENTER",
-      "widthResizePolicy": "SIZE_RELATIVE_TO_PARENT",
-      "heightResizePolicy": "USE_NATURAL_SIZE",
-      "sizeModeFactor": [0.65, 1.0, 1.0],
-      "tailVisibility": false,
-      "displayChangeAnimationDuration": 1.0,
-      "contextualMode": "NON_CONTEXTUAL",
-      "animationMode": "ZOOM",
-      "connectSignalOkSelected": "clicked",
-      "connectSignalCancelSelected": "clicked",
-      "title": {
-        "type": "TextLabel",
-        "text": "Title text",
-        "textColor": [1, 1, 1, 1]
-      },
-      "content": {
-        "type": "TextLabel",
-        "text": "Content text",
-        "padding": [20, 20, 20, 0],
-        "textColor": [1, 1, 1, 1]
-      },
-      "footer": {
-        "type": "Control",
-        "size": [0, 80, 0],
-        "widthResizePolicy": "FILL_TO_PARENT",
-        "heightResizePolicy": "FIXED",
-        "parentOrigin": "CENTER",
-        "anchorPoint": "CENTER",
-        "actors": [
-          {
-            "type": "PushButton",
-            "name": "controlOk",
-            "parentOrigin": "CENTER_LEFT",
-            "anchorPoint": "CENTER_LEFT",
-            "position": [20, 0, 0],
-            "size": [0, 0, 0],
-            "labelText": "OK"
-          },
-          {
-            "type": "PushButton",
-            "name": "controlCancel",
-            "parentOrigin": "CENTER_RIGHT",
-            "anchorPoint": "CENTER_RIGHT",
-            "position": [-20, 0, 0],
-            "size": [0, 0, 0],
-            "labelText": "Cancel"
-          }
-        ]
-      },
-      "signals": [
-        {
-          "name": "controlSignalOk",
-          "action": "set",
-          "actor": "confirmationPopup",
-          "property": "displayState",
-          "value": "HIDDEN"
-        },
-        {
-          "name": "controlSignalCancel",
-          "action": "set",
-          "actor": "confirmationPopup",
-          "property": "displayState",
-          "value": "HIDDEN"
-        },
-        {
-          "name": "touchedOutside",
-          "action": "set",
-          "actor": "confirmationPopup",
-          "property": "displayState",
-          "value": "HIDDEN"
-        }
-      ]
-    }
-  ]
-}
-~~~
-  
-
-@class _Guide_Popup
-*/
-
diff --git a/docs/content/shared-javascript-and-cpp-documentation/programming-languages.md b/docs/content/shared-javascript-and-cpp-documentation/programming-languages.md
deleted file mode 100644 (file)
index 5938e53..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-<!--
-/**-->
-
-# Programming Languages {#programming-languages}
-
-DALi applications can be written in several different programming languages.
-
-## C++ {#c-plus-plus}
-
-~~~{.cpp}
-Dali::Actor actor = Dali::Actor::New();
-actor.SetParentOrigin( Dali::ParentOrigin::CENTER );
-actor.SetAnchorPoint( Dali::AnchorPoint::CENTER );
-Dali::Stage::GetCurrent().Add( actor );
-...
-bool OnPressed( Dali::Actor, const TouchData& touch )
-{
-  Dali::Animation anim = Dali::Animation::New( 1.5f );
-  anim.AnimateTo( Property( actor, Actor::Property::POSITION ), Vector3( 200, -100, 0 ), AlphaFunctions::Bounce );
-  anim.play();
-  return true; // consume the touch event
-}
-...
-actor.TouchSignal().Connect( &OnPressed );
-~~~
-
-*/
-
-## JavaScript {#java-script-support}
-
-~~~{.js}
-var actor = new dali.Actor();
-actor.parentOrigin = dali.CENTER;
-actor.anchorPoint = dali.CENTER;
-dali.stage.add( actor );
-...
-function onPressed( actor, touch )
-{
-  var animOptions = { alpha: "bounce", delay: 0, duration: 15 };
-  var anim = new dali.Animation();
-  anim.animateTo( actor, "position", [ 200, -100, 0 ], animOptions );
-  anim.play();
-  return true; // consume the touch event
-}
-...
-actor.connect( "touch", onPressed );
-
-~~~
-
-## JSON {#json-support}
-
-~~~{.json}
-{
- "animations":
-  {
-    "move":
-    {
-      "duration": 1.5,
-      "properties":
-      [
-        {
-          "actor":"image",
-          "property":"position",
-          "value":[200,-100,0],
-          "alphaFunction": "BOUNCE"
-        }
-      ]
-    }
-  },
-  "stage":
-  [
-    {
-      "name":"image",
-      "type":"Actor",
-      "anchorPoint": "CENTER",
-      "parentOrigin": "CENTER",
-      "signals" :
-      [
-        { "name" : "touch", "action": "play", "animation": "move" }
-      ]
-    }
-  ]
-}
-~~~
\ No newline at end of file
diff --git a/docs/content/shared-javascript-and-cpp-documentation/resource-image-scaling.md b/docs/content/shared-javascript-and-cpp-documentation/resource-image-scaling.md
deleted file mode 100644 (file)
index 5401fcd..0000000
+++ /dev/null
@@ -1,419 +0,0 @@
-<!--
-/**-->
-
-[TOC]
-
-# Resource Image Scaling {#resourceimagescaling}
-  
-## Introduction {#resourceimagescaling-introduction}
-  
-Resource Image Scaling provides automatic image resizing (without changing aspect) based on settings provided by the developer.
-This operation is performed at load time.
-  
-### Developer options:
-* A target size of the image - this could be the full screen size for example.
-* A Fitting mode - This determines how the image is fitted to the target dimensions. If necessary the image will be cropped, or have borders added automatically.
-* A Sampling Mode - This determines the quality of the scaling (by specifying the type of filtering to use).
-  
-### Benefits of Resource Image Scaling:
-* Scaled image will typically be 1-to-1 size ratio with on screen pixels, giving quality benefits.
-* Scaling performed at load time, so run time speed is improved.
-* Ease of use allows applications handling lots of images of different sizes to be created quickly and easily.
-  
-## Use-Case Example {#resourceimagescaling-basicexample}
-While common uses of images in DALi applications involve fixed sized images under the developer's control, e.g. for button backgrounds, in other cases such as galleries and wallpapers an application must display a variety of images and adapt to different screen sizes and densities.
-
-There are more code examples later in this document under [API usage](#resourceimagescaling-apidetails). For now we will just give one full code example to show how this feature is used..
-  
-Let's say we are writing a home-screen application for a smart phone.
-Here we have a large, square image that we want to set as the wallpaper on a tall and narrow phone screen.
-We want to fill the screen without distorting the image or having black borders, and wasting as few pixels from the source image as possible.
-  
-![ ](../assets/img/image-scaling/example-scale-to-fill-problem.jpg)
-![ ](example-scale-to-fill-problem.jpg)
-  
-DALi provides the concept of a `FittingMode` to specify how a source image is mapped into a target rectangle, and the one we need here is `FittingMode::SCALE_TO_FILL` as it guarantees to cover all of the pixels of the target dimensions specified.
-A second concept of a `SamplingMode` controls how source image pixels are combined during the scaling and allows the developer to trade speed for quality.
-Since our image is to be loaded once and reused, we use `SamplingMode::BOX_THEN_LINEAR` which is the highest quality option.
-  
-In this case, `SCALE_TO_FILL` will perform this sequence of operations:
-  
-![ ](../assets/img/image-scaling/example-scale-to-fill-sequence.jpg) ![ ](example-scale-to-fill-sequence.jpg)
-  
-We can pass the stage dimensions to the `ResourceImage` creator function as the desired rectangle and ask it to map the image to the screen as shown here:
-  
-~~~{.cpp}
- // C++
- ResourceImage image = ResourceImage::New(
-  "gallery-large-12.jpg",
-  Dali::ImageDimensions( stage.GetSize().x, stage.GetSize().y ),
-  Dali::FittingMode::SCALE_TO_FILL,
-  Dali::SamplingMode::BOX_THEN_LINEAR );
-~~~
-~~~{.js}
-// JavaScript
-// First get stage dimensions into stageX and stageY ...
-var image = new dali.ResourceImage( {
-  url: "gallery-large-12.jpg",
-  width: stageX,
-  height: stageY,
-  fittingMode: "SCALE_TO_FILL",
-  samplingMode: "BOX_THEN_LINEAR"
-});
-~~~
-  
-
-## Workflow {#resourceimagescaling-workflow}
-  
-![ ](../assets/img/image-scaling/workflow-main.png) ![ ](workflow-main.png)
-  
-The workflow for achieving the final scaled image is (in order):
-  
-- Target Size: Determine target size (from source image size and any user specified target dimensions).
-- Target Image Dimensions: Determine the size the image should be scaled to (taking Fitting Mode into account)
-- Scaling: Perform a scale to target image dimensions using the specified Sampling mode.
-- Crop or Add Borders: Automatically performed as necessary to maintain final target aspect (actual stored data size could be smaller).
-  
-
-
-### Determine Target Dimensions {#resourceimagescaling-targetdimensions}
-  
-![ ](../assets/img/image-scaling/workflow-1.png) ![ ](workflow-1.png)
-  
-An application has several options for specifying the target rectangle for the image to be fitted to.
-The application may request dimensions through `ResourceImage::New()`:
-  
-  - `Not specifying either dimension`: IE. Width and Height set to 0 - The target dimensions become the same as the source.
-
-  - `Just one dimension specified, Width OR Height (the other dimension set to 0)`:
-    The unspecified dimension will be derived from the specified one whilst maintaining the aspect of the source image. The specified and calculated dimensions become the target dimensions. See more on this case [below](#resourceimagescalingzerodimensions).
-     
-  - `Width AND Height both specified` The requested dimensions pass straight through to become the target for fitting.
-  
-![ ](../assets/img/image-scaling/scaling-fitting-target-dimensions.png) ![ ](scaling-fitting-target-dimensions.png)
-
-The result of this process is an `(x, y)` target size to fit the image in the next step.
-  
-
-
-### Target Image Dimensions {#resourceimagescaling-targetimagedimensions}
-
-![ ](../assets/img/image-scaling/workflow-2.png) ![ ](workflow-2.png)
-  
-#### Fitting Mode {#resourceimagescaling-fittingmode}
-  
-DALi provides a number of strategies for mapping the pixels of an image onto the target box derived above.
-It provides a `FittingMode` enumeration to the developer to select a mapping or fitting approach.
-These are `SCALE_TO_FILL`, `SHRINK_TO_FIT`, `FIT_WIDTH`, and `FIT_HEIGHT` and their effect is best appreciated visually:
-  
-The operation of each of these modes is as follows:
-  
-| `FittingMode` | **Operation** |
-| ------------- | ------------- |
-| `SCALE_TO_FILL` | Centers the image on the target box and uniformly scales it so that it matches the target in one dimension and extends outside the target in the other. Chooses the dimension to match that results in the fewest pixels outside the target. Trims away the parts of the image outside the target box so as to match it exactly. This guarantees all of the target area is filled. |
-| `SHRINK_TO_FIT` | Centers the image on the target box and uniformly scales it so that it matches the target in one dimension and fits inside it in the other. This guarantees that all of the source image area is visible. |
-| `FIT_WIDTH` | Centers the image on the target box and uniformly scales it so that it matches the target width without regard for the target height. |
-| `FIT_HEIGHT` | Centers the image on the target box and uniformly scales it so that it matches the target in height without regard for the target width. |
-  
-
-![ ](../assets/img/image-scaling/fitting-mode-options.png) ![ ](fitting-mode-options.png)
-  
-<sub> **Fitting modes**: *The top row shows the effect of each mode when a tall target rectangle is applied to a square image. The middle row applies a wide target to a square raw image. The bottom row uses a target with the same aspect ratio as the raw image. This example shows that `SCALE_TO_FILL` is the only option for which the dimensions of the fitted image result fill all the area of the target. Others would be letterboxed with borders. `SHRINK_TO_FIT` is always equal to one of `FIT_WIDTH` or `FIT_HEIGHT`: in each case it is the minimum of them. As a special case, where the aspect ratio of raw image and target match, all fitting modes generate an exact match final image and are equivalent to each other.* </sub>
-  
-
-Note: The image is scaled to the same aspect and shrunk to fit depending on fitting mode. It is not upscaled. See: [Upscaling](#resourceimagescalingupscaling).
-  
-  
-
-### Scaling {#resourceimagescaling-scaling}
-  
-![ ](../assets/img/image-scaling/workflow-3.png) ![ ](workflow-3.png)
-  
-To perform the scaling stage, the source image is scaled to a (factor of) the target image size using the specified Sampling Mode/
-  
-The process of scaling an image can be expensive in CPU cycles and add latency to the loading of each resource.
-To allow the developer to trade-off speed against quality for different use cases, DALi provides the `SamplingMode` enum, which can be passed to `ResourceImage::New()`.
-Two of these modes produce bitmaps which differ from the dimensions calculated by the fitting algorithm and so have a memory trade-off as well. The full set of modes is explained below.
-  
-| `SamplingMode` | **Operation** |
-| ------------- | --------- |
-| `NEAREST` | Use simple point sampling when scaling. For each pixel in output image, just one pixel is chosen from the input image. This is the fastest, crudest option but suffers the worst from aliasing artifacts so should only be used for fast previews, or where the source image is known to have very low-frequency features. |
-| `LINEAR` | Uses a weighted bilinear filter with a `(2,2)` footprint when scaling. For each output pixel, four input pixels are averaged from the input image. This is a good quality option, equivalent to the GPU's filtering and works well at least down to a `0.5` scaling. |
-| `BOX` | Uses an iterated `(2,2)` box filter to repeatedly halve the image in both dimensions, averaging adjacent pixels until the the result is approximately right for the fitting target rectangle. For each output pixel some number of pixels from the sequence `[4,16,64,256,1024,...]` are averaged from the input image, where the number averaged depends on the degree of scaling requested. This provides a very high quality result and is free from aliasing artifacts because of the iterated averaging. *The resulting bitmap will not exactly match the dimensions calculated by the fitting mode but it will be within a factor of two of it and have the same aspect ratio as it.*   |
-| `BOX_THEN_NEAREST` | Applies the `BOX` mode to get within a factor of two of the fitted dimensions, and then finishes off with `NEAREST` to reach the exact dimensions. |
-| `BOX_THEN_LINEAR` | Applies the `BOX` mode to get within a factor of two of the fitted dimensions, and then finishes off with `LINEAR` to reach the exact dimensions. This is the slowest option and of equivalent quality to `BOX`. It is superior to `BOX` in that is uses an average of 62% of the memory and exactly matches the dimensions calculated by fitting. **This is the best mode for most use cases**.  |
-| `NO_FILTER` | Disables scaling altogether. In conjunction with `SCALE_TO_FILL` mode this can be useful as the edge trimming of that fitting mode is still applied. An example would be a gallery application, where a database of prescaled thumbnails of approximately the correct size need to be displayed in a regular grid of equal-sized cells, while being loaded at maximum speed. |
-  
-
-Here are all the modes applied to scaling-down a `(640,720)` line art and text JPEG image to a `(218, 227)` thumbnail:
-  
-|  |  | |
-| ---- | ---- | --- |
-| ![ ](../assets/img/image-scaling/sampling_modes_no_filter.png) ![ ](sampling_modes_no_filter.png) | ![ ](../assets/img/image-scaling/sampling_modes_nearest.png) ![ ](sampling_modes_nearest.png) | ![ ](../assets/img/image-scaling/sampling_modes_linear.png) ![ ](sampling_modes_linear.png) |
-| **NO_FILTER** | **NEAREST** | **LINEAR** |
-| ![ ](../assets/img/image-scaling/sampling_modes_box.png) ![ ](sampling_modes_box.png) | ![ ](../assets/img/image-scaling/sampling_modes_box_then_nearest.png) ![ ](sampling_modes_box_then_nearest.png) | ![ ](../assets/img/image-scaling/sampling_modes_box_then_linear.png) ![ ](sampling_modes_box_then_linear.png) |
-| **BOX** | **BOX_THEN_NEAREST** | **BOX_THEN_LINEAR** |
-  
-These are screenshots, showing how the images are rendered in a DALi demo.
-There is an additional level of GPU bilinear filtering happening at render time.
-The best way to get a feel for the best sampling mode for different image types is to play with the [examples](#resourceimagescaling-samplingmodesdemoexamples).
-  
-  
-
-### Crop or Add Borders {#resourceimagescaling-croporaddborders}
-  
-![ ](../assets/img/image-scaling/workflow-4.png) ![ ](workflow-4.png)
-  
-Lastly, the image data will be cropped, or have borders added automatically as necessary.
-This is done to ensure the image correctly fits the aspect of the target window, whilst maintaining the aspect of the source image.
-  
-Images that have an alpha channel will be given transparent borders. Otherwise black is used.
-  
-  
-
-## Using the API (With source code examples) {#resourceimagescaling-apidetails}
-  
-This section contains more detail about using the API to setup the desired behaviour.
-
-`ResourceImage` :: New has the following parameters:
-- **path**: Identifier for the image (allows raw image width and height to be retrieved).
-- **requested dimensions**: These are either `(0,0)`, a width, a height, or a (width, height) pair and either directly, or after reading the image raw dimensions and doing some math, define a target rectangle to fit the image to.
-- **fitting mode**: one of four strategies for mapping images onto the target rectangle.
-- **sampling mode** Different quality options for the scaling.
-  
-### Code Examples {#resourceimagescaling-targetdimensionsexamples}
-If we have a `(320, 240)` image called "flower.jpg", we use these options in code as below.
-  
-**Case 1**: In these two equivalent loads, the target dimensions are not specified, so will be `(320, 240)` so the image will be loaded at its raw dimensions without modification.
-~~~{.cpp}
-// C++
-ResourceImage image1 = ResourceImage::New( "flower.png" );
-ResourceImage image2 = ResourceImage::New( "flower.png", ImageDimensions( 0, 0 ) );
-~~~
-~~~{.js}
-// JavaScript
-var image1 = new dali.ResourceImage( { url:"flower.png" } );
-var image2 = new dali.ResourceImage( { url:"flower.png", width:0, height:0 } );
-~~~
-  
-
-**Case 2**: In these loads, the target dimensions will be `(160, 120)` as the zero dimension is derived from the aspect ratio of the raw image.
-~~~{.cpp}
-// C++
-ResourceImage image1 = ResourceImage::New( "flower.png", ImageDimensions( 160, 0 ) );
-ResourceImage image2 = ResourceImage::New( "flower.png", ImageDimensions( 0, 120 ) );
-~~~
-~~~{.js}
-// JavaScript
-var image1 = new dali.ResourceImage( { url:"flower.png", width:160, height:0 } );
-var image2 = new dali.ResourceImage( { url:"flower.png", width:0, height:120 } );
-~~~
-  
-
-**Case 3**: In this load, the target dimensions will be `(111, 233)`.
-~~~{.cpp}
-// C++
-ResourceImage image = ResourceImage::New( "flower.png", ImageDimensions( 111, 233 ) );
-~~~
-~~~{.js}
-// JavaScript
-var image = new dali.ResourceImage( { url:"flower.png", width:111, height:233 } );
-~~~
-  
-
-### Fitting an image's dimensions to the target box {#resourceimagescaling-codeexamplesfittingmodes}
-  
-The result of the fitting modes defined [here](#resourceimagescaling-targetimagedimensions) only differ when the target box has a different aspect ratio than the source image.
-Images may still be scaled down, depending on the target dimensions, but the specified fitting mode will not have an effect.
-  
-EG:
-~~~{.cpp}
-// C++
-// Image on 'disk' is 320x240.
-ResourceImage image = ResourceImage::New( "flower.png", ImageDimensions( 32, 24 ) );
-// Image will be loaded at (32, 24), regardless of fitting mode.
-~~~
-~~~{.js}
-// JavaScript
-// Image on 'disk' is 320x240.
-var image = new dali.ResourceImage( { url:"flower.png", width:32, height:24});
-// Image will be loaded at (32, 24), regardless of fitting mode.
-~~~
-  
-
-### Passing a Zero Dimension {#resourceimagescalingzerodimensions}
-  
-Passing in a single zero dimension is equivalent to specifying `FIT_WIDTH` or `FIT_HEIGHT` `FittingMode`s. When a non-zero width and zero height are specified, the fitting done will be identical to the result using `FittingMode` `FIT_WIDTH`. When passing a zero width and non-zero height, the effect of applying the chosen `FittingMode` to the calculated target dimensions is always identical to applying the `FIT_HEIGHT` mode.
-  
-* `ResourceImage::New( ImageDimensions( x, 0 ), <ANY_FITTING_MODE> )` =
-  `ResourceImage::New( ImageDimensions( x, <ANYTHING> ), FittingMode::FIT_WIDTH )`
-* `ResourceImage::New( ImageDimensions( 0, y ), <ANY_FITTING_MODE> )` =
-  `ResourceImage::New( ImageDimensions( <ANYTHING>, y), FittingMode::FIT_HEIGHT )`
-  
-This falls out of the the fact that the fitting modes are strategies for the case when the aspect ratio of the raw image differs from the aspect ratio of the target dimensions, but the zero dimension behavior always ensures that the target dimensions have the same aspect ratio as the raw image's so the fitting modes are all equivalent.
-  
-Therefore, if `(x!=0, y=0)`, fittingMode = `FIT_WIDTH`,
-and if `(x=0, y=!0)`, fittingMode = `FIT_HEIGHT`, irrespective of fitting mode passed by the application (if any).
-This shortcut is provided as a convenience to the developer and allows FIT_WIDTH or FIT_HEIGHT to be specified compactly:
-~~~{.cpp}
-// C++
-// FIT_WIDTH:
-ResourceImage image = ResourceImage::New("flower.png", ImageDimensions(x, 0));
-// FIT_HEIGHT:
-ResourceImage image = ResourceImage::New("flower.png", ImageDimensions(0, y));
-~~~
-~~~{.js}
-// JavaScript
-// FIT_WIDTH:
-var image = new dali.ResourceImage( {
-  url: "flower.png",
-  width: x,
-  height: 0
-});
-// FIT_HEIGHT:
-var image = new dali.ResourceImage( {
-  url: "flower.png",
-  width: 0,
-  height: y
-});
-~~~
-  
-Note:
-- If both values are specified as 0, both dimensions are taken from the source image.
-- If both dimensions are not 0, this value becomes the 'natural size' even if it differs from the actual pixel dimensions loaded. [This requires some care in rendering to avoid distortion](#resourceimagescaling-samplingmodesrendernaturalsize).
-  
-
-### Code Examples for Sampling Modes  {#resourceimagescaling-codeexamplessamplingmodes}
-  
-
-In the following code example an image is loaded to be a thumbnail but with differing quality, speed, and memory implications.
-~~~{.cpp}
-// C++
-ResourceImage image1 = ResourceImage::New( "flower.png",
-    ImageDimensions( 240, 240 ), FittingMode::SCALE_TO_FILL, SamplingMode::NEAREST );
-  
-ResourceImage image2 = ResourceImage::New( "flower.png",
-    ImageDimensions( 240, 240 ), FittingMode::SCALE_TO_FILL, SamplingMode::NO_FILTER );
-  
-ResourceImage image3 = ResourceImage::New( "flower.png",
-    ImageDimensions( 240, 240 ), FittingMode::SCALE_TO_FILL, SamplingMode::BOX );
-  
-ResourceImage image4 = ResourceImage::New( "flower.png",
-    ImageDimensions( 240, 240 ), FittingMode::SCALE_TO_FILL, SamplingMode::BOX_THEN_LINEAR );
-~~~
-~~~{.js}
-// JavaScript
-var image1 = new dali.ResourceImage( {
-  url:"flower.png", width:240, height:240,
-  fittingMode:"SCALE_TO_FILL", samplingMode:"NEAREST"
-} );
-
-var image2 = new dali.ResourceImage( {
-  url:"flower.png", width:240, height:240,
-  fittingMode:"SCALE_TO_FILL", samplingMode:"NO_FILTER"
-} );
-
-var image3 = new dali.ResourceImage( {
-  url:"flower.png", width:240, height:240,
-  fittingMode:"SCALE_TO_FILL", samplingMode:"BOX"
-} );
-
-var image4 = new dali.ResourceImage( {
-  url:"flower.png", width:240, height:240,
-  fittingMode:"SCALE_TO_FILL", samplingMode:"BOX_THEN_LINEAR"
-} );
-~~~
-  
-  
-
-
-### Notes on speed VS quality {#resourceimagescaling-speedvsquality}
-  
-If we imagine flower.jpg is a 560*512 photo with high frequency details, the results of this are (image references are from above example):
-* `image1` loads fast, uses minimal space, has poor quality.
-* `image2` loads even faster, uses 4.6 * minimal space, has good quality.
-* `image3` loads moderately slow, uses 1.3 * minimal space, has good quality.
-* `image4` loads slowest, uses minimal space, has good quality.
-  
-Note that `BOX`, `BOX_THEN_NEAREST` and `BOX_THEN_LINEAR` can work particularly well for JPEG images as they can use fast downscaling typically built-in to the JPEG codec on supported platforms on the fly while decoding. In this case the caveats about using them having a speed trade-off given above do not apply.
-  
-  
-
-
-## Demo Examples {#resourceimagescaling-samplingmodesdemoexamples}
-  
-Load time image scaling is spread throughout the DALi examples.
-Search for `"ImageDimensions"` in the dali-demo project to see it used.
-There is also a specific demo to show all of the fitting and scaling modes.
-which lives in the demo project at `examples/image-scaling-and-filtering`.
-  
-![ ](../assets/img/image-scaling/demo-fitting-sampling.png) ![ ](./demo-fitting-sampling.png)
-  
-Touch the arrows in the top corners to changes image.
-Drag the resize handle in the corner of the image to change the requested size and trigger an immediate image reload.
-Use the buttons at the bottom of the screen to select any of the fitting and sampling modes from the popups which appear.
-This demo does not take any of the special measures [described here](#resourceimagescaling-naturalsizecompensation) to correct for the natural size != pixel dimensions discrepancy so all fitting modes other than `SCALE_TO_FILL` show distortion.
-  
-A second specific demo shows the effect of a filter mode on a single image loaded into various requested rectangles side by side.
-It can be found under `examples/image-scaling-irregular-grid`.
-  
-![ ](../assets/img/image-scaling/demo-sampling-modes.jpg) ![ ](./demo-sampling-modes.jpg)
-  
-Touch the button at top-left to change image.
-The button at top-right changes sampling mode.
-You will see strong differences between sampling modes where the image contains high frequency details such as hair and in the large black and white image, but much less in some others such as the Statue of Liberty which is mostly covered by a smooth gradient.
-  
-  
-
-## Further Notes {#resourceimagescaling-furthernotes}
-  
-### Upscaling {#resourceimagescaling-upscaling}
-  
-DALi refuses to upscale images at load time in order to conserve memory.
-If the application requests an image size the specified fitting mode) would require scaling up, DALi will instead return an image with the same aspect ratio but limited to the largest dimensions that do not exceed the raw ones.
-EG. The actual image could be a fraction of the size of the target image dimensions.
-Upscaling can still be effected at render time by setting the size of an actor to the desired size.
-  
-  
-
-### Compressed Textures and Scaling {#resourceimagescaling-compressedtextures}
-  
-Compressed textures cannot be scaled at load time as their formats are designed to be uploaded directly to GPU memory. To achieve scaling of compressed textures, set the desired size on the attached `ImageView` for scaling at render time instead.
-  
-  
-
-### Compensation for Natural Size != Pixel Width / Height {#resourceimagescaling-naturalsizecompensation}
-  
-Because the *natural size* of an image is
-[taken from the requested dimensions](#resourceimagescaling-samplingmodesdimensionflow)
-passed to `ResourceImage::New()` rather than passing through the same calculations that result in the eventual pixel width and height loaded,
-the *natural size* and pixel dimensions of an image will differ when loaded with scaling.
-It is inherent in the definition of fitting modes other than `SCALE_TO_FILL` not to match the requested dimensions, so in general, images loaded with them must have this mismatch between *natural size* and actual pixel width.
-  
-It is not possible in general to draw a scaled resource image using its natural size as the `ImageView`'s size without it appearing stretched in one dimension.
-This is the case for example by default with size negotiation in effect or when an image is simply passed to an actor at creation time.
-  
-There are circumstance, however, in which the the natural size of a resource image loaded will exactly match its post-load pixel dimensions:
-  
-- No scaling is requested.
-- The application chooses a combination of requested dimensions, fitting mode, and sampling mode which the scaling sub-system can match exactly. This is the case:
-   *  For all downscaling using `SCALE_TO_FILL` fitting mode and not using `BOX` or `NO_FILTER` sampling modes.
-   * The app uses `SHRINK_TO_FIT`, `FIT_WIDTH`, or `FIT_HEIGHT` and the requested dimensions passed-in are both smaller than the raw ones and have the same aspect ratio as them, and it is not using `BOX` or `NO_FILTER` sampling modes.
-  
-In these cases the image may be used freely in layouts controlled by size negotiation.
-Additionally, if the requested size has the same aspect ratio as the eventual pixel array loaded, and the fitting mode is `SCALE_TO_FILL` or `BOX` and `NO_FILTER` sampling modes are avoided, even if they don't match in dimensions exactly, the eventual image will be drawn without aspect ratio distortion although it will be scaled at render time.
-  
-The fitting and scaling modes [demo](#resourceimagescalingsamplingmodesdemoexamples) allows this behavior to be be explored dynamically when the fitting mode is changed from `SCALE_TO_FILL`.
-  
-The application can of course only pass dimensions which are just right if it happens to know the raw dimensions or if it accesses the the image resource and reads the raw dimensions from its header.
-  
-The application can get a scaled resource image rendered correctly to screen with one of three strategies:
-  
-  1. Use one of the special cases above.
-  2. Read the image header from disk, recreate the dimension deriving, fitting, and sampling logic described in this document, and use that to generate a pair of requested dimensions which match the eventual image dimensions.
-  3. Use the requested dimensions it really wants to but then read the image header from disk, recreate the dimension deriving, fitting, and sampling logic described in this document, and set the size of an `ImageView` to that size explicitly rather than relying on the *natural size* of the image.
-  
-
-
-@class _Guide_Resource_Image_Scaling
-*/
diff --git a/docs/content/shared-javascript-and-cpp-documentation/resource-tracking.md b/docs/content/shared-javascript-and-cpp-documentation/resource-tracking.md
deleted file mode 100644 (file)
index 9387b4c..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-<!--
-/**-->
-
-# Resource Tracking {#resourcetracking}
-
-## Enable Logging
-
-Setting DALI_ENABLE_LOG environment variable to RESOURCE_LOG will enable resource usage logging in DALi applications.
-On target resource logging utilizes dlog, but this can also be used on desktop by redirecting stderr to a file.
-The generated information includes any image files that are loaded with their dimensions,
-GPU memory consumption, CPU RAM used and details of texture atlases created.
-
-## Viewing Resource Logs
-
-dalireslog.sh is installed as part of the DALi Adaptor package and can be found in the adaptors/tizen/scripts folder.
-The script shows a summary of memory used by resources.
-USAGE:
-./dalireslog.sh [FILE]
-if FILE isn't specified, the script will try to use dlogutil.
-
-### Example:
-~~~{.bash}
-sh-4.1$ ./dalireslog.sh
-
-**On a separate terminal:**
-
-sh-4.1$ DALI_ENABLE_LOG=RESOURCE_LOG /opt/apps/com.samsung.dali-demo/bin/album.example
-~~~
-Example on desktop:
-~~~{.bash}
-jon-doe\@ws-1234$ DALI_ENABLE_LOG=RESOURCE_LOG blind-effect.example 2>/home/SERILOCAL/john.doe/log.txt
-
-**On a separate terminal:**
-
-dalireslog.sh ~/log.txt
-
-~~~
-
-### Displayed information:
-
-|  | |
-|--|-|
-| 3D | amount of GPU memory used by application |
-| MEM Atlas | amount of GPU memory used by texture atlases (usually this refers to font atlases)
-| Number of atlases | how many texture atlases are present in memory.|
-
-A list of files is displayed in the main view, with different color codes representing different states:
-
-| | |
-|-|-|
-|CPU | resource is in memory, but hasn't been uploaded to a GL texture.|
-|GPU | resource has been uploaded to a GL texture, bitmap buffer discarded.|
-|CPUGPU | resource has been uploaded to a GL texture, but still present in CPU memory as well.|
-|DISCARDED | resource has been discarded, memory freed up |
-
-@class _Guide_ResourceTracking
- */
diff --git a/docs/content/shared-javascript-and-cpp-documentation/resources.md b/docs/content/shared-javascript-and-cpp-documentation/resources.md
deleted file mode 100644 (file)
index 4dc718d..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--
-/**-->
-# Resources {#resources}
-
-## Resource Image {#resource-image}
-
-A resource image is an image that is loaded using a file path or a URL.
-
-To create a resource image:
-~~~{.cpp}
-Dali::ResourceImage image = Dali::ResourceImage::New( "/my-path/my-image.png" );
-~~~
-Which can then be used with actors (e.g. ImageView).
-
-Resources are loaded in separate threads.
-The application can connect to the Dali::ResourceImage::LoadingFinishedSignal() to get notified when the image has loaded.
-
-By default, resource images start loading immediately and the data is released only when the ResourceImage handle is destroyed.
-To optimize an application's memory footprint, the application can ask resources to be only loaded when actually required and
-their data to be released automatically when they are no longer being used (not being used by Actors).
-~~~{.cpp}
-Dali::ResourceImage image = Dali::ResourceImage::New( "/my-path/my-image.png", Dali::ResourceImage::ON_DEMAND, Dali::Image::UNUSED );
-~~~
-If Dali::Image::UNUSED is used, then when the ResourceImage is used again, the resource data is reloaded automatically.
-
-If the application requires the image dimensions immediately, then they can be retrieved synchronously:
-~~~{.cpp}
-Dali::ImageDimensions dimensions = Dali::ResourceImage::GetImageSize( "/my-path/my-image.png" );
-~~~
-This is a disk read which can be slow and will block the event thread, so should only be used if absolutely necessary.
-
-## 9-Patch Image {#resource-9-patch}
-
-DALi has support for 9-patch images.
-These are stretchable, repeatable images which are reduced to their smallest size.
-Essentially, an image is sliced up into 9 squares and the four corners do not change size at all.
-The other 5 segments are stretched (or repeated) to allow the whole image to scale appropriately.
-
-DALi has inbuilt support for *.9.png, *.9.jpg etc. images as well.
-More information about these images can be found here: http://developer.android.com/tools/help/draw9patch.html
-
-The following is an example of a *.9.png image:
-![ ](resource/9-patch.png)
-
-Zoomed in, the red section shows the part that will be repeated.
-The four corners areas remain static.
-The one pixel border will also be stripped out.
-![ ](resource/9-patch-zoomed.png)
-
-And if the image is given a 200 by 200 size, it will look like the following:
-![ ](resource/9-patch-full.png)
-
-## Buffer Image {#resource-buffer}
-
-A BufferImage represents an image resource in the form of a pixel buffer data that can be provided by the application developer.
-The application can then write to this buffer as required and the image is updated on the screen.
-
-~~~{.cpp}
-Dali::BufferImage image = Dali::BufferImage::New( 200, 200 ); // Creates a 200 by 200 pixel buffer with a color-depth of 32-bits (with alpha)
-~~~
-
-*/
diff --git a/docs/content/shared-javascript-and-cpp-documentation/script-hello.md b/docs/content/shared-javascript-and-cpp-documentation/script-hello.md
deleted file mode 100644 (file)
index ff15954..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-<!--
-/**-->
-
- # Hello World - JSON layout{#script-hello}
-
- The following JSON code is the minimum required to put the sentence "Hello World" on the screen.
-
-~~~{.json}
-{
- // a tree of actors
- "stage": [{
-   "name": "text-label",
-   "type": "TextLabel",
-   "text": "Hello World",
-   "parentOrigin": "CENTER"
- }]
-}
-~~~
-
- The following code loads the JSON file
-
-~~~{.cpp}
- // C++
- Builder builder = Builder::New();
-
- std::string json_data(ReadFile("layout.json"));
-
- builder.LoadFromString(json_data);
-
- builder.AddActors( Stage::GetCurrent().GetRootLayer() );
-
- ~~~
-
- ~~~{.js}
- // JavaScript
-
- var builder = new dali.Builder();
-
- builder.loadFromFile("layout.json");
-
- builder.addActors( dali.stage.getRootLayer )
-
-~~~
- ## Hello World - Javascript
-
- The DALi script application is needed to run the Javascript which provides a Javascript runtime and an interface to DALi.
-
-~~~
- scripting.example hello-world.js
-~~~
-
- The TextLabel control to display Hello World can be constructed using Javascript dot notation accessing DALi Actor Properties.
-
-~~~{.js}
-// JavaScript
-
- var textLabel = new dali.TextLabel();
-
- textLabel.text         = "Hello World";
- textLabel.fontFamily   = "FreeSans";
- textLabel.fontStyle    = "Regular";
- textLabel.parentOrigin = dali.CENTER;
-
- dali.stage.add( textLabel );
-~~~
-
-@class _Guide_Script_Hello_World
-
-*/
diff --git a/docs/content/shared-javascript-and-cpp-documentation/script-json-specification.md b/docs/content/shared-javascript-and-cpp-documentation/script-json-specification.md
deleted file mode 100644 (file)
index 599e6ce..0000000
+++ /dev/null
@@ -1,478 +0,0 @@
-<!--
-/**-->
-
-[TOC]
-
-# DALi JSON Specification  {#script-json-specification}
-
-## Overview {#overview}
-
-This document describes the DALi JSON specification.
-The format is not yet formally versioned within the JSON.
-
-# General format {#format}
-
-The JSON format supports
-
-- Named templates for on demand creation of
- - Actors/ Controls
- - Animations
-- Style sets
- - Dynamically change the style of Actor hierarchies
- - Animate to a style set
-- Includes
- - Build style sets up by merging JSON
-- Creating Scene content on load
- - Controls created without any code
-
-
-Concrete Actors and Controls can be created from types registered in the
-DALi Type Registry.
-
-Template, style and scene sections all configure Actors and Controls via
-the DALi property system.
-
-The JSON format deviates from the formal JSON specification and allows C style comments.
-
-~~~
-    {                                        //
-      "version": 0,                          // Version Number
-      "includes":                            // Include section
-      [                                      //
-       "base-theme.json"                     // Include file to merge into the
-                                             // JSON
-      ]                                      //
-      "constants":                           // Constant replacement section
-      {                                      //
-        ...                                  //
-      },                                     //
-      "templates":                           // Template library section
-      {                                      //
-        "basic-text":                        // A named template
-        {                                    // } key value properties
-         ...                                 //
-         "actors":                           // A tree of sub actors
-         [                                   //
-         ...                                 //
-         ]                                   //
-        }                                    //
-        },                                   //
-        "styles":                            // Named Style set section
-        {                                    //
-        "light-theme":                       // Style set name
-        {                                    //
-         ...                                 //
-        },                                   //
-        dark-theme":                         //
-        {                                    //
-         ...                                 //
-        },                                   //
-      }                                      //
-      "stage":                               // Stage section
-      [                                      //
-       {                                     // Actors|Controls to create on JSON file load
-       "type": "basic-text",                 // A DALi Control or a template name
-       "styles":["base-theme","light-theme"] // Style list to apply to this instance
-       }                                     //
-      ]                                      //
-    }                                        //
-~~~
-
-# Top level sections {#sections}
-
-## Includes {#includes}
-
-The "includes" section is an array of file names to be merged in order to
-create a final in memory JSON tree.
-
-The merge process will walk key, value attributes from the root JSON
-node and overwrite previous values with the newer values.
-
-- If the key does not exist then it will be created.
-- If the newer value is a different type then the newer type will persist.
-- Where both values are objects the merge will descend into the object.
-- Where both values are arrays the merge will replace the old array entirely.
-
-The merge is relatively simple and is expected to be used to build up
-from base themes to custom themes where there are few conflicts and
-simple direct replacements are desired.
-
-### Constants {#constants}
-
-The merge behaviour when a file has constants and includes is
-
-1. Constants are loaded first
-2. Includes file list is merged in order
-3. All other (non constant) data is merged
-
-The include merge is recursive, so step (2) above will cause the
-constants in the first included file to be merged first.
-
-## Constants {#constantdetail}
-
-The constants section supports sub-string and full property replacement.
-
-~~~
-    {
-    "constants":                        // Constant replacement section
-    {                                   //
-      "IMAGES": "/usr/share/images/",   // Constants can be set here or in code.
-      "SIZE": [100,100,1]               //
-    },                                  //
-    ...                                 //
-    {                                   //
-      "type":"ImageView"               // An DALi type or a template name
-      "image":                          //
-      {                                 //
-        "url":"{IMAGES}b.jpg"      // Image filename substring replacement
-      },                                //
-      "size": "{SIZE}"                  //
-    }                                   //  Property replacement
-    }                                   //
-~~~
-
-The type of the constant should match the expected type of the property.
-
-A property constant cannot be used for sub string replacement; a string
-constant should be used.
-
-With a property replacement, the replace site must contain a string
-where the first and last positions are braces.
-
-## Templates {#templates}
-
-The template section supports the creation of actor instances. The
-template name can be used in code to create an actor tree.
-
-~~~{.js}
-// JavaScript
-
-var builder = new dali.Builder();
-builder.loadFromFile( "my-app.json");
-var userActorTree = builder.create( { template:"basic-text"} );
-~~~
-
-~~~{.cpp}
-// C++
-
-Builder builder = Builder::New();
-std::string jsonData = loadFile("my-app.json");
-builder.LoadFromString( jsonData );
-
-actorTree = builder.Create("basic-text");
-~~~
-
-Templates consist of a name, multiple property-value configurations and
-an optional actor sub hierarchy.
-
-~~~{.json}
-   {                                    //
-   "templates":                         //  Template library section
-   {                                    //
-   "basic-text":                        //  The template name
-   {                                    //
-     "type":"ImageView",               //  Concrete DALi Type/Class to create
-     "styles":["base-style"],           //  Style list to apply
-     "name":"image",                    //  }
-     "image":                           //  } property name : value
-     {                                  //  }
-     "url":"{IMAGES}/b.jpg"        //
-     },                                 //
-     "parentOrigin": "CENTER"           //
-     ...                                //
-     "actors":                          //  A tree of sub actors
-     [                                  //
-     {                                  //
-     "type":"TextView"                  //
-     "name":"text",                     //
-     "text":"Hello World",              //
-     "parentOrigin": "CENTER",          //
-     }                                  //
-     ]                                  //
-   }                                    //
-   }                                    //
-~~~
-
-A template has a special 'type' property which must contain a concrete
-DALi Actor or Control type name.
-
-A template has a special 'styles' property which contains a list of
-styles to apply when creating using the template.
-
-## Styles {#styles}
-
-The styles section supports a named set of properties that can be
-applied to an actor or actor tree.
-
-~~~{.cpp}
-// C++
-
-Builder.ApplyStyle("light-theme", myActor);
-~~~
-
-~~~{.js}
-// JavaScript
-
-builder.applyStyle("light-theme", myActor);
-~~~
-
-
-The styles can also be applied as an animation.
-
-~~~{.cpp}
-Builder.AnimateTo("light-theme", myActor, TimePeriod(0, 10));
-~~~
-
-
-
-~~~
-   {                                   //
-   "styles":                           // Style set section
-   {                                   //
-   "light-theme":                      // Style-set name
-   {                                   //
-     "color":[1,1,1,1]                 // }
-     "position":[0,-120,0],            // } properties to set on the given actor
-     "rotation":[0,0,30],              // }
-     "actors":                         //
-     {                                 // Sub Actors are referenced by name
-       "title-text":                   // Actor name to search for under given actor
-       {                               //
-         "color":[1,1,1,1]             // }
-         "position":[0,-120,0],        // } properties to set if 'title-text' is found
-         "rotation":[0,0,30],          // }
-       }
-     },                                //
-     "icon":                           //
-     {                                 //
-       "color":[1,1,1,1]               //
-     }                                 //
-    },                                 //
-    "dark-theme":                      //
-    {                                  //
-    }                                  //
-   }                                   //
-~~~
-
-When applied to an actor tree the actors are referenced by name. Names
-are not unique in DALi.
-
-When a style is applied in code DALi will perform a depth first search
-stopping with the first matching name.
-
-Typically an application developer will apply the style to the template
-root actor and not the stage root actor. Therefore in most uses cases
-name conflicts are not expected.
-
-## Animations {#animations}
-
-The animation section defines a library of animation definitions.
-
-The animations can be created by name from code.
-
-They can also be created automatically from JSON in an actor signal.
-
-~~~
-    {                                    //
-    "animations":                        // Animation library
-    {                                    //
-     "rotate":                           // An Animation named rotate
-     {                                   //
-     "duration": 10,                     // Duration in seconds
-     "loop": false,                      // Whether to loop.
-     "endAction": "Bake",                // Whether to set final value(bake) or
-                                         // reset
-     "disconnectAction": "Discard",      // Whether 'Bake' or 'Discard' when disconnected
-     "properties":
-     [
-                                         // Properties changed in this animation
-     {
-     "actor":"image",                    // Actor found by name from the stage
-     "property":"rotation",              // Property to change
-     "value":[0, 0.1, 0, 0],             // Value to set
-     "alphaFunction": "EASE\_IN\_OUT",   // Interpolation function
-                                         //
-     "timePeriod":                       // Time period for change
-     {"delay": 0,
-      "duration": 3
-      }
-     },
-     ...                                 // 1 or more property changes per animation
-     },                                  //
-     ...                                 //
-    },                                   //
-~~~
-
-### Splines {#splines}
-
-An animation property can be defined with a path and forward direction
-instead of a single final value.
-
-Paths are defined in a top level path section and referenced by the
-animation property.
-
-~~~
-    {                                    //
-    "paths":                             // Path library
-     {                                   //
-     "path0":                            // Path definition by name
-     {                                   //
-     "points":[                          // points
-       [-150, -50, 0],
-       [0.0,70.0,0.0],
-       [190.0,-150.0,0.0]
-      ],
-                                         // curvature automatically creates
-     "curvature":0.35,                   // controlPoints
-                                         //
-     "controlPoints": [...]              // Otherwise controlPoints can be
-                                         // directly specified.
-     }                                   //
-     },                                  //
-    "animations":                        //
-    {                                    //
-     "pathAnimation":
-     {
-     "duration": 3.0,
-     "properties":
-     [
-     {
-     "actor": "greeting2",
-                                         // Path is mandatory for spline
-     "path":"path0",                     // animation.
-     "forward":[1,0,0],                  // Forward vector specifies orientation
-                                         // whilst travelling along the path
-     "alphaFunction": "EASE\_IN\_OUT",   // (optional)
-     "timePeriod":
-     {
-     "delay": 0,
-     "duration": 3
-     }
-     },
-     ...
-                                         // Other properties changes can use
-     ]                                   // paths or values in the same
-                                         // animation.
-    },                                   //
-    }                                    //
-~~~
-
-At least one of the vertex or fragment fields is mandatory. All
-other fields are optional will use internal defaults.
-
-Actors have an "effect" field that refers to the shader effect
-instance to use with that actor.
-
-### Animating shaders {#animatingshaders}
-
-Shader uniforms can be animated as if they are properties of the actor.
-
-When the animation is created from code (or from a signal) the property
-name search begins on the actor, if it isn't found the search continues
-on the attached renderer, and then on the attached shader object.
-
-The actor property names and shader uniform names must not clash for the
-uniform to animate correctly.
-
-The actor needs to register the uniform properties as custom animatable
-properties.
-
-~~~
-{
-  "animations":
-  {
-    "rotate":                          \\ An Animation named rotate
-    {
-      "properties":                    \\ Properties changed in this animation
-      [
-        {
-          "actor": "image",            \\ Actor found by name from the stage
-          "property": "uTranslate",    \\ Uniform name specified as if it is a property of the object
-          "value": [10, 20],           \\ Target value of uniform
-          ...
-        }
-      ]
-    },
-    ...
-  },
-  "stage":
-  [
-    {
-      "type": "ImageView",
-      "name": "image",                 \\ Name of the actor
-      ...
-      "image":
-      {
-        ...
-        "shader":                      \\ ImageView has a shader property where we can set a custom shader
-        {
-          "vertexShader": "..."        \\ Vertex shader with uniform "uTranslate"
-        }
-      },
-      "animatableProperties":          \\ Custom properties that the actor needs to register
-      {
-        "uTranslate": [0, 0]           \\ The name should match the uniform we want to animate
-      },
-      ...
-    },
-    ...
-  ]
-}
-~~~
-
-## Stage {#stage}
-
-The stage section supports the immediate creation of actors at the time
-the JSON is loaded.
-
-The stage is a tree of actors that can be added to DALi's stage object.
-
-~~~
-// C++
-builder = Dali.Builder();
-json_text = load("layout.json");
-builder.Load(json\_text);
-stage = Dali.Stage.GetCurrent();
-builder.AddActors( stage.GetRootLayer()); // Add actors to the stage root layer
-~~~
-
-~~~{.js}
-// JavaScript
-
-builder.addActors( dali.stage.getRootLayer() );
-~~~
-
-~~~
-    {                                    \\
-    "stage":                             \\  Stage Section Number
-    [                                    \\  An array of actors
-     {
-     "type": "ImageView",
-     ...
-     "actors":                           \\  Each actor can have children
-                                         \\ creating a tree
-     [
-     {
-     "type": "TextView",
-                                         \\  The Type to create; this can be a
-     ...                                 \\ concrete DALi type (actor/control)
-                                         \\ or a template name.
-     "styles": ["base-style"]
-                                         \\  A list of styles to apply to the
-     }                                   \\ created type.
-     ]
-     }
-    ]
-    }
-~~~
-
-# Actor and Control Properties {#actorprop}
-
-Each control has a set of supported properties documented in the "DALi
-UI Control Specification".
-
-Please refer to the above document for further information about specific
-controls.
-
-@class _Guide_JSON_Specification
-*/
diff --git a/docs/content/shared-javascript-and-cpp-documentation/script-overview.md b/docs/content/shared-javascript-and-cpp-documentation/script-overview.md
deleted file mode 100644 (file)
index f02f557..0000000
+++ /dev/null
@@ -1,265 +0,0 @@
-<!--
-/**-->
-
-# Scripting Overview  {#scriptoverview}
-
-DALi has:
-- JSON to support:
- - layouting
- - theme / styling
- - templated actor/control creation
- - basic actions
- - DALi GUI builder generates JSON files. Allows UI designers to create / modify the application look and feel.
-
-- JavaScript to support:
- - Rapid Application Development
- - Hybrid C++/JavaScript applications
- - Leverage third party JavaScript modules (backbone.js etc)
-
-JSON support is built in to DALi.
-
-JavaScript support is via a plugin held in DALi Toolkit, which builds automatically if Google's V8 engine is installed. 
-The V8 version required by DALi can be built and installed using dali-core/scripts/dali_env script.
-
-Files can be loaded inside any DALi application, or from command line using the launcher ( part of dali-demo).
-
-~~~{.cpp}
-scripting.example hello-world.json hello-world.js
-~~~
-
-We currently have JSON and JavaScript example files held in dali-demo/resources/scripts
-  
-![ ](../assets/img/javascript-wrapping-guide/scripting-overview.png)
-![ ](scripting-overview.png)
-
-# JSON
-
-JSON file contains different sections:
-- **Templates** actor & control tree creation
-- **Styles** used to style actor & control trees
-- **Animations**
-- **Instances** of objects for path, renderTasks, frameBuffers
-- **Stage**. A list of actors / controls that can be added to the stage
-- **Constants**  (e.g. positions / colors, that can be references by other parts of the JSON file);
-- **Actions**
-  
-## Examples
-
-### JSON templates section
-  
-~~~{.json}
-
-    “templates”:
-    {
-      "name":"users",
-      "type":"Actor",
-      "parentOrigin":"TOP_CENTER",
-      "anchorPoint":"TOP_CENTER",
-      "size":"{DEFAULT_MENU_USER_SIZE}",
-      "colorMode":"USE_OWN_COLOR",
-      "actors":
-      [
-        {
-          "name":"usersBackground",
-          "type":"ImageView",
-          "parentOrigin":"CENTER",
-          "anchorPoint":"CENTER",
-          "size":"{DEFAULT_MENU_USER_SIZE}",
-          "colorMode":"USE_OWN_COLOR",
-          "image":{ "url":"{IMAGE_PATH}white-pixel.png" },
-          "color":"{DEFAULT_MENU_BACKGROUND_COLOR}"
-        },
-        {
-          "name":"icon",
-          "type":"ImageView",
-          "parentOrigin":"TOP_CENTER",
-          "anchorPoint":"TOP_CENTER",
-          "position":[0,41,1],
-          "image":{ "url":"{IMAGE_PATH}ico_man_nor.png" }
-        },
-      ]
-    },
-
-
-~~~
-
-#### JavaScript example
-
-~~~{.js}
-
-var builder = new dali.Builder();
-
-builder.loadFromFile( "my-app.json");
-
-var userActorTree = builder.create( { template:"users"} );
-
-~~~
-
-#### C++ example
-
-~~~{.cpp}
-Builder builder = Builder::New();
-
-std::string jsonData = loadFile("my-app.json");
-
-builder.LoadFromString( jsonData );
-
-Actor userActorTree = builder.Create("users");
-~~~
-
-
-### JSON styles section
-
-~~~{.json}
-“styles”:
-  {
-    “live-tv-focus":
-    {
-      "actors":
-      {
-        "background":
-        {
-          "image":{ "filename":"{IMAGE_PATH}live_tv_background.png" },
-          "color":"{DEFAULT_MENU_ITEM_COLOR_1}"
-        },
-        "icon":
-        {
-          "image":{ "filename":"{IMAGE_PATH}icn_live_tv_foc.png" }
-        },
-        "label":
-        {
-          "colorAlpha":1,
-          "text":"<font size='20' weight='bold'><b>LIVE</b></font>"
-        }
-      }
-    },
-  }
-~~~
-
-#### JavaScript example
-
-~~~{.js}
-builder.applyStyle( "live-tv-focus", tvIcon );
-~~~
-
-#### C++ example
-
-~~~{.cpp}
-builder.ApplyStyle( "live-tv-focus", tvIcon );
-~~~
-
-### JSON animations section
-
-~~~{.json}
-"animations":
-  {
-    "animate-show":
-    {
-      "duration":0.5,
-      "properties":
-      [
-        {
-          "actor":"background",
-          "property":"positionX",
-          "value":30,
-          "alphaFunction":"EASE_IN_OUT"
-        },
-        {
-          "actor":"itemsBackground",
-          "property":"colorAlpha",
-          "value":0.85,
-          "timePeriod": {"delay": 0.25, "duration": 0.25 },
-          "alphaFunction":"EASE_IN_OUT"
-        },
-        {
-          "actor":"usersBackground",
-          "property":"colorAlpha",
-          "value":0.85,
-          "timePeriod": {"delay": 0.25, "duration": 0.25 },
-          "alphaFunction":"EASE_IN_OUT"
-        }
-      ]
-    },
-~~~
-
-#### JavaScript example
-
-~~~{.js}
-// JavaScript
-
-var anim = builder.createAnimation( { animation:"animate-show", actor: myActor } );
-~~~
-
-~~~{.cpp}
-// C+++
-
-Animation anim = builder.createAnimation( "animate-show", propertyMap );
-~~~
-
-### JSON stage section
-
-~~~{.json}
-
-“stage": [{
-      "name":"simple-table",
-      "type":"TableView",
-      "backgroundColor": [0.5,0.5,0,1],
-      "parentOrigin": "CENTER",
-      "size":[400,500,1],
-      "rows": 4,
-      "columns":4,
-      "cellPadding": [10, 5],
-      "layoutAnimationDuration": 0.5,
-      "layoutRows": {  // set the height of the rows
-        "0": { "policy": "fixed", "value": 40 },
-        "1": { "policy": "relative", "value": 0.33 },
-        "2": { "policy": "fixed", "value": 120 }
-      },
-      "layoutColumns": { // set the widths of the columns
-        "1": { "policy": "fixed", "value": 150 },
-        "2": { "policy": "relative", "value": 0.35 },
-        "3": { "policy": "relative", "value": 0.15 }
-      },
-      "actors": [{
-          "name":"gallery-1",
-          "type":"ImageView",
-          "image": {
-            "url": "{DALI_IMAGE_DIR}gallery-large-1.jpg"
-          },
-          "customProperties": { // properties registered dynamically
-            "cellIndices": [0,0],// property to specify the top-left cell this child occupies
-            "rowSpan":4, // property to specify how many rows this child occupies, if not set, default value is 1
-            "columnSpan":1 // property to specify how many columns this child occupies
-            ....
-~~~
-
-#### JavaScript example
-
-~~~{.js}
-// add all actors under stage section to the root layer
-builder.addActors( dali.stage.getRootLayer() );
-~~~
-
-#### C++ example
-
-~~~{.cpp}
-// add all actors under stage section to the root layer
-builder.AddActors( Stage::GetCurrent().GetRootLayer() );
-~~~
-
-# JavaScript
-
-For the JavaScript API please build dali-toolkit with YUIDOC installed. This will generate the documentation.
-See dali-toolkit/plugins/dali-script-v8/docs/README.txt
-
-To execute JavaScript from C++
-
-~~~{.cpp}
-script = Toolkit::Script::New();
-
-script.ExecuteFile( scriptFileName );
-~~~
-
-@class _Guide_JSON_and_JavaScript_overview
-
-*/
diff --git a/docs/content/shared-javascript-and-cpp-documentation/signals-actions.md b/docs/content/shared-javascript-and-cpp-documentation/signals-actions.md
deleted file mode 100644 (file)
index 89a4130..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<!--
-/**-->
-# Signals & Actions {#signals-actions}
-
-## Signals {#signals}
-
-Classes in DALi provide signals which are emitted whenever a certain action or event occurs.
-The application can connect to these signals using if it wishes to be informed of this occurrence.
-Standard C Style functions can be used to connect to these signals if no local data needs to be accessed, otherwise a class method can also be connected.
-
-Applications can manually disconnect from signals when required but DALi also provides safe signal disconnection.
-This means that when the connecting object is deleted, the signal is automatically disconnected.
-
-## Actions {#actions}
-
-Classes in DALi can perform a certain number of actions.
-For example, an animation provides the ability to "play" or "stop" using an action.
-DALi provides a framework which allows users to set up actions for their classes.
-This is particularly helpful when trying to invoke an action using scripting.
-
-*/
diff --git a/docs/content/shared-javascript-and-cpp-documentation/stage-hand.md b/docs/content/shared-javascript-and-cpp-documentation/stage-hand.md
deleted file mode 100644 (file)
index a11e875..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-<!--
-/**-->
-
-# Stagehand Visual Debugger for DALi {#stagehand}
-
-![ ](../assets/img/stage-hand/blocks.png)
-![ ](blocks.png)
-
-## Introduction
-
-Stagehand  is an open source tool that allows a developer to:
-
-- Connect to a DALi application running on:
- - Tizen
- - Ubuntu
-- View a wireframe of the current scene on top of a screen shot
-- Modify properties in the scene
-- Monitor performance of the application
-
-  
-Full source code is available from http://github.com/gamoeba/stagehand.git
-
-Stagehand is released under the Apache 2 licence.
-
-## Installing StageHand on Ubuntu
-
-http://www.gamoeba.com/stagehand/
-
-Install both files on the website. Start with the QT dependencies first.
-
-
-## How it works
-
-Stagehand connects to DALi via the network using a TCP/IP connection.
-  
-![ ](../assets/img/stage-hand/inner-workings.png)
-![ ](inner-workings.png)
-
-## Connecting Stagehand to your DALi application
-
-### Preparing DALi
-
-Stagehand connects to DALi via network using a TCP/IP connection, to enable this, your dali-adaptor RPM must be built with a configure option: `--enable-networklogging`
-
-Here is an example dali-adaptor configure line:
-~~~
-$ CXXFLAGS="-g -O0 -Wno-unused-local-typedefs" CXX="ccache g++" ./configure --prefix=$DESKTOP_PREFIX --enable-debug=yes --enable-profile=UBUNTU --enable-networklogging
-~~~
-
-Once this RPM is installed, you can run your DALi application and connect Stagehand to it.
-  
-
-### Network setup
-
-To enable network control on DALi, an environment variable must be set:
-
-~~~
-$ export DALI_NETWORK_CONTROL=1 to enable
-~~~
-Or run the application with the variable set.
-~~~
-$ DALI_NETWORK_CONTROL=1 /usr/apps/com.samsung.dali-demo/bin/dali-demo
-~~~
-
-Check what network port the application is using. It will be from port 3031 onwards.
-  
-If running DALi on desktop, just type netstat -tlnp. On Tizen log into the device and run netstat. E.g.
-~~~
-$ su
-
-$ netstat -tlpn
-~~~
-
-![ ](../assets/img/stage-hand/netstat.png)
-![ ](netstat.png)
-
-
-### Connecting with Stagehand
-
-Click the settings icons below
-  
-![ ](../assets/img/stage-hand/stagehand-settings.png)
-![ ](stagehand-settings.png)
-
-
-### Connecting to DALi running on Tizen
-
-Here we are connecting to a device running SDB
-  
-![ ](../assets/img/stage-hand/stagehand-tizen-connection.png)
-![ ](stagehand-tizen-connection.png)
-
-### Connect to DALi running on Desktop ( Ubuntu )
-  
-![ ](../assets/img/stage-hand/stagehand-ubuntu-connection.png)
-![ ](stagehand-ubuntu-connection.png)
-
-## Using Stagehand
-
-Click Refresh to load the current scene from the device.
-  
-![ ](../assets/img/stage-hand/stagehand-refesh.png)
-![ ](stagehand-refesh.png)
-
-Click screen shot to get overlay current screen
-  
-![ ](../assets/img/stage-hand/stagehand-screenshot.png)
-![ ](stagehand-screenshot.png)
-
-To cycle through the actor hierarchy, keep clicking the same spot. Alternatively, select using the actor tree.
-
-  
-![ ](../assets/img/stage-hand/stagehand-mainscreen.png)
-![ ](stagehand-mainscreen.png)
-
-
-Click the save icon to save the scene
-  
-![ ](../assets/img/stage-hand/stagehand-save.png)
-![ ](stagehand-save.png)
-
-Zooming in and out
-  
-![ ](../assets/img/stage-hand/stagehand-zoom.png)
-![ ](stagehand-zoom.png)
-
-Modifying the scene
-  
-![ ](../assets/img/stage-hand/stagehand-modify.png)
-![ ](stagehand-modify.png)
-
-## Performance monitoring
-
-To enable performance option. Edit
-  
-~/.stagehand/stagehand.ini
-  
-Set perfmode=on
-
-Restart application. Click performance
-  
-![ ](../assets/img/stage-hand/stagehand-performance.png)
-![ ](stagehand-performance.png)
-
-## Trouble shooting
-
-You can manually check the network is enabled on the DALi application using netcat.
-
-In the example below we are connecting to a Tizen device using SDB port forwarding.
-  
-After running nc localhost 3031 we type help
-  
-![ ](../assets/img/stage-hand/stagehand-netcat.png)
-![ ](stagehand-netcat.png)
-
-
-## Tizen smack
-
-
-If you can't connect to a DALi application, but using netstat you can see a port is open.
-  
-Check the smack log for errors:
-~~~
-tail -f -n 10 /var/log/audit/audit.log | grep 'internet'
-~~~
-
-If it is being blocked, you temporarily enable it by editing:
-  
-~~~
- /etc/smack/accesses2.d/ your-app-name
-
-then add: system::user_internet …..app-name rw
-~~~
-## Tizen Emulator connection problem
-
-
-Make sure  DALi application is run using launch_app:
-~~~
-launch_app [APP_ID] __AUL_SDK__ DEBUG __DLP_DEBUG_ARG__ :10003
-~~~
-
-@class _Guide_Visual_Debugger
diff --git a/docs/content/shared-javascript-and-cpp-documentation/text-auto-scrolling.md b/docs/content/shared-javascript-and-cpp-documentation/text-auto-scrolling.md
deleted file mode 100644 (file)
index 8bfc4c4..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-<!--
-/**-->
-
-# Text auto scrolling {#text-auto-scrolling}
-
-## Overview
-
-Auto TextLabel scrolling enables the text to scroll within the control, it can be used if text exceeds the boundary of the control hence showing the full content.
-It will also scroll text that is smaller than the control and ensure the same bit of text is not visible at the same time, this gap can be configured to be larger.
-
-If the number of loops (repetitions) is not set then once triggered to start it will scroll until requested to stop.
-If loop count is set to 3 for example it will scroll the text 3 times.
-
-![ ](../assets/img/text-controls/AutoScroll.gif)
-![ ](AutoScroll.gif)
-
-### Usage
-
-At version 1.1.35 auto scrolling is only supported in single line, multiline text will not scroll and Text should be BEGIN aligned.
-
-The ENABLE_AUTO_SCROLL property should be set to TRUE to enable scrolling.
-
-The scroll speed, gap and loop count can be set in the stylesheet or provided by Dali::Handle::SetProperty. See the description of each below.
-
-Once enabled it will start scrolling until the loop count is completed or the ENABLE_AUTO_SCROLL set to false, setting ENABLE_AUTO_SCROLL to false will let the
-text complete it's current scrolling loop then stop.
-
-## The additional properties below can be set to customize the scrolling behaviour
-
-#### AUTO_SCROLL_SPEED
-
-This controls the speed of the scrolling, the speed should be provided as pixels/second.
-
-#### AUTO_SCROLL_LOOP_COUNT
-
-This specifies how many times the text will complete a full scroll cycle.
-If not set then it will keep scrolling until ENABLE_AUTO_SCROLL is set to false.
-
-Setting ENABLE_AUTO_SCROLL to false will stop scrolling whilst still maintaining the original loop count value for when it is next started.
-
-#### AUTO_SCROLL_GAP
-
-This specifies the amount of whitespace to display before the scrolling text is shown again.
-
-This will be increased if the given value is not large enough to prevent the same bit of text being visible at two locations in the control.
-
-Provide the distance in pixels.
-
-### Scroll Direction
-
-The scroll direction is chosen automatically with the following rules:
-
-If the text is single-lined it will scroll left when the text is Left to Right (LTR) or scroll right if text is Right to Left (RTL).
-
-If the text is multi-lined it will scroll upwards. ( Not supported at 1.1.35 )
-
-### Text Label Scrolling Properties
-
-The properties used by TextLabel for Auto Scrolling are listed [here](@ref TextLabelProperties)
-
-@class TextLabel_Scrolling
-
-*/
diff --git a/docs/content/shared-javascript-and-cpp-documentation/text-editor.md b/docs/content/shared-javascript-and-cpp-documentation/text-editor.md
deleted file mode 100644 (file)
index 707258e..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-<!--
-/**-->
-
-# Text Editor {#text-editor}
-
-## Overview
-
-The Dali::Toolkit::TextEditor is a control which provides a multi-line editable text.
-
-### Basic usage
-
-Add the text-editor to the stage.
-
-~~~{.cpp}
-// C++
-
-TextEditor editor = TextEditor::New();
-
-Stage::GetCurrent().Add( editor );
-~~~
-
-~~~{.js}
-// JavaScript
-
-var editor = new dali.TextEditor();
-
-dali.stage.add( editor );
-~~~
-
-When the TextEditor is tapped, it will automatically gain the keyboard focus. Key events will then result in text being inserted.
-After text has been entered, it can be retrieved from the TEXT property.
-
-~~~{.cpp}
-// C++
-
-Property::Value editorText = editor.GetProperty( TextEditor::Property::TEXT );
-std::cout << "Received text: " << editorText.Get< std::string >() << std::endl;
-~~~
-
-~~~{.js}
-// JavaScript
-
-console.log( editor.text );
-~~~
-
-### Font Selection
-
-By default TextEditor will automatically select a suitable font from the platform. However, a different font could be selected. See the [Font Selection](@ref font-selection) section for more details.
-
-### Mark-up Style
-
-Mark-up tags can be used to change the style of the text. See the [Mark-up Style](@ref markup-style) section for more details.
-
-### Input Style
-
-The input style can be changed through the control properties.See the [Input Style](@ref input-style) section for more details.
-
-### Text Alignment
-
-TextEditor displays a multi-line of text, which will scroll if there is not enough room for the text displayed.
-If there is enough room, then the text can be aligned horizontally to the beginning, end, or center of the available area:
-
-~~~{.cpp}
-// C++
-
-editor.SetProperty( TextEditor::Property::HORIZONTAL_ALIGNMENT, "BEGIN" ); // "CENTER" or "END"
-~~~
-
-~~~{.js}
-// JavaScript
-
-editor.HorizontalAlignment = "BEGIN"; // "CENTER" or "END"
-~~~
-
-### Copy and Paste  (Selection)
-
-Text can be selected by a long press or double tapping it. See the [Copy and Paste](@ref copy-n-paste) section for more details.
-
-### TextEditor Decorations
-
-#### Color
-
-To change the color of the text, the recommended way is to use the TEXT_COLOR property.
-
-~~~{.cpp}
-// C++
-editor.SetProperty( TextEditor::Property::TEXT_COLOR, Color::CYAN );
-~~~
-
-~~~{.js}
-// JavaScript
-
-editor.textColor = dali.COLOR_CYAN;
-~~~
-
-### TextEditor Properties
-
- Name (JavaScript)                 |  Name (C++)                          |  Type        | Writable     | Animatable
------------------------------------|--------------------------------------|--------------|--------------|-----------
- renderingBackend                  | RENDERING_BACKEND                    |  INTEGER     | O            | X
- text                              | TEXT                                 |  STRING      | O            | X
- textColor                         | TEXT_COLOR                           |  VECTOR4     | O            | X
- fontFamily                        | FONT_FAMILY                          |  STRING      | O            | X
- fontStyle                         | FONT_STYLE                           |  STRING      | O            | X
- pointSize                         | POINT_SIZE                           |  FLOAT       | O            | X
- horizontalAlignment               | HORIZONTAL_ALIGNMENT                 |  STRING      | O            | X
- verticalAlignment                 | VERTICAL_ALIGNMENT                   |  STRING      | O            | X
- scrollThreshold                   | SCROLL_THRESHOLD                     |  FLOAT       | O            | X
- scrollSpeed                       | SCROLL_SPEED                         |  FLOAT       | O            | X
- primaryCursorColor                | PRIMARY_CURSOR_COLOR                 |  VECTOR4     | O            | X
- secondaryCursorColor              | SECONDARY_CURSOR_COLOR               |  VECTOR4     | O            | X
- enableCursorBlink                 | ENABLE_CURSOR_BLINK                  |  BOOLEAN     | O            | X
- cursorBlinkInterval               | CURSOR_BLINK_INTERVAL                |  FLOAT       | O            | X
- cursorBlinkDuration               | CURSOR_BLINK_DURATION                |  FLOAT       | O            | X
- cursorWidth                       | CURSOR_WIDTH                         |  INTEGER     | O            | X
- grabHandleImage                   | GRAB_HANDLE_IMAGE                    |  STRING      | O            | X
- grabHandlePressedImage            | GRAB_HANDLE_PRESSED_IMAGE            |  STRING      | O            | X
- selectionHandleImageLeft          | SELECTION_HANDLE_IMAGE_LEFT          |  STRING      | O            | X
- selectionHandleImageRight         | SELECTION_HANDLE_IMAGE_RIGHT         |  STRING      | O            | X
- selectionHandlePressedImageLeft   | SELECTION_HANDLE_PRESSED_IMAGE_LEFT  |  STRING      | O            | X
- selectionHandlePressedImageRight  | SELECTION_HANDLE_PRESSED_IMAGE_RIGHT |  STRING      | O            | X
- selectionHandleMarkerImageLeft    | SELECTION_HANDLE_MARKER_IMAGE_LEFT   |  MAP         | O            | X
- selectionHandleMarkerImageRight   | SELECTION_HANDLE_MARKER_IMAGE_RIGHT  |  MAP         | O            | X
- selectionHighlightColor           | SELECTION_HIGHLIGHT_COLOR            |  VECTOR4     | O            | X
- decorationBoundingBox             | DECORATION_BOUNDING_BOX              |  RECTANGLE   | O            | X
- enableMarkup                      | ENABLE_MARKUP                        |  BOOLEAN     | O            | X
- inputColor                        | INPUT_COLOR                          |  VECTOR4     | O            | X
- inputFontFamily                   | INPUT_FONT_FAMILY                    |  STRING      | O            | X
- inputFontStyle                    | INPUT_FONT_STYLE                     |  STRING      | O            | X
- inputPointSize                    | INPUT_POINT_SIZE                     |  FLOAT       | O            | X
- lineSpacing                       | LINE_SPACING                         |  FLOAT       | O            | X
- inputLineSpacing                  | INPUT_LINE_SPACING                   |  FLOAT       | O            | X
- underline                         | UNDERLINE                            |  STRING      | O            | X
- inputUnderline                    | INPUT_UNDERLINE                      |  STRING      | O            | X
- shadow                            | SHADOW                               |  STRING      | O            | X
- inputShadow                       | INPUT_SHADOW                         |  STRING      | O            | X
- emboss                            | EMBOSS                               |  STRING      | O            | X
- inputEmboss                       | INPUT_EMBOSS                         |  STRING      | O            | X
- outline                           | OUTLINE                              |  STRING      | O            | X
- inputOutline                      | INPUT_OUTLINE                        |  STRING      | O            | X
-
-@class TextEditor
-
-*/
diff --git a/docs/content/shared-javascript-and-cpp-documentation/text-field.md b/docs/content/shared-javascript-and-cpp-documentation/text-field.md
deleted file mode 100644 (file)
index 9010ecf..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-<!--
-/**-->
-
-# Text Field {#text-field}
-
-## Overview
-
-The Dali::Toolkit::TextField is a control which provides a single-line editable text field.
-
-### Basic usage
-
-Before any text has been entered, the TextField can display some placeholder text.
-An alternative placeholder can be displayed when the TextField has keyboard focus.
-For example a TextField used to enter a user name could initially show "Unknown Name", and then show "Enter Name." when the cursor is shown.
-
-Note *CR+LF* new line characters are replaced by a *LF* one.
-
-~~~{.cpp}
-// C++
-
-TextField field = TextField::New();
-field.SetProperty( TextField::Property::PLACEHOLDER_TEXT, "Unnamed Name" );
-field.SetProperty( TextField::Property::PLACEHOLDER_TEXT_FOCUSED, "Enter Name." );
-
-Stage::GetCurrent().Add( field );
-~~~
-
-~~~{.js}
-// JavaScript
-
-var field = new dali.TextField();
-field.placeholderText = "Unnamed Name";
-field.placeholderTextFocused = "Enter Name.";
-
-dali.stage.add( field );
-~~~
-
-When the TextField is tapped, it will automatically gain the keyboard focus. Key events will then result in text being inserted, and the placeholder text will be removed.
-After text has been entered, it can be retrieved from the TEXT property.
-
-~~~{.cpp}
-// C++
-
-Property::Value fieldText = field.GetProperty( TextField::Property::TEXT );
-std::cout << "Received text: " << fieldText.Get< std::string >() << std::endl;
-~~~
-
-~~~{.js}
-// JavaScript
-
-console.log( field.text );
-~~~
-
-### Font Selection
-
-By default TextField will automatically select a suitable font from the platform. However, a different font could be selected. See the [Font Selection](@ref font-selection) section for more details.
-
-### Mark-up Style
-
-Mark-up tags can be used to change the style of the text. See the [Mark-up Style](@ref markup-style) section for more details.
-
-### Input Style
-
-The input style can be changed through the control properties. See the [Input Style](@ref input-style) section for more details.
-
-### Text Alignment
-
-TextField displays a single-line of text, which will scroll if there is not enough room for the text displayed.
-If there is enough room, then the text can be aligned horizontally to the beginning, end, or center of the available area:
-
-~~~{.cpp}
-// C++
-
-field.SetProperty( TextField::Property::HORIZONTAL_ALIGNMENT, "BEGIN" ); // "CENTER" or "END"
-~~~
-
-~~~{.js}
-// JavaScript
-
-field.HorizontalAlignment = "BEGIN"; // "CENTER" or "END"
-~~~
-
-### Copy and Paste  (Selection)
-
-Text can be selected by a long press or double tapping it. See the [Copy and Paste](@ref copy-n-paste) section for more details.
-
-### TextField Decorations
-
-#### Color
-
-To change the color of the text, the recommended way is to use the TEXT_COLOR property.
-An alternative color can be used for placeholder text by setting PLACEHOLDER_TEXT_COLOR.
-Note that unlike the Actor::COLOR property, these properties will not affect child Actors added to the TextField.
-
-~~~{.cpp}
-// C++
-field.SetProperty( TextField::Property::TEXT_COLOR, Color::CYAN );
-field.SetProperty( TextField::Property::PLACEHOLDER_TEXT_COLOR, Color::BLACK );
-~~~
-
-~~~{.js}
-// JavaScript
-
-field.textColor = dali.COLOR_CYAN;
-field.placeholderTextColor = dali.COLOR_BLACK;
-~~~
-
-### Text Field Properties
-
- Name (JavaScript)                 |  Name (C++)                          |  Type        | Writable     | Animatable
------------------------------------|--------------------------------------|--------------|--------------|-----------
- renderingBackend                  | RENDERING_BACKEND                    |  INTEGER     | O            | X
- text                              | TEXT                                 |  STRING      | O            | X
- placeholderText                   | PLACEHOLDER_TEXT                     |  STRING      | O            | X
- placeholderTextFocused            | PLACEHOLDER_TEXT_FOCUSED             |  STRING      | O            | X
- fontFamily                        | FONT_FAMILY                          |  STRING      | O            | X
- fontStyle                         | FONT_STYLE                           |  STRING      | O            | X
- pointSize                         | POINT_SIZE                           |  FLOAT       | O            | X
- maxLength                         | MAX_LENGTH                           |  INTEGER     | O            | X
- exceedPolicy                      | EXCEED_POLICY                        |  INTEGER     | O            | X
- horizontalAlignment               | HORIZONTAL_ALIGNMENT                 |  STRING      | O            | X
- verticalAlignment                 | VERTICAL_ALIGNMENT                   |  STRING      | O            | X
- textColor                         | TEXT_COLOR                           |  VECTOR4     | O            | X
- placeholderTextColor              | PLACEHOLDER_TEXT_COLOR               |  VECTOR4     | O            | X
- primaryCursorColor                | PRIMARY_CURSOR_COLOR                 |  VECTOR4     | O            | X
- secondaryCursorColor              | SECONDARY_CURSOR_COLOR               |  VECTOR4     | O            | X
- enableCursorBlink                 | ENABLE_CURSOR_BLINK                  |  BOOLEAN     | O            | X
- cursorBlinkInterval               | CURSOR_BLINK_INTERVAL                |  FLOAT       | O            | X
- cursorBlinkDuration               | CURSOR_BLINK_DURATION                |  FLOAT       | O            | X
- cursorWidth                       | CURSOR_WIDTH                         |  INTEGER     | O            | X
- grabHandleImage                   | GRAB_HANDLE_IMAGE                    |  STRING      | O            | X
- grabHandlePressedImage            | GRAB_HANDLE_PRESSED_IMAGE            |  STRING      | O            | X
- scrollThreshold                   | SCROLL_THRESHOLD                     |  FLOAT       | O            | X
- scrollSpeed                       | SCROLL_SPEED                         |  FLOAT       | O            | X
- selectionHandleImageLeft          | SELECTION_HANDLE_IMAGE_LEFT          |  STRING      | O            | X
- selectionHandleImageRight         | SELECTION_HANDLE_IMAGE_RIGHT         |  STRING      | O            | X
- selectionHandlePressedImageLeft   | SELECTION_HANDLE_PRESSED_IMAGE_LEFT  |  STRING      | O            | X
- selectionHandlePressedImageRight  | SELECTION_HANDLE_PRESSED_IMAGE_RIGHT |  STRING      | O            | X
- selectionHandleMarkerImageLeft    | SELECTION_HANDLE_MARKER_IMAGE_LEFT   |  MAP         | O            | X
- selectionHandleMarkerImageRight   | SELECTION_HANDLE_MARKER_IMAGE_RIGHT  |  MAP         | O            | X
- selectionHighlightColor           | SELECTION_HIGHLIGHT_COLOR            |  VECTOR4     | O            | X
- decorationBoundingBox             | DECORATION_BOUNDING_BOX              |  RECTANGLE   | O            | X
- inputMethodSettings               | INPUT_METHOD_SETTINGS                |  MAP         | O            | X
- inputColor                        | INPUT_COLOR                          |  VECTOR4     | O            | X
- enableMarkup                      | ENABLE_MARKUP                        |  BOOLEAN     | O            | X
- inputFontFamily                   | INPUT_FONT_FAMILY                    |  STRING      | O            | X
- inputFontStyle                    | INPUT_FONT_STYLE                     |  STRING      | O            | X
- inputPointSize                    | INPUT_POINT_SIZE                     |  FLOAT       | O            | X
- underline                         | UNDERLINE                            |  STRING      | O            | X
- inputUnderline                    | INPUT_UNDERLINE                      |  STRING      | O            | X
- shadow                            | SHADOW                               |  STRING      | O            | X
- inputShadow                       | INPUT_SHADOW                         |  STRING      | O            | X
- emboss                            | EMBOSS                               |  STRING      | O            | X
- inputEmboss                       | INPUT_EMBOSS                         |  STRING      | O            | X
- outline                           | OUTLINE                              |  STRING      | O            | X
- inputOutline                      | INPUT_OUTLINE                        |  STRING      | O            | X
-
-@class TextField
-
-*/
diff --git a/docs/content/shared-javascript-and-cpp-documentation/text-label.md b/docs/content/shared-javascript-and-cpp-documentation/text-label.md
deleted file mode 100755 (executable)
index 8b9d4d6..0000000
+++ /dev/null
@@ -1,372 +0,0 @@
-<!--
-/**-->
-
-# Text Label {#text-label}
-
-## Overview
-
-The Dali::Toolkit::TextLabel is a Dali::Toolkit::Control which renders a short text string.  
-Text labels are lightweight, non-editable and do not respond to user input.
-
-### Basic usage
-
-To display a TextLabel the TEXT property must be set using a UTF-8 string.
-
-Note *CR+LF* new line characters are replaced by a *LF* one.
-
-~~~{.cpp}
-// C++
-
-TextLabel label = TextLabel::New();
-label.SetProperty( TextLabel::Property::TEXT, "Hello World" );
-label.SetAnchorPoint( AnchorPoint::TOP_LEFT );
-Stage::GetCurrent().Add( label );
-~~~
-
-~~~{.js}
-// JavaScript
-
-var label = new dali.TextLabel();
-
-label.text = "Hello World";
-label.anchorPoint = dali.TOP_LEFT;
-
-dali.stage.add( label );
-~~~
-
-The label must also be added to the stage, or to an actor which is on the stage.  
-The position of the label on-screen is dependent on the parentOrigin and anchorPoint properties.  
-
-|  |  |
-|--|--|
-| (ParentOrigin::TOP_LEFT, AnchorPoint::TOP_LEFT) | ![ ](../assets/img/text-controls/TextLabelTopLeft.png) ![ ](TextLabelTopLeft.png)   |
-
-### Font Selection
-
-By default TextLabel will automatically select a suitable font from the platform. However, a different font could be selected. See the [Font Selection](@ref font-selection) section for more details.
-
-### Mark-up Style
-
-Mark-up tags can be used to change the style of the text. See the [Mark-up Style](@ref markup-style) section for more details.
-
-### Text Alignment
-
-Wrapping can be enabled using the MULTI_LINE property:
-
-~~~{.cpp}
-// C++
-
-label.SetProperty( TextLabel::Property::MULTI_LINE, true );
-~~~
-
-~~~{.js}
-// JavaScript
-
-label.mutliLine = true;
-~~~
-
-The text can be either aligned horizontally to the beginning, end, or center of the available area:
-
-~~~{.cpp}
-// C++
-
-label.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "BEGIN" ); // "CENTER" or "END"
-~~~
-
-~~~{.js}
-// JavaScript
-
-label.HorizontalAlignment = "BEGIN"; // "CENTER" or "END"
-~~~
-
-|  |  |
-|--|--|
-| Here is the "BEGIN" alignment shown for left-to-right (Latin)   |  right-to-left (Arabic) scripts |
-| ![ ](../assets/img/text-controls/LatinBegin.png) ![ ](LatinBegin.png) | ![ ](../assets/img/text-controls/ArabicBegin.png) ![ ](ArabicBegin.png) |
-| Here is the "CENTER" alignment shown for left-to-right (Latin)  | right-to-left (Arabic) scripts:|
-| ![ ](../assets/img/text-controls/LatinCenter.png) ![ ](LatinCenter.png) | ![ ](../assets/img/text-controls/ArabicCenter.png) ![ ](ArabicCenter.png) |
-| Here is the "END" alignment shown for left-to-right (Latin)  | right-to-left (Arabic) scripts:|
-| ![ ](../assets/img/text-controls/LatinEnd.png) ![ ](LatinEnd.png) | ![ ](../assets/img/text-controls/ArabicEnd.png) ![ ](ArabicEnd.png) |
-
-
-
-The text's alignment and order can be modified to match the direction of the system language.
-
-If the MATCH_SYSTEM_LANGUAGE_DIRECTION property is set to true then the direction of the text is ignored, instead the text is aligned and ordered as the system default language.
-
-~~~{.cpp}
-// C++
-
-label.SetProperty( Toolkit::DevelTextLabel::Property::MATCH_SYSTEM_LANGUAGE_DIRECTION, true );
-~~~
-
-~~~{.js}
-// JavaScript
-
-label.matchSystemLanguageDirection = true;
-~~~
-
-|  |  |
-|--|--|
-| Current system language direction left-to-right | |
-| MATCH_SYSTEM_LANGUAGE_DIRECTION set to TRUE. | MATCH_SYSTEM_LANGUAGE_DIRECTION set to FALSE (default). |
-| BEGIN alignment | BEGIN alignment  |
-| ![ ](../assets/img/text-controls/HelloWorld-System-BEGIN.png) ![ ](HelloWorld-System-BEGIN.png) | ![ ](../assets/img/text-controls/HelloWorld-Default-BEGIN.png) ![ ](HelloWorld-Default-BEGIN.png) |
-| CENTER alignment | CENTER alignment  |
-| ![ ](../assets/img/text-controls/HelloWorld-System-CENTER.png) ![ ](HelloWorld-System-CENTER.png) | ![ ](../assets/img/text-controls/HelloWorld-Default-CENTER.png) ![ ](HelloWorld-Default-CENTER.png) |
-| END alignment | END alignment  |
-| ![ ](../assets/img/text-controls/HelloWorld-System-END.png) ![ ](HelloWorld-System-END.png) | ![ ](../assets/img/text-controls/HelloWorld-Default-END.png) ![ ](HelloWorld-Default-END.png) |
-
-
-|  |  |
-|--|--|
-| Current system language direction left-to-right | Current system language direction right-to-left |
-| ![ ](../assets/img/text-controls/LTR_order.png) ![ ](LTR_order.png)  | ![ ](../assets/img/text-controls/RTL_order.png) ![ ](RTL_order.png) |
-
-
-The examples above assume that the TextLabel size greater than the minimum required.  
-The next section provides details about the other size related options.
-
-## Negotiating size
-
-\link size-negotiation Size negotiation \endlink is a layouting feature supported by UI controls such as TextLabel.
-  
-There are several resize policies which are commonly used with TextLabels.
-  
-The following examples show TextLabels actual size by setting a colored background, whilst the black area represents the size of the parent control:  
-
-### Using natural size
-
-With a "natural" size TextLabel will be large enough to display the text without wrapping, and will not have extra space to align the text within.  
-Therefore in this example the same result would be displayed, regardless of the alignment or multi-line properties.  
-
-~~~{.cpp}
-// C++
-
-TextLabel label = TextLabel::New( "Hello World" );
-label.SetAnchorPoint( AnchorPoint::TOP_LEFT );
-label.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS );
-label.SetBackgroundColor( Color::BLUE );
-Stage::GetCurrent().Add( label );
-~~~
-
-~~~{.js}
-// JavaScript
-
-var label = new dali.Textlabel;
-label.text = "Hello World";
-label.anchorPoint = dali.TOP_LEFT;
-
-label.widthResizePolicy = "USE_NATURAL_SIZE";
-label.heightResizePolicy = "USE_NATURAL_SIZE";
-
-label.textColor = dali.COLOR_WHITE;
-// background color not available as it's currently not a property of control
-dali.stage.add( label );
-~~~
-
-
- ![ ](../assets/img/text-controls/HelloWorld-NaturalSize.png)
- ![ ](HelloWorld-NaturalSize.png)
-
-
-### Height-for-width negotiation
-
-To layout text labels vertically, a fixed (maximum) width should be provided by the parent control.  
-Each TextLabel will then report a desired height for the given width.  
-Here is an example of this behavior using TableView as the parent:
-
-~~~{.cpp}
-// C++
-TableView parent = TableView::New( 3, 1 );
-parent.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
-parent.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::HEIGHT );
-parent.SetAnchorPoint( AnchorPoint::TOP_LEFT );
-Stage::GetCurrent().Add( parent );
-
-TextLabel label = TextLabel::New( "Hello World" );
-label.SetAnchorPoint( AnchorPoint::TOP_LEFT );
-label.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
-label.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
-label.SetBackgroundColor( Color::BLUE );
-parent.AddChild( label, TableView::CellPosition( 0, 0 ) );
-parent.SetFitHeight( 0 );
-
-label = TextLabel::New( "A Quick Brown Fox Jumps Over The Lazy Dog" );
-label.SetAnchorPoint( AnchorPoint::TOP_LEFT );
-label.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
-label.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
-label.SetBackgroundColor( Color::GREEN );
-label.SetProperty( TextLabel::Property::MULTI_LINE, true );
-parent.AddChild( label, TableView::CellPosition( 1, 0 ) );
-parent.SetFitHeight( 1 );
-
-label = TextLabel::New( "لإعادة ترتيب الشاشات، يجب تغيير نوع العرض إلى شبكة قابلة للتخصيص." );
-label.SetAnchorPoint( AnchorPoint::TOP_LEFT );
-label.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
-label.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
-label.SetBackgroundColor( Color::BLUE );
-label.SetProperty( TextLabel::Property::MULTI_LINE, true );
-parent.AddChild( label, TableView::CellPosition( 2, 0 ) );
-parent.SetFitHeight( 2 );
-~~~
-
- ![ ](../assets/img/text-controls/HelloWorld-HeightForWidth.png)
- ![ ](HelloWorld-HeightForWidth.png)
-
-
-Note that the "Hello World" text label (above) has been given the full width, not the natural width.
-
-### TextLabel Decorations
-
-#### Color
-
-To change the color of the text, the recommended way is to use the TEXT_COLOR property.  
-Note that unlike the Actor::COLOR property, this will not affect child Actors added to the TextLabel.  
-
-~~~{.cpp}
-// C++
-label.SetProperty( TextLabel::Property::TEXT, "Red Text" );
-label.SetProperty( TextLabel::Property::TEXT_COLOR, Color::RED );
-~~~
-
-~~~{.js}
-// JavaScript
-
-label.text = "Red Text";
-label.textColor = dali.COLOR_RED;
-~~~
-
- ![ ](../assets/img/text-controls/RedText.png)
- ![ ](RedText.png)
-
-#### Drop Shadow
-
-To add a drop-shadow to the text, simply set the SHADOW property. Shadow parameters can be set through a json string or through a property map, see the examples below.
-
-~~~{.cpp}
- // C++
-
-stage.SetBackgroundColor( Color::BLUE );
-
-label1.SetProperty( TextLabel::Property::TEXT, "Plain Text" );
-
-label2.SetProperty( TextLabel::Property::TEXT, "Text with Shadow" );
-label2.SetProperty( TextLabel::Property::SHADOW, "{\"offset\":\"1 1\",\"color\":\"black\"}" );
-
-label3.SetProperty( TextLabel::Property::TEXT, "Text with Bigger Shadow" );
-label3.SetProperty( TextLabel::Property::SHADOW, "{\"offset\":\"2 2\",\"color\":\"black\"}" );
-
-label4.SetProperty( TextLabel::Property::TEXT, "Text with Color Soft Shadow" );
-
-Property::Map shadow;
-shadow.Insert( "offset", Vector2(1.0f, 1.0f) );
-shadow.Insert( "color", Color::RED );
-shadow.Insert( "blurRadius", 2.0f ); // A value of 0 indicates no blur. The bigger the radius, the more blurry.
-label4.SetProperty( TextLabel::Property::SHADOW, shadow );
-
-~~~
-
-~~~{.js}
-// JavaScript
-
-dali.stage.setBackgroundColor( dali.COLOR_BLUE );
-
-label1.text = "Plain Text";
-
-
-label2.text = "Text with Shadow";
-label2.shadow = "{\"offset\":\"1 1\",\"color\":\"black\"}";
-
-label3.text = "Text with Bigger Shadow";
-label3.shadow = "{\"offset\":\"2 2\",\"color\":\"black\"}";
-
-label4.SetProperty( TextLabel::Property::TEXT, "Text with Color Soft Shadow" );
-var shadow = {
-    "offset" : [ 1.0, 1.0 ],
-    "color" : dali.COLOR_RED;
-    "blurRadius" : 2.0
-};
-label4.shadow = shadow;
-
-~~~
-
-
-![ ](../assets/img/text-controls/PlainText.png)
-![ ](PlainText.png)
-
-
-![ ](../assets/img/text-controls/TextWithShadow.png)
-![ ](TextWithShadow.png)
-
-![ ](../assets/img/text-controls/TextWithBiggerShadow.png)
-![ ](TextWithBiggerShadow.png)
-
-
-![ ](../assets/img/text-controls/TextWithColorShadow.png)
-![ ](TextWithColorShadow.png)
-
-
-#### Underline
-
-The text can be underlined by setting UNDERLINE_ENABLED.  
-The color can also be selected using the UNDERLINE_COLOR property.  
-
-~~~{.cpp}
-// C++
-label1.SetProperty( TextLabel::Property::TEXT, "Text with Underline" );
-label1.SetProperty( TextLabel::Property::UNDERLINE_ENABLED, true );
-
-label2.SetProperty( TextLabel::Property::TEXT, "Text with Color Underline" );
-label2.SetProperty( TextLabel::Property::UNDERLINE_ENABLED, true );
-label2.SetProperty( TextLabel::Property::UNDERLINE_COLOR, Color::GREEN );
-~~~
-~~~{.js}
-// JavaScript
-label1.Text = "Text with Underline";
-label1.underlineEnabled = true;
-
-label2.Text = "Text with Color Underline";
-label2.underlineEnabled = true;
-label2.underlineColor = dali.COLOR_GREEN;
-~~~
-
-
-![ ](../assets/img/text-controls/TextWithUnderline.png)
-![ ](TextWithUnderline.png)
-
-
-![ ](../assets/img/text-controls/TextWithColorUnderline.png)
-![ ](TextWithColorUnderline.png)
-
-By default the underline height will be taken from the font metrics, however this can be overridden using the UNDERLINE_HEIGHT property:
-
-~~~{.cpp}
-// C++
-
-label1.SetProperty( TextLabel::Property::UNDERLINE_HEIGHT, 1.0f );
-~~~
-
-~~~{.js}
-// JavaScript
-
-label1.underlineHeight = 1;
-~~~
-
-![ ](../assets/img/text-controls/TextWith1pxUnderline.png)
-![ ](TextWith1pxUnderline.png)
-
-### Auto Scrolling
-
-![ ](../assets/img/text-controls/AutoScroll.gif)
-![ ](AutoScroll.gif)
-
-The \link text-auto-scrolling Auto text scrolling \endlink section details how to scroll text automatically.
-
-### Text Label Properties
-
-The properties used by TextLabel are listed [here](@ref TextLabelProperties)
-
-@class TextLabel
-
-*/
diff --git a/docs/content/shared-javascript-and-cpp-documentation/visuals.md b/docs/content/shared-javascript-and-cpp-documentation/visuals.md
deleted file mode 100644 (file)
index 99ec69a..0000000
+++ /dev/null
@@ -1,806 +0,0 @@
-<!--
-/**-->
-
-# Visuals {#visuals}
-
-Visuals provide reusable rendering logic which can be used by all controls.
-This means that custom controls do not have to create actors, they can just reuse the existing visuals which increases performance.
-Visuals reuse geometry, shaders etc. across controls and manages the renderer and texture to exist only when the control is on-stage.
-Additionally, they respond to actor size and color change, while also providing clipping at the renderer level.
-DALi provides the following visuals:
- + [Color](@ref color-visual)
- + [Gradient](@ref gradient-visual)
- + [Image](@ref image-visuals)
- + [Border](@ref border-visual)
- + [Mesh](@ref mesh-visual)
- + [Primitive](@ref primitive-visual)
- + [Text](@ref text-visual)
- + [Wireframe](@ref wireframe-visual)
-Controls can provide properties that allow users to specify the visual type ( visualType ).
-Setting visual properties are done via a property map.
-The **visualType** field in the property map specifies the visual to use/create.
-This is required to avoid ambiguity as multiple visuals may be capable of rendering the same contents.
-
-Visuals have a **transform** field in the property map to allow layouting within a control. If this field is not set, then the visual defaults to filling the control. The **transform** field has a property map with the following keys:
-
-| Property                                                       | String       | Type              | Required | Description                                                                                 |
-|----------------------------------------------------------------|--------------|:-----------------:|:--------:|---------------------------------------------------------------------------------------------|
-| Dali::Toolkit::Visual::Transform::Property::OFFSET        | offset       | VECTOR2           | No       | The offset of the visual.                                                                   |
-| Dali::Toolkit::Visual::Transform::Property::SIZE          | size         | VECTOR2           | No       | The size of the visual.                                                                     |
-| Dali::Toolkit::Visual::Transform::Property::OFFSET_POLICY | offsetPolicy | VECTOR4           | No       | Whether the offset components are Relative or Absolute [More info](@ref offset-size-policy) |
-| Dali::Toolkit::Visual::Transform::Property::SIZE_POLICY   | sizePolicy   | VECTOR4           | No       | Whether the size components are Relative or Absolute [More info](@ref offset-size-policy)   |
-| Dali::Toolkit::Visual::Transform::Property::ORIGIN        | origin       | INTEGER or STRING | No       | The origin of the visual within the control's area. [More info](@ref align-type)            |
-| Dali::Toolkit::Visual::Transform::Property::ANCHOR_POINT  | anchorPoint  | INTEGER or STRING | No       | The anchor point of the visual. [More info](@ref align-type)                                |
-
-## Offset & Size Policy  {#offset-size-policy}
-
-The offset and size policies can be either Relative or Absolute.
-
-| Enumeration                                             | String   | Description                                                                   |
-|---------------------------------------------------------|----------|-------------------------------------------------------------------------------|
-| Dali::Toolkit::Visual::Transform::Policy::RELATIVE | RELATIVE | *Default*. The size or offset value represents a ratio of the control's size  |
-| Dali::Toolkit::Visual::Transform::Policy::ABSOLUTE | ABSOLUTE | The size or offset value represents world units (pixels)                      |
-
-For example, an offsetPolicy of [ RELATIVE, RELATIVE ], a sizePolicy of [ ABSOLUTE, ABSOLUTE ], an offset of ( 0, 0.25 ) and a size of ( 20, 20 ) means the visual will be 20 pixels by 20 pixels in size, positioned 25% above the center of the control.
-
-## Alignment  {#align-type}
-| Enumeration                                          | String  | Description                                                                                          |
-|------------------------------------------------------|---------|------------------------------------------------------------------------------------------------------|
-| Dali::Toolkit::Align::TOP_BEGIN | TOP_BEGIN | Aligns to the top of the vertical axis and the beginning of the horizontal axis (The left or right edge in Left-To-Right or Right-to-Left layouts, respectively) |
-| Dali::Toolkit::Align::TOP_CENTER | TOP_CENTER | Aligns to the top of the vertical axis and the center of the horizontal axis |
-| Dali::Toolkit::Align::TOP_END | TOP_END | Aligns to the top of the vertical axis and end of the horizontal axis (The right or left edge in Left-To-Right or Right-to-Left layouts, respectively) |
-| Dali::Toolkit::Align::CENTER_BEGIN | CENTER_BEGIN | Aligns to the center of the vertical axis and the beginning of the horizontal axis|
-| Dali::Toolkit::Align::CENTER | CENTER | Aligns to the center of the control |
-| Dali::Toolkit::Align::CENTER_END | CENTER_END | Aligns to the center of the vertical axis and end of the horizontal axis |
-| Dali::Toolkit::Align::BOTTOM_BEGIN | BOTTOM_BEGIN | Aligns to the bottom of the vertical axis and the beginning of the horizontal axis|
-| Dali::Toolkit::Align::BOTTOM_CENTER | BOTTOM_CENTER | Aligns to the bottom of the vertical axis and the center of the horizontal axis
-| Dali::Toolkit::Align::BOTTOM_END | BOTTOM_END | Aligns to the bottom of the vertical axis and end of the horizontal axis |
-Visuals also have a custom **shader** property. Whilst it's possible to change the shader, please note that some visuals rely on the vertex shader to perform certain functions. For example, the NPatch visual uses the vertex shader to perform the stretching. The **shader** property is a Property::Map with the following keys:
-
-
-| Property                                                  | String         | Type                       | Required | Description                                                                                |
-|-----------------------------------------------------------|----------------|:--------------------------:|:--------:|--------------------------------------------------------------------------------------------|
-| Dali::Toolkit::Visual::Shader::Property::VERTEX_SHADER    | vertexShader   | STRING or ARRAY of STRING  | No       | The vertex shader code. Can use an array of strings to split shader over multiple lines.   |
-| Dali::Toolkit::Visual::Shader::Property::FRAGMENT_SHADER  | fragmentShader | STRING or ARRAY of STRING  | No       | The fragment shader code. Can use an array of strings to split shader over multiple lines. |
-| Dali::Toolkit::Visual::Shader::Property::SUBDIVIDE_GRID_X | subdivideGridX | INTEGER                    | No       | How to subdivide the grid along the X-Axis. Defaults to 1.                                 |
-| Dali::Toolkit::Visual::Shader::Property::SUBDIVIDE_GRID_Y | subdivideGridY | INTEGER                    | No       | How to subdivide the grid along the Y-Axis. Defaults to 1.                                 |
-| Dali::Toolkit::Visual::Shader::Property::HINTS            | hints          | INTEGER or ARRAY of STRING | No       | Shader hints bitmask [More info](@ref shader-hints)                                        |
-
-## Shader hints {#shader-hints}
-
-This is a bitmask giving hints to the renderer about what the shader does, in order to help the rendering system optimise it's rendering.
-
-The bitmask can have the following values:
-
-| Value | Description |
-|-------------------------------------------|----------------------------------------|
-| Dali::Shader::Hint::NONE | No hints |
-| Dali::Shader::Hint::OUTPUT_IS_TRANSPARENT | Might generate transparent alpha from opaque inputs |
-| Dali::Shader::Hint::MODIFIES_GEOMETRY | Might change the position of vertices - this disables culling optimizations |
-
-
-See also Dali::Shader::Hint::Value enumeration.
-
-___________________________________________________________________________________________________
-
-## Color Visual {#color-visual}
-
-Renders a color to the visual's quad geometry.
-![ ](../assets/img/visuals/color-visual.png)
-![ ](visuals/color-visual.png)
-
-### Properties Supported
-
-**VisualType:** Dali::Toolkit::Visual::COLOR, "COLOR"
-
-| Property                                        | String   | Type    | Required | Description               |
-|-------------------------------------------------|----------|:-------:|:--------:|---------------------------|
-| Dali::Toolkit::ColorVisual::Property::MIX_COLOR | mixColor | VECTOR4 | Yes      | The color required. |
-
-### Usage
-
-~~~{.cpp}
-// C++
-Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
-
-Dali::Property::Map map;
-map[ Visual::Property::TYPE ] = Dali::Toolkit::Visual::COLOR;
-map[ ColorVisual::Property::MIX_COLOR ] = Color::RED;
-
-control.SetProperty( Control::Property::BACKGROUND, map );
-~~~
-
-~~~{.js}
-// JavaScript
-var control = new dali.Control( "Control" );
-
-control.background =
-{
-  visualType : "COLOR",
-  mixColor : dali.COLOR_RED
-};
-~~~
-___________________________________________________________________________________________________
-
-## Gradient Visual {#gradient-visual}
-
-Renders a smooth transition of colors to the visual's quad geometry.
-Both Linear and Radial gradients are supported.
-
-| Linear | Radial |
-|--------|--------|
-| ![ ](../assets/img/visuals/linear-gradient-visual.png) ![ ](visuals/linear-gradient-visual.png) | ![ ](../assets/img/visuals/radial-gradient-visual.png) ![ ](visuals/radial-gradient-visual.png) |
-
-### Properties Supported
-
-**VisualType:** Dali::Toolkit::Visual::GRADIENT, "GRADIENT"
-
-| Property                                                | String        | Type              | Required   | Description                                                                                                      |
-|---------------------------------------------------------|---------------|:-----------------:|:----------:|------------------------------------------------------------------------------------------------------------------|
-| Dali::Toolkit::GradientVisual::Property::START_POSITION | startPosition | VECTOR2           | For Linear | The start position of the linear gradient.                                                                       |
-| Dali::Toolkit::GradientVisual::Property::END_POSITION   | endPosition   | VECTOR2           | For Linear | The end position of the linear gradient.                                                                         |
-| Dali::Toolkit::GradientVisual::Property::CENTER         | center        | VECTOR2           | For Radial | The center point of the gradient.                                                                                |
-| Dali::Toolkit::GradientVisual::Property::RADIUS         | radius        | FLOAT             | For Radial | The size of the radius.                                                                                          |
-| Dali::Toolkit::GradientVisual::Property::STOP_OFFSET    | stopOffset    | ARRAY of FLOAT    | No         | All the stop offsets. If not supplied default is 0.0 and 1.0.                                                    |
-| Dali::Toolkit::GradientVisual::Property::STOP_COLOR     | stopColor     | ARRAY of VECTOR4  | Yes        | The color at those stop offsets. At least 2 required to show a gradient.                                         |
-| Dali::Toolkit::GradientVisual::Property::UNITS          | units         | INTEGER or STRING | No         | Defines the coordinate system. [More info](@ref gradient-visual-units)                                           |
-| Dali::Toolkit::GradientVisual::Property::SPREAD_METHOD  | spreadMethod  | INTEGER or STRING | No         | Indicates what happens if gradient starts or ends inside bounds. [More info](@ref gradient-visual-spread-method) |
-
-If the *stopOffset* and *stopColor* arrays do not have the same number of elements, then the minimum of the two is used as the stop points.
-
-### Units {#gradient-visual-units}
-
-Defines the coordinate system for the attributes:
- + Start (x1, y1) and End (x2 and y2) points of a line if using a linear gradient.
- + Center point (cx, cy) and radius (r) of a circle if using a radial gradient.
-| Enumeration                                               | String              | Description                                                                                                                                    |
-|-----------------------------------------------------------|---------------------|------------------------------------------------------------------------------------------------------------------------------------------------|
-| Dali::Toolkit::GradientVisual::Units::OBJECT_BOUNDING_BOX | OBJECT_BOUNDING_BOX | *Default*. Uses the normals for the start, end & center points, i.e. top-left is (-0.5, -0.5) and bottom-right is (0.5, 0.5).                  |
-| Dali::Toolkit::GradientVisual::Units::USER_SPACE          | USER_SPACE          | Uses the user coordinates for the start, end & center points, i.e. in a 200 by 200 control, top-left is (0, 0) and bottom-right is (200, 200). |
-
-### Spread Method {#gradient-visual-spread-method}
-
-Indicates what happens if the gradient starts or ends inside the bounds of the target rectangle.
-
-| Enumeration                                          | String  | Description                                                                                          |
-|------------------------------------------------------|---------|------------------------------------------------------------------------------------------------------|
-| Dali::Toolkit::GradientVisual::SpreadMethod::PAD     | PAD     | *Default*. Uses the terminal colors of the gradient to fill the remainder of the quad geometry.               |
-| Dali::Toolkit::GradientVisual::SpreadMethod::REFLECT | REFLECT | Reflect the gradient pattern start-to-end, end-to-start, start-to-end etc. until the quad geometry is filled. |
-| Dali::Toolkit::GradientVisual::SpreadMethod::REPEAT  | REPEAT  | Repeat the gradient pattern start-to-end, start-to-end, start-to-end etc. until the quad geometry is filled.  |
-
-### Usage
-
-**Linear:**
-~~~{.cpp}
-// C++
-Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
-
-Dali::Property::Map map;
-map[ Visual::Property::TYPE ] = Dali::Toolkit::Visual::GRADIENT;
-map[ GradientVisual::Property::START_POSITION ] = Vector2( 0.5f, 0.5f );
-map[ GradientVisual::Property::END_POSITION ] = Vector2( -0.5f, -0.5f );
-
-Dali::Property::Array stopOffsets;
-stopOffsets.PushBack( 0.0f );
-stopOffsets.PushBack( 0.3f );
-stopOffsets.PushBack( 0.6f );
-stopOffsets.PushBack( 0.8f );
-stopOffsets.PushBack( 1.f );
-map[ GradientVisual::Property::STOP_OFFSET ] = stopOffsets;
-
-Dali::Property::Array stopColors;
-stopColors.PushBack( Vector4( 129.f, 198.f, 193.f, 255.f )/255.f );
-stopColors.PushBack( Vector4( 196.f, 198.f, 71.f, 122.f )/255.f );
-stopColors.PushBack( Vector4( 214.f, 37.f, 139.f, 191.f )/255.f );
-stopColors.PushBack( Vector4( 129.f, 198.f, 193.f, 150.f )/255.f );
-stopColors.PushBack( Color::YELLOW );
-map[ GradientVisual::Property::STOP_COLOR ] = stopColors;
-
-control.SetProperty( Control::Property::BACKGROUND, map );
-~~~
-
-~~~{.js}
-// JavaScript
-var control = new dali.Control( "Control" );
-
-control.background =
-{
-  visualType : "GRADIENT",
-  startPosition : [ 0.5, 0.5 ],
-  endPosition : [ -0.5, -0.5 ],
-  stopOffset : [ 0.0, 0.3, 0.6, 0.8, 1.0 ],
-  stopColor : [
-    [ 129 / 255, 198 / 255, 193 / 255, 255 / 255 ],
-    [ 196 / 255, 198 / 255,  71 / 255, 122 / 255 ],
-    [ 214 / 255,  37 / 255, 139 / 255, 191 / 255 ],
-    [ 129 / 255, 198 / 255, 193 / 255, 150 / 255 ],
-    dali.COLOR_YELLOW
-  ]
-};
-~~~
-
-**Radial:**
-~~~{.cpp}
-// C++
-Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
-
-Dali::Property::Map map;
-map[ Visual::Property::TYPE ] = Dali::Toolkit::Visual::GRADIENT;
-map[ GradientVisual::Property::CENTER ] = Vector2( 0.5f, 0.5f );
-map[ GradientVisual::Property::RADIUS ] = 1.414f;
-
-Dali::Property::Array stopOffsets;
-stopOffsets.PushBack( 0.0f );
-stopOffsets.PushBack( 0.3f );
-stopOffsets.PushBack( 0.6f );
-stopOffsets.PushBack( 0.8f );
-stopOffsets.PushBack( 1.f );
-map[ GradientVisual::Property::STOP_OFFSET ] = stopOffsets;
-
-Dali::Property::Array stopColors;
-stopColors.PushBack( Vector4( 129.f, 198.f, 193.f, 255.f )/255.f );
-stopColors.PushBack( Vector4( 196.f, 198.f, 71.f, 122.f )/255.f );
-stopColors.PushBack( Vector4( 214.f, 37.f, 139.f, 191.f )/255.f );
-stopColors.PushBack( Vector4( 129.f, 198.f, 193.f, 150.f )/255.f );
-stopColors.PushBack( Color::YELLOW );
-map[ GradientVisual::Property::STOP_COLOR ] = stopColors;
-
-control.SetProperty( Control::Property::BACKGROUND, map );
-~~~
-
-~~~{.js}
-// JavaScript
-var control = new dali.Control( "Control" );
-
-control.background =
-{
-  visualType : "GRADIENT",
-  center : [ 0.5, 0.5 ],
-  radius : 1.414,
-  stopOffset : [ 0.0, 0.3, 0.6, 0.8, 1.0 ],
-  stopColor : [
-    [ 129 / 255, 198 / 255, 193 / 255, 255 / 255 ],
-    [ 196 / 255, 198 / 255,  71 / 255, 122 / 255 ],
-    [ 214 / 255,  37 / 255, 139 / 255, 191 / 255 ],
-    [ 129 / 255, 198 / 255, 193 / 255, 150 / 255 ],
-    dali.COLOR_YELLOW
-  ]
-};
-~~~
-___________________________________________________________________________________________________
-
-## Image Visual {#image-visuals}
-
-Renders an image into the visual's geometry.
-Depending on the extension of the image, a different visual is provided to render the image onto the screen.
- + [Normal (Quad)](@ref image-visual)
- + [N-Patch](@ref n-patch-visual)
- + [SVG](@ref svg-visual)
- + [Animated Image]( @ref animated-image-visual )
-___________________________
-### Normal {#image-visual}
-Renders a raster image ( jpg, png etc.) into the visual's quad geometry.
-![ ](../assets/img/visuals/image-visual.png)
-![ ](visuals/image-visual.png)
-
-#### Properties Supported
-
-**VisualType:** Dali::Toolkit::Visual::IMAGE, "IMAGE"
-
-| Property                                             | String        | Type              | Required | Description                                                                                                              |
-|------------------------------------------------------|---------------|:-----------------:|:--------:|--------------------------------------------------------------------------------------------------------------------------|
-| Dali::Toolkit::ImageVisual::Property::URL            | url           | STRING            | Yes      | The URL of the image.                                                                                                    |
-| Dali::Toolkit::ImageVisual::Property::FITTING_MODE   | fittingMode   | INTEGER or STRING | No       | Fitting options, used when resizing images to fit desired dimensions. [More info](@ref resourceimagescaling-fittingmode) |
-| Dali::Toolkit::ImageVisual::Property::SAMPLING_MODE  | samplingMode  | INTEGER or STRING | No       | Filtering options, used when resizing images to sample original pixels. [More info](@ref resourceimagescaling-scaling)   |
-| Dali::Toolkit::ImageVisual::Property::DESIRED_WIDTH  | desiredWidth  | INT               | No       | The desired image width. Will use actual image width if not specified.                                                   |
-| Dali::Toolkit::ImageVisual::Property::DESIRED_HEIGHT | desiredHeight | INT               | No       | The desired image height. Will use actual image height if not specified.                                                 |
-| Dali::Toolkit::ImageVisual::Property::PIXEL_AREA     | pixelArea     | VECTOR4           | No       | The image area to be displayed, default value is [0.0, 0.0, 1.0, 1.0]                                                    |
-| Dali::Toolkit::ImageVisual::Property::WRAP_MODE_U    | wrapModeU     | INTEGER or STRING | No       | Wrap mode for u coordinate, valid values are CLAMP_TO_EDGE(default), REPEAT, MIRRORED_REPEAT                               |
-| Dali::Toolkit::ImageVisual::Property::WRAP_MODE_V    | wrapModeV     | INTEGER or STRING | No       | Wrap mode for v coordinate, valid values are CLAMP_TO_EDGE(default), REPEAT, MIRRORED_REPEAT                               |
-
-#### Usage
-
-~~~{.cpp}
-// C++
-Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
-
-Dali::Property::Map map;
-map[ Visual::Property::TYPE ] = Dali::Toolkit::Visual::IMAGE;
-map[ ImageVisual::Property::URL ] = "path-to-image.jpg";
-
-control.SetProperty( Control::Property::BACKGROUND, map );
-~~~
-
-~~~{.js}
-// JavaScript
-var control = new dali.Control( "Control" );
-
-control.background =
-{
-  visualType : "IMAGE",
-  url : "path-to-image.jpg"
-};
-~~~
-___________________________________________________________________________________________________
-
-### N-Patch {#n-patch-visual}
-
-Renders an n-patch or a 9-patch image. Uses non-quad geometry. Both geometry and texture are cached to reduce memory consumption if the same n-patch image is used elsewhere.
-![ ](../assets/img/visuals/n-patch-visual.png)
-![ ](visuals/n-patch-visual.png)
-
-#### Properties Supported
-
-**VisualType:** Dali::Toolkit::Visual::IMAGE, "IMAGE"
-
-| Property                                          | String        | Type    | Required | Description                      |
-|---------------------------------------------------|---------------|:-------:|:--------:|----------------------------------|
-| Dali::Toolkit::ImageVisual::Property::URL         | url           | STRING  | Yes      | The URL of the n-patch image.    |
-| Dali::Toolkit::ImageVisual::Property::BORDER_ONLY | borderOnly    | BOOLEAN | No       | If true, only draws the borders. |
-
-#### Usage
-
-~~~{.cpp}
-// C++
-Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
-
-Dali::Property::Map map;
-
-map[ Visual::Property::TYPE ] = Dali::Toolkit::Visual::IMAGE;
-map[ Dali::Toolkit::ImageVisual::Property::URL ] = "path-to-image.9.png";
-
-control.SetProperty( Control::Property::BACKGROUND, map );
-~~~
-
-~~~{.js}
-// JavaScript
-var control = new dali.Control( "Control" );
-
-control.background =
-{
-  visualType : "IMAGE",
-  url : "path-to-image.9.png"
-};
-~~~
-
-___________________________________________________________________________________________________
-
-### SVG {#svg-visual}
-
-Renders a svg image into the visual's quad geometry.
-#### Features: SVG Tiny 1.2 specification
-
-**supported:**
-  * basic shapes
-  * paths
-  * solid color fill
-  * gradient color fill
-  * solid color stroke
-**not supported:**
-  * gradient color stroke
-  * dash array stroke
-  * view box
-  * text
-  * clip path
-
-<div style="width:300px">
-![ ](../assets/img/visuals/svg-visual.svg)
-</div>
-<div style="width:300px">
-![ ](visuals/svg-visual.svg)
-</div>
-
-#### Properties Supported
-
-**VisualType:** Dali::Toolkit::Visual::IMAGE, "IMAGE"
-
-| Property                                  | String | Type    | Required | Description                      |
-|-------------------------------------------|--------|:-------:|:--------:|----------------------------------|
-| Dali::Toolkit::ImageVisual::Property::URL | url    | STRING  | Yes      | The URL of the SVG image.    |
-
-#### Usage
-
-~~~{.cpp}
-// C++
-Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
-
-Dali::Property::Map map;
-
-map[ Visual::Property::TYPE ] = Dali::Toolkit::Visual::IMAGE;
-map[ Dali::Toolkit::ImageVisual::Property::URL ] = "path-to-image.svg";
-
-control.SetSize( 200.f, 200.f );
-control.SetProperty( Control::Property::BACKGROUND, map );
-~~~
-
-~~~{.js}
-// JavaScript
-var control = new dali.Control( "Control" );
-
-control.background =
-{
-  visualType : "IMAGE",
-  url : "path-to-image.svg"
-};
-~~~
-
-___________________________________________________________________________________________________
-
-## Animated Image Visual {#animated-image-visual}
-
-Renders an animated image into the visual's quad geometry. Currently, only the GIF format is supported.
-
-![ ](../assets/img/visuals/animated-image-visual.gif)
-![ ](animated-image-visual.gif)
-
-#### Properties Supported
-
-**VisualType:** Dali::Toolkit::Visual::IMAGE, "IMAGE"
-
-| Property                                          | String     | Type              | Required | Description                                                                                  |
-|---------------------------------------------------|------------|:-----------------:|:--------:|----------------------------------------------------------------------------------------------|
-| Dali::Toolkit::ImageVisual::Property::URL         | url        | STRING            | Yes      | The URL of the animated image.                                                               |
-| Dali::Toolkit::ImageVisual::Property::PIXEL_AREA  | pixelArea  | VECTOR4           | No       | The image area to be displayed, default value is [0.0, 0.0, 1.0, 1.0]                        |
-| Dali::Toolkit::ImageVisual::Property::WRAP_MODE_U | wrapModeU  | INTEGER or STRING | No       | Wrap mode for u coordinate, valid values are CLAMP_TO_EDGE(default), REPEAT, MIRRORED_REPEAT |
-| Dali::Toolkit::ImageVisual::Property::WRAP_MODE_V | wrapModeV  | INTEGER or STRING | No       | Wrap mode for v coordinate, valid values are CLAMP_TO_EDGE(default), REPEAT, MIRRORED_REPEAT |
-
-#### Usage
-
-~~~{.cpp}
-// C++
-Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
-
-control.SetProperty( Control::Property::BACKGROUND,
-                     Property::Map().Add( Visual::Property::TYPE, Dali::Toolkit::Visual::IMAGE )
-                                    .Add( Dali::Toolkit::ImageVisual::Property::URL, "path-to-image.gif" ) );
-~~~
-
-~~~{.js}
-// JavaScript
-var control = new dali.Control( "Control" );
-
-control.background =
-{
-  visualType : "IMAGE",
-  url : "path-to-image.gif"
-};
-~~~
-___________________________________________________________________________________________________
-
-## Border Visual {#border-visual}
-
-Renders a color as an internal border to the visual's geometry.
-![ ](../assets/img/visuals/border-visual.png)
-![ ](visuals/border-visual.png)
-
-### Properties Supported
-
-**VisualType:** Dali::Toolkit::Visual::BORDER, "BORDER"
-
-| Property                                             | String        | Type    | Required | Description                                      |
-|------------------------------------------------------|---------------|:-------:|:--------:|--------------------------------------------------|
-| Dali::Toolkit::BorderVisual::Property::COLOR         | borderColor   | VECTOR4 | Yes      | The color of the border.                         |
-| Dali::Toolkit::BorderVisual::Property::SIZE          | borderSize    | FLOAT   | Yes      | The width of the border (in pixels).             |
-| Dali::Toolkit::BorderVisual::Property::ANTI_ALIASING | antiAliasing  | BOOLEAN | No       | Whether anti-aliasing of the border is required. |
-
-### Usage
-
-~~~{.cpp}
-// C++
-Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
-
-Dali::Property::Map map;
-
-map[ Visual::Property::TYPE ] = Dali::Toolkit::Visual::BORDER;
-map[ BorderVisual::Property::COLOR ] = Color::BLUE;
-map[ BorderVisual::Property::SIZE ] = 5.0f;
-
-control.SetProperty( Control::Property::BACKGROUND, map );
-~~~
-
-~~~{.js}
-// JavaScript
-var control = new dali.Control( "Control" );
-
-control.background =
-{
-  visualType : "BORDER",
-  borderColor : dali.COLOR_BLUE,
-  borderSize = 5
-};
-~~~
-
-___________________________________________________________________________________________________
-
-## Mesh Visual {#mesh-visual}
-
-Renders a mesh using a .obj file, optionally with textures provided by a mtl file. Scaled to fit the control.
-![ ](../assets/img/visuals/mesh-visual.png)
-![ ](visuals/mesh-visual.png)
-### Properties Supported
-**VisualType:** Dali::Toolkit::Visual::MESH, "MESH"
-
-| Property                                              | String         | Type               | Required          | Description                                                                                      |
-|-------------------------------------------------------|----------------|:------------------:|:-----------------:|--------------------------------------------------------------------------------------------------|
-| Dali::Toolkit::MeshVisual::Property::OBJECT_URL       | objectUrl      | STRING             | Yes               | The location of the ".obj" file.                                                                 |
-| Dali::Toolkit::MeshVisual::Property::MATERIAL_URL     | materialUrl    | STRING             | No                | The location of the ".mtl" file. Leave blank for a textureless object.                           |
-| Dali::Toolkit::MeshVisual::Property::TEXTURES_PATH    | texturesPath   | STRING             | If using material | Path to the directory the textures (including gloss and normal) are stored in.                   |
-| Dali::Toolkit::MeshVisual::Property::SHADING_MODE     | shadingMode    | INTEGER or STRING  | No                | Sets the type of shading mode that the mesh will use. [More info](@ref mesh-visual-shading-mode) |
-| Dali::Toolkit::MeshVisual::Property::USE_MIPMAPPING   | useMipmapping  | BOOLEAN            | No                | Flag for whether to use mipmaps for textures or not. Default true.                               |
-| Dali::Toolkit::MeshVisual::Property::USE_SOFT_NORMALS | useSoftNormals | BOOLEAN            | No                | Flag for whether to average normals at each point to smooth textures or not. Default true.       |
-| Dali::Toolkit::MeshVisual::Property::LIGHT_POSITION   | lightPosition  | VECTOR3            | No                | The position, in stage space, of the point light that applies lighting to the model.             |
-### Shading Mode {#mesh-visual-shading-mode}
-
-When specifying the shading mode, if anything the mode requires is missing, a simpler mode that can be handled with what has been supplied will be used instead.
-**Possible values:**
-| Enumeration                                                                     | String                                   | Description                                                                                                             |
-|---------------------------------------------------------------------------------|------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|
-| Dali::Toolkit::MeshVisual::ShaderType::TEXTURELESS_WITH_DIFFUSE_LIGHTING        | TEXTURELESS_WITH_DIFFUSE_LIGHTING        | *Simplest*. One color that is lit by ambient and diffuse lighting.                                                      |
-| Dali::Toolkit::MeshVisual::ShaderType::TEXTURED_WITH_SPECULAR_LIGHTING          | TEXTURED_WITH_SPECULAR_LIGHTING          | Uses only the visual image textures provided with specular lighting in addition to ambient and diffuse lighting.        |
-| Dali::Toolkit::MeshVisual::ShaderType::TEXTURED_WITH_DETAILED_SPECULAR_LIGHTING | TEXTURED_WITH_DETAILED_SPECULAR_LIGHTING | Uses all textures provided including a gloss, normal and texture map along with specular, ambient and diffuse lighting. |
-
-### Usage
-
-~~~{.cpp}
-// C++
-Dali::Stage stage = Dali::Stage::GetCurrent();
-Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
-
-Dali::Property::Map map;
-
-map[ Visual::Property::TYPE  ] = Dali::Toolkit::Visual::MESH;
-map[ MeshVisual::Property::OBJECT_URL ] = "home/models/Dino.obj";
-map[ MeshVisual::Property::MATERIAL_URL ] = "home/models/Dino.mtl";
-map[ MeshVisual::Property::TEXTURES_PATH ] = "home/images/";
-
-control.SetProperty( Control::Property::BACKGROUND, map );
-~~~
-
-___________________________________________________________________________________________________
-
-## Primitive Visual {#primitive-visual}
-
-Renders a simple 3D shape, such as a cube or sphere. Scaled to fit the control.
-
-The shapes are generated with clockwise winding and back-face culling on by default.
-
-![ ](../assets/img/visuals/cube.png)
-![ ](visuals/cube.png)
-### Properties Supported
-
-**VisualType:** Dali::Toolkit::Visual::PRIMITIVE, "PRIMITIVE"
-
-| Property                                                      | String            | Type               | Description                                                                                                     | Default Value                                           | Range                          |
-|---------------------------------------------------------------|-------------------|:------------------:|-----------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------:|:------------------------------:|
-| Dali::Toolkit::PrimitiveVisual::Property::SHAPE               | shape             | INTEGER or STRING  | The specific shape to render. [More info](@ref shape-details)                                                   | Dali::Toolkit::PrimitiveVisual::Shape::SPHERE, "SPHERE" | [See list](@ref shape-details) |
-| Dali::Toolkit::PrimitiveVisual::Property::MIX_COLOR           | mixColor          | VECTOR4            | The color of the shape.                                                                                         | (0.5, 0.5, 0.5, 1.0)                                    | 0.0 - 1.0 for each             |
-| Dali::Toolkit::PrimitiveVisual::Property::SLICES              | slices            | INTEGER            | The number of slices as you go around the shape. [More info](@ref slices-details)                               | 128                                                     | 1 - 255                        |
-| Dali::Toolkit::PrimitiveVisual::Property::STACKS              | stacks            | INTEGER            | The number of stacks as you go down the shape. [More info](@ref stacks-details)                                 | 128                                                     | 1 - 255                        |
-| Dali::Toolkit::PrimitiveVisual::Property::SCALE_TOP_RADIUS    | scaleTopRadius    | FLOAT              | The scale of the radius of the top circle of a conical frustrum.                                                | 1.0                                                     | ≥ 0.0                          |
-| Dali::Toolkit::PrimitiveVisual::Property::SCALE_BOTTOM_RADIUS | scaleBottomRadius | FLOAT              | The scale of the radius of the bottom circle of a conical frustrum.                                             | 1.5                                                     | ≥ 0.0                          |
-| Dali::Toolkit::PrimitiveVisual::Property::SCALE_HEIGHT        | scaleHeight       | FLOAT              | The scale of the height of a conic.                                                                             | 3.0                                                     | > 0.0                          |
-| Dali::Toolkit::PrimitiveVisual::Property::SCALE_RADIUS        | scaleRadius       | FLOAT              | The scale of the radius of a cylinder.                                                                          | 1.0                                                     | > 0.0                          |
-| Dali::Toolkit::PrimitiveVisual::Property::SCALE_DIMENSIONS    | scaleDimensions   | VECTOR3            | The dimensions of a cuboid. Scales in the same fashion as a 9-patch image.                                      | Vector3::ONE                                            | > 0.0 for each                 |
-| Dali::Toolkit::PrimitiveVisual::Property::BEVEL_PERCENTAGE    | bevelPercentage   | FLOAT              | Determines how bevelled the cuboid should be, based off the smallest dimension. [More info](@ref bevel-details) | 0.0 (no bevel)                                          | 0.0 - 1.0                      |
-| Dali::Toolkit::PrimitiveVisual::Property::BEVEL_SMOOTHNESS    | bevelSmoothness   | FLOAT              | Defines how smooth the bevelled edges should be.                                                                | 0.0 (sharp edges)                                       | 0.0 - 1.0                      |
-| Dali::Toolkit::PrimitiveVisual::Property::LIGHT_POSITION      | lightPosition     | VECTOR3            | The position, in stage space, of the point light that applies lighting to the model.                            | (Offset outwards from the center of the screen.)        | Unlimited                      |
-
-### Shapes {#shape-details}
-
-There are six shapes that can be chosen, some of which are simplified specialisations of another.
-
-| Enumeration                                             | String           | Description                                                                       | Parameters                                                    |
-|---------------------------------------------------------|------------------|-----------------------------------------------------------------------------------|---------------------------------------------------------------|
-| Dali::Toolkit::PrimitiveVisual::Shape::SPHERE           | SPHERE           | *Default*.                                                                        | color, slices, stacks                                         |
-| Dali::Toolkit::PrimitiveVisual::Shape::CONICAL_FRUSTRUM | CONICAL_FRUSTRUM | The area bound between two circles, i.e. a cone with the tip removed.             | color, scaleTopRadius, scaleBottomRadius, scaleHeight, slices |
-| Dali::Toolkit::PrimitiveVisual::Shape::CONE             | CONE             | Equivalent to a conical frustrum with top radius of zero.                         | color, scaleBottomRadius, scaleHeight, slices                 |
-| Dali::Toolkit::PrimitiveVisual::Shape::CYLINDER         | CYLINDER         | Equivalent to a conical frustrum with equal radii for the top and bottom circles. | color, scaleRadius, scaleHeight, slices                       |
-| Dali::Toolkit::PrimitiveVisual::Shape::CUBE             | CUBE             | Equivalent to a bevelled cube with a bevel percentage of zero.                    | color, scaleDimensions                                        |
-| Dali::Toolkit::PrimitiveVisual::Shape::OCTAHEDRON       | OCTAHEDRON       | Equivalent to a bevelled cube with a bevel percentage of one.                     | color, scaleDimensions                                        |
-| Dali::Toolkit::PrimitiveVisual::Shape::BEVELLED_CUBE    | BEVELLED_CUBE    | A cube/cuboid with all edges flattened to some degree.                            | color, scaleDimensions, bevelPercentage, bevelSmoothness      |
-
-#### Examples below:
-
-**sphere:**
-![ ](../assets/img/visuals/sphere.png)
-![ ](visuals/sphere.png)
-**conics:**
-| Frustrum | Cone | Cylinder |
-|----------|------|----------|
-| ![ ](../assets/img/visuals/conical-frustrum.png) ![ ](visuals/conical-frustrum.png) | ![ ](../assets/img/visuals/cone.png) ![ ](visuals/cone.png) | ![ ](../assets/img/visuals/cylinder.png) ![ ](visuals/cylinder.png) |
-### Bevel {#bevel-details}
-Bevel percentage ranges from 0.0 to 1.0. It affects the ratio of the outer face widths to the width of the overall cube, as shown:
-| 0.0 ( cube) | 0.3 | 0.7 | 1.0 (octahedron) |
-|-------------|-----|-----|------------------|
-| ![ ](../assets/img/visuals/cube.png) ![ ](visuals/cube.png) | ![ ](../assets/img/visuals/bevelled-cube-low.png) ![ ](visuals/bevelled-cube-low.png) | ![ ](../assets/img/visuals/bevelled-cube-high.png) ![ ](visuals/bevelled-cube-high.png) | ![ ](../assets/img/visuals/octahedron.png) ![ ](visuals/octahedron.png) |
-### Slices {#slices-details}
-For spheres and conical frustrums, 'slices' determines how many divisions there are as you go around the object.
-![ ](../assets/img/visuals/slices.png)
-![ ](visuals/slices.png)
-### Stacks {#stacks-details}
-For spheres, 'stacks' determines how many layers there are as you go down the object.
-![ ](../assets/img/visuals/stacks.png)
-![ ](visuals/stacks.png)
-### Usage
-**sphere**
-~~~{.cpp}
-// C++
-Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
-
-Dali::Property::Map map;
-
-map[ Visual::Property::TYPE ] = Dali::Toolkit::Visual::PRIMITIVE;
-map[ PrimitiveVisual::Property::SHAPE ] = PrimitiveVisual::Shape::SPHERE;
-map[ PrimitiveVisual::Property::MIX_COLOR ] = Vector4( 1.0, 0.5, 0.0, 1.0 );
-
-control.SetProperty( Control::Property::BACKGROUND, map );
-~~~
-
-**conical frustrum**
-
-~~~{.cpp}
-// C++
-Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
-
-Dali::Property::Map map;
-
-map[ Visual::Property::TYPE ] = Dali::Toolkit::Visual::PRIMITIVE;
-map[ PrimitiveVisual::Property::SHAPE ] = PrimitiveVisual::Shape::CONICAL_FRUSTRUM;
-map[ PrimitiveVisual::Property::MIX_COLOR ] = Vector4( 1.0, 0.5, 0.0, 1.0 );
-map[ PrimitiveVisual::Property::SCALE_TOP_RADIUS ] = 1.0f;
-map[ PrimitiveVisual::Property::SCALE_BOTTOM_RADIUS ] = 1.5f;
-map[ PrimitiveVisual::Property::SCALE_HEIGHT ] = 3.0f;
-
-control.SetProperty( Control::Property::BACKGROUND, map );
-~~~
-
-**bevelled cube**
-
-~~~{.cpp}
-// C++
-Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
-
-Dali::Property::Map map;
-
-map[ Visual::Property::TYPE ] = Dali::Toolkit::Visual::PRIMITIVE;
-map[ PrimitiveVisual::Property::SHAPE ] = PrimitiveVisual::Shape::BEVELLED_CUBE;
-map[ PrimitiveVisual::Property::MIX_COLOR ] = Vector4( 1.0, 0.5, 0.0, 1.0 );
-map[ PrimitiveVisual::Property::BEVEL_PERCENTAGE ] = 0.4f;
-
-control.SetProperty( Control::Property::BACKGROUND, map );
-~~~
-___________________________________________________________________________________________________
-
-## Text Visual {#text-visual}
-
-Renders text within a control.
-
-![ ](../assets/img/visuals/HelloWorld.png)
-![ ](visuals/HelloWorld.png)
-
-### Properties
-
-**VisualType:** Dali::Toolkit::Visual::TEXT, "TEXT"
-
-| Property                                                    | String              | Type          | Required | Description                                                                   | Default                |
-|-------------------------------------------------------------|---------------------|:-------------:|:--------:|-------------------------------------------------------------------------------|------------------------|
-| Dali::Toolkit::TextVisual::Property::TEXT                   | text                | STRING        | Yes      | The text to display in UTF-8 format                                           |                        |
-| Dali::Toolkit::TextVisual::Property::FONT_FAMILY            | fontFamily          | STRING        | No       | The requested font family to use                                              |                        |
-| Dali::Toolkit::TextVisual::Property::FONT_STYLE             | fontStyle           | MAP           | No       | The requested font style to use                                               |                        |
-| Dali::Toolkit::TextVisual::Property::POINT_SIZE             | pointSize           | FLOAT         | Yes      | The size of font in points                                                    |                        |
-| Dali::Toolkit::TextVisual::Property::MULTI_LINE             | multiLine           | BOOLEAN       | No       | The single-line or multi-line layout option                                   | false                  |
-| Dali::Toolkit::TextVisual::Property::HORIZONTAL_ALIGNMENT   | horizontalAlignment | STRING        | No       | The line horizontal alignment: "BEGIN", "CENTER", "END"                       | "BEGIN"                |
-| Dali::Toolkit::TextVisual::Property::VERTICAL_ALIGNMENT     | verticalAlignment   | STRING        | No       | The line vertical alignment: "TOP",   "CENTER", "BOTTOM"                      | "TOP"                  |
-| Dali::Toolkit::TextVisual::Property::TEXT_COLOR             | textColor           | VECTOR4       | No       | The color of the text                                                         | Color::BLACK           |
-| Dali::Toolkit::TextVisual::Property::ENABLE_MARKUP         | enableMarkup           | BOOL       | No       | If mark up should be enabled |                                                        |
-
-### Usage
-
-~~~{.cpp}
-    // C++
-    Dali::Stage stage = Dali::Stage::GetCurrent();
-    stage.SetBackgroundColor( Dali::Color::WHITE );
-
-    Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
-    control.SetParentOrigin( ParentOrigin::CENTER );
-
-    Dali::Property::Map map;
-    map[ Dali::Toolkit::Visual::Property::TYPE ] = Dali::Toolkit::Visual::TEXT;
-    map[ Dali::Toolkit::TextVisual::Property::TEXT ] = "Hello world";
-    map[ Dali::Toolkit::TextVisual::Property::TEXT_COLOR ] = Dali::Color::BLACK;
-    map[ Dali::Toolkit::TextVisual::Property::FONT_FAMILY ] = "Sans";
-    map[ Dali::Toolkit::TextVisual::Property::POINT_SIZE ] = 30.f;
-    map[ Dali::Toolkit::TextVisual::Property::HORIZONTAL_ALIGNMENT ] = "CENTER";
-    map[ Dali::Toolkit::TextVisual::Property::VERTICAL_ALIGNMENT ] = "CENTER";
-
-    control.SetProperty( Dali::Toolkit::Control::Property::BACKGROUND, map );
-
-    stage.Add( control );
-~~~
-
-## Wireframe Visual {#wireframe-visual}
-
-Renders a wireframe around a quad geometry.
-Is mainly used for debugging and is the visual that replaces all other visuals when [Visual Debug Rendering](@ref debugrendering) is turned on.
-![ ](../assets/img/visuals/wireframe-visual.png)
-![ ](visuals/wireframe-visual.png)
-
-### Properties
-
-**VisualType:** Dali::Toolkit::Visual::WIREFRAME, "WIREFRAME"
-
-### Usage
-
-~~~{.cpp}
-// C++
-Dali::Toolkit::Control control = Dali::Toolkit::Control::New();
-
-Dali::Property::Map map;
-map[ Visual::Property::TYPE ] = Dali::Toolkit::Visual::WIREFRAME;
-
-control.SetProperty( Control::Property::BACKGROUND, map );
-~~~
-
-~~~{.js}
-// JavaScript
-var control = new dali.Control( "Control" );
-
-control.background =
-{
-  visualType : "WIREFRAME"
-};
-~~~
-
-
-@class _Guide_Control_Visuals
-
-*/
diff --git a/node-addon/README b/node-addon/README
deleted file mode 100644 (file)
index 0a66f1e..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-Building dali node addon for GBS
-
-Ensure node-devel (0.12.4) rpm is install into gbs. The addon expects /usr/lib/node/node.h to exists
-in the gbs environment
-
-sudo gbs  build -A armv7l --include-all --ccache --keep-packs --spec dali-addon.spec
-
-Building for Ubuntu desktop:
-
-2 options:
-
-option 1 (easy):  in node-addon folder type
-
-$ node-gyp build
-
-option 2 (harder)
-Ensure node-js source has been downloaded and built from source.
-It doesn't have to be installed anywhere (make sure node executable is in your PATH).
-
-In node-addon/build/tizen direction, run cmake, with the source directory of node
-
-cmake -DDesktopNodePath:String=/home/my-user/Downloads/node-v0.12.4 .
-make
diff --git a/node-addon/binding.gyp b/node-addon/binding.gyp
deleted file mode 100644 (file)
index da23da5..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-{
-  "variables": {
-    'DALI_JS_DIR%':'../plugins/dali-script-v8/src/'
-  },
-  "targets": [
-    {
-      'target_name': 'dali',
-      'include_dirs': ['<(DALI_JS_DIR)/',
-                       '<(DALI_JS_DIR)/utils'],
-      'sources': [ 'dali-addon.cpp',
-      'javascript-application-options.cpp',
-      '<(DALI_JS_DIR)/utils/v8-utils.cpp',
-      '<(DALI_JS_DIR)/dali-wrapper.cpp',
-      '<(DALI_JS_DIR)/shared/base-wrapped-object.cpp',
-      '<(DALI_JS_DIR)/shared/object-template-helper.cpp',
-      '<(DALI_JS_DIR)/actors/actor-wrapper.cpp',
-      '<(DALI_JS_DIR)/actors/actor-api.cpp',
-      '<(DALI_JS_DIR)/actors/layer-api.cpp',
-      '<(DALI_JS_DIR)/actors/camera-actor-api.cpp',
-      '<(DALI_JS_DIR)/constants/constants-wrapper.cpp',
-      '<(DALI_JS_DIR)/controls/control-wrapper.cpp',
-      '<(DALI_JS_DIR)/controls/item-factory-wrapper.cpp',
-      '<(DALI_JS_DIR)/controls/item-view-api.cpp',
-      '<(DALI_JS_DIR)/controls/scroll-view-api.cpp',
-      '<(DALI_JS_DIR)/animation/animation-api.cpp',
-      '<(DALI_JS_DIR)/animation/animation-wrapper.cpp',
-      '<(DALI_JS_DIR)/animation/constrainer-api.cpp',
-      '<(DALI_JS_DIR)/animation/linear-constrainer-wrapper.cpp',
-      '<(DALI_JS_DIR)/animation/path-api.cpp',
-      '<(DALI_JS_DIR)/animation/path-constrainer-wrapper.cpp',
-      '<(DALI_JS_DIR)/animation/path-wrapper.cpp',
-      '<(DALI_JS_DIR)/stage/stage-wrapper.cpp',
-      '<(DALI_JS_DIR)/events/event-object-generator.cpp',
-      '<(DALI_JS_DIR)/events/pan-gesture-detector-api.cpp',
-      '<(DALI_JS_DIR)/events/pan-gesture-detector-wrapper.cpp',
-      '<(DALI_JS_DIR)/stage/stage-api.cpp',
-      '<(DALI_JS_DIR)/image/image-wrapper.cpp',
-      '<(DALI_JS_DIR)/image/image-api.cpp',
-      '<(DALI_JS_DIR)/image/buffer-image-api.cpp',
-      '<(DALI_JS_DIR)/image/frame-buffer-image-api.cpp',
-      '<(DALI_JS_DIR)/image/resource-image-api.cpp',
-      '<(DALI_JS_DIR)/object/handle-wrapper.cpp',
-      '<(DALI_JS_DIR)/object/property-buffer-api.cpp',
-      '<(DALI_JS_DIR)/object/property-buffer-wrapper.cpp',
-      '<(DALI_JS_DIR)/object/property-value-wrapper.cpp',
-      '<(DALI_JS_DIR)/signals/signal-manager.cpp',
-      '<(DALI_JS_DIR)/render-tasks/render-task-list-api.cpp',
-      '<(DALI_JS_DIR)/render-tasks/render-task-list-wrapper.cpp',
-      '<(DALI_JS_DIR)/render-tasks/render-task-api.cpp',
-      '<(DALI_JS_DIR)/render-tasks/render-task-wrapper.cpp',
-      '<(DALI_JS_DIR)/rendering/geometry-api.cpp',
-      '<(DALI_JS_DIR)/rendering/geometry-wrapper.cpp',
-      '<(DALI_JS_DIR)/rendering/renderer-api.cpp',
-      '<(DALI_JS_DIR)/rendering/renderer-wrapper.cpp',
-      '<(DALI_JS_DIR)/rendering/sampler-api.cpp',
-      '<(DALI_JS_DIR)/rendering/sampler-wrapper.cpp',
-      '<(DALI_JS_DIR)/rendering/shader-api.cpp',
-      '<(DALI_JS_DIR)/rendering/shader-wrapper.cpp',
-      '<(DALI_JS_DIR)/rendering/texture-set-api.cpp',
-      '<(DALI_JS_DIR)/rendering/texture-set-wrapper.cpp',
-      '<(DALI_JS_DIR)/toolkit/builder/builder-api.cpp',
-      '<(DALI_JS_DIR)/toolkit/builder/builder-wrapper.cpp',
-      '<(DALI_JS_DIR)/toolkit/focus-manager/keyboard-focus-manager-api.cpp',
-      '<(DALI_JS_DIR)/toolkit/focus-manager/keyboard-focus-manager-wrapper.cpp',
-      '<(DALI_JS_DIR)/signals/dali-any-javascript-converter.cpp',
-      '<(DALI_JS_DIR)/garbage-collector/garbage-collector.cpp',
-      '<(DALI_JS_DIR)/module-loader/module.cpp',
-      '<(DALI_JS_DIR)/module-loader/module-loader.cpp'
-     ],
-      'cflags': [
-            '-fPIC',
-            '-frtti',
-            '<!@(pkg-config --cflags dali-core dali-adaptor-uv dali-toolkit)'
-        ],
-
-    'cflags_cc': [
-            '-fexceptions', # Enable exception handler
-            '-frtti'    # needed for typeinfo with dali-any
-        ],
-      'ldflags': [
-            '<!@(pkg-config --libs-only-L --libs-only-other dali-core dali-adaptor-uv dali-toolkit)'
-        ],
-      'libraries': [
-        '<!@(pkg-config --libs-only-l dali-core dali-adaptor-uv dali-toolkit)'
-      ]
-    }]
-}
diff --git a/node-addon/build/binding.Makefile b/node-addon/build/binding.Makefile
deleted file mode 100644 (file)
index 2e10c88..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-# This file is generated by gyp; do not edit.
-
-export builddir_name ?= ./build/.
-.PHONY: all
-all:
-       $(MAKE) dali
diff --git a/node-addon/build/tizen/CMakeLists.txt b/node-addon/build/tizen/CMakeLists.txt
deleted file mode 100644 (file)
index a5925af..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-# Guide to build for GBS
-# Build dali-toolkit with gbs, the dali-addon will be built automatically
-#
-# To build for Desktop
-# option 1 (easy):  in node-addon folder type
-#
-# $ node-gyp build
-#
-# option 2: use cmake
-# This relies on Node source being downloaded ( don't forget the dot)
-#
-# cmake -DDesktopNodePath:String=/home/Downloads/node-v0.12.4 .
-
-
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8.5)
-PROJECT(dali_addon)
-set(configuration "Default")
-enable_language(ASM)
-set(builddir "${CMAKE_BINARY_DIR}")
-set(obj "${builddir}/obj")
-
-set(CMAKE_C_OUTPUT_EXTENSION_REPLACE 1)
-set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE 1)
-
-option(GBSBuild "GBSBuild" 0)
-option(DesktopNodePath "DesktopNodePath" "")
-
-IF( ${GBSBuild} )
-  set( NODE_HEADERS "/usr/include/node" )
-  set( V8_HEADERS "/usr/include/node" )
-  MESSAGE("Performing a GBS build, ensure Node JS devel RPM is installed")
-  MESSAGE("node.h and v8.h should exist in ${NODE_HEADERS}")
-ELSE()
-  MESSAGE("Performing Desktop build node path =${DesktopNodePath}")
-  IF( NOT DesktopNodePath )
-    MESSAGE(FATAL_ERROR "\n Node JS Source code path empty, please specify,e.g. \n cmake -DDesktopNodePath:String=~/Downloads/node-v0.12.4/  .")
-  ENDIF( NOT DesktopNodePath )
-  set( NODE_HEADERS "${DesktopNodePath}/src" )
-  set( V8_HEADERS   "${DesktopNodePath}/deps/v8/include" )
-  MESSAGE( "-- Node include header location = ${NODE_HEADERS} ")
-  MESSAGE( "-- V8 include header location = ${V8_HEADERS} ")
-ENDIF( ${GBSBuild})
-
-set(TARGET "dali_addon")
-set(TOOLSET "target")
-set(PLUGING_SRC_DIR "../../../plugins/dali-script-v8/src")
-set(NODE_ADDON_SRC "../..")
-add_library(dali_addon SHARED
-  ${NODE_ADDON_SRC}/dali-addon.cpp
-  ${NODE_ADDON_SRC}/javascript-application-options.cpp
-  ${PLUGING_SRC_DIR}/utils/v8-utils.cpp
-  ${PLUGING_SRC_DIR}/dali-wrapper.cpp
-  ${PLUGING_SRC_DIR}/shared/base-wrapped-object.cpp
-  ${PLUGING_SRC_DIR}/shared/object-template-helper.cpp
-  ${PLUGING_SRC_DIR}/actors/actor-wrapper.cpp
-  ${PLUGING_SRC_DIR}/actors/actor-api.cpp
-  ${PLUGING_SRC_DIR}/actors/layer-api.cpp
-  ${PLUGING_SRC_DIR}/actors/camera-actor-api.cpp
-  ${PLUGING_SRC_DIR}/controls/control-wrapper.cpp
-  ${PLUGING_SRC_DIR}/controls/item-factory-wrapper.cpp
-  ${PLUGING_SRC_DIR}/controls/item-view-api.cpp
-  ${PLUGING_SRC_DIR}/controls/scroll-view-api.cpp
-  ${PLUGING_SRC_DIR}/constants/constants-wrapper.cpp
-  ${PLUGING_SRC_DIR}/animation/animation-api.cpp
-  ${PLUGING_SRC_DIR}/animation/animation-wrapper.cpp
-  ${PLUGING_SRC_DIR}/animation/constrainer-api.cpp
-  ${PLUGING_SRC_DIR}/animation/linear-constrainer-wrapper.cpp
-  ${PLUGING_SRC_DIR}/animation/path-api.cpp
-  ${PLUGING_SRC_DIR}/animation/path-constrainer-wrapper.cpp
-  ${PLUGING_SRC_DIR}/animation/path-wrapper.cpp
-  ${PLUGING_SRC_DIR}/stage/stage-wrapper.cpp
-  ${PLUGING_SRC_DIR}/events/event-object-generator.cpp
-  ${PLUGING_SRC_DIR}/events/pan-gesture-detector-api.cpp
-  ${PLUGING_SRC_DIR}/events/pan-gesture-detector-wrapper.cpp
-  ${PLUGING_SRC_DIR}/stage/stage-api.cpp
-  ${PLUGING_SRC_DIR}/image/image-wrapper.cpp
-  ${PLUGING_SRC_DIR}/image/image-api.cpp
-  ${PLUGING_SRC_DIR}/image/buffer-image-api.cpp
-  ${PLUGING_SRC_DIR}/image/frame-buffer-image-api.cpp
-  ${PLUGING_SRC_DIR}/image/resource-image-api.cpp
-  ${PLUGING_SRC_DIR}/object/handle-wrapper.cpp
-  ${PLUGING_SRC_DIR}/object/property-buffer-api.cpp
-  ${PLUGING_SRC_DIR}/object/property-buffer-wrapper.cpp
-  ${PLUGING_SRC_DIR}/object/property-value-wrapper.cpp
-  ${PLUGING_SRC_DIR}/signals/signal-manager.cpp
-  ${PLUGING_SRC_DIR}/render-tasks/render-task-list-api.cpp
-  ${PLUGING_SRC_DIR}/render-tasks/render-task-list-wrapper.cpp
-  ${PLUGING_SRC_DIR}/render-tasks/render-task-api.cpp
-  ${PLUGING_SRC_DIR}/render-tasks/render-task-wrapper.cpp
-  ${PLUGING_SRC_DIR}/rendering/geometry-api.cpp
-  ${PLUGING_SRC_DIR}/rendering/geometry-wrapper.cpp
-  ${PLUGING_SRC_DIR}/rendering/texture-set-api.cpp
-  ${PLUGING_SRC_DIR}/rendering/texture-set-wrapper.cpp
-  ${PLUGING_SRC_DIR}/rendering/renderer-api.cpp
-  ${PLUGING_SRC_DIR}/rendering/renderer-wrapper.cpp
-  ${PLUGING_SRC_DIR}/rendering/sampler-api.cpp
-  ${PLUGING_SRC_DIR}/rendering/sampler-wrapper.cpp
-  ${PLUGING_SRC_DIR}/rendering/shader-api.cpp
-  ${PLUGING_SRC_DIR}/rendering/shader-wrapper.cpp
-  ${PLUGING_SRC_DIR}/toolkit/builder/builder-api.cpp
-  ${PLUGING_SRC_DIR}/toolkit/builder/builder-wrapper.cpp
-  ${PLUGING_SRC_DIR}/toolkit/focus-manager/keyboard-focus-manager-api.cpp
-  ${PLUGING_SRC_DIR}/toolkit/focus-manager/keyboard-focus-manager-wrapper.cpp
-  ${PLUGING_SRC_DIR}/signals/dali-any-javascript-converter.cpp
-  ${PLUGING_SRC_DIR}/garbage-collector/garbage-collector.cpp
-  ${PLUGING_SRC_DIR}/module-loader/module.cpp
-  ${PLUGING_SRC_DIR}/module-loader/module-loader.cpp
-)
-set_target_properties(dali_addon PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${builddir}/lib.${TOOLSET}")
-set_target_properties(dali_addon PROPERTIES PREFIX "")
-set_target_properties(dali_addon PROPERTIES LIBRARY_OUTPUT_NAME "dali")
-set_target_properties(dali_addon PROPERTIES SUFFIX ".node")
-set_source_files_properties(${builddir}/lib.${TOOLSET}/dali.node PROPERTIES GENERATED "TRUE")
-set_target_properties(dali_addon PROPERTIES EXCLUDE_FROM_ALL "FALSE")
-
-
-SET(PKG_LIST dali-core
-             dali-adaptor-uv
-             dali-toolkit)
-
-INCLUDE(FindPkgConfig)
-pkg_check_modules(REQUIRED_PKGS REQUIRED ${PKG_LIST})
-
-# This is just pulling out dali / dali-toolkit header locations from pkg-config
-FOREACH(flag ${REQUIRED_PKGS_CFLAGS})
-        SET(REQUIRED_CFLAGS "${REQUIRED_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-
-# Set the include paths to include dali, dali-core, node, v8 and headers for dali-addon
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${REQUIRED_CFLAGS} -I${PLUGING_SRC_DIR}/utils -I${PLUGING_SRC_DIR}  -I${NODE_HEADERS} -I ${V8_HEADERS}")
-
-set_target_properties(dali_addon PROPERTIES COMPILE_FLAGS "-fPIC -frtti -fexceptions")
-
-# This sets up the linker flags for dali-core/ adaptor and toolkit
-# we don't need any flags for node / v8 as we're running inside node and v8 is statically linked to it
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${REQUIRED_PKGS_LDFLAGS})
-
-# ${CMAKE_INSTALL_PREFIX}
-#################################### install #####################################
-INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX} )
-
-unset(TOOLSET)
-unset(TARGET)
diff --git a/node-addon/dali-addon.cpp b/node-addon/dali-addon.cpp
deleted file mode 100644 (file)
index 0cb3e5c..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-/* Copyright (c) 2015 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <node.h>
-#include <public-api/dali-core.h>
-#include <dali-toolkit/dali-toolkit.h>
-#include <integration-api/core.h>
-#include <integration-api/adaptors/adaptor.h>
-#include <public-api/adaptor-framework/window.h>
-#include <devel-api/adaptor-framework/singleton-service.h>
-
-// INTERNAL INCLUDES
-#include <dali-wrapper.h>
-#include "javascript-application-options.h"
-
-using namespace Dali;
-
-namespace DaliNodeAddon
-{
-
-class DaliApplication
-{
-public:
-
-    DaliApplication()
-    : mInitialized( false),
-      mSingletonService(SingletonService::New()),
-      mAdaptor( NULL )
-    {
-    }
-
-    ~DaliApplication()
-    {
-      mSingletonService.UnregisterAll();
-      delete mAdaptor;
-      mWindow.Reset();
-    }
-
-    bool Initialized() const
-    {
-      return mInitialized;
-    }
-
-    void Initialize(  ApplicationOptions options )
-    {
-      if( mInitialized )
-      {
-        return;
-      }
-
-      // 1. Create the window ( adaptor requires a window)
-      const WindowOptions& window( options.window);
-
-      mWindow = Window::New( window.positionSize, window.name, window.transparent );
-
-      // 2. create the adaptor
-      Adaptor* adaptor = &Adaptor::New( mWindow );
-
-      // 3. start the adaptor
-      adaptor->Start();
-
-      // fire the scene create signal
-      adaptor->NotifySceneCreated();
-
-      mInitialized = true;
-    }
-private:
-
-    bool mInitialized;
-    SingletonService mSingletonService;
-    Adaptor* mAdaptor;
-    Window mWindow;
-
-};
-
-DaliApplication app;
-
-void CreateDali(const v8::FunctionCallbackInfo<v8::Value>& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope scope(isolate);
-
-  ApplicationOptions options;
-
-  bool ok = GetApplicationOptions( args, options);
-  if (!ok )
-  {
-    isolate->ThrowException( v8::Exception::TypeError( v8::String::NewFromUtf8(isolate, "Please check arguments passed to DALi require") ) );
-    return;
-  }
-
-  app.Initialize( options );
-
-  // the return value from calling the function   require('dali.js)(  options )
-  // is the dali object
-  args.GetReturnValue().Set( V8Plugin::DaliWrapper::CreateWrapperForNodeJS( isolate ) );
-}
-
-
-/**
- * We make module.exports a function so that the developer can pass to
- * parameters to DALi when it's 'required'
- * E.g
- *
- *
- * var window= {
- *        x:10,
- *        y:10,
- *        width:800,
- *        height: 600,
- *        transparent: false,
- *        name:'my-first-dali-app'
- * };
- *
- * var viewMode {
- *       'stereoscopic-mode':'stereo-vertical', // mono, stereo-horizontal, stereo-vertical, stereo-interlaced,
- *       'stereo-base': 65 // Distance in millimeters between left/right cameras typically between (50-70mm)
- * };
- *
- * var options= {
- *    'window': window,
- *    'view-mode': viewMode,
- *    'style-sheet': 'my-theme.json'
- * }
- *
- * var dali = require('dali.js')( options )
- *
- *
- */
-void ExportDaliModule(v8::Handle<v8::Object> exports, v8::Handle<v8::Object> module)
-{
-  NODE_SET_METHOD(module, "exports", CreateDali);
-}
-
-} // namespace DaliNodeAddon
-
-NODE_MODULE(dali, DaliNodeAddon::ExportDaliModule)
-
-
-
-
diff --git a/node-addon/examples/flex-container.js b/node-addon/examples/flex-container.js
deleted file mode 100644 (file)
index 467d2a2..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
- var window = {
-           x:0,
-           y:0,
-           width:1920,
-           height:1080,
-           transparent: false,
-           name:'Flexbox Demo'
- };
-
- var options = {
-    'window': window
- }
-
-try {
-  // target
-  var dali = require('dali')( options );
-}
-catch(err) {
-  // desktop
-  var dali = require('../build/Release/dali')( options );
-}
-
-var imageDir = "./images/";
-
-var imageView;
-var currentImageIndex = 0;
-var imageNames = ["image-1.jpg", "image-2.jpg", "image-3.jpg"];
-
-var daliApp = {};
-
-daliApp.init = function() {
-
-  // Create the main flex container
-  var flexContainer = new dali.Control("FlexContainer");
-  flexContainer.parentOrigin = dali.TOP_LEFT;
-  flexContainer.anchorPoint = dali.TOP_LEFT;
-  flexContainer.widthResizePolicy = "FILL_TO_PARENT";
-  flexContainer.heightResizePolicy = "FILL_TO_PARENT";
-  flexContainer.backgroundColor = dali.COLOR_WHITE;
-  flexContainer.flexDirection = "column"; // display toolbar and content vertically
-
-  dali.stage.add( flexContainer );
-
-  // Create the toolbar area
-  var toolBar = new dali.Control("FlexContainer");
-  toolBar.parentOrigin = dali.TOP_LEFT;
-  toolBar.anchorPoint = dali.TOP_LEFT;
-  toolBar.backgroundColor = dali.COLOR_CYAN;
-  toolBar.flexDirection = "row"; // display toolbar items horizontally
-  toolBar.alignItems = "center"; // align toolbar items vertically center
-  toolBar.flex = 0.1; // 10 percent of available space in the cross axis
-
-  flexContainer.add(toolBar);
-
-  // Create the content area
-  var content = new dali.Control("FlexContainer");
-  content.parentOrigin = dali.TOP_LEFT;
-  content.anchorPoint = dali.TOP_LEFT;
-  content.flexDirection = "row";
-  content.alignItems = "center"; // align items vertically center
-  content.justifyContent = "center"; // align items horizontally center
-  content.flex = 0.9; // 90 percent of available space in the cross axis
-
-  flexContainer.add(content);
-
-  // Add a button to the left of the toolbar
-  var prevButton = new dali.Control("PushButton");
-  prevButton.name = "Prev";
-  prevButton.parentOrigin = dali.TOP_LEFT;
-  prevButton.anchorPoint = dali.TOP_LEFT;
-  prevButton.minimumSize = [100.0, 60.0]; // this is the minimum size the button should keep
-  prevButton.labelText = "Prev";
-  prevButton.flexMargin = [10, 10, 10, 10]; // set 10 pixel margin around the button
-
-  toolBar.add( prevButton );
-
-  // Add a title to the center of the toolbar
-  var title = new dali.Control("TextLabel");
-  title.parentOrigin = dali.TOP_LEFT;
-  title.anchorPoint = dali.TOP_LEFT;
-  title.widthResizePolicy = "USE_NATURAL_SIZE";
-  title.heightResizePolicy = "USE_NATURAL_SIZE";
-  title.horizontalAlignment = "CENTER";
-  title.verticalAlignment = "CENTER";
-  title.text = "Gallery";
-  title.pointSize = 28;
-  title.flex = 1.0; // take all the available space left apart from the two buttons
-  title.flexMargin = [10, 10, 10, 10]; // set 10 pixel margin around the title
-
-  toolBar.add( title );
-
-  // Add a button to the right of the toolbar
-  var nextButton = new dali.Control("PushButton");
-  nextButton.name = "Next";
-  nextButton.parentOrigin = dali.TOP_LEFT;
-  nextButton.anchorPoint = dali.TOP_LEFT;
-  nextButton.minimumSize = [100.0, 60.0]; // this is the minimum size the button should keep
-  nextButton.labelText = "Next";
-  nextButton.flexMargin = [10, 10, 10, 10]; // set 10 pixel margin around the button
-
-  toolBar.add( nextButton );
-
-  // Add an image to the center of the content area
-  imageView = new dali.Control("ImageView");
-  imageView.image = imageDir + imageNames[currentImageIndex];
-  imageView.parentOrigin = dali.TOP_LEFT;
-  imageView.anchorPoint = dali.TOP_LEFT;
-  content.add( imageView );
-
-  // Connect signal callback to button pressed signal
-  prevButton.on("pressed", daliApp.buttonPressedEvent);
-  nextButton.on("pressed", daliApp.buttonPressedEvent);
-}
-
-daliApp.buttonPressedEvent = function( button ) {
-
-  // Set the size of image view to its natural size
-  imageView.widthResizePolicy = "USE_NATURAL_SIZE";
-  imageView.heightResizePolicy = "USE_NATURAL_SIZE";
-
-  // Work out the index of the new image
-  if (button.name == "Prev") {
-    currentImageIndex--;
-  }
-  else {
-    currentImageIndex++;
-  }
-  currentImageIndex %= imageNames.length;
-
-  // Display the new image
-  imageView.image = imageDir + imageNames[Math.abs(currentImageIndex)];
-}
-
-function startup() {
-
-  daliApp.init();
-}
-
-startup();
-
diff --git a/node-addon/examples/images/icon-0.png b/node-addon/examples/images/icon-0.png
deleted file mode 100755 (executable)
index 8d300e9..0000000
Binary files a/node-addon/examples/images/icon-0.png and /dev/null differ
diff --git a/node-addon/examples/images/icon-1.png b/node-addon/examples/images/icon-1.png
deleted file mode 100755 (executable)
index bfed8ac..0000000
Binary files a/node-addon/examples/images/icon-1.png and /dev/null differ
diff --git a/node-addon/examples/images/icon-2.png b/node-addon/examples/images/icon-2.png
deleted file mode 100755 (executable)
index db892fb..0000000
Binary files a/node-addon/examples/images/icon-2.png and /dev/null differ
diff --git a/node-addon/examples/images/image-1.jpg b/node-addon/examples/images/image-1.jpg
deleted file mode 100644 (file)
index 155ab30..0000000
Binary files a/node-addon/examples/images/image-1.jpg and /dev/null differ
diff --git a/node-addon/examples/images/image-2.jpg b/node-addon/examples/images/image-2.jpg
deleted file mode 100644 (file)
index e855ecf..0000000
Binary files a/node-addon/examples/images/image-2.jpg and /dev/null differ
diff --git a/node-addon/examples/images/image-3.jpg b/node-addon/examples/images/image-3.jpg
deleted file mode 100644 (file)
index 8dee462..0000000
Binary files a/node-addon/examples/images/image-3.jpg and /dev/null differ
diff --git a/node-addon/examples/item-view.js b/node-addon/examples/item-view.js
deleted file mode 100644 (file)
index 4b3e0dc..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
- var window= {
-           x:0,
-           y:0,
-           width:1920,
-           height: 1080,
-           transparent: false,
-           name:'itemview-example'
- };
-
- var viewMode={
-       'stereoscopic-mode':'mono', // stereo-horizontal, stereo-vertical, stereo-interlaced,
-       'stereoBase': 65 // Distance in millimeters between left/right cameras typically between (50-70mm)
- };
-
- var options= {
-    'window': window,
-    'viewMode': viewMode,
- }
-
-try {
-  // target
-  var dali = require('dali')( options );
-}
-catch(err) {
-  // desktop
-  var dali = require('../build/Release/dali')( options );
-}
-
-var items = [];
-var button;
-var stageSize;
-
-var itemView;
-var itemFactory;
-
-var currentLayoutIndex = 0;
-var totalItemCount = 100;
-
-var imageDir = "./images/";
-
-var daliApp = {};
-
-daliApp.createItemView = function() {
-
-  // Create item view data
-  var itemViewData = [];
-  for (var itemId = 0; itemId < totalItemCount; itemId++)
-  {
-    var data = {};
-    data["template"] = "template-item-list"; // Create items initially with list template
-    data["icon_path"] = imageDir + "icon-" + itemId % 3 + ".png";
-    data["title_text"] = "Item " + itemId;
-    itemViewData[itemId] = data;
-  }
-
-  // Create item factory and set the data
-  itemFactory = new dali.ItemFactory();
-  itemFactory.jsonTemplateFile = "./scripts/item-template.json";
-  itemFactory.data = itemViewData;
-
-  // Create item view
-  stageSize = dali.stage.getSize();
-  itemView = new dali.Control("ItemView", itemFactory);
-  itemView.size = [stageSize.x, stageSize.y, 0.0];
-  itemView.parentOrigin = dali.CENTER_LEFT;
-  itemView.anchorPoint = dali.CENTER_LEFT;
-  itemView.refreshInterval = 4.0;
-
-  // Add item view to the stage
-  dali.stage.add( itemView );
-
-  // Create scroll bar for item view
-  var scrollBar = new dali.Control("ScrollBar");
-  scrollBar.parentOrigin = dali.TOP_RIGHT;
-  scrollBar.anchorPoint = dali.TOP_RIGHT;
-  scrollBar.widthResizePolicy = "FIT_TO_CHILDREN";
-  scrollBar.heightResizePolicy = "FILL_TO_PARENT";
-  itemView.add(scrollBar);
-
-  // Add the list and grid layouts
-  itemView.addLayout(dali.ITEM_LAYOUT_LIST); // layout index 0
-  itemView.addLayout(dali.ITEM_LAYOUT_GRID); // layout index 1
-
-  // Set custom item size for list layout
-  itemView.setItemSize(0, [stageSize.x, stageSize.y * 0.1, 0.0]);
-
-  // Set custom item size for grid layout
-  var layoutMargin = 120;
-  itemView.setItemSize(1, [(stageSize.x - layoutMargin) / 4, stageSize.y * 0.2, 0.0]);
-
-  // Activate the list layout
-  itemView.activateLayout(0, itemView.size);
-
-  // Create button for layout switching
-  button = new dali.Control("PushButton");
-  button.size = [100.0, 60.0, 0.0];
-  button.position = [-20.0, 20.0, 0.0];
-  button.parentOrigin = dali.TOP_RIGHT;
-  button.anchorPoint = dali.TOP_RIGHT;
-  button.labelText = "Switch";
-  dali.stage.add( button );
-
-  // Connect a signal callback to button pressed signal
-  button.on("pressed", daliApp.buttonPressedEvent);
-}
-
-daliApp.buttonPressedEvent = function( button ) {
-
-  // Calculate the layout index for the next layout to switch to
-  currentLayoutIndex++;
-  currentLayoutIndex = currentLayoutIndex % itemView.getLayoutCount();
-
-  // Activate the next layout
-  itemView.activateLayout(currentLayoutIndex, [stageSize.x, stageSize.y, 0.0], 0.0);
-
-  // Change the item template in item view data as we want to change the layout of the items
-  var data = itemFactory.data;
-  for (var itemId = 0; itemId < totalItemCount; itemId++)
-  {
-    if(currentLayoutIndex == 0)
-    {
-      // List layout
-      data[itemId]["template"] = "template-item-list"; // Create items with list template
-    }
-    else
-    {
-      // Grid layout
-      data[itemId]["template"] = "template-item-grid"; // Create items with grid template
-    }
-  }
-  itemFactory.data = data;
-}
-
-function startup()
-{
-  daliApp.init();
-}
-
-daliApp.init = function()
-{
-  daliApp.createItemView();
-}
-
-startup();
-
diff --git a/node-addon/examples/line-mesh.js b/node-addon/examples/line-mesh.js
deleted file mode 100644 (file)
index e26948f..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
- var window= {
-           x:0,
-           y:0,
-           width:1920,
-           height: 1080,
-           transparent: false,
-           name:'line-mesh-app'
- };
-
- var viewMode={
-       'stereoscopic-mode':'mono', // stereo-horizontal, stereo-vertical, stereo-interlaced,
-       'stereo-base': 65 // Distance in millimeters between left/right cameras typically between (50-70mm)
- };
-
- var options= {
-    'window': window,
-    'view-mode': viewMode,
- }
-
-try {
-  // target
-  var dali = require('dali')( options );
-}
-catch(err) {
-  // desktop
-  var dali = require('../build/Release/dali')( options );
-}
-
-var daliApp = {};
-
-daliApp.createMeshActor = function() {
-
-      // Create shader
-      var vertShader =
-               "attribute mediump vec2    aPosition1;\
-                attribute mediump vec2    aPosition2;\
-                uniform   mediump mat4    uMvpMatrix;\
-                uniform   mediump vec3    uSize;\
-                uniform   mediump float   uMorphAmount;\
-                void main()\
-                {\
-                  mediump vec2 morphPosition = mix(aPosition1, aPosition2, uMorphAmount);\
-                  mediump vec4 vertexPosition = vec4(morphPosition, 0.0, 1.0);\
-                  vertexPosition.xyz *= uSize;\
-                  vertexPosition = uMvpMatrix * vertexPosition;\
-                  gl_Position = vertexPosition;\
-                }";
-
-      var fragShader =
-               "uniform lowp  vec4    uColor;\
-                uniform sampler2D     sTexture;\
-                void main()\
-                {\
-                  gl_FragColor = uColor;\
-                }";
-
-      var shaderOptions = {
-              vertexShader : vertShader,
-              fragmentShader: fragShader
-          };
-
-      var shader = new dali.Shader(shaderOptions);
-
-      // Create vertex buffer
-      var pentagonVertexFormat ={ "aPosition1" : dali.PROPERTY_VECTOR2 };
-
-      var pentagonVertexData = [    0,     1,
-                                -0.95,  0.31,
-                                -0.59, -0.81,
-                                 0.59, -0.81,
-                                 0.95,  0.31];
-
-      var pentagonVertexDataArray = new Float32Array(pentagonVertexData.length);
-      pentagonVertexDataArray.set(pentagonVertexData, 0);
-      var pentagonVertices = new dali.PropertyBuffer(pentagonVertexFormat);
-      pentagonVertices.setData(pentagonVertexDataArray, 5);
-
-      var pentacleVertexFormat ={ "aPosition2" : dali.PROPERTY_VECTOR2};
-
-      var pentacleVertexData = [    0,    -1,
-                                 0.59,  0.81,
-                                -0.95, -0.31,
-                                 0.95, -0.31,
-                                -0.59,  0.81];
-
-      var pentacleVertexDataArray = new Float32Array(pentacleVertexData.length);
-      pentacleVertexDataArray.set(pentacleVertexData, 0);
-      var pentacleVertices = new dali.PropertyBuffer(pentacleVertexFormat);
-      pentacleVertices.setData(pentacleVertexDataArray, 5);
-
-      var indexFormat ={ "indices" : dali.PROPERTY_INTEGER };
-
-      var indexData = [0, 1, 1, 2, 2, 3, 3, 4, 4, 0];
-
-      var indexDataArray = new Uint32Array(indexData.length);
-      indexDataArray.set(indexData, 0);
-
-      // Create geometry
-      var geometry = new dali.Geometry();
-      geometry.addVertexBuffer( pentagonVertices );
-      geometry.addVertexBuffer( pentacleVertices );
-      geometry.setIndexBuffer( indexDataArray, 10 );
-      geometry.setType( dali.GEOMETRY_LINES );
-
-      var renderer = new dali.Renderer(geometry, shader);
-      renderer.depthIndex = 0;
-
-      // Create mesh actor
-      var meshActor = new dali.Actor();
-      meshActor.addRenderer( renderer );
-      meshActor.size = [300, 300, 0];
-      meshActor.parentOrigin = dali.CENTER;
-      meshActor.anchorPoint = dali.CENTER;
-      meshActor.registerAnimatableProperty("uMorphAmount", 0.0);
-
-      dali.stage.add( meshActor );
-
-      // Animate the mesh actor
-      var animation = new dali.Animation(5);
-
-      var keyFramesIndex = [{progress:0.0, value: 0.0}, {progress:1.0, value:1.0}];
-      var animOptions = { alpha:dali.ALPHA_FUNCTION_SIN, delay:0, duration:5};
-
-      animation.animateBetween( meshActor, "uMorphAmount", keyFramesIndex, animOptions );
-      animation.setLooping(true);
-      animation.play();
-}
-
-function startup()
-{
-  daliApp.init();
-}
-
-daliApp.init = function()
-{
-  daliApp.createMeshActor();
-}
-
-
-startup();
-
diff --git a/node-addon/examples/mesh-morph.js b/node-addon/examples/mesh-morph.js
deleted file mode 100644 (file)
index 14f3888..0000000
+++ /dev/null
@@ -1,263 +0,0 @@
- var window= {
-           x:0,
-           y:0,
-           width:1920,
-           height: 1080,
-           transparent: false,
-           name:'mesh-morph-app'
- };
-
- var viewMode={
-       'stereoscopic-mode':'mono', // stereo-horizontal, stereo-vertical, stereo-interlaced,
-       'stereo-base': 65 // Distance in millimeters between left/right cameras typically between (50-70mm)
- };
-
- var options= {
-    'window': window,
-    'view-mode': viewMode,
- }
-
-try {
-  // target
-  var dali = require('dali')( options );
-}
-catch(err) {
-  // desktop
-  var dali = require('../build/Release/dali')( options );
-}
-
-var daliApp = {};
-
-daliApp.createMeshActor = function() {
-
-      // Create shader
-      var vertShader =
-                  "attribute mediump vec2    aInitPos;\
-                attribute mediump vec2    aFinalPos;\
-                attribute mediump vec3    aColor;\
-                uniform   mediump mat4    uMvpMatrix;\
-                uniform   mediump vec3    uSize;\
-                uniform   mediump float   uDelta;\
-                uniform   lowp    vec4    uColor;\
-                varying   lowp    vec4    vColor;\
-                void main()\
-                {\
-                  mediump vec4 vertexPosition = vec4(mix(aInitPos, aFinalPos, uDelta), 0.0, 1.0);\
-                  vertexPosition.xyz *= uSize;\
-                  vertexPosition = uMvpMatrix * vertexPosition;\
-                  gl_Position = vertexPosition;\
-                  vColor = vec4(aColor, 0.) * uColor;\
-                }";
-
-      var fragShader =
-               "varying lowp vec4 vColor;\
-                void main()\
-                {\
-                  gl_FragColor = vColor;\
-                }";
-
-      var shaderOptions = {
-              vertexShader : vertShader,
-              fragmentShader : fragShader
-          };
-
-      var shader = new dali.Shader(shaderOptions);
-
-      // Create vertex buffer for initial positions
-      var initialPositionVertexFormat = { "aInitPos" : dali.PROPERTY_VECTOR2 };
-
-      var initialPositionVertexData = [
-                                       // yellow
-                                       -0.50, -0.50,
-                                         0.0,   0.0,
-                                       -0.50,  0.50,
-
-                                       // green
-                                       -0.50, -0.50,
-                                        0.50, -0.50,
-                                         0.0,   0.0,
-
-                                       // blue
-                                        0.50, -0.50,
-                                        0.50,   0.0,
-                                        0.25, -0.25,
-
-                                       // red
-                                        0.25, -0.25,
-                                        0.50,   0.0,
-                                        0.25,  0.25,
-                                        0.25,  0.25,
-                                         0.0,   0.0,
-                                        0.25, -0.25,
-
-                                       // cyan
-                                         0.0,   0.0,
-                                        0.25,  0.25,
-                                       -0.25,  0.25,
-
-                                       // magenta
-                                       -0.25,  0.25,
-                                        0.25,  0.25,
-                                         0.0,  0.50,
-                                         0.0,  0.50,
-                                       -0.50,  0.50,
-                                       -0.25,  0.25,
-
-                                        // orange
-                                        0.50,   0.0,
-                                        0.50,  0.50,
-                                         0.0,  0.50
-                                      ];
-
-      var initialPositionVertexDataArray = new Float32Array(initialPositionVertexData.length);
-      initialPositionVertexDataArray.set(initialPositionVertexData, 0);
-      var initialPositionVertices = new dali.PropertyBuffer(initialPositionVertexFormat);
-      initialPositionVertices.setData(initialPositionVertexDataArray, 27);
-
-      // Create vertex buffer for final positions
-      var finalPositionVertexFormat = { "aFinalPos" : dali.PROPERTY_VECTOR2 };
-
-      var bigSide = 0.707106781;
-      var side = bigSide * 0.5;
-
-      var finalPositionVertexData = [
-                                     // yellow
-                                               side,                        0.25, // pA
-                                               side,              0.25 + bigSide, // pB
-                                     side - bigSide,              0.25 + bigSide, // pC
-
-                                     // green
-                                        side - 0.50,                       -0.25, // pD
-                                               side,                        0.25, // pA
-                                        side - 0.50,                        0.75, // pE
-
-                                     // blue
-                                        side - 0.50,                       -0.75, // pJ
-                                        side - 0.50,                       -0.25, // pD
-                                        side - 0.75,                       -0.50, // pI
-
-                                     // red
-                                        side - 0.75,                       -0.50, // pI
-                                        side - 0.50,                       -0.25, // pD
-                                        side - 0.75,                         0.0, // pG
-                                        side - 0.75,                         0.0, // pG
-                                         side - 1.0,                       -0.25, // pH
-                                        side - 0.75,                       -0.50, // pI
-
-                                     // cyan
-                                        side - 0.75,                       -0.50, // pI
-                                         side - 1.0,                       -0.25, // pH
-                                         side - 1.0,                       -0.75, // pK
-
-                                     // magenta
-                                               side,       0.25 + bigSide - side, // pL
-                                         side * 2.0, 0.25 + bigSide - side * 2.0, // pM
-                                         side * 2.0,       0.25 + bigSide - side, // pN
-                                         side * 2.0,       0.25 + bigSide - side, // pN
-                                               side,              0.25 + bigSide, // pB
-                                               side,       0.25 + bigSide - side, // pL
-
-                                     // orange
-                                        side - 0.50,                       -0.25, // pD
-                                        side - 0.50,             -0.25 + bigSide, // pF2
-                                             - 0.50,                -0.25 + side  // pF
-                                    ];
-
-      var finalPositionVertexDataArray = new Float32Array(finalPositionVertexData.length);
-      finalPositionVertexDataArray.set(finalPositionVertexData, 0);
-      var finalPositionVertices = new dali.PropertyBuffer(finalPositionVertexFormat);
-      finalPositionVertices.setData(finalPositionVertexDataArray, 27);
-
-      // Create vertex buffer for color
-      var colorVertexFormat = { "aColor" : dali.PROPERTY_VECTOR3 };
-
-      var colorVertexData = [
-                             // yellow
-                             1.0, 1.0, 0.0,
-                             1.0, 1.0, 0.0,
-                             1.0, 1.0, 0.0,
-
-                             // green
-                             0.0, 1.0, 0.0,
-                             0.0, 1.0, 0.0,
-                             0.0, 1.0, 0.0,
-
-                             // blue
-                             0.0, 0.0, 1.0,
-                             0.0, 0.0, 1.0,
-                             0.0, 0.0, 1.0,
-
-                             // red
-                             1.0, 0.0, 0.0,
-                             1.0, 0.0, 0.0,
-                             1.0, 0.0, 0.0,
-                             1.0, 0.0, 0.0,
-                             1.0, 0.0, 0.0,
-                             1.0, 0.0, 0.0,
-
-                             // cyan
-                             0.0, 1.0, 1.0,
-                             0.0, 1.0, 1.0,
-                             0.0, 1.0, 1.0,
-
-                             // magenta
-                             1.0, 0.0, 1.0,
-                             1.0, 0.0, 1.0,
-                             1.0, 0.0, 1.0,
-                             1.0, 0.0, 1.0,
-                             1.0, 0.0, 1.0,
-                             1.0, 0.0, 1.0,
-
-                             // orange
-                             1.0, 0.5, 0.0,
-                             1.0, 0.5, 0.0,
-                             1.0, 0.5, 0.0
-                            ];
-
-      var colorVertexDataArray = new Float32Array(colorVertexData.length);
-      colorVertexDataArray.set(colorVertexData, 0);
-      var colorVertices = new dali.PropertyBuffer(colorVertexFormat);
-      colorVertices.setData(colorVertexDataArray, 27);
-
-      // Create geometry
-      var geometry = new dali.Geometry();
-      geometry.addVertexBuffer( initialPositionVertices );
-      geometry.addVertexBuffer( finalPositionVertices );
-      geometry.addVertexBuffer( colorVertices );
-
-      var renderer = new dali.Renderer(geometry, shader);
-      renderer.depthIndex = 0;
-
-      // Create mesh actor
-      var meshActor = new dali.Actor();
-      meshActor.addRenderer( renderer );
-      meshActor.size = [400, 400, 0];
-      meshActor.parentOrigin = dali.CENTER;
-      meshActor.anchorPoint = dali.CENTER;
-      meshActor.registerAnimatableProperty("uDelta", 0.0);
-
-      dali.stage.add( meshActor );
-
-      // Animate the mesh actor
-      var animation = new dali.Animation(5);
-
-      var animOptions = { alpha:dali.ALPHA_FUNCTION_SIN, delay:0, duration:5};
-
-      animation.animateTo( meshActor, "uDelta", 1.0, animOptions );
-      animation.setLooping(true);
-      animation.play();
-}
-
-function startup()
-{
-  daliApp.init();
-}
-
-daliApp.init = function()
-{
-  daliApp.createMeshActor();
-}
-
-
-startup();
-
diff --git a/node-addon/examples/point-mesh.js b/node-addon/examples/point-mesh.js
deleted file mode 100644 (file)
index 0ae3bab..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
- var window= {
-           x:0,
-           y:0,
-           width:1920,
-           height: 1080,
-           transparent: false,
-           name:'line-mesh-app'
- };
-
- var viewMode={
-       'stereoscopic-mode':'mono', // stereo-horizontal, stereo-vertical, stereo-interlaced,
-       'stereo-base': 65 // Distance in millimeters between left/right cameras typically between (50-70mm)
- };
-
- var options= {
-    'window': window,
-    'view-mode': viewMode,
- }
-
-var imageDir = "./images/";
-
-
-try {
-  // target
-  var dali = require('dali')( options );
-}
-catch(err) {
-  // desktop
-  var dali = require('../build/Release/dali')( options );
-}
-
-var daliApp = {};
-
-daliApp.createMeshActor = function() {
-
-      // Create shader
-      var vertShader =
-               "attribute mediump vec2    aPosition;\
-                attribute highp   float   aHue;\
-                varying   mediump vec2    vTexCoord;\
-                uniform   mediump mat4    uMvpMatrix;\
-                uniform   mediump vec3    uSize;\
-                uniform   mediump float   uPointSize;\
-                uniform   lowp    vec4    uFadeColor;\
-                varying   mediump vec3    vVertexColor;\
-                varying   mediump float   vHue;\
-                vec3 hsv2rgb(vec3 c)\
-                {\
-                  vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\
-                  vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\
-                  return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\
-                }\
-                void main()\
-                {\
-                  mediump vec4 vertexPosition = vec4(aPosition, 0.0, 1.0);\
-                  vertexPosition.xyz *= (uSize-uPointSize);\
-                  vertexPosition = uMvpMatrix * vertexPosition;\
-                  vVertexColor = hsv2rgb( vec3( aHue, 0.7, 1.0 ) );\
-                  vHue = aHue;\
-                  gl_PointSize = uPointSize;\
-                  gl_Position = vertexPosition;\
-                }";
-
-      var fragShader =
-               "varying mediump vec3  vVertexColor;\
-                varying mediump float vHue;\
-                uniform lowp  vec4    uColor;\
-                uniform sampler2D     sTexture1;\
-                uniform sampler2D     sTexture2;\
-                uniform lowp vec4     uFadeColor;\
-                void main()\
-                {\
-                  mediump vec4 texCol1 = texture2D(sTexture1, gl_PointCoord);\
-                  mediump vec4 texCol2 = texture2D(sTexture2, gl_PointCoord);\
-                  gl_FragColor = vec4(vVertexColor, 1.0) * ((texCol1*vHue) + (texCol2*(1.0-vHue)));\
-                }";
-
-      var shaderOptions = {
-              vertexShader : vertShader,
-              fragmentShader: fragShader
-          };
-
-      var shader = new dali.Shader(shaderOptions);
-
-      var image = new dali.ResourceImage( {url: imageDir + "image-1.jpg"} );
-      var textureSet = new dali.TextureSet;
-      textureSet.setImage(0, image);
-
-      // Create vertex buffer
-      var polyhedraVertexFormat ={ "aPosition" : dali.PROPERTY_VECTOR2,
-                                     "aHue"      : dali.PROPERTY_FLOAT    };
-
-      var numSides = 20;
-      var angle = 0;
-      var sectorAngle = 2.0 * Math.PI / numSides;
-
-      var polyhedraVertexData = [];
-      for(i=0; i<numSides; ++i)
-      {
-        var positionX = Math.sin(angle) * 0.5;
-        var positionY = Math.cos(angle) * 0.5;
-        var hue = angle / ( 2.0 * Math.PI);
-
-        polyhedraVertexData[i*3+0] = positionX;
-        polyhedraVertexData[i*3+1] = positionY;
-        polyhedraVertexData[i*3+2] = hue;
-
-        angle += sectorAngle;
-      }
-
-      var polyhedraVertexDataArray = new Float32Array(polyhedraVertexData.length);
-      polyhedraVertexDataArray.set(polyhedraVertexData, 0);
-      var polyhedraVertices = new dali.PropertyBuffer(polyhedraVertexFormat);
-      polyhedraVertices.setData(polyhedraVertexDataArray, numSides);
-
-      // Create geometry
-      var geometry = new dali.Geometry();
-      geometry.addVertexBuffer( polyhedraVertices );
-      geometry.setType( dali.GEOMETRY_POINTS );
-
-      var renderer = new dali.Renderer(geometry, shader);
-      renderer.setTextures(textureSet);
-      renderer.registerAnimatableProperty("uFadeColor", [1.0, 0.0, 1.0, 1.0]); // Green
-      renderer.registerAnimatableProperty("uPointSize", 80.0);
-      renderer.depthIndex = 0;
-
-      // Create mesh actor
-      var meshActor = new dali.Actor();
-      meshActor.addRenderer( renderer );
-      meshActor.size = [400, 400, 0];
-      meshActor.parentOrigin = dali.CENTER;
-      meshActor.anchorPoint = dali.CENTER;
-      meshActor.registerAnimatableProperty("uFadeColor", [0.0, 1.0, 0.0, 1.0]); // Magenta
-
-      dali.stage.add( meshActor );
-
-      // Animate the mesh actor
-      var animation = new dali.Animation(5);
-      var animOptions = { alpha:dali.ALPHA_FUNCTION_LINEAR, delay:0, duration:5};
-      var rotation = new dali.Rotation(360,0,0,1);
-      animation.animateBy( meshActor, "orientation", rotation, animOptions );
-      animation.setLooping(true);
-      animation.play();
-}
-
-function startup()
-{
-  daliApp.init();
-}
-
-daliApp.init = function()
-{
-  daliApp.createMeshActor();
-}
-
-
-startup();
-
diff --git a/node-addon/examples/scripts/item-template.json b/node-addon/examples/scripts/item-template.json
deleted file mode 100644 (file)
index f6e7e64..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-{
-  "templates":
-  {
-    "template-item-list":
-    {
-      "name":"item",
-      "type":"Actor",
-      "position":[0,0,0],
-      "anchorPoint":"TOP_LEFT",
-      "parentOrigin":"TOP_LEFT",
-      "actors":
-       [
-        {
-          "name":"icon",
-          "type":"ImageView",
-          "image":
-          {
-            "visualType" : "IMAGE",
-            "url": "{icon_path}"
-          },
-          "position":[20.0, 0.0, 0.0],
-          "size":[70.0, 70.0, 0.0],
-          "color":[1.0,1.0,1.0,1.0],
-          "anchorPoint":"CENTER_LEFT",
-          "parentOrigin":"CENTER_LEFT",
-          "actors":
-          [
-            {
-              "name":"title",
-              "anchorPoint":"CENTER_LEFT",
-              "parentOrigin":"CENTER_RIGHT",
-              "type":"TextLabel",
-              "position": [30.0, 0.0, 0.0],
-              "size":[200.0, 70.0, 0.0],
-              "pointSize":30,
-              "fontFamily":"HelveticaNeue",
-              "fontStyle":"Bold",
-              "horizontalAlignment":"BEGIN",
-              "verticalAlignment":"CENTER",
-              "textColor": [1.0,0.0,1.0,1.0],
-              "text":"{title_text}"
-            }
-          ]
-        }
-      ]
-    },
-
-    "template-item-grid":
-    {
-      "name":"item",
-      "type":"Actor",
-      "position":[0,0,0],
-      "anchorPoint":"TOP_LEFT",
-      "parentOrigin":"TOP_LEFT",
-      "actors":
-       [
-        {
-          "name":"icon",
-          "type":"ImageView",
-          "image":
-          {
-            "visualType" : "IMAGE",
-            "url": "{icon_path}"
-          },
-          "position":[0.0, -10.0, 0.0],
-          "size":[70.0, 70.0, 0.0],
-          "color":[1.0,1.0,1.0,1.0],
-          "anchorPoint":"CENTER",
-          "parentOrigin":"CENTER",
-          "actors":
-          [
-            {
-              "name":"title",
-              "anchorPoint":"TOP_CENTER",
-              "parentOrigin":"BOTTOM_CENTER",
-              "type":"TextLabel",
-              "position": [0.0,10.0,0.0],
-              "size":[100.0, 100.0, 0.0],
-              "pointSize":22,
-              "fontFamily":"HelveticaNeue",
-              "fontStyle":"Bold",
-              "horizontalAlignment":"CENTER",
-              "textColor": [1.0,0.0,1.0,1.0],
-              "text":"{title_text}"
-            }
-          ]
-        }
-      ]
-    }
-  }
-}
-
diff --git a/node-addon/examples/scroll-view.js b/node-addon/examples/scroll-view.js
deleted file mode 100644 (file)
index eab2bc2..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
- var window= {
-           x:0,
-           y:0,
-           width:1920,
-           height:1080,
-           transparent: false,
-           name:'scrollview-example'
- };
-
- var viewMode={
-       'stereoscopic-mode':'mono', // stereo-horizontal, stereo-vertical, stereo-interlaced,
-       'stereoBase': 65 // Distance in millimeters between left/right cameras typically between (50-70mm)
- };
-
- var options= {
-    'window': window,
-    'viewMode': viewMode,
- }
-
-try {
-  // target
-  var dali = require('dali')( options );
-}
-catch(err) {
-  // desktop
-  var dali = require('../build/Release/dali')( options );
-}
-
-var stageSize;
-var scrollView;
-var scrollBar;
-
-var imageDir = "./images/";
-
-var daliApp = {};
-
-daliApp.createScrollView = function() {
-
-  // Create a scroll view
-  scrollView = new dali.Control("ScrollView");
-  stageSize = dali.stage.getSize();
-  scrollView.size = [stageSize.x, stageSize.y, 0.0];
-  scrollView.parentOrigin = dali.CENTER;
-  scrollView.anchorPoint = dali.CENTER;
-
-  dali.stage.add( scrollView );
-
-  // Add actors to a scroll view with 4 pages
-  var pageRows = 1;
-  var pageColumns = 3;
-  for(var pageRow = 0; pageRow < pageRows; pageRow++)
-  {
-    for(var pageColumn = 0; pageColumn < pageColumns; pageColumn++)
-    {
-      var pageActor = new dali.Control();
-      pageActor.widthResizePolicy = "FILL_TO_PARENT";
-      pageActor.heightResizePolicy = "FILL_TO_PARENT";
-      pageActor.parentOrigin = dali.CENTER;
-      pageActor.anchorPoint = dali.CENTER;
-      pageActor.position = [pageColumn * stageSize.x, pageRow * stageSize.y, 0.0];
-      pageActor.name = "pageActor" + pageColumn;
-
-      // Add images in a 5x4 grid layout for each page
-      var imageRows = 4;
-      var imageColumns = 5;
-      var margin = 10.0;
-      var imageSize = [(stageSize.x / imageColumns) - margin, (stageSize.y / imageRows) - margin, 0.0];
-
-      for(var row = 0; row < imageRows; row++)
-      {
-        for(var column = 0; column < imageColumns;column++)
-        {
-          var imageView = new dali.Control("ImageView");
-          var imageId = (row * imageColumns + column) % 2 + 1;
-          imageView.image = imageDir + "image-" + imageId + ".jpg";
-          imageView.parentOrigin = dali.CENTER;
-          imageView.anchorPoint = dali.CENTER;
-          imageView.size = imageSize;
-          imageView.position = [ margin * 0.5 + (imageSize[0] + margin) * column - stageSize.x * 0.5 + imageSize[0] * 0.5,
-                                 margin * 0.5 + (imageSize[1] + margin) * row - stageSize.y * 0.5 + imageSize[1] * 0.5,
-                                 0.0 ];
-          pageActor.add(imageView);
-          var position = imageView.position;
-        }
-      }
-
-      scrollView.add( pageActor );
-    }
-  }
-
-  // Set scroll view to have 3 pages in X axis and allow page snapping,
-  // and also disable scrolling in Y axis.
-  var scrollMode = {
-                     xAxisScrollEnabled  : true,
-                     xAxisSnapToInterval : stageSize.x,                // Define the snap points
-                     xAxisScrollBoundary : stageSize.x * pageColumns,  // i.e. Define 3 pages
-                     yAxisScrollEnabled  : false
-                   }
-
-  scrollView.setScrollMode(scrollMode);
-
-  // Create a horizontal scroll bar in the bottom of scroll view (optional)
-  scrollBar = new dali.Control("ScrollBar");
-  scrollBar.parentOrigin = dali.BOTTOM_LEFT;
-  scrollBar.anchorPoint = dali.TOP_LEFT;
-  scrollBar.widthResizePolicy = "FIT_TO_CHILDREN";
-  scrollBar.heightResizePolicy = "FILL_TO_PARENT";
-  scrollBar.orientation = [0, 0, 270];
-  scrollBar.scrollDirection = "Horizontal";
-  scrollView.add(scrollBar);
-
-  // Connect to the onRelayout signal
-  scrollView.on("onRelayout", daliApp.onScrollViewRelayout);
-}
-
-daliApp.onScrollViewRelayout = function( button ) {
-
-  // Set the correct scroll bar size after size negotiation of scroll view is done
-  scrollBar.size = [0.0, scrollView.getRelayoutSize(dali.DIMENSION_WIDTH), 0.0 ];
-}
-
-function startup()
-{
-  daliApp.init();
-}
-
-daliApp.init = function()
-{
-  daliApp.createScrollView();
-}
-
-startup();
-
diff --git a/node-addon/examples/texture-mesh.js b/node-addon/examples/texture-mesh.js
deleted file mode 100644 (file)
index 27f7744..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
- var window= {
-           x:0,
-           y:0,
-           width:1920,
-           height: 1080,
-           transparent: false,
-           name:'texture-mesh-app'
- };
-
- var viewMode={
-       'stereoscopic-mode':'mono', // stereo-horizontal, stereo-vertical, stereo-interlaced,
-       'stereo-base': 65 // Distance in millimeters between left/right cameras typically between (50-70mm)
- };
-
- var options= {
-    'window': window,
-    'view-mode': viewMode,
- }
-
-var imageDir = "./images/";
-
-
-try {
-  // target
-  var dali = require('dali')( options );
-}
-catch(err) {
-  // desktop
-  var dali = require('../build/Release/dali')( options );
-}
-
-var daliApp = {};
-
-daliApp.createMeshActor = function() {
-
-      // Create shader
-      var vertShader =
-               "attribute mediump vec2    aPosition;\
-                attribute highp   vec2    aTexCoord;\
-                varying   mediump vec2    vTexCoord;\
-                uniform   mediump mat4    uMvpMatrix;\
-                uniform   mediump vec3    uSize;\
-                uniform   lowp    vec4    uFadeColor;\
-                void main()\
-                {\
-                  mediump vec4 vertexPosition = vec4(aPosition, 0.0, 1.0);\
-                  vertexPosition.xyz *= uSize;\
-                  vertexPosition = uMvpMatrix * vertexPosition;\
-                  vTexCoord = aTexCoord;\
-                  gl_Position = vertexPosition;\
-                }";
-
-      var fragShader =
-               "varying mediump vec2  vTexCoord;\
-                uniform lowp    vec4  uColor;\
-                uniform sampler2D     sTexture;\
-                uniform lowp    vec4  uFadeColor;\
-                void main()\
-                {\
-                  gl_FragColor = texture2D( sTexture, vTexCoord ) * uColor * uFadeColor;\
-                }";
-
-      var shaderOptions = {
-              vertexShader : vertShader,
-              fragmentShader: fragShader
-          };
-
-      var shader = new dali.Shader(shaderOptions);
-
-      var textureSet = new dali.TextureSet;
-      var image = new dali.ResourceImage( {url: imageDir + "image-1.jpg"} );
-      textureSet.setImage(0, image);
-
-      var textureSet2 = new dali.TextureSet;
-      var image2 = new dali.ResourceImage( {url: imageDir + "image-2.jpg"} );
-      textureSet2.setImage(0, image2);
-
-      // Create vertex buffer
-      var texturedQuadVertexFormat ={ "aPosition" : dali.PROPERTY_VECTOR2,
-                                        "aTexCoord" : dali.PROPERTY_VECTOR2 };
-
-      var halfQuadSize = 0.5;
-      var texturedQuadVertexData = [ -halfQuadSize, -halfQuadSize, 0.0, 0.0,
-                                      halfQuadSize, -halfQuadSize, 1.0, 0.0,
-                                     -halfQuadSize,  halfQuadSize, 0.0, 1.0,
-                                      halfQuadSize,  halfQuadSize, 1.0, 1.0 ];
-
-      var texturedQuadVertexDataArray = new Float32Array(texturedQuadVertexData.length);
-      texturedQuadVertexDataArray.set(texturedQuadVertexData, 0);
-      var texturedQuadVertices = new dali.PropertyBuffer(texturedQuadVertexFormat);
-      texturedQuadVertices.setData(texturedQuadVertexDataArray, 4);
-
-      var indexFormat ={ "indices" : dali.PROPERTY_INTEGER };
-
-      var indexData = [0, 3, 1, 0, 2, 3];
-
-      var indexDataArray = new Uint32Array(indexData.length);
-      indexDataArray.set(indexData, 0);
-
-      // Create geometry
-      var geometry = new dali.Geometry();
-      geometry.addVertexBuffer( texturedQuadVertices );
-      geometry.setIndexBuffer( indexDataArray, 6 );
-
-      var renderer = new dali.Renderer(geometry, shader);
-      renderer.setTextures(textureSet);
-      renderer.depthIndex = 0;
-
-      var meshActor = new dali.Actor();
-      meshActor.addRenderer( renderer );
-      meshActor.size = [530, 530, 0];
-      meshActor.parentOrigin = dali.TOP_CENTER;
-      meshActor.anchorPoint = dali.TOP_CENTER;
-      meshActor.registerAnimatableProperty("uFadeColor", [1.0, 0.0, 1.0, 1.0]);
-
-      dali.stage.add( meshActor );
-
-      var renderer2 = new dali.Renderer(geometry, shader);
-      renderer2.setTextures(textureSet2);
-      renderer2.depthIndex = 0;
-
-      var meshActor2 = new dali.Actor();
-      meshActor2.addRenderer( renderer2 );
-      meshActor2.size = [530, 530, 0];
-      meshActor2.parentOrigin = dali.BOTTOM_CENTER;
-      meshActor2.anchorPoint = dali.BOTTOM_CENTER;
-      meshActor2.registerAnimatableProperty("uFadeColor", [0.0, 0.0, 1.0, 1.0]);
-
-      dali.stage.add( meshActor2 );
-
-      // Animate the mesh actors
-      var animation = new dali.Animation(5);
-
-      var keyFramesIndex = [{progress:0.0, value: [0.0, 0.0, 0.0, 0.0]}, {progress:1.0, value:[0.0, 1.0, 0.0, 1.0]}];
-      var animOptions = { alpha:dali.ALPHA_FUNCTION_SIN, delay:0, duration:5};
-
-      var keyFramesIndex2 = [{progress:0.0, value: [0.0, 0.0, 0.0, 0.0]}, {progress:1.0, value:[1.0, 0.0, 1.0, 1.0]}];
-      var animOptions2 = { alpha:dali.ALPHA_FUNCTION_SIN, delay:0, duration:5};
-
-      animation.animateBetween( meshActor, "uFadeColor", keyFramesIndex, animOptions );
-      animation.animateBetween( meshActor2, "uFadeColor", keyFramesIndex2, animOptions2 );
-      animation.setLooping(true);
-      animation.play();
-}
-
-function startup()
-{
-  daliApp.init();
-}
-
-daliApp.init = function()
-{
-  daliApp.createMeshActor();
-}
-
-
-startup();
-
diff --git a/node-addon/item-template.json b/node-addon/item-template.json
deleted file mode 100644 (file)
index f6e7e64..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-{
-  "templates":
-  {
-    "template-item-list":
-    {
-      "name":"item",
-      "type":"Actor",
-      "position":[0,0,0],
-      "anchorPoint":"TOP_LEFT",
-      "parentOrigin":"TOP_LEFT",
-      "actors":
-       [
-        {
-          "name":"icon",
-          "type":"ImageView",
-          "image":
-          {
-            "visualType" : "IMAGE",
-            "url": "{icon_path}"
-          },
-          "position":[20.0, 0.0, 0.0],
-          "size":[70.0, 70.0, 0.0],
-          "color":[1.0,1.0,1.0,1.0],
-          "anchorPoint":"CENTER_LEFT",
-          "parentOrigin":"CENTER_LEFT",
-          "actors":
-          [
-            {
-              "name":"title",
-              "anchorPoint":"CENTER_LEFT",
-              "parentOrigin":"CENTER_RIGHT",
-              "type":"TextLabel",
-              "position": [30.0, 0.0, 0.0],
-              "size":[200.0, 70.0, 0.0],
-              "pointSize":30,
-              "fontFamily":"HelveticaNeue",
-              "fontStyle":"Bold",
-              "horizontalAlignment":"BEGIN",
-              "verticalAlignment":"CENTER",
-              "textColor": [1.0,0.0,1.0,1.0],
-              "text":"{title_text}"
-            }
-          ]
-        }
-      ]
-    },
-
-    "template-item-grid":
-    {
-      "name":"item",
-      "type":"Actor",
-      "position":[0,0,0],
-      "anchorPoint":"TOP_LEFT",
-      "parentOrigin":"TOP_LEFT",
-      "actors":
-       [
-        {
-          "name":"icon",
-          "type":"ImageView",
-          "image":
-          {
-            "visualType" : "IMAGE",
-            "url": "{icon_path}"
-          },
-          "position":[0.0, -10.0, 0.0],
-          "size":[70.0, 70.0, 0.0],
-          "color":[1.0,1.0,1.0,1.0],
-          "anchorPoint":"CENTER",
-          "parentOrigin":"CENTER",
-          "actors":
-          [
-            {
-              "name":"title",
-              "anchorPoint":"TOP_CENTER",
-              "parentOrigin":"BOTTOM_CENTER",
-              "type":"TextLabel",
-              "position": [0.0,10.0,0.0],
-              "size":[100.0, 100.0, 0.0],
-              "pointSize":22,
-              "fontFamily":"HelveticaNeue",
-              "fontStyle":"Bold",
-              "horizontalAlignment":"CENTER",
-              "textColor": [1.0,0.0,1.0,1.0],
-              "text":"{title_text}"
-            }
-          ]
-        }
-      ]
-    }
-  }
-}
-
diff --git a/node-addon/javascript-application-options.cpp b/node-addon/javascript-application-options.cpp
deleted file mode 100644 (file)
index eea3e9e..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// HEADER
-#include "javascript-application-options.h"
-
-// EXTERNAL INCLUDES
-#include <cstring>
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-
-namespace DaliNodeAddon
-{
-
-namespace
-{
-
-struct StereoInfo
-{
-  const char* const name;
-  Dali::ViewMode mode;
-};
-StereoInfo StereoModeTable[] = {
-    { "mono",                 Dali::MONO},
-    { "stereoHorizontal",     Dali::STEREO_HORIZONTAL },
-    { "stereoVertical",       Dali::STEREO_VERTICAL },
-};
-
-const unsigned int numberViewModes = sizeof( StereoModeTable ) / sizeof( StereoModeTable[0] );
-
-bool GetViewMode( const std::string& modeString, Dali::ViewMode& mode )
-{
-  for( unsigned int i = 0; i < numberViewModes; ++i )
-  {
-    const StereoInfo& info (StereoModeTable[i]);
-
-    if( strcmp ( modeString.c_str() , info.name ) == 0 )
-    {
-      mode = info.mode;
-      return true;
-    }
-  }
-  // mode not found
-  mode = Dali::MONO;
-  return false;
-}
-
-
-// Note we can't parse the enviroment options for window width / height because
-// adaptor which holds the environment option class has not been created
-// and we can't create it, until we have a window
-bool ParseWindowOptions( v8::Isolate* isolate, const v8::Local<v8::Object>& obj,  WindowOptions& window )
-{
-  v8::HandleScope scope(isolate);
-
-  v8::Local<v8::Value> xValue = obj->Get( v8::String::NewFromUtf8( isolate, "x" ) );
-  v8::Local<v8::Value> yValue = obj->Get( v8::String::NewFromUtf8( isolate, "y" ) );
-  v8::Local<v8::Value> widthValue = obj->Get( v8::String::NewFromUtf8( isolate, "width" ) );
-  v8::Local<v8::Value> heightValue = obj->Get( v8::String::NewFromUtf8( isolate, "height" ) );
-  v8::Local<v8::Value> nameValue = obj->Get( v8::String::NewFromUtf8( isolate, "name" ) );
-  v8::Local<v8::Value> transparencyValue = obj->Get( v8::String::NewFromUtf8( isolate, "transparent" ) );
-
-  // if x,y are optional
-  if( xValue->IsUint32() )
-  {
-    window.positionSize.x = xValue->ToUint32()->Value();
-  }
-  if( yValue->IsUint32() )
-  {
-    window.positionSize.y = yValue->ToUint32()->Value();
-  }
-
-  // width and height are optional but will only accept them if they are both set
-  if( widthValue->IsUint32() &&  heightValue->IsUint32() )
-  {
-    window.positionSize.width = widthValue->ToUint32()->Value();
-    window.positionSize.height = heightValue->ToUint32()->Value();
-  }
-
-  // get the window name
-  if( nameValue->IsString() )
-  {
-    window.name = Dali::V8Plugin::V8Utils::v8StringToStdString( nameValue );
-  }
-  else
-  {
-    window.name ="DALi application";
-  }
-
-  if( transparencyValue->IsBoolean() )
-  {
-    window.transparent = transparencyValue->ToBoolean()->Value();
-  }
-  return true;
-}
-
-bool ParseStereoScopicOptions( v8::Isolate* isolate, const v8::Local<v8::Object>& stereoObject,  StereoScopicOptions& options )
-{
-  v8::HandleScope scope(isolate);
-
-  v8::Local<v8::Value> modeValue = stereoObject->Get( v8::String::NewFromUtf8( isolate, "stereoscopicMode" ) );
-  v8::Local<v8::Value> stereoBaseValue = stereoObject->Get( v8::String::NewFromUtf8( isolate, "stereoBase" ) );
-
-  if( !modeValue->IsString() )
-  {
-    return true;
-  }
-
-  std::string mode = Dali::V8Plugin::V8Utils::v8StringToStdString( modeValue );
-  bool ok = GetViewMode( mode,  options.viewMode);
-  if( !ok )
-  {
-    return false;
-  }
-  if( stereoBaseValue->IsNumber() )
-  {
-    options.stereoBase = stereoBaseValue->ToNumber()->Value();
-  }
-
-  return true;
-}
-
-} // unnamed namespace
-
-bool GetApplicationOptions(const v8::FunctionCallbackInfo<v8::Value>& args, ApplicationOptions& options )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope scope(isolate);
-  bool ok( false );
-
-  if( !args[ 0 ]->IsObject() )
-  {
-    return false;
-  }
-
-  v8::Local<v8::Object> object = args[ 0 ]->ToObject();
-
-  // get the window settings
-  v8::Local<v8::Value> windowValue= object->Get( v8::String::NewFromUtf8( isolate, "window" ) );
-  if( windowValue->IsObject() )
-  {
-    ok = ParseWindowOptions( isolate, windowValue->ToObject(), options.window );
-    if( !ok )
-    {
-      return false; // missing window size
-    }
-  }
-
-  // get the stereoscopic settings
-  v8::Local<v8::Value> stereoValue= object->Get( v8::String::NewFromUtf8( isolate, "viewMode" ) );
-  if( stereoValue->IsObject() )
-  {
-    ok = ParseStereoScopicOptions( isolate,  stereoValue->ToObject(), options.stereo );
-    if( !ok )
-    {
-      return false;  // incorrect stereoscopic mode
-    }
-  }
-
-  // get the style sheet
-  v8::Local<v8::Value> stylesheetValue= object->Get( v8::String::NewFromUtf8( isolate, "styleSheet" ) );
-  if( stylesheetValue->IsString() )
-  {
-    options.stylesheet = Dali::V8Plugin::V8Utils::v8StringToStdString( stylesheetValue );
-  }
-
-  return true;
-}
-
-} // namespace DaliNodeAddon
diff --git a/node-addon/javascript-application-options.h b/node-addon/javascript-application-options.h
deleted file mode 100644 (file)
index 1401c7d..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-#ifndef DALI_JAVASCRIPT_APPLICATION_OPTIONS_H
-#define DALI_JAVASCRIPT_APPLICATION_OPTIONS_H
-
-/*
- * Copyright (c) 2019 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 <public-api/dali-core.h>
-#include <public-api/adaptor-framework/window.h>
-#include <v8.h>
-
-namespace DaliNodeAddon
-{
-
-struct WindowOptions
-{
-  WindowOptions()
-  : positionSize(0,0,0,0)
-  {
-  }
-
-  std::string name;
-  Dali::PositionSize positionSize;
-  bool transparent:1;
-};
-
-struct StereoScopicOptions
-{
-  StereoScopicOptions()
-  : viewMode(Dali::MONO),
-    stereoBase(65.f)
-  {
-  }
-
-  Dali::ViewMode viewMode;
-  float stereoBase;
-};
-
-struct ApplicationOptions
-{
-  WindowOptions window;
-  StereoScopicOptions stereo;
-  std::string stylesheet;
-};
-
-/**
- * @brief parse the dali JavaScript application options
- * The options are passed to dali when require is called.
- * E.g. var dali.require('dali.js)(  {options object}  )
- *
- * @param[in] args JavaScript arguments
- * @param[out] options assigned Dali options
- * @return true on success, false on failure
- *
- */
-bool GetApplicationOptions( const v8::FunctionCallbackInfo<v8::Value>& args, ApplicationOptions& options );
-
-
-} // namespace DaliNodeAddon
-
-
-
-#endif // DALI_JAVASCRIPT_APPLICATION_OPTIONS_H
diff --git a/node-addon/package.json b/node-addon/package.json
deleted file mode 100644 (file)
index 9314a16..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-  "name": "dali",
-  "version": "0.0.0",
-  "description": "DALi 3D Engine addon",
-  "main": "index.js",
-  "gypfile": "true",
-  "scripts": {
-     "preinstall" : "./configure",
-     "install" : "make && make install",
-    "test" : "node test.js"
-  },
-  "repository": {
-    "type": "git",
-    "url": "review.tizen.org:29418/platform/core/uifw/dali-core"
-  },
-  "keywords": [
-    "dali",
-    "3D",
-    "engine",
-    "OpenGL",
-    "user interface"
-  ],
-  "author": "Samsung",
-  "license": "http://www.apache.org/licenses/LICENSE-2.0"
-}
diff --git a/plugins/dali-script-v8/.gitignore b/plugins/dali-script-v8/.gitignore
deleted file mode 100644 (file)
index 9884cf9..0000000
+++ /dev/null
@@ -1 +0,0 @@
-docs/generated
diff --git a/plugins/dali-script-v8/docs/.gitignore b/plugins/dali-script-v8/docs/.gitignore
deleted file mode 100644 (file)
index 8f030d1..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-/generated/*
-
-
-
-
-
diff --git a/plugins/dali-script-v8/docs/README.txt b/plugins/dali-script-v8/docs/README.txt
deleted file mode 100644 (file)
index c2322b3..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-// Follow instructions on the internets on how to install yuidoc
-// Then run this command
-
-yuidoc --config yuidoc.json -e ".cpp,.js,.md"  -o generated .. ../../../docs/content/shared-javascript-and-cpp-documentation/
-
-// -e says what extensions to pass, we have comments in js and cpp files
-// -o specifies output directory ( in this case we output to a folder called generated)
-// The list of directories after the generated, is the folders to scan for documentation
-
-To view the output
-firefox generated/index.html &
diff --git a/plugins/dali-script-v8/docs/content/actor.js b/plugins/dali-script-v8/docs/content/actor.js
deleted file mode 100644 (file)
index 5ad2180..0000000
+++ /dev/null
@@ -1,656 +0,0 @@
-/**
- *
- ## Actor API
-
-  Actor is the primary object with which Dali applications interact. UI controls can be built by combining multiple actors.
-
-  There are different types of Actors supported by Dali. They all have the same
-  base functionality of the actor class.
-
-```
-var actor = new dali.Actor();
-var textActor = new dali.TextActor("hello world");
-var camera = new dali.CameraActor();
-var layer = new dali.Layer();
-```
-
-### Hello world example
-```
-var myActor = new dali.TextActor("hello-world");
-
-myActor.name = "my first actor";
-myActor.color = [ 1, 0, 0, 1];    // Red,Green,Blue, Alpha ( 1 == max, 0 = none )
-myActor.scale = [ 2, 2, 1];      // double the width and height
-
-// by default an actor is anchored to the top-left of it's parent actor
-// change it to the middle
-
-myActor.parentOrigin = [0.5,0.5,0.5];
-
-// add to the stage
-dali.stage.add( myActor );
-```
-
-
-### Positioning Actors
-
-An actor inherits its parent's position.  The relative position between the actor & parent is determined by 3 properties:
-
-1) ParentOrigin.  This Vector3 property defines a point within the parent actor's area.
-
-![ ](../assets/img/parent-origin.png)
-
-
-The default is "top-left", which can be visualized in 2D as (0, 0), but is actually Vector3(0, 0, 0.5) in the 3D DALi world.  The actor's position is relative to this point.
-```
-// to change parent origin to the centre
-myActor.parentOrigin = [0.5, 0.5, 0.5];
-```
-
-2) AnchorPoint.  This Vector3 property defines a point within the child actor's area.
-
-![ ](../assets/img/anchor-point.png)
-
-The default is "center", which can be visualized in 2D as (0.5, 0.5), but is actually Vector3(0.5, 0.5, 0.5) in the 3D DALi world.  The actor's position is also relative to this point.
-```
-// setting anchor point to the centre
-myActor.anchorPoint = [0.5, 0.5, 0.5];
-```
-
-3) Position.  This is the position vector between the parent-origin and anchor-point.
-
-![ ](../assets/img/actor-position.png)
-
-Therefore by default, an actors position is the distance between its center and the top-left corner of its parent.
-
-An actor added directly to the stage with position (X = stageWidth*0.5, Y = stageHeight*0.5), would appear in the center of the screen.  Likewise an actor with position (X = actorWidth*0.5, Y = actorWidth*0.5), would appear at the top-left of the screen.
-
-Note that since DALi is a 3D toolkit, this behaviour is the result of a default perspective camera setup.
-
-### Actor callback events
-
-The actor provides the following call back events
-
-| Name            | Description                            | Parameters passed to call back |
-|-----------------|----------------------------------------|--------------------------|
-|touch            | touch                                  | (actor, touchData )      |
-|hovered          | mouse or pointer hovering over actor   | (actor, hoverEvent)      |
-|mouseWheelEvent  | mouse wheel events                     | (actor, wheelEvent)      |
-|onStage          | actor has been moved on stage          | (actor)                  |
-|offStage         | actor has been moved off stage         | (actor)                  |
-
-
-#### Touch event
-
-Used to detect multiple touch events on the actor. The state of each touch point can be:
-+ "DOWN"        = touch down
-+ "UP"          = Touch up
-+ "MOTION"      = Finger dragged or hovered
-+ "LEAVE"       = Leave the boundary of an actor
-+ "STATIONARY"  = No change from last event.  Useful when a multi-point event occurs where
-                  all points are sent but indicates that this particular point has not changed
-                  since the last time
-+ "INTERRUPTED" = A system event has occurred which has interrupted the touch or hover event sequence
-
-
-
-```
-touchData = {
-  
-  pointCount: int,  // number of points touched ( multi-touch )
-  time: int,        // The time in milliseconds that the touch event occurred.
-  points = [ Points ],    // array of Points
-  
-  Point = {
-    "deviceId" : int,        // Each touch point has a unique device ID
-    "state" : string,        // touch state ="DOWN","UP","MOTION","LEAVE","STATIONARY","INTERRUPTED"
-    "sourceActor" : actor,   // the actor that is emitting the callback (the actor that is hit maybe a child of it)
-    "hitActor" : actor,      // actor that was hit
-    "local" :  {x,y},        // co-ordinates of top left of hit actor (local.x, local.y)
-    "screen" : {x,y},        // co-ordinates of top left of hit actor (screen.x, screen.y)
-    "radius" : float,        // radius of the press point (average of both the horizontal & vertical radii)
-    "ellipseRadius" : {x,y}, // both the horizontal and the vertical radii of the press point
-    "pressure" : float,      // the touch pressure
-    "angle" : float          // angle of the press point relative to the Y-Axis (in degrees)
-  }
-}
-
-function onPressed( actor, touchData )
-{
-  var firstPoint = touchData.points[0];
-  log("first touch point = " + firstPoint.screen.x + "," + firstPoint.screen.x + "actor= " + firstPoint.hitActor );
-  
-  var anim = new dali.Animation( 4 );
-  var rotation = new dali.Rotation( 90, 0, 0 ); // pitch, yaw, roll
-  anim.animateBy( actor, "orientation", rotation );
-  anim.play();
-  return true;
-}
-  
-// connect to touch events
-myActor.on( "touch", onPressed );
-
-```
-
-#### Hover event
-
-```
-hoverEvent = {
-  
-  pointCount  // number of points hovered over
-  time        // The time in milliseconds that the hover event occurred.
-  points[]    // array of TouchPoints
-  
-  TouchPoint = {
-    "deviceId" : int,      // Each touch point has a unique device ID
-    "state" : string,      // touch state ="down,up,motion,leave,stationary, interrupted }
-    "sourceActor" : actor, // the actor that is emitting the callback (the actor that is hit maybe a child of it)
-    "hitActor" : actor,    // actor that was hit
-    "local" :  {x,y},      // co-ordinates of top left of hit actor (local.x, local.y)
-    "screen" : {x,y}       // co-ordinates of top left of hit actor (screen.x, screen.y)
-  }
-}
-```
-      // connect to touch events
-      myActor.on( "hovered", onHover);
-
-#### Mouse wheel event
-
-```
-mouseWheelEvent = {
-  
-  direction,       // "vertical" or "horizontal" direction the wheel is being rolled
-  shiftPressed,    // boolean, shift key is held
-  ctrlPressed,     // boolean, ctrl key is held
-  altPressed,      // boolean, alt key is held
-  keyModifiers,    // bitmask of keys pressed
-  point {x,y},     // The co-ordinates of the mouse cursor relative to the top-left of the screen when the wheel is being rolled.
-  rolled,          // offset of mouse wheel rolling, positive = rolling down, negative = rolling up
-  timestamp        // The time in milliseconds that the mouse event occurred
-}
-  
-// connect to touch events
-myActor.on( "mouseWheelEvent", onMouseWheel );
-```
-#### Key events
-
-Key events are performed using the dali.stage object and dali.keyboardFocusManager.
- - {{#crossLink "stage"}}Stage{{/crossLink}}
-
-
-#### Multi-touch events
-
-See
- - {{#crossLink "MultiTouch"}}Multi Touch Events.{{/crossLink}}
-
-
-### Actor Properties
-
- Name                   |    Type    | Writable     | Animatable
-------------------------|------------|--------------|-----------
- anchorPoint            |VECTOR3     | &#10004;     | &#10008;
- anchorPointX           |FLOAT       | &#10004;     | &#10008;
- anchorPointY           |FLOAT       | &#10004;     | &#10008;
- anchorPointZ           |FLOAT       | &#10004;     | &#10008;
- size                   |VECTOR3     | &#10004;     | &#10004;
- sizeWidth              |FLOAT       | &#10004;     | &#10004;
- sizeHeight             |FLOAT       | &#10004;     | &#10004;
- sizeDepth              |FLOAT       | &#10004;     | &#10004;
- position               |VECTOR3     | &#10004;     | &#10004;
- positionX              |FLOAT       | &#10004;     | &#10004;
- positionY              |FLOAT       | &#10004;     | &#10004;
- positionZ              |FLOAT       | &#10004;     | &#10004;
- worldPosition          |VECTOR3     | &#10008;     | &#10008;
- worldPositionX         |FLOAT       | &#10008;     | &#10008;
- worldPositionY         |FLOAT       | &#10008;     | &#10008;
- worldPositionZ         |FLOAT       | &#10008;     | &#10008;
- orientation            |ROTATION    | &#10004;     | &#10004;
- worldOrientation       |ROTATION    | &#10008;     | &#10008;
- scale                  |VECTOR3     | &#10004;     | &#10004;
- scaleX                 |FLOAT       | &#10004;     | &#10004;
- scaleY                 |FLOAT       | &#10004;     | &#10004;
- scaleZ                 |FLOAT       | &#10004;     | &#10004;
- worldScale             |VECTOR3     | &#10008;     | &#10008;
- visible                |BOOLEAN     | &#10004;     | &#10004;
- color                  |VECTOR4     | &#10004;     | &#10004;
- colorRed               |FLOAT       | &#10004;     | &#10004;
- colorGreen             |FLOAT       | &#10004;     | &#10004;
- colorBlue              |FLOAT       | &#10004;     | &#10004;
- colorAlpha             |FLOAT       | &#10004;     | &#10004;
- worldColor             |VECTOR4     | &#10008;     | &#10008;
- worldMatrix            |MATRIX      | &#10008;     | &#10008;
- name                   |STRING      | &#10004;     | &#10008;
- sensitive              |BOOLEAN     | &#10004;     | &#10008;
- leaveRequired          |BOOLEAN     | &#10004;     | &#10008;
- inheritOrientation     |BOOLEAN     | &#10004;     | &#10008;
- inheritScale           |BOOLEAN     | &#10004;     | &#10008;
- colorMode              |NUMBER      | &#10004;     | &#10008;
- positionInheritance    |NUMBER      | &#10004;     | &#10008;
- drawMode               |NUMBER      | &#10004;     | &#10008;
- sizeMode               |NUMBER      | &#10004;     | &#10008;
- sizeModeFactor         |VECTOR3     | &#10004;     | &#10008;
-
-
-
-
- * @class Actor
- * @extends Handle
- */
-
-
-/**
- * Actors parent origin
- *
- * @property parentOrigin
- * @type dali Vector3
- * @default TOP_LEFT (0.0, 0.0, 0.5).
- */
-parentOrigin
-
-/**
- * Actors parent origin X
- *
- * @property parentOriginX
- * @readOnly
- * @type Number
- */
-parent - origin - x
-
-/**
- * Actors parent origin-y
- * @property parentOriginY
- * @readOnly
- * @type Number
- */
-parent - origin - y
-
-/**
- * Actors parent origin-z
- * @property parentOriginZ
- * @readOnly
- * @type Number
- */
-parent - origin - z
-
-/**
- * Actors anchor point
- * @property anchorPoint
- * @type dali Vector3
- * @default CENTER (0.5, 0.5, 0.5)
- */
-ANCHOR_POINT;
-
-/**
- * Actors anchor point x
- * @property anchorPointX
- * @type Number
- */
-ANCHOR_POINT_X
-
-/**
- * Actors anchor point y
- * @property anchorPointY
- * @type Number
- */
-ANCHOR_POINT_Y
-
-/**
- * Actors anchor point z
- * @property anchorPointZ
- * @type Number
- */
-ANCHOR_POINT_Z
-
-/**
- * Actors size
- * @property size
- * @type dali Vector3
- */
-SIZE
-
-
-/**
- * Actors width
- * @property sizeWidth
- * @type Number
- */
-SIZE_WIDTH
-
-/**
- * Actors height
- * @property sizeHeight
- * @type Number
- */
-SIZE_HEIGHT
-
-/**
- * Actors depth
- * @property sizeDepth
- * @type Number
- */
-SIZE_DEPTH
-
-
-/**
- * Actors position
- * @property position
- * @type dali Vector3
- */
-POSITION
-
-/**
- * Actors x position
- * @property positionX
- * @type Number
- */
-POSITION_X
-
-/**
- * Actors y position
- * @property positionY
- * @type Number
- */
-POSITION_Y
-
-/**
- * Actors z position
- * @property positionZ
- * @type Number
- */
-POSITION_Z
-
-
-/**
- * Actors world position
- * @property position
- * @type dali Vector3  ( read-only, not animatable )
- */
-WORLD_POSITION
-
-/**
- * Actors world x position
- * @property worldPositionX
- * @type Number ( read-only )
- */
-WORLD_POSITION_X
-
-/**
- * Actors world y position
- * @property worldPositionY
- * @type Number ( read-only )
- */
-WORLD_POSITION_Y
-
-/**
- * Actors world z position
- * @property worldPositionZ
- * @type Number ( read-only )
- */
-WORLD_POSITION_Z
-
-
-/**
- * Actors orientation
- * @property orientation
- * @type dali Rotation object
- */
-ORIENTATION
-
-
-/**
- * Actors world-orientation
- * @property worldOrientation
- * @type dali Rotation object ( read only)
- */
-WORLD_ORIENTATION
-
-/**
- * Actors scale
- * @property scale
- * @type dali Vector3
- */
-SCALE
-
-/**
- * Actors x scale
- * @property scaleX
- * @type Number
- */
-SCALE_X
-
-/**
- * Actors y scale
- * @property scaleY
- * @type Number
- */
-SCALE_Y
-
-/**
- * Actors z scale
- * @property scaleZ
- * @type Number
- */
-SCALE_Z
-
-/**
- * Actors world scale
- * @property worldScale
- * @type dali Vector3 ( read only )
- */
-WORLD_SCALE
-
-/**
- * Actors visible flag
- * If an actor is not visible, then the actor and its children will not be rendered.
- * This is regardless of the individual visibility values of the children i.e. an actor will only be
- * rendered if all of its parents have visibility set to true.
- *
- * @property visible
- * @type Boolean
- */
-VISIBLE
-
-/**
- * Actors color.
- * The final color of the actor depends on its color mode.
- * 4 components, red, green, blue and alpha. Each range from 0..1
- * @property color
- * @type dali Vector 4
- */
-COLOR
-
-/**
- * Actors red color
- * @property colorRed
- * @type Number  ( 0..1)
- */
-COLOR_RED
-
-/**
- * Actors green color
- * @property colorGreen
- * @type Number  ( 0..1)
- */
-COLOR_GREEN
-
-/**
- * Actors blue color
- * @property colorBlue
- * @type Number  ( 0..1)
- */
-COLOR_BLUE
-
-/**
- * Actors world color.
- * 4 components, red, green, blue and alpha. Each range from 0..1
- * @property worldColor
- * @type dali Vector 4 ( read only)
- */
-WORLD_COLOR
-
-/**
- * Actors name
- * @property name
- * @type String
- */
-
-/**
- * Actors sensitive flag
- * brief Sets whether an actor should emit touch event signals; @see SignalTouch().
- *
- * An actor is sensitive by default, which means that as soon as an application connects to the SignalTouch(),
- * the touch event signal will be emitted.
- *
- * If the application wishes to temporarily disable the touch event signal emission, then they can do so by calling
- *
- *    actor.sensitve = false;
- *
- * Then, to re-enable the touch event signal emission, the application should call:
- *
- *    actor.sensitive = true;
- *
- * @property sensitive
- * @type Boolean
- * @default true ( is sensistive )
- */
-SENSITIVE
-
-/**
- * Controls whether the actor should receive a notification when touch motion events leave
- * the boundary of the actor.
- *
- * Note: Need to connect to the SignalTouch to actually receive this event.
- *  Should be set to true if a Leave event is required
- * @type Boolean
- * @property leaveRequired
- * @default false, this is set to false as most actors do not require this.
- */
-LEAVE_REQUIRED
-
-/**
- * Set whether a child actor inherits it's parent's orientation.
- * @type Boolean
- * @property inheritOrientation
- * @default true
- */
-INHERIT_ORIENTATION,
-
-
-/**
- * Set whether a child actor inherits it's parent's scale.
- * @type Boolean
- * @property inheritScale
- * @default true
- */
-INHERIT_SCALE,
-
-
-/**
- * Set how the actor and its children should be drawn.
- *
- * Not all actors are renderable, but DrawMode can be inherited from any actor.
- * By default a renderable actor will be drawn as a 3D object. It will be depth-tested against
- * other objects in the world i.e. it may be obscured if other objects are in front.
- *
- * If OVERLAY_2D is used, the actor and its children will be drawn as a 2D overlay.
- * Overlay actors are drawn in a separate pass, after all non-overlay actors within the Layer.
- * For overlay actors, the drawing order is determined by the hierachy (depth-first search order),
- * and depth-testing will not be used.
- *
- * If STENCIL is used, the actor and its children will be used to stencil-test other actors
- * within the Layer. Stencil actors are therefore drawn into the stencil buffer before any other
- * actors within the Layer.
- *
- * @example
- *
- *      var actor.drawMode = dali.DRAW_MODE_NORMAL;     // binary 00. The default draw-mode
- *      var actor.drawMode = dali.DRAW_MODE_OVERLAY_2D; // binary 01. Draw the actor and its children as an overlay
- *      var actor.drawMode = dali.DRAW_MODE_STENCIL ;   // binary 11. Draw the actor and its children into the stencil buffer
- *
- *
- * @type Number
- * @property drawMode
- * @default 0 (Normal )
- */
-DRAW_MODE,
-
-
-/**
- * Sets the actor's color mode.
- *
- * This specifies whether the Actor uses its own color, or inherits
- * its parent color. The default is USE_OWN_MULTIPLY_PARENT_ALPHA.
- *
- * @example
- *    actor.colorMode = dali.COLOR_MODE_USE_OWN_COLOR; // Actor will use its own color
- *    actor.colorMode = dali.COLOR_MODE_USE_PARENT_COLOR;  // Actor will use its parent color
- *    actor.colorMode = dali. COLOR_MODE_USE_OWN_MULTIPLY_PARENT_COLOR; // Actor will blend its color with its parents color.
- *    actor.colorMode = dali.COLOR_MODE_USE_OWN_MULTIPLY_PARENT_ALPHA ;  // Actor will blend its alpha with its parents alpha. This means when parent fades in or out child does as well. This is the default.
- *
- *
- * @type Number
- * @property colorMode
- * @default 2 (USE_OWN_MULTIPLY_PARENT_ALPHA )
- */
-COLOR_MODE
-
-/**
- * Set the actors position inheritance mode.
- *
- * @example
- *    actor.positionInheritance = dali.POSITION_INHERITANCE_INHERIT_PARENT_POSITION;  // Actor will inherit its parent position. This is the default
- *    actor.positionInheritance = dali.POSITION_INHERITANCE_USE_PARENT_POSITION;      // Actor will copy its parent position. This is useful if many actors are stacked together in the same place. This option ignores parent origin and anchor point.
- *    actor.positionInheritance = dali.POSITION_INHERITANCE_USE_PARENT_POSITION_PLUS_LOCAL_POSITION; // Actor will copy its parent position and add local position. This is useful if many actors are stacked together in the same place with an offset.  This option ignores parent origin and anchor point.
- *    actor.positionInheritance = dali.POSITION_INHERITANCE_DONT_INHERIT_POSITION;           // Actor will not inherit position. Local position is treated as world position. This is useful if a constraint is used to override local position or if an actor is positioned globally. This option ignores parent origin, anchor point and local position.
- *
- * Switching this off means that using SetPosition() sets the actor's world position.
- * @type Number
- * @property positionInheritance
- * @default 0 (INHERIT_PARENT_POSITION )
- */
-POSTITION_INHERITANCE
-
-
-/**
- *  Defines how a child actor's size is affected by its parent's size.
- *
- * The default is to ignore the parent's size and use the size property of this actor.
- *
- * If USE_OWN_SIZE is used, this option is bypassed and the actor's size
- *     property is used.
- *
- * If SIZE_EQUAL_TO_PARENT is used, this actor's size will be equal to that
- *     of its parent. The actor's size property is ignored.
- *
- * If SIZE_RELATIVE_TO_PARENT is used, this actor's size will be based on
- *     its parent's size by multiplying the parent size by
- *     SizeModeFactor.
- *
- * If SIZE_FIXED_OFFSET_FROM_PARENT is used, this actor's size will be based on
- *     its parent's size plus SizeModeFactor.
- *
- *
- * @example
- *    actor.sizeMode = dali.USE_OWN_SIZE;
- *    actor.sizeMode = dali.SIZE_EQUAL_TO_PARENT;
- *    actor.sizeMode = dali.SIZE_RELATIVE_TO_PARENT;
- *    actor.sizeMode = dali.SIZE_FIXED_OFFSET_FROM_PARENT
- *
- * @type Number
- * @property sizeMode
- * @default 0 (dali.SIZE_MODE_USE_OWN_SIZE; )
- */
- SIZE_MODE
-
-/**
- *
- * @brief Sets the relative to parent size factor of the actor.
- *
- * This factor is only used when SizeMode is set to either:
- * SIZE_RELATIVE_TO_PARENT or SIZE_FIXED_OFFSET_FROM_PARENT.
- * This actor's size is set to the actor's parent size multipled by or added to this factor,
- * depending on SideMode (See SetSizeMode).
- * @type Vector3
- * @property sizeModeFactor
- */
-SIZE_MODE_FACTOR
diff --git a/plugins/dali-script-v8/docs/content/animation.js b/plugins/dali-script-v8/docs/content/animation.js
deleted file mode 100644 (file)
index a6bf12a..0000000
+++ /dev/null
@@ -1,246 +0,0 @@
-/**
- *
-## Animation API
-
-   DALi Animation can be used to animate the properties of any number of objects, typically Actors.
-
-The API supports functionality such as:
-
- - {{#crossLink "animation/play:method"}}{{/crossLink}}
- - {{#crossLink "animation/pause:method"}}{{/crossLink}}
- - {{#crossLink "animation/stop:method"}}{{/crossLink}}
- - {{#crossLink "animation/setLooping:method"}}{{/crossLink}}, set whether the animation should loop
- - {{#crossLink "animation/setSpeedFactor:method"}}{{/crossLink}}, speeds / slows down an animation
- - {{#crossLink "animation/setPlayRange:method"}}{{/crossLink}}, only play part of the animation between a set range
- - Key frame support. See {{#crossLink "animation/animateBetween:method"}}{{/crossLink}}
- - Path Animations. See {{#crossLink "path"}}Path {{/crossLink}}
- - Signals to be informed when an animation has finished.
- - animate multiple properties, owned by multiple objects with a single animation object
-  
-### Simple example of moving an actor to a set position
-
-```
-var myActor = new dali.TextActor( "hello world" );
-  
-myActor.parentOrigin = dali.CENTER;
-dali.stage.add( myActor );
-  
-var anim = new dali.Animation( 2 ); // 2 seconds
-  
-// we're animation the property position of the actor.
-anim.animateTo( myActor, "position", [100, 100, 0] );
-  
-function finished( animation )
-{
-  log("Animation finished \n");
-}
-  
-anim.on("finished", finished );
-  
-anim.play();
-```
-
-### Multiple actor example
-
-```
-// Following demonstrates:
-// - aimating multiple properties on an object (actor properties in this example)
-// - animating multiple objects at the same time (2 actors in the example)
-// - using the optional, animation options object to set a delay time and alpha function (easing)
-  
-// Sets the original position to be rotated and pushed into the distance
-  
-var myActor1 = new dali.TextActor( "Hello" );
-var myActor2 = new dali.TextActor( "from DALi" );
-  
-// centre both actors to the middle of the screen
-myActor1.parentOrigin = dali.CENTER;
-myActor2.parentOrigin =  dali.CENTER;
-myActor1.scale=[2,2,1]; // scale up x and y by 2
-myActor2.scale=[2,2,1]; // scale up x and y by 2
-
-  
-// reposition them to the left / right, and push them away from the camera
-myActor1.position=[-100,0,-2000];  // x = -100, y = 0 , z = -2000
-myActor2.position=[ 100,0,-2000];  // x = 100, y = 0 , z = -2000
-  
-// start with actor rotated by 180 about x & y axis, so they can twist into place
-function createAnimation() {
-  
-  var startRotation = new dali.Rotation(180, -180, 0);
-  myActor1.orientation = startRotation;
-  myActor2.orientation = startRotation;
-  
-  dali.stage.add( myActor1 );
-  dali.stage.add( myActor2 );
-  
-
-  var anim = new dali.Animation(1); // default duration is increased if length of all animations is greater than it.
-  
-  var animOptions = {
-      alpha: dali.ALPHA_FUNCTION_LINEAR,
-      delay: 0.5,     // used to delay the start of the animation
-      duration: 3,    // duration of the animation
-      };
-  
-  // move myActor1 z position back to 0
-  anim.animateTo(myActor1, "positionZ", 0, animOptions);
-  
-  //  rotate back to correct orientation
-  var endRotation = new dali.Rotation(0,0,0);
-  
-  animOptions.alpha = dali.ALPHA_FUNCTION_EASE_IN_OUT_SINE;
-  anim.animateTo(myActor1, "orientation", endRotation, animOptions);
-  
-  // Delay the myActor2  by  a second
-  animOptions.delay = 0.0;
-  animOptions.alpha = dali.ALPHA_FUNCTION_LINEAR;
-  anim.animateTo(myActor2, "positionZ", 0, animOptions);
-  
-  //  rotate back to correct orientation
-  animOptions.alpha = dali.ALPHA_FUNCTION_EASE_IN_OUT_SINE;
-  anim.animateTo(myActor2, "orientation", endRotation, animOptions);
-
-  return anim;
-}
-
-
-var anim = createAnimation();
-
-anim.play();
-
-```
-
-### GL-ES shader animation example
-
-The example below does the following with a single animation object:
-
- - rotates the image view
- - magnifies and color shifts the image using a fragment shader
-  
-![ ](../assets/img/shaders/shader-animation.png)
-
-  
-
-```
-// Creates an image view in the centre of the stage
-createImageView = function() {
-  
-  var imageView = new dali.Control("ImageView");
-  imageView.parentOrigin = dali.CENTER;
-  dali.stage.add( imageView );
-  
-  return imageView;
-}
-  
-// Creates a simple fragment shader that has 2 uniforms.
-// uColorShift which can add a color to pixel
-// uScale which can simulate zooming into the texture
-  
-createColorShiftAndZoomEffect = function() {
-  
-  var fragShader =
-      "varying vec2 vTexCoord;\
-       uniform sampler2D sTexture;\
-       uniform vec4 uColor;\
-       uniform lowp vec4 uColorShift;\
-       uniform lowp vec2 uScale;\
-       void main() \
-       {           \
-         gl_FragColor = texture2D( sTexture, vTexCoord * uScale ) * uColor + uColorShift; \
-       }";
-  
-  // vertexShader = "";  // vertex shader   ( optional)
-  // fragmentShader = "";  // fragment shader   ( optional)
-  // hints =   // shader hints   ( optional)
-  //       [ "OUTPUT_IS_TRANSPARENT",   // Might generate transparent alpha from opaque inputs
-  //         "MODIFIES_GEOMETRY" ];     // Might change position of vertices, this option disables any culling optimizations
-  
-  var shader = {
-      "fragmentShader": fragShader,
-      "hints" : "OUTPUT_IS_TRANSPARENT"
-  };
-  
-  return shader;
-}
-
-createShaderAnimation = function( imageView, color, zoom, duration, delay )
-{
-  var shaderAnim = new dali.Animation(duration+delay);
-
-  var animOptions = {
-     alpha: dali.ALPHA_FUNCTION_EASE_IN_OUT_SINE,
-     delay: delay,
-     duration: duration,
-  };
-
-  // animate the color uniform
-  shaderAnim.animateTo( imageView, "uColorShift", color, animOptions);
-
-  // zoom in and out of the image while applying the color shift
-  shaderAnim.animateTo( imageView, "uScale", zoom, animOptions);
-
-  return shaderAnim;
-}
-  
-var imageView = createImageView();
-  
-var shader = createColorShiftAndZoomEffect();
-  
-var image = {
-    "visualType" : "IMAGE",
-    "url" : getImageDirectory()+"gallery-medium-50.jpg",
-    "shader" : shader
-};
-  
-imageView.image = image; // assign the shader to imageView
-  
-// register the color shift property so we can animate it
-// default the color shift to zero, so it has no effect
-imageView.registerAnimatableProperty("uColorShift", [0, 0, 0, 0]);
-  
-// register the zoom property so we can animate it
-// default to 1,1 so no zoom is applied
-imageView.registerAnimatableProperty("uScale", [1, 1]);
-  
-// create the shader animation
-var zoom = [0.5,0.5];  // zoom into the image by 2
-var color = dali.COLOR_BLUE; // color shift the image to blue
-var duration = 5; // 5 seconds
-var delay = 5; // wait 1 second before starting
-var shaderAnim = createShaderAnimation( imageView, color,zoom, duration, delay);
-  
-// also rotate the imageView 90 degrees at the same time.
-var rotation = new dali.Rotation(90,0,0,1);
-shaderAnim.animateTo(imageView, "orientation", rotation, { alpha:dali.ALPHA_FUNCTION_LINEAR, duration:duration, delay:delay });
-
-
-shaderAnim.play();
-
-```
-
-
-### Animation alpha functions
-
-| Name                             | Description    |
-|----------------------------------|----------------|
-|ALPHA_FUNCTION_DEFAULT            |Linear          |
-|ALPHA_FUNCTION_LINEAR             |Linear          |
-|ALPHA_FUNCTION_REVERSE            |Reverse linear  |
-|ALPHA_FUNCTION_EASE_IN_SQUARE     |Speeds up and comes to a sudden stop (Square) |
-|ALPHA_FUNCTION_EASE_OUT_SQUARE    |Sudden start and slows to a gradual stop (Square) |
-|ALPHA_FUNCTION_EASE_IN            |Speeds up and comes to a sudden stop |
-|ALPHA_FUNCTION_EASE_OUT           |Sudden start and slows to a gradual stop|
-|ALPHA_FUNCTION_EASE_IN_OUT        |Speeds up and slows to a gradual stop|
-|ALPHA_FUNCTION_EASE_IN_SINE       |Speeds up and comes to a sudden stop|
-|ALPHA_FUNCTION_EASE_OUT_SINE      |Sudden start and slows to a gradual stop|
-|ALPHA_FUNCTION_EASE_IN_OUT_SINE   |Speeds up and slows to a gradual stop |
-|ALPHA_FUNCTION_BOUNCE             |Sudden start, loses momentum and ** Returns to start position ** |
-|ALPHA_FUNCTION_SIN                |full 360 revolution ** Returns to start position ** |
-|ALPHA_FUNCTION_EASE_OUT_BACK      |Sudden start, exceed end position and return to a gradual stop|
-
-
-
- @class Animation
-
-*/
diff --git a/plugins/dali-script-v8/docs/content/camera-actor.js b/plugins/dali-script-v8/docs/content/camera-actor.js
deleted file mode 100644 (file)
index 71b750b..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- ## Camera Actor API ( extends Actor API)
-
-
-Allows the developer to use actor semantics to control a camera.
-
-There are two types of camera actor, FREE_LOOK and LOOK_AT_TARGET. By default
-the camera actor will be FREE_LOOK.
-
-A FREE_LOOK camera uses actor's orientation to control where the camera is looking.
-If no additional rotations are specified, the camera looks in the negative Z direction.
-
-For LOOK_AT_TARGET the actor's orientation is ignored, instead the camera looks at TARGET_POSITION
-in world coordinates.
-```
-// get the camera currently used
-var defaultCamera = dali.stage.getRenderTaskList().getTask(0).getCameraActor();
-  
-var fov = defaultCamera.fieldOfView;
-  
-// increase field of view by 10%
-defaultCamera.fieldOfView = fov * 1.1;
-  
-// shift the camera to the left, the rendered scene will shift to the right
-defaultCamera.x -= 10;
-```
-  
-### Camera Actor Specific Properties
-
-| Name                   |    Type    | Writable     | Animatable|
-|------------------------|------------|--------------|-----------|
-| type                  |  dali.CAMERA_FREE_LOOK or  dali.CAMERA_LOOK_AT_TARGET  | &#10004; | &#10008; |
-| projectionMode        | dali.CAMERA_ORTHOGRAPHIC_PROJECTION or dali.CAMERA_PERSPECTIVE_PROJECTION  | &#10004;| &#10008; |
-| fieldOfView           | FLOAT      | &#10004; | &#10008;  |
-| aspectRatio           | FLOAT      | &#10004; | &#10008;  |
-| nearPlaneDistance     | FLOAT      | &#10004; | &#10008;  |
-| farPlaneDistance      | FLOAT      | &#10004; | &#10008;  |
-| leftPlaneDistance     | FLOAT      | &#10004; | &#10008;  |
-| rightPlaneDistance    | FLOAT      | &#10004; | &#10008;  |
-| topPlaneDistance      | FLOAT      | &#10004; | &#10008;  |
-| bottomPlaneDistance   | FLOAT      | &#10004; | &#10008;  |
-| targetPosition        | VECTOR3    | &#10004; | &#10008;  |
-| projectionMatrix      | MATRIX     | &#10004; | &#10008;  |
-| viewMatrix            | MATRIX     | &#10004; | &#10008;  |
-| invertYAxis           | BOOLEAN    | &#10004; | &#10008;  |
-
-
-
-  @class CameraActor
-  @extends Actor
- */
diff --git a/plugins/dali-script-v8/docs/content/constants.js b/plugins/dali-script-v8/docs/content/constants.js
deleted file mode 100644 (file)
index 19359bd..0000000
+++ /dev/null
@@ -1,217 +0,0 @@
-/**
- *
-### Dali Constants
-
-Constants accessible under the dali global object.
-  
-    actor.parentOrigin = dali.TOP_LEFT;
-    actor.color = dali.COLOR_RED;
-    actor.setBlendFunc( dali.BLEND_FACTOR_ONE_MINUS_SRC_COLOR, dali.BLEND_FACTOR_SRC_ALPHA_SATURATE );
-
-
-| Constant Name | value |
-|---------------|-------|
-|  ** actor.parentOrigin and actor.anchorPoint  **      |                      |
-|TOP_LEFT            |  (0.0f, 0.0f, 0.5f)  |
-|TOP_CENTER          |  (0.5f, 0.0f, 0.5f)  |
-|TOP_RIGHT          |  (1.0f, 0.0f, 0.5f)  |
-|CENTER_LEFT         |  (0.0f, 0.5f, 0.5f)  |
-|CENTER              |  (0.5f, 0.5f, 0.5f)  |
-|CENTER_RIGHT        |  (1.0f, 0.5f, 0.5f)  |
-|BOTTOM_LEFT         |  (0.0f, 1.0f, 0.5f)  |
-|BOTTOM_CENTER       |  (0.5f, 1.0f, 0.5f)  |
-|BOTTOM_RIGHT        |  (1.0f, 1.0f, 0.5f)  |
-
-
-|** Vector3 ** | |
-|VECTOR3_ONE                  |  (1.0f, 1.0f, 1.0f)         |
-|VECTOR3_XAXIS                |  (1.0f, 0.0f, 0.0f)         |
-|VECTOR3_YAXIS                |  (0.0f, 1.0f, 0.0f)         |
-|VECTOR3_ZAXIS                |  (0.0f, 0.0f, 1.0f)         |
-|VECTOR3_NEGATIVE_XAXIS       |  (-1.0f, 0.0f, 0.0f)        |
-|VECTOR3_NEGATIVE_YAXIS       |   (0.0f, -1.0f, 0.0f)       |
-|VECTOR3_NEGATIVE_ZAXIS       |   (0.0f, 0.0f, -1.0f)       |
-|VECTOR3_ZERO                 |   (0.0f, 0.0f, 0.0f)        |
-
-|**  Colors **| -|
-|COLOR_BLACK              |    ( 0.0f, 0.0f, 0.0f, 1.0f )     |
-|COLOR_WHITE              |    ( 1.0f, 1.0f, 1.0f, 1.0f )     |
-|COLOR_RED                |    (   1.0f, 0.0f, 0.0f, 1.0f )   |
-|COLOR_GREEN              |    ( 0.0f, 1.0f, 0.0f, 1.0f )     |
-|COLOR_BLUE               |    (  0.0f, 0.0f, 1.0f, 1.0f )    |
-|COLOR_YELLOW             |    (  1.0f, 1.0f, 0.0f, 1.0f )    |
-|COLOR_MAGENTA            |     ( 1.0f, 0.0f, 1.0f, 1.0f )    |
-|COLOR_CYAN               |    (    0.0f, 1.0f, 1.0f, 1.0f )  |
-|COLOR_TRANSPARENT        |  ( 0.0f, 0.0f, 0.0f, 0.0f )       |
-
-| ** actor.colorMode constants  **  | -|
-| COLOR_MODE_USE_OWN_COLOR,                  | integer value  |
-| COLOR_MODE_USE_PARENT_COLOR,               | integer value  |
-| COLOR_MODE_USE_OWN_MULTIPLY_PARENT_COLOR,  | integer value  |
-| COLOR_MODE_USE_OWN_MULTIPLY_PARENT_ALPHA,  | integer value  |
-
-|**actor.positionInheritance  **| |
-|POSITION_INHERITANCE_INHERIT_PARENT_POSITION,       | integer value |
-|POSITION_INHERITANCE_USE_PARENT_POSITION,           | integer value |
-|POSITION_INHERITANCE_USE_PARENT_POSITION_PLUS_LOCAL_POSITION, | integer value |
-|POSITION_INHERITANCE_DONT_INHERIT_POSITION,         | integer value |
-
-|**actor.drawMode  **| |
-|DRAW_MODE_NORMAL                         | integer value |
-|DRAW_MODE_OVERLAY_2D                     | integer value |
-|DRAW_MODE_STENCIL                        | integer value |
-
-|**Image load policy  **| |
-|**actor.SetBlendFunc() ** | |
-|BLEND_FACTOR_ZERO                        | integer value |
-|BLEND_FACTOR_ONE                         | integer value |
-|BLEND_FACTOR_SRC_COLOR                   | integer value |
-|BLEND_FACTOR_ONE_MINUS_SRC_COLOR         | integer value |
-|BLEND_FACTOR_SRC_ALPHA                   | integer value |
-|BLEND_FACTOR_ONE_MINUS_SRC_ALPHA         | integer value |
-|BLEND_FACTOR_DST_ALPHA                   | integer value |
-|BLEND_FACTOR_ONE_MINUS_DST_ALPHA         | integer value |
-|BLEND_FACTOR_DST_COLOR                   | integer value |
-|BLEND_FACTOR_ONE_MINUS_DST_COLOR         | integer value |
-|BLEND_FACTOR_SRC_ALPHA_SATURATE          | integer value |
-|BLEND_FACTOR_CONSTANT_COLOR              | integer value |
-|BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR    | integer value |
-|BLEND_FACTOR_CONSTANT_ALPHA              | integer value |
-|BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA    | integer value |
-
-|**actor.SetBlendMode()  **| |
-|BLENDING_OFF                              | integer value |
-|BLENDING_AUTO                             | integer value |
-|BLENDING_ON                               | integer value |
-
-|**actor.SetCullFace()** | |
-|CULL_FACE_DISABLE          | integer value  |
-|CULL_FRONT_FACE           | integer value  |
-|CULL_BACK_FACE            | integer value  |
-|CULL_FRONT_AND_BACK_FACE  | integer value  |
-
-|**actor.sizeMode** | |
-|USE_OWN_SIZE                   | integer value  |
-|SIZE_EQUAL_TO_PARENT           | integer value  |
-|SIZE_RELATIVE_TO_PARENT        | integer value  |
-|SIZE_FIXED_OFFSET_FROM_PARENT  | integer value  |
-
-
-|**animation.SetEndAction( mode ) ** | |
-|ANIMATION_BAKE             | integer value  |
-|ANIMATION_DISCARD          | integer value  |
-|ANIMATION_BAKE_FINAL       | integer value  |
-
-|**camera.type ** | |
-|CAMERA_FREE_LOOK             | integer value  |
-|CAMERA_LOOK_AT_TARGET        | integer value  |
-
-|**camera.projectionMode ** | |
-|CAMERA_PERSPECTIVE_PROJECTION  | integer value  |
-|CAMERA_ORTHOGRAPHIC_PROJECTION | integer value  |
-
-
-|** Pixel formats     **          |  |
-| PIXEL_FORMAT_A8                            | integer value  |
-| PIXEL_FORMAT_L8                            | integer value  |
-| PIXEL_FORMAT_LA88                          | integer value  |
-| PIXEL_FORMAT_RGB565                        | integer value  |
-| PIXEL_FORMAT_BGR565                        | integer value  |
-| PIXEL_FORMAT_RGBA4444                      | integer value  |
-| PIXEL_FORMAT_BGRA4444                      | integer value  |
-| PIXEL_FORMAT_RGBA5551                      | integer value  |
-| PIXEL_FORMAT_BGRA5551                      | integer value  |
-| PIXEL_FORMAT_RGB888                        | integer value  |
-| PIXEL_FORMAT_RGB8888                       | integer value  |
-| PIXEL_FORMAT_BGR8888                       | integer value  |
-| PIXEL_FORMAT_RGBA8888                      | integer value  |
-| PIXEL_FORMAT_BGRA8888                      | integer value  |
-
-| **Pixel Compressed formats                 ** |  |
-| PIXEL_FORMAT_COMPRESSED_R11_EAC                 | integer value           |
-| PIXEL_FORMAT_COMPRESSED_SIGNED_R11_EAC          | integer value           |
-| PIXEL_FORMAT_COMPRESSED_RG11_EAC                | integer value           |
-| PIXEL_FORMAT_COMPRESSED_SIGNED_RG11_EAC         | integer value           |
-| PIXEL_FORMAT_COMPRESSED_RGB8_ETC2               | integer value           |
-| PIXEL_FORMAT_COMPRESSED_SRGB8_ETC2              | integer value           |
-| PIXEL_FORMAT_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2    | integer value  |
-| PIXEL_FORMAT_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2   | integer value  |
-| PIXEL_FORMAT_COMPRESSED_RGBA8_ETC2_EAC                   | integer value  |
-| PIXEL_FORMAT_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC            | integer value  |
-| PIXEL_FORMAT_COMPRESSED_RGB8_ETC1                        | integer value  |
-| PIXEL_FORMAT_COMPRESSED_RGB_PVRTC_4BPPV1                 | integer value  |
-
-|**Texture filtering mode ** | |
-|FILTER_MODE_NONE                     | integer value  |
-|FILTER_MODE_DEFAULT                  | integer value  |
-|FILTER_MODE_NEAREST                  | integer value  |
-|FILTER_MODE_LINEAR                   | integer value  |
-
-|**Sampler wrap mode ** | |
-|WRAP_MODE_DEFAULT                    | integer value  |
-|WRAP_MODE_CLAMP_TO_EDGE              | integer value  |
-|WRAP_MODE_REPEAT                     | integer value  |
-|WRAP_MODE_MIRRORED_REPEAT            | integer value  |
-
-|**Material face culling mode ** | |
-|MATERIAL_NONE                        | integer value  |
-|MATERIAL_CULL_BACK                   | integer value  |
-|MATERIAL_CULL_FRONT                  | integer value  |
-|MATERIAL_CULL_BACK_AND_FRONT         | integer value  |
-
-|**Geometry primitives type ** | |
-|GEOMETRY_POINTS                      | integer value  |
-|GEOMETRY_LINES                       | integer value  |
-|GEOMETRY_LINE_LOOP                   | integer value  |
-|GEOMETRY_LINE_STRIP                  | integer value  |
-|GEOMETRY_TRIANGLES                   | integer value  |
-|GEOMETRY_TRIANGLE_FAN                | integer value  |
-|GEOMETRY_TRIANGLE_STRIP              | integer value  |
-
-|**Property type ** | |
-|PROPERTY_NONE                        | none  |
-|PROPERTY_BOOLEAN                     | integer value  |
-|PROPERTY_FLOAT                       | float value  |
-|PROPERTY_INTEGER                     | integer value  |
-|PROPERTY_VECTOR2                     | Array[ float, float ] |
-|PROPERTY_VECTOR3                     | Array[ float, float, float ]  |
-|PROPERTY_VECTOR4                     | Array[ float, float, float, float ]  |
-|PROPERTY_MATRIX3                     | Object         |
-|PROPERTY_MATRIX                      | Object         |
-|PROPERTY_RECTANGLE                   | Object |
-|PROPERTY_ORIENTATION                 | Object  |
-|PROPERTY_STRING                      | String  |
-|PROPERTY_ARRAY                       | Object   |
-|PROPERTY_MAP                         | Object  |
-
-|**Layout dimensions ** | |
-|DIMENSION_WIDTH                      | integer value  |
-|DIMENSION_HEIGHT                     | integer value  |
-
-|**Item layout type ** | |
-|ITEM_LAYOUT_LIST                     | integer value  |
-|ITEM_LAYOUT_GRID                     | integer value  |
-
-|**Scroll direction bias ** | |
-|DIRECTION_BIAS_NONE                  | integer value  |
-|DIRECTION_BIAS_LEFT                  | integer value  |
-|DIRECTION_BIAS_RIGHT                 | integer value  |
-
-|**Animation alpha function ** | |
-|ALPHA_FUNCTION_DEFAULT               | integer value  |
-|ALPHA_FUNCTION_LINEAR                | integer value  |
-|ALPHA_FUNCTION_REVERSE               | integer value  |
-|ALPHA_FUNCTION_EASE_IN_SQUARE        | integer value  |
-|ALPHA_FUNCTION_EASE_OUT_SQUARE       | integer value  |
-|ALPHA_FUNCTION_EASE_IN               | integer value  |
-|ALPHA_FUNCTION_EASE_OUT              | integer value  |
-|ALPHA_FUNCTION_EASE_IN_OUT           | integer value  |
-|ALPHA_FUNCTION_EASE_IN_SINE          | integer value  |
-|ALPHA_FUNCTION_EASE_OUT_SINE         | integer value  |
-|ALPHA_FUNCTION_EASE_IN_OUT_SINE      | integer value  |
-|ALPHA_FUNCTION_BOUNCE                | integer value  |
-|ALPHA_FUNCTION_SIN                   | integer value  |
-|ALPHA_FUNCTION_EASE_OUT_BACK         | integer value  |
-
- * @class Constants
- */
diff --git a/plugins/dali-script-v8/docs/content/dali.js b/plugins/dali-script-v8/docs/content/dali.js
deleted file mode 100644 (file)
index e03a9d2..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/**
- *
-
-## DALi 3D ( Dynamic Animation Library )
-
-DALi is a quick and easy way of allowing developers to create Rich UI Applications like:
-
- + Image & Video galleries
- + Music players
- + Games
- + Maps
- + Homescreens / launch pads
- + Advanced watch faces for wearable devices
-  
-
-DALi is based on OpenGL ES 2.0 & 3.0, however it hides the complexity of
-the OpenGL API from developers and provides a clean cross-platform JavaScript framework.
-
-+ Create Images, Text and Meshes
-+ Create shaders using GLSL
-+ Provide multiple cameras and render targets
-+ Provides Layers to aid in 2D UI layout
-+ Easy to use Animation framework
-+ Automatic background loading of resources ( images / text / meshes )
-+ Runs all animations in a seperate thread. This helps maintain 60 FPS even if JavaScript is performing a long operation ( e.g. Garbage Collection ).
-+ Provides keyboard / touch / mouse handling
-  
-![Screen shots](../assets/img/screen-shot.png)
-
-## Running JavaScript from DALi C++ API
-```
-mScript = Dali::Toolkit::Script::New();
-  
-mScript.ExecuteFile( mScriptFileName);
-```
-
-## Actors and the Stage
-
-A DALi application uses a hierachy of Dali::Actor objects to position visible content.  An actor inherits a position relative to its parent, and can be moved relative to this point.  UI controls can be built by combining multiple actors.
-
-To display the contents of an actor, it must be connected to the Dali::Stage.  This provides an invisible root (top-level) actor, to which all other actors are added.  A direct or indirect child of the root actor is considered "onStage".  Multi-touch events are received through signals emitted by on-stage actors.
-
-The following example shows how to connect a new actor to the stage:
-```
-       var actor = new dali.actor();
-  
-       dali.stage.add(actor);
-```
-## The Coordinate System
-
-The Stage has a 2D size, which matches the size of the application window.  The default coordinate system in DALi has the origin at the top-left corner, with positive X to right, and position Y going
-downwards.  This is intended to be convenient when laying-out 2D views.
-
-![Screen shots](../assets/img/coordinate-system-and-stage.png)
-
-
- * @module DALi
- * @main  DALi
- */
diff --git a/plugins/dali-script-v8/docs/content/helpers.js b/plugins/dali-script-v8/docs/content/helpers.js
deleted file mode 100644 (file)
index 78b37c2..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-module.exports = {
-    daliName: function() {
-        return "dali";
-    }
-};
diff --git a/plugins/dali-script-v8/docs/content/image-view.js b/plugins/dali-script-v8/docs/content/image-view.js
deleted file mode 100644 (file)
index 66f2240..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- *
-## ImageView API
-
-   DALi ImageView can be used to display an image.
-
-   It is preferable to set a valid size to the image for efficiency. However, do not set size
-   that is bigger than the actual image size, as the up-scaling is not available, the content
-   of the area not covered by actual image is undefined and it will not be cleared.
-
-  
-### Simple example of creating an ImageView
-
-```
-var imageView = new dali.Control("ImageView");
-  
-imageView.image = "myImage.jpg";
-imageView.parentOrigin = dali.CENTER;
-imageView.anchorPoint = dali.CENTER;
-  
-dali.stage.add( imageView );
-```
-
-### Advanced example of creating an ImageView and applying a GL-ES shader to it
-
-```
-// vertexShader = "";  // vertex shader   ( optional)
-// fragmentShader = "";  // fragment shader   ( optional)
-// hints =   // shader hints   ( optional)
-//       [ "OUTPUT_IS_TRANSPARENT",   // Might generate transparent alpha from opaque inputs
-//         "MODIFIES_GEOMETRY" ];     // Might change position of vertices, this option disables any culling optimizations
-  
-var shader = {
-    "vertexShader": myVertexShader,
-    "fragmentShader": myFragmentShader,
-    "hints" : myHints
-};
-  
-var imageView = new dali.Control("ImageView");
-imageView.parentOrigin = dali.CENTER;
-imageView.anchorPoint = dali.CENTER;
-imageView.size = imageViewSize; // If not set, it will use either the natural image size or the desired image size if any
-dali.stage.add( imageView );
-  
-var image = {
-    "visualType" : "IMAGE",
-    "url" : "myImage.jpg",
-    "desiredWidth" : desiredWidth,   // The desired image width while loading (optional but preferable to set for efficiency)
-    "desiredHeight" : desiredHeight,   // The desired image height while loading (optional but preferable to set for efficiency)
-    "shader" : shader  // Optional
-};
-  
-imageView.image = image; // assign the image and shader to imageView
-
-```
-
-
- @class ImageView
- @extends Actor
-
-*/
diff --git a/plugins/dali-script-v8/docs/content/image.js b/plugins/dali-script-v8/docs/content/image.js
deleted file mode 100644 (file)
index e5810de..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
- *
-## Image API
-
-An Image object represents a resource that can be added to Material.
-  
-The image is discarded when all Materials using the Image object are discarded.
-  
-Note: if a resource was shared between Image objects it exists until its last reference is gone.
-  
-Image objects are responsible for the underlying resource's lifetime.
-  
-### The hierarchy of Image is:
-
-- {{#crossLink "image"}}Image base class {{/crossLink}} provides basic functionality
- - {{#crossLink "ResourceImage"}}ResourceImage {{/crossLink}} used for loading image files and nine-patch files
- - {{#crossLink "BufferImage"}}BufferImage {{/crossLink}} used for generating your own image
- - {{#crossLink "FrameBufferImage"}}FrameBufferImage {{/crossLink}} contains the result of an 'off screen' render pass of a RenderTask.
-
-  
-### Example:
-```
-// Create a resource image with a given URL
-var image = new dali.ResourceImage( {url: "background.png"} );
-  
-// Create materials that specifie the visual properties of the renderer.
-var material1 = new dali.Material();
-var material2 = new dali.Material();
-  
-// Add images as texture to be used by the materials
-material1.addTexture( image, "sTexture" );
-material2.addTexture( image, "sTexture" );
-
-```
-The API supports functionality such as:
-
-+ {{#crossLink "image/Image:method"}}new dali.ResourceImage{{/crossLink}}
-+ {{#crossLink "image/getWidth:method"}}{{/crossLink}}
-+ {{#crossLink "image/getHeight:method"}}{{/crossLink}}
-  
-### 9 patch images
-
-The Image class also has support for loading 9 patch Images if the filename contains .9.
-e.g.
-```
-var blackFrame = new dali.ResourceImage( {url:"black-frame.9.png"} );
-var borderNinePatch = new dali.ResourceImage( {url:"border.9.png"} );
-```
-The nine patch image will scale automatically with the size of the actor.
-  
-Tool for making 9 patches
-  
-  http://romannurik.github.io/AndroidAssetStudio/nine-patches.html
-  
-More information on them:
-  
-  http://radleymarx.com/blog/simple-guide-to-9-patch/
-  
-  http://developer.android.com/tools/help/draw9patch.html
-  
-
-
- @class Image
- */
diff --git a/plugins/dali-script-v8/docs/content/item-factory.js b/plugins/dali-script-v8/docs/content/item-factory.js
deleted file mode 100644 (file)
index b15c1f1..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-/**
- *
-## ItemFactory API
-
- ItemFactory is for storing the data of {{#crossLink "ItemView"}}ItemView{{/crossLink}}
- and creating actors for ItemView on request. Each item in ItemView is identified by a
- unique ID, and has a linear order from 0.
- A JSON file should be provided to ItemFactory which defines the templates of items
- to be used to create the actors. Multiple templates can be defined in the JSON file
- for different type of items.
-### Simple example of creating a JSON template for items
-```
-  {
-    "templates":
-    {
-      "template-item":
-      {
-        "name":"item",
-        "type":"Actor",
-        "position":[0,0,0],
-        "anchorPoint":"TOP_LEFT",
-        "parentOrigin":"TOP_LEFT",
-        "actors":
-         [
-          {
-            "name":"icon",
-            "type":"ImageView",
-            "image":
-            {
-              "visualType" : "IMAGE",
-              "url": "{icon_path}"
-            },
-            "position":[20.0, 0.0, 0.0],
-            "size":[70.0, 70.0, 0.0],
-            "color":[1.0,1.0,1.0,1.0],
-            "anchorPoint":"CENTER_LEFT",
-            "parentOrigin":"CENTER_LEFT",
-            "actors":
-            [
-              {
-                "name":"title",
-                "anchorPoint":"CENTER_LEFT",
-                "parentOrigin":"CENTER_RIGHT",
-                "type":"TextLabel",
-                "position": [30.0, 0.0, 0.0],
-                "size":[200.0, 70.0, 0.0],
-                "pointSize":30,
-                "fontFamily":"HelveticaNeue",
-                "fontStyle":"Bold",
-                "horizontalAlignment":"BEGIN",
-                "verticalAlignment":"CENTER",
-                "textColor": [1.0,0.0,1.0,1.0],
-                "text":"{title_text}"
-              }
-            ]
-          }
-        ]
-      }
-    }
-  }
-```
- The data of items should be provided to ItemFactory as an array of property maps
- in which each map contains the data for each item, including the template to be used
- to build the actor and the pairs of key/value to be used to replace the constants
- defined in the template. The order of property maps in the array represents the actual
- order of items in ItemView.
- ### Example of defining the data of an ItemView with two items
-```
-  var itemViewData = [
-                       { "template" : "template-item",
-                         "icon_path" : "icon0.png",
-                         "title_text" : "Item 0" },
-                       { "template" : "template-item",
-                         "icon_path" : "icon1.png",
-                         "title_text" : "Item 1" }
-                     ];
-```
- This means ItemFactory will use the template "template-item" defined in the JSON file
- to create the item for ItemView and replace the constants "icon_path" and "title_text"
- in the template with their actual values, e.g. "icon0.png" and "Item 0". Each item can
- have different template and different data.
- ### Example of creating an ItemFactory with the above JSON template and link it with an ItemView
-
-![ ](../assets/img/item-view/list.png)
-
-```
-  // Define the data of 100 items
-  var itemViewData = [];
-  for (var itemId = 0; itemId < 100; itemId++)
-  {
-    var itemData = {};
-    itemData["template"] = "template-item";
-    itemData["icon_path"] = "icon" + itemId + ".png";
-    itemData["title_text"] = "Item " + itemId;
-    itemViewData[itemId] = itemData;
-  }
-  // Create the item factory and set the JSON template file and item view data
-  var itemFactory = new dali.ItemFactory();
-  itemFactory.jsonTemplateFile = "./item-template.json"; // Set the JSON template file
-  itemFactory.data = itemViewData; // Set the ItemView data
-  // Create the item view with the given item factory
-  var itemView = new dali.Control("ItemView", itemFactory);
-  itemView.size = [stageSize.x, stageSize.y, 0.0];
-  itemView.parentOrigin = dali.CENTER_LEFT;
-  itemView.anchorPoint = dali.CENTER_LEFT;
-  dali.stage.add( itemView );
-
-  // Add a list layout to ItemView (multiple layouts can be added to the same ItemView)
-  itemView.addLayout(dali.ITEM_LAYOUT_LIST);
-  // Set custom item size for the list layout
-  // If set, this will overide the predefined item size in the list layout
-  itemView.setItemSize(0, [350, 100, 0]); // 0 means the first layout added to ItemView
-  // Acticate the list layout (which will layout the items as a list)
-  itemView.activateLayout(0, itemView.size); // 0 means the first layout added to ItemView
-```
- ### Example of changing the data of items in ItemView dynamically
-```
-  var data = itemFactory.data;
-  data[itemId]["icon_path"] = "new-icon.png";
-  data[itemId]["title_text"] = "New Item";
-  itemFactory.data = data; // ItemView will update the changed items immediately
-```
- @class ItemFactory
-
-*/
-
-/**
- * Sets the file name of JSON template that contains the templates for items.
- *
- * @example
- *    itemFactory.jsonTemplateFile = "item-template.json"; // ItemFactory will look for the template from this JSON file
- *
- * @type String
- * @property jsonTemplateFile
- */
-JSON_TEMPLATE_FILE
-
-/**
- * Sets the data of ItemView
- *
- *  The data is an array of property maps in which each map contains the data
- *  for each item, including the template to be used to build the actor and
- *  the pairs of key/value to be used to replace the constants defined in the
- *  template. The order of property maps in the array represents the actual
- *  order of items in ItemView.
- *
- * @example
- *   var itemViewData = [
- *                        { "template" : "template-item",
- *                          "icon_path" : "icon0.png",
- *                          "title_text" : "Item 0" },
- *                        { "template" : "template-item",
- *                          "icon_path" : "icon1.png",
- *                          "title_text" : "Item 1" }
- *                     ];
- *
- *    itemFactory.data = itemViewData; // ItemFactory will create items from this data
- *
- * @type Array
- * @property data
- */
-DATA
diff --git a/plugins/dali-script-v8/docs/content/item-view.js b/plugins/dali-script-v8/docs/content/item-view.js
deleted file mode 100644 (file)
index 776c5ea..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- *
-## ItemView API
-
- ItemView is a scrollable layout container with built-in layouts to determine
- the logical position of each item in a layout.
- Actors are provided from an external {{#crossLink "ItemFactory"}}ItemFactory{{/crossLink}},
- to display the currently visible items. ItemFactory is for storing the data of ItemView and
- creating actors for ItemView on request. Each item in ItemView is identified by a unique ID,
- and has a linear order from 0.
- ### Example of creating an ItemView (see {{#crossLink "ItemFactory"}}ItemFactory{{/crossLink}} API for a full example)
-```
-  // Define the data of 100 items
-  var itemViewData = [];
-  for (var itemId = 0; itemId < 100; itemId++)
-  {
-    var itemData = {};
-    itemData["template"] = "template-item";
-    itemData["title_text"] = "Item " + itemId;
-    itemViewData[itemId] = itemData;
-  }
-  // Create an item factory and set the JSON template file and item view data
-  var itemFactory = new dali.ItemFactory();
-  itemFactory.jsonTemplateFile = "./item-template.json"; // Set the JSON template file
-  itemFactory.data = itemViewData; // Set the ItemView data
-  // Create the item view with the given item factory
-  var itemView = new dali.Control("ItemView", itemFactory);
-  itemView.size = [stageSize.x, stageSize.y, 0.0];
-  itemView.parentOrigin = dali.CENTER_LEFT;
-  itemView.anchorPoint = dali.CENTER_LEFT;
-  dali.stage.add( itemView );
-  // Add a scroll bar to ItemView (optional)
-  var scrollBar = new dali.Control("ScrollBar");
-  scrollBar.parentOrigin = dali.TOP_RIGHT;
-  scrollBar.anchorPoint = dali.TOP_RIGHT;
-  scrollBar.widthResizePolicy = "FIT_TO_CHILDREN";
-  scrollBar.heightResizePolicy = "FILL_TO_PARENT";
-  scrollBar.indicatorHeightPolicy = "Fixed";
-  scrollBar.indicatorFixedHeight = 60.0;
-  itemView.add(scrollBar);
-  // Add a list layout to ItemView (multiple layouts can be added to the same ItemView)
-  itemView.addLayout(dali.ITEM_LAYOUT_LIST);
-  // Set custom item size for the list layout
-  // If set, this will overide the predefined item size in the list layout
-  itemView.setItemSize(0, [350, 100, 0]); // 0 means the first layout added to ItemView
-  // Acticate the list layout (which will layout the items as a list)
-  itemView.activateLayout(0, itemView.size); // 0 means the first layout added to ItemView
-```
- @class ItemView
- @extends Actor
-
-*/
diff --git a/plugins/dali-script-v8/docs/content/keyboard-focus-manager.js b/plugins/dali-script-v8/docs/content/keyboard-focus-manager.js
deleted file mode 100644 (file)
index fbdf726..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
- *
-
-## Keyboard Focus Manager API
-
-Keyboard focus manager controls the keyboard focus flow.
-
-It also allows you to set an actor that is used to high light the focused actor.
-
-{{#crossLink "KeyboardFocusManager/setFocusIndicatorActor:method"}}{{/crossLink}}
-
-The application is required to help the manager when moving focus.
-
-![ Focus Manager ](../assets/img/focus-manager/focus-manager.png)
-
-### keyboard-pre-focus-change
-
-Connect to the pre-focus-change call back as follows:
-```
-// listen for pre-focus change events
-dali.keyboardFocusManager.on("keyboardPreFocusChange", this.preFocusChanged);
-  
-// example call back handler
-  
-// currentFocusedActor =  currently focused actor
-// proposed = keyboard focus managers guess at what actor should be next
-// direction = the direction of the focus is moving in
-//
-myApp.preFocusChanged = function( currentFocusedActor, proposedActorToFocus, direction)
-{
-  
-  if (direction == "up" )
-  {
-    return actor above current actor;
-    }
-  if (direction == "right" )
-  {
-    return actor to the right of current actor;
-  }
-}
-  
-dali.keyboardFocusManager.on("keyboardPreFocusChange", myCallback)
-```
-
-KeyboardFocusManager makes the best guess for which actor to focus towards the given direction, but applications might want to change that.
-
-By connecting with this signal, they can check the proposed actor to focus and return a different actor if they wish.
-
-This signal is only emitted when the navigation key is pressed and KeyboardFocusManager tries to move the focus automatically.
-
-It won't be emitted for focus movement by calling setCurrentFocusActor directly.
-
-### keyboard-focus-changed
-
-This signal is emitted after the current focused actor has been changed.
-```
-myCallback( originalFocusedActor, currentFocusedActor)
-{
-}
-  
-dali.keyboardFocusManager.on("keyboardFocusChange", myCallback)
-```
-
-@class KeyboardFocusManager
-
- */
diff --git a/plugins/dali-script-v8/docs/content/layer-actor.js b/plugins/dali-script-v8/docs/content/layer-actor.js
deleted file mode 100644 (file)
index bcbf696..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
-## Layer Actor API ( extends Actor API)
-
- Layers provide a mechanism for overlaying groups of actors on top of each other.
-
- When added to the stage, a layer can be ordered relative to other layers. The bottom
- layer is at depth zero. The stage provides a default layer for it's children.
-
- Layered actors inherit position etc. as normal, but are drawn in an order determined
- by the layers. The depth buffer is cleared before each layer is rendered unless depth
- test is disabled or there's no need for it based on the layers contents;
- actors in lower layers cannot obscure actors in higher layers.
-
- If depth test is disabled, there is no performance overhead from clearing the depth buffer.
-
-
-### Simple example
-
-```
-
-var textActor1 = new dali.TextActor( "I'm above" );
-var textActor2 = new dali.TextActor( "I'm below" );
-  
-// add first actor to the stage
-dali.stage.add( textActor1 );
-  
-// create a layer and add second actor
-var layer = new dali.Layer();
-layer.add( textActor2 );
-dali.stage.add( layer );  // textActor2 is now above textActor1
-  
-// shift layer to bottom
-layer.lowerToBottom();   // textActor2 is now below textActor1
-```
-
-### Layer Actor Specific Properties
-
-| Name                   |    Type    | Writable     | Animatable|
-|------------------------|------------|--------------|-----------|
-| clippingEnabled        |BOOLEAN     | &#10004;     |  &#10008; |
-| clippingBox            | RECTANGLE ([0,0,400,600]) | &#10004; | &#10008;|
-
-  @class Layer
-  @extends Actor
- */
diff --git a/plugins/dali-script-v8/docs/content/module-loader.js b/plugins/dali-script-v8/docs/content/module-loader.js
deleted file mode 100644 (file)
index 181d8dc..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- ## Module loader
-
- See {{#crossLink "ModuleLoader/require:method"}}{{/crossLink}}
-
- @class ModuleLoader
- */
-
diff --git a/plugins/dali-script-v8/docs/content/pan-gesture-detector.js b/plugins/dali-script-v8/docs/content/pan-gesture-detector.js
deleted file mode 100644 (file)
index 55291e0..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- *
-## PanGestureDetector API
-
-
-PanGestureDetector analyse a stream of touch events and looks for panning (or dragging) gestures.
-If an actor is attached to the pan gesture detector, the detector will emit a detected signal to
-the application when it recognises a pan gesture on the attached actor in its analysis.
-
-### Simple example
-
-```
-// Create a pan gesture detector
-var panGestureDetector = new dali.PanGestureDetector();
-
-var actor = new dali.Actor();
-dali.stage.add(actor);
-
-// Attach an actor to the detector
-panGestureDetector.attach(actor);
-
-// Connect the detected signal
-panGestureDetector.on("panDetected", onPan);
-
-onPan = function(actor, panGesture)
-{
-    log("Pan gesture state: " + panGesture.state + ", number of touches: " + panGesture.numberOfTouches + ", time stamp: " + panGesture.time + "\n");
-    log("local position: " + panGesture.position.x + ", " + panGesture.position.y + "\n");
-    log("local displacement: " + panGesture.displacement.x + ", " + panGesture.displacement.y + "\n");
-    log("local velocity: " + panGesture.velocity.x + ", " + panGesture.velocity.y + "\n");
-    log("screen position: " + panGesture.screenPosition.x + ", " + panGesture.screenPosition.y + "\n");
-    log("screen displacement: " + panGesture.screenDisplacement.x + ", " + panGesture.screenDisplacement.y + "\n");
-    log("screen velocity: " + panGesture.screenVelocity.x + ", " + panGesture.screenVelocity.y + "\n");
-}
-
-// Detach the actor from the detector
-panGestureDetector.detach(actor);
-```
-@class PanGestureDetector
-
-*/
diff --git a/plugins/dali-script-v8/docs/content/path-animation.js b/plugins/dali-script-v8/docs/content/path-animation.js
deleted file mode 100644 (file)
index 45b7fb6..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
- *
-## Path Animation API
-
-Paths can be used to animate position and orientation of actors.
-
-![ ](../assets/img/path/path.png)
-  
-Example
-
-```
-log("Path animation test\n");
-  
-var point0 = [ 0.0, 80.0, 0.0 ];
-var point1 = [ 200.0, 200.0, 0.0 ];
-var point2 = [ 400.0, 80.0, 0.0 ];
-  
-//Create a path
-var myPath = new dali.Path();
-myPath.points = [ point0, point1, point2 ];
-myPath.generateControlPoints( 0.25 );
-  
-function begin()
-{
-  
-  var imageView = new dali.Control("ImageView");
-  imageView.image = "gallery-small-45.jpg";
-  
-  imageView.position = [100,100,0];
-  dali.stage.add( imageView );
-  
-  var animation = new dali.Animation(2.0);
-  var animOptions = { alpha:dali.ALPHA_FUNCTION_EASE_IN_OUT_SINE, delay:0.5, duration:1.5 };
-  var forward = new dali.Vector3(1,0,0);
-  animation.animate( imageView, myPath, forward, animOptions );
-  
-  animation.setLooping( true );
-  animation.play();
-}
-  
-begin();
-```
-@class Path
-
-*/
\ No newline at end of file
diff --git a/plugins/dali-script-v8/docs/content/render-task.js b/plugins/dali-script-v8/docs/content/render-task.js
deleted file mode 100644 (file)
index c410fdf..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/**
- *
-
-## RenderTask API
-
-
-RenderTasks describe how the Dali scene should be rendered.
-
-The {{#crossLink "Stage/getRenderTaskList:method"}}{{/crossLink}} method provides access to an ordered list of render-tasks.
-
-Each RenderTask must specify the source actors to be rendered, and a camera actor from
-which the scene is viewed.
-
-
-RenderTasks may optionally target a frame-buffer, otherwise the default GL surface is used;
-typically this is a window provided by the native system.
-
-
-By default Dali provides a single RenderTask, which renders the entire actor hierachy using
-a default camera actor and GL surface. If stereoscopic rendering is enabled, Dali will create
-two additional render tasks, on for each eye. Each render task will have its own camera parented
-to the default camera actor.
-
-The first RenderTask used for input handling will be the last one rendered, which also has input enabled,
-and has a valid source & camera actor; see {{#crossLink "RenderTask/setInputEnabled:method"}}{{/crossLink}}.
-
-If none of the actors are hit in the last RenderTask rendered, then input handling will continue
-with the second last RenderTask rendered, and so on.
-
-All RenderTasks which target a frame-buffer (i.e. off screen) will be rendered before all RenderTasks
-which target the default GL surface. This allows the user to render intermediate targets which are used
-later when targetting the screen.
-
-A RenderTask targetting a frame-buffer can still be hit-tested, provided that the
-screen->frame-buffer coordinate conversion is successful; see SetScreenToFrameBufferMappingActor().
-```
-var tasklist = dali.stage.getRenderTaskList();
-  
-var renderTask0 = tasklist.createTask();
-
-renderTask0.setSourceActor( myActor );
-renderTask0.setClearEnabled( true );
-renderTask0.clearColor = [1.0,0.0,0.0,0.0];
-
-renderTask0.clearColor = [1.0,0.0,0.0,0.0];
-
-var camera = new dali.CameraActor();
-
-renderTask0.setCameraActor( camera );
-```
-
-### Render Task Specific Properties
-
-
-| Name                   |    Type    | Writable     | Animatable|
-|------------------------|------------|--------------|-----------|
-|viewportPosition       | VECTOR2    | &#10004;     | &#10008; |
-|viewportSize           | VECTOR2    | &#10004;     | &#10008; |
-|clearColor             | VECTOR4    | &#10004;     | &#10008; |
-
-
-@class RenderTask
-*/
-
-/**
- * View port position
- *
- * @property viewportPosition
- * @type dali Vector2
- */
-viewportPosition
-
-/**
- * View port size
- *
- * @property parentOrigin
- * @type dali Vector3
- */
-viewportSize
-
- /**
- * clear color
- *
- * @property clearColor
- * @type dali Vector4
- */
- clearColor
\ No newline at end of file
diff --git a/plugins/dali-script-v8/docs/content/resource-image.js b/plugins/dali-script-v8/docs/content/resource-image.js
deleted file mode 100644 (file)
index fb982a0..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- *
-## ResourceImage (extends Image)
-
-A resource image extends the basic {{#crossLink "image"}}Image class{{/crossLink}} with
-the ability to load an image from a file.
-
-### Simple example
-```
-
-// Create a resource image with a given URL
-var image = new dali.ResourceImage( {url: "my_image.png"} );
-  
-// Create a material that specifies the visual properties of the renderer.
-var material = new dali.Material();
-  
-// Add the image as texture to be used by the material
-material.addTexture( image, "sTexture" );
-  
-```
-### Advanced example
-```
-
-function imageLoaded( image )
-{
-  log("image loaded " +image.url + "\n");
-}
-  
-var image = new dali.ResourceImage( {url: "my_image.png"} );
-  
-image.on("imageLoadingFinished", finished );
-  
-// Create a material and add the image as texture to be used by the material.
-var material = new dali.Material();
-material.addTexture( image, "sTexture" );
-
-```
-@class ResourceImage
-@extends Image
- */
diff --git a/plugins/dali-script-v8/docs/content/scroll-view.js b/plugins/dali-script-v8/docs/content/scroll-view.js
deleted file mode 100644 (file)
index bff2fc3..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/**
- *
-## ScrollView API
-ScrollView is a container where the actors inside it can be scrolled manually
-(via touch or pan gesture) or automatically.
-By default, ScrollView can scroll to any position both horizontally and
-vertically and no snapping is enabled.
-Scroll mode can be specified to define how ScrollView should handle scrolling
-in X and Y axes respectively (i.e. whether scrolling is enabled horizontally
-or vertically, how scrolling is snapped, and the boundary to prevent ScrollView
-to scroll beyond a certain position in the axes).
-![ ](../assets/img/scroll-view/scroll-view.png)
-
-### Example of creating a ScrollView
-```
-  // Create a scroll view
-  var scrollView = new dali.Control("ScrollView");
-  var stageSize = dali.stage.getSize();
-  scrollView.size = [stageSize.x, stageSize.y, 0.0];
-  scrollView.parentOrigin = dali.CENTER;
-  scrollView.anchorPoint = dali.CENTER;
-  dali.stage.add( scrollView );
-  // Add actors to a scroll view with 3 pages
-  var pageRows = 1;
-  var pageColumns = 3;
-  for(var pageRow = 0; pageRow < pageRows; pageRow++)
-  {
-    for(var pageColumn = 0; pageColumn < pageColumns; pageColumn++)
-    {
-      var pageActor = new dali.Control();
-      pageActor.widthResizePolicy = "FILL_TO_PARENT";
-      pageActor.heightResizePolicy = "FILL_TO_PARENT";
-      pageActor.parentOrigin = dali.CENTER;
-      pageActor.anchorPoint = dali.CENTER;
-      pageActor.position = [pageColumn * stageSize.x, pageRow * stageSize.y, 0.0];
-      pageActor.name = "pageActor" + pageColumn;
-      // Add images in a 3x4 grid layout for each page
-      var imageRows = 4;
-      var imageColumns = 3;
-      var margin = 10.0;
-      var imageSize = [(stageSize.x / imageColumns) - margin, (stageSize.y / imageRows) - margin, 0.0];
-      for(var row = 0; row < imageRows; row++)
-      {
-        for(var column = 0; column < imageColumns;column++)
-        {
-          var imageView = new dali.Control("ImageView");
-          var imageId = row * imageColumns + column;
-          imageView.image = "./image-" + imageId + ".jpg";
-          imageView.parentOrigin = dali.CENTER;
-          imageView.anchorPoint = dali.CENTER;
-          imageView.size = imageSize;
-          imageView.position = [ margin * 0.5 + (imageSize[0] + margin) * column - stageSize.x * 0.5 + imageSize[0] * 0.5,
-                                 margin * 0.5 + (imageSize[1] + margin) * row - stageSize.y * 0.5 + imageSize[1] * 0.5,
-                                 0.0 ];
-          pageActor.add(imageView);
-          var position = imageView.position;
-        }
-      }
-      scrollView.add( pageActor );
-    }
-  }
-  // Set scroll view to have 3 pages in X axis and allow page snapping,
-  // and also disable scrolling in Y axis.
-  var scrollMode = {
-                     xAxisScrollEnabled  : true,
-                     xAxisSnapToInterval : stageSize.x,                // Define the snap points
-                     xAxisScrollBoundary : stageSize.x * pageColumns,  // i.e. Define 3 pages
-                     yAxisScrollEnabled  : false
-                   }
-  scrollView.setScrollMode(scrollMode);
-```
- @class ScrollView
- @extends Actor
-
-*/
diff --git a/plugins/dali-script-v8/docs/content/stage.js b/plugins/dali-script-v8/docs/content/stage.js
deleted file mode 100644 (file)
index 512b661..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
-## Stage API
-
-The Stage is a top-level object used for displaying a tree of Actors.
-
- - Stage is a static object used by accessing the dali.stage object.
- - Stage provides a top-level "root" actor.
- - Stage provides Key Events to the application
- - Stage has a background color you can set, see  {{#crossLink "stage/setBackgroundColor:method"}}{{/crossLink}}
-  
-When an actor is not required, remove it from the stage to save memory and help performance.
-```
-dali.stage.setBackgroundColor( dali.COLOR_WHITE);
-  
-var stageSize = dali.stage.getSize();
-  
-var actor = new dali.Actor( );
-  
-dali.stage.add( actor );
-  
-// when the actor is no longer required
-dali.stage.remove( actor );
-```
-
-![ ](../assets/img/stage.png)
-
-
-### Key Events
-
-Key events are received through the keyEvent callback.
-
-```
-daliApp.myCallback = function (keyEvent)
-{
-  switch (keyEvent.keyDescription) {
-          case "Up": log("up");
-              break;
-  
-          case "Down": log("down");
-              break;
-  
-          case "Left": log("left");
-              break;
-  
-          case "Right": log("right");
-              break;
-  
-  }
-}
-
-dali.stage.on("keyEvent", daliApp.myCallback);
-```
-
-The key event object has the following properties
-```
-  KeyEvent = {
-    state,             // boolean  = "down" or "up" key state
-    shiftPressed,      // boolean, shift key is held
-    ctrlPressed,       // boolean, ctrl key is held
-    altPressed,        // boolean, alt key is held
-    keyModifiers,      // key modifiers
-    keyCode,           // key code
-    keyDescription,    // key description
-    timestamp          // The time in milli-seconds when the event occured
-  }
-```
- @class Stage
-*/
diff --git a/plugins/dali-script-v8/docs/dali-theme/assets/css/external-small.png b/plugins/dali-script-v8/docs/dali-theme/assets/css/external-small.png
deleted file mode 100644 (file)
index 759a1cd..0000000
Binary files a/plugins/dali-script-v8/docs/dali-theme/assets/css/external-small.png and /dev/null differ
diff --git a/plugins/dali-script-v8/docs/dali-theme/assets/css/logo.png b/plugins/dali-script-v8/docs/dali-theme/assets/css/logo.png
deleted file mode 100644 (file)
index eda5c9f..0000000
Binary files a/plugins/dali-script-v8/docs/dali-theme/assets/css/logo.png and /dev/null differ
diff --git a/plugins/dali-script-v8/docs/dali-theme/assets/css/main.css b/plugins/dali-script-v8/docs/dali-theme/assets/css/main.css
deleted file mode 100644 (file)
index cdfe209..0000000
+++ /dev/null
@@ -1,783 +0,0 @@
-/*
-Font sizes for all selectors other than the body are given in percentages,
-with 100% equal to 13px. To calculate a font size percentage, multiply the
-desired size in pixels by 7.6923076923.
-
-Here's a quick lookup table:
-
-10px - 76.923%
-11px - 84.615%
-12px - 92.308%
-13px - 100%
-14px - 107.692%
-15px - 115.385%
-16px - 123.077%
-17px - 130.769%
-18px - 138.462%
-19px - 146.154%
-20px - 153.846%
-*/
-
-html {
-    background: #fff;
-    color: #333;
-    overflow-y: scroll;
-}
-
-body {
-    /*font: 13px/1.4 'Lucida Grande', 'Lucida Sans Unicode', 'DejaVu Sans', 'Bitstream Vera Sans', 'Helvetica', 'Arial', sans-serif;*/
-    font: 13px/1.4 'Helvetica', 'Arial', sans-serif;
-    margin: 0;
-    padding: 0;
-}
-
-/* -- Links ----------------------------------------------------------------- */
-a {
-    color: #356de4;
-    text-decoration: none;
-}
-
-.hidden {
-    display: none;
-}
-
-a:hover { text-decoration: underline; }
-
-/* "Jump to Table of Contents" link is shown to assistive tools, but hidden from
-   sight until it's focused. */
-.jump {
-    position: absolute;
-    padding: 3px 6px;
-    left: -99999px;
-    top: 0;
-}
-
-.jump:focus { left: 40%; }
-
-/* -- Paragraphs ------------------------------------------------------------ */
-p { margin: 1.3em 0; }
-dd p, td p { margin-bottom: 0; }
-dd p:first-child, td p:first-child { margin-top: 0; }
-
-/* -- Headings -------------------------------------------------------------- */
-h1, h2, h3, h4, h5, h6 {
-    color: #D98527;/*was #f80*/
-    font-family: 'Trebuchet MS', sans-serif;
-    font-weight: bold;
-    line-height: 1.1;
-    margin: 1.1em 0 0.5em;
-}
-
-h1 {
-    font-size: 184.6%;
-    color: #30418C;
-    margin: 0.75em 0 0.5em;
-}
-
-h2 {
-    font-size: 153.846%;
-    color: #E48A2B;
-}
-
-h3 { font-size: 138.462%; }
-
-h4 {
-    border-bottom: 1px solid #DBDFEA;
-    color: #E48A2B;
-    font-size: 115.385%;
-    font-weight: normal;
-    padding-bottom: 2px;
-}
-
-h5, h6 { font-size: 107.692%; }
-
-/* -- Code and examples ----------------------------------------------------- */
-code, kbd, pre, samp {
-    font-family: Menlo, Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;
-    font-size: 92.308%;
-    line-height: 1.35;
-}
-
-p code, p kbd, p samp, li code {
-    background: #FCFBFA;
-    border: 1px solid #EFEEED;
-    padding: 0 3px;
-}
-
-a code, a kbd, a samp,
-pre code, pre kbd, pre samp,
-table code, table kbd, table samp,
-.intro code, .intro kbd, .intro samp,
-.toc code, .toc kbd, .toc samp {
-    background: none;
-    border: none;
-    padding: 0;
-}
-
-pre.code, pre.terminal, pre.cmd {
-    overflow-x: auto;
-    *overflow-x: scroll;
-    padding: 0.3em 0.6em;
-}
-
-pre.code {
-    background: #FCFBFA;
-    border: 1px solid #EFEEED;
-    border-left-width: 5px;
-}
-
-pre.terminal, pre.cmd {
-    background: #F0EFFC;
-    border: 1px solid #D0CBFB;
-    border-left: 5px solid #D0CBFB;
-}
-
-/* Don't reduce the font size of <code>/<kbd>/<samp> elements inside <pre>
-   blocks. */
-pre code, pre kbd, pre samp { font-size: 100%; }
-
-/* Used to denote text that shouldn't be selectable, such as line numbers or
-   shell prompts. Guess which browser this doesn't work in. */
-.noselect {
-    -moz-user-select: -moz-none;
-    -khtml-user-select: none;
-    -webkit-user-select: none;
-    -o-user-select: none;
-    user-select: none;
-}
-
-/* -- Lists ----------------------------------------------------------------- */
-dd { margin: 0.2em 0 0.7em 1em; }
-dl { margin: 1em 0; }
-dt { font-weight: bold; }
-
-/* -- Tables ---------------------------------------------------------------- */
-caption, th { text-align: left; }
-
-table {
-    border-collapse: collapse;
-    width: 100%;
-}
-
-td, th {
-    border: 1px solid #fff;
-    padding: 5px 12px;
-    vertical-align: top;
-}
-
-td { background: #E6E9F5; }
-td dl { margin: 0; }
-td dl dl { margin: 1em 0; }
-td pre:first-child { margin-top: 0; }
-
-th {
-    background: #D2D7E6;/*#97A0BF*/
-    border-bottom: none;
-    border-top: none;
-    color: #000;/*#FFF1D5*/
-    font-family: 'Trebuchet MS', sans-serif;
-    font-weight: bold;
-    line-height: 1.3;
-    white-space: nowrap;
-}
-
-
-/* -- Layout and Content ---------------------------------------------------- */
-#doc {
-    margin: auto;
-    min-width: 1024px;
-}
-
-.content { padding: 0 20px 0 25px; }
-
-.sidebar {
-    padding: 0 15px 0 10px;
-}
-#bd {
-    padding: 7px 0 130px;
-    position: relative;
-    width: 99%;
-}
-
-/* -- Table of Contents ----------------------------------------------------- */
-
-/* The #toc id refers to the single global table of contents, while the .toc
-   class refers to generic TOC lists that could be used throughout the page. */
-
-.toc code, .toc kbd, .toc samp { font-size: 100%; }
-.toc li { font-weight: bold; }
-.toc li li { font-weight: normal; }
-
-/* -- Intro and Example Boxes ----------------------------------------------- */
-/*
-.intro, .example { margin-bottom: 2em; }
-.example {
-    -moz-border-radius: 4px;
-    -webkit-border-radius: 4px;
-    border-radius: 4px;
-    -moz-box-shadow: 0 0 5px #bfbfbf;
-    -webkit-box-shadow: 0 0 5px #bfbfbf;
-    box-shadow: 0 0 5px #bfbfbf;
-    padding: 1em;
-}
-.intro {
-    background: none repeat scroll 0 0 #F0F1F8; border: 1px solid #D4D8EB; padding: 0 1em;
-}
-*/
-
-/* -- Other Styles ---------------------------------------------------------- */
-
-/* These are probably YUI-specific, and should be moved out of Selleck's default
-   theme. */
-
-.button {
-    border: 1px solid #dadada;
-    -moz-border-radius: 3px;
-    -webkit-border-radius: 3px;
-    border-radius: 3px;
-    color: #444;
-    display: inline-block;
-    font-family: Helvetica, Arial, sans-serif;
-    font-size: 92.308%;
-    font-weight: bold;
-    padding: 4px 13px 3px;
-    -moz-text-shadow: 1px 1px 0 #fff;
-    -webkit-text-shadow: 1px 1px 0 #fff;
-    text-shadow: 1px 1px 0 #fff;
-    white-space: nowrap;
-
-    background: #EFEFEF; /* old browsers */
-    background: -moz-linear-gradient(top, #f5f5f5 0%, #efefef 50%, #e5e5e5 51%, #dfdfdf 100%); /* firefox */
-    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f5f5f5), color-stop(50%,#efefef), color-stop(51%,#e5e5e5), color-stop(100%,#dfdfdf)); /* webkit */
-    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5f5f5', endColorstr='#dfdfdf',GradientType=0 ); /* ie */
-}
-
-.button:hover {
-    border-color: #466899;
-    color: #fff;
-    text-decoration: none;
-    -moz-text-shadow: 1px 1px 0 #222;
-    -webkit-text-shadow: 1px 1px 0 #222;
-    text-shadow: 1px 1px 0 #222;
-
-    background: #6396D8; /* old browsers */
-    background: -moz-linear-gradient(top, #6396D8 0%, #5A83BC 50%, #547AB7 51%, #466899 100%); /* firefox */
-    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#6396D8), color-stop(50%,#5A83BC), color-stop(51%,#547AB7), color-stop(100%,#466899)); /* webkit */
-    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#6396D8', endColorstr='#466899',GradientType=0 ); /* ie */
-}
-
-.newwindow { text-align: center; }
-
-.header .version em {
-    display: block;
-    text-align: right;
-}
-
-
-#classdocs .item {
-    border-bottom: 1px solid #466899;
-    margin: 1em 0;
-    padding: 1.5em;
-}
-
-#classdocs .item .params p,
-    #classdocs .item .returns p,{
-    display: inline;
-}
-
-#classdocs .item em code, #classdocs .item em.comment {
-    color: green;
-}
-
-#classdocs .item em.comment a {
-    color: green;
-    text-decoration: underline;
-}
-
-#classdocs .foundat {
-    font-size: 11px;
-    font-style: normal;
-}
-
-.attrs .emits {
-    margin-left: 2em;
-    padding: .5em;
-    border-left: 1px dashed #ccc;
-}
-
-abbr {
-    border-bottom: 1px dashed #ccc;
-    font-size: 80%;
-    cursor: help;
-}
-
-.prettyprint li.L0, 
-.prettyprint li.L1, 
-.prettyprint li.L2, 
-.prettyprint li.L3, 
-.prettyprint li.L5, 
-.prettyprint li.L6, 
-.prettyprint li.L7, 
-.prettyprint li.L8 {
-    list-style: decimal;
-}
-
-ul li p {
-    margin-top: 0;
-}
-
-.method .name {
-    font-size: 110%;
-}
-
-.apidocs .methods .extends .method,
-.apidocs .properties .extends .property,
-.apidocs .attrs .extends .attr,
-.apidocs .events .extends .event {
-    font-weight: bold;
-}
-
-.apidocs .methods .extends .inherited,
-.apidocs .properties .extends .inherited,
-.apidocs .attrs .extends .inherited,
-.apidocs .events .extends .inherited {
-    font-weight: normal;
-}
-
-#hd {
-    background: whiteSmoke;
-    background: -moz-linear-gradient(top,#DCDBD9 0,#F6F5F3 100%);
-    background: -webkit-gradient(linear,left top,left bottom,color-stop(0%,#DCDBD9),color-stop(100%,#F6F5F3));
-    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#dcdbd9',endColorstr='#F6F5F3',GradientType=0);
-    border-bottom: 1px solid #DFDFDF;
-    padding: 0 15px 1px 20px;
-    margin-bottom: 15px;
-}
-
-#hd img {
-    margin-right: 10px;
-    vertical-align: middle;
-}
-
-
-/* -- API Docs CSS ---------------------------------------------------------- */
-
-/*
-This file is organized so that more generic styles are nearer the top, and more
-specific styles are nearer the bottom of the file. This allows us to take full
-advantage of the cascade to avoid redundant style rules. Please respect this
-convention when making changes.
-*/
-
-/* -- Generic TabView styles ------------------------------------------------ */
-
-/*
-These styles apply to all API doc tabviews. To change styles only for a
-specific tabview, see the other sections below.
-*/
-
-.yui3-js-enabled .apidocs .tabview {
-    visibility: hidden; /* Hide until the TabView finishes rendering. */
-    _visibility: visible;
-}
-
-.apidocs .tabview.yui3-tabview-content { visibility: visible; }
-.apidocs .tabview .yui3-tabview-panel { background: #fff; }
-
-/* -- Generic Content Styles ------------------------------------------------ */
-
-/* Headings */
-h2, h3, h4, h5, h6 {
-    border: none;
-    color: #30418C;
-    font-weight: bold;
-    text-decoration: none;
-}
-
-.link-docs {
-    float: right;
-    font-size: 15px;
-    margin: 4px 4px 6px;
-    padding: 6px 30px 5px;
-}
-
-.apidocs { zoom: 1; }
-
-/* Generic box styles. */
-.apidocs .box {
-    border: 1px solid;
-    border-radius: 3px;
-    margin: 1em 0;
-    padding: 0 1em;
-}
-
-/* A flag is a compact, capsule-like indicator of some kind. It's used to
-   indicate private and protected items, item return types, etc. in an
-   attractive and unobtrusive way. */
-.apidocs .flag {
-    background: #bababa;
-    border-radius: 3px;
-    color: #fff;
-    font-size: 11px;
-    margin: 0 0.5em;
-    padding: 2px 4px 1px;
-}
-
-/* Class/module metadata such as "Uses", "Extends", "Defined in", etc. */
-.apidocs .meta {
-    background: #f9f9f9;
-    border-color: #efefef;
-    color: #555;
-    font-size: 11px;
-    padding: 3px 6px;
-}
-
-.apidocs .meta p { margin: 0; }
-
-/* Deprecation warning. */
-.apidocs .box.deprecated,
-.apidocs .flag.deprecated {
-    background: #fdac9f;
-    border: 1px solid #fd7775;
-}
-
-.apidocs .box.deprecated p { margin: 0.5em 0; }
-.apidocs .flag.deprecated { color: #333; }
-
-/* Module/Class intro description. */
-.apidocs .intro {
-    background: #f0f1f8;
-    border-color: #d4d8eb;
-}
-
-/* Loading spinners. */
-#bd.loading .apidocs,
-#api-list.loading .yui3-tabview-panel {
-    background: #fff url(../img/spinner.gif) no-repeat center 70px;
-    min-height: 150px;
-}
-
-#bd.loading .apidocs .content,
-#api-list.loading .yui3-tabview-panel .apis {
-    display: none;
-}
-
-.apidocs .no-visible-items { color: #666; }
-
-/* Generic inline list. */
-.apidocs ul.inline {
-    display: inline;
-    list-style: none;
-    margin: 0;
-    padding: 0;
-}
-
-.apidocs ul.inline li { display: inline; }
-
-/* Comma-separated list. */
-.apidocs ul.commas li:after { content: ','; }
-.apidocs ul.commas li:last-child:after { content: ''; }
-
-/* Keyboard shortcuts. */
-kbd .cmd { font-family: Monaco, Helvetica; }
-
-/* -- Generic Access Level styles ------------------------------------------- */
-.apidocs .item.protected,
-.apidocs .item.private,
-.apidocs .index-item.protected,
-.apidocs .index-item.deprecated,
-.apidocs .index-item.private {
-    display: none;
-}
-
-.show-deprecated .item.deprecated,
-.show-deprecated .index-item.deprecated,
-.show-protected .item.protected,
-.show-protected .index-item.protected,
-.show-private .item.private,
-.show-private .index-item.private {
-    display: block;
-}
-
-.hide-inherited .item.inherited,
-.hide-inherited .index-item.inherited {
-    display: none;
-}
-
-/* -- Generic Item Index styles --------------------------------------------- */
-.apidocs .index { margin: 1.5em 0 3em; }
-
-.apidocs .index h3 {
-    border-bottom: 1px solid #efefef;
-    color: #333;
-    font-size: 13px;
-    margin: 2em 0 0.6em;
-    padding-bottom: 2px;
-}
-
-.apidocs .index .no-visible-items { margin-top: 2em; }
-
-.apidocs .index-list {
-    border-color: #efefef;
-    font-size: 12px;
-    list-style: none;
-    margin: 0;
-    padding: 0;
-    -moz-column-count: 4;
-    -moz-column-gap: 10px;
-    -moz-column-width: 170px;
-    -ms-column-count: 4;
-    -ms-column-gap: 10px;
-    -ms-column-width: 170px;
-    -o-column-count: 4;
-    -o-column-gap: 10px;
-    -o-column-width: 170px;
-    -webkit-column-count: 4;
-    -webkit-column-gap: 10px;
-    -webkit-column-width: 170px;
-    column-count: 4;
-    column-gap: 10px;
-    column-width: 170px;
-}
-
-.apidocs .no-columns .index-list {
-    -moz-column-count: 1;
-    -ms-column-count: 1;
-    -o-column-count: 1;
-    -webkit-column-count: 1;
-    column-count: 1;
-}
-
-.apidocs .index-item { white-space: nowrap; }
-
-.apidocs .index-item .flag {
-    background: none;
-    border: none;
-    color: #afafaf;
-    display: inline;
-    margin: 0 0 0 0.2em;
-    padding: 0;
-}
-
-/* -- Generic API item styles ----------------------------------------------- */
-.apidocs .args {
-    display: inline;
-    margin: 0 0.5em;
-}
-
-.apidocs .flag.chainable { background: #46ca3b; }
-.apidocs .flag.protected { background: #9b86fc; }
-.apidocs .flag.private { background: #fd6b1b; }
-.apidocs .flag.async { background: #356de4; }
-.apidocs .flag.required { background: #e60923; }
-
-.apidocs .item {
-    border-bottom: 1px solid #efefef;
-    margin: 1.5em 0 2em;
-    padding-bottom: 2em;
-}
-
-.apidocs .item h4,
-.apidocs .item h5,
-.apidocs .item h6 {
-    color: #333;
-    font-family: inherit;
-    font-size: 100%;
-}
-
-.apidocs .item .description p,
-.apidocs .item pre.code {
-    margin: 1em 0 0;
-}
-
-.apidocs .item .meta {
-    background: none;
-    border: none;
-    padding: 0;
-}
-
-.apidocs .item .name {
-    display: inline;
-    font-size: 14px;
-}
-
-.apidocs .item .type,
-.apidocs .item .type a,
-.apidocs .returns-inline {
-    color: #555;
-}
-
-.apidocs .item .type,
-.apidocs .returns-inline {
-    font-size: 11px;
-    margin: 0 0 0 0;
-}
-
-.apidocs .item .type a { border-bottom: 1px dotted #afafaf; }
-.apidocs .item .type a:hover { border: none; }
-
-/* -- Item Parameter List --------------------------------------------------- */
-.apidocs .params-list {
-    list-style: square;
-    margin: 1em 0 0 2em;
-    padding: 0;
-}
-
-.apidocs .param { margin-bottom: 1em; }
-
-.apidocs .param .type,
-.apidocs .param .type a {
-    color: #666;
-}
-
-.apidocs .param .type {
-    margin: 0 0 0 0.5em;
-    *margin-left: 0.5em;
-}
-
-.apidocs .param-name { font-weight: bold; }
-
-/* -- Item "Emits" block ---------------------------------------------------- */
-.apidocs .item .emits {
-    background: #f9f9f9;
-    border-color: #eaeaea;
-}
-
-/* -- Item "Returns" block -------------------------------------------------- */
-.apidocs .item .returns .type,
-.apidocs .item .returns .type a {
-    font-size: 100%;
-    margin: 0;
-}
-
-/* -- Class Constructor block ----------------------------------------------- */
-.apidocs .constructor .item {
-    border: none;
-    padding-bottom: 0;
-}
-
-/* -- File Source View ------------------------------------------------------ */
-.apidocs .file pre.code,
-#doc .apidocs .file pre.prettyprint {
-    background: inherit;
-    border: none;
-    overflow: visible;
-    padding: 0;
-}
-
-.apidocs .L0,
-.apidocs .L1,
-.apidocs .L2,
-.apidocs .L3,
-.apidocs .L4,
-.apidocs .L5,
-.apidocs .L6,
-.apidocs .L7,
-.apidocs .L8,
-.apidocs .L9 {
-    background: inherit;
-}
-
-/* -- Submodule List -------------------------------------------------------- */
-.apidocs .module-submodule-description {
-    font-size: 12px;
-    margin: 0.3em 0 1em;
-}
-
-.apidocs .module-submodule-description p:first-child { margin-top: 0; }
-
-/* -- Sidebar TabView ------------------------------------------------------- */
-#api-tabview { margin-top: 0.6em; }
-
-#api-tabview-filter,
-#api-tabview-panel {
-    border: 1px solid #dfdfdf;
-}
-
-#api-tabview-filter {
-    border-bottom: none;
-    border-top: none;
-    padding: 0.6em 10px 0 10px;
-}
-
-#api-tabview-panel { border-top: none; }
-#api-filter { width: 97%; }
-
-/* -- Content TabView ------------------------------------------------------- */
-#classdocs .yui3-tabview-panel { border: none; }
-
-/* -- Source File Contents -------------------------------------------------- */
-.prettyprint li.L0,
-.prettyprint li.L1,
-.prettyprint li.L2,
-.prettyprint li.L3,
-.prettyprint li.L5,
-.prettyprint li.L6,
-.prettyprint li.L7,
-.prettyprint li.L8 {
-    list-style: decimal;
-}
-
-/* -- API options ----------------------------------------------------------- */
-#api-options {
-    font-size: 11px;
-    margin-top: 2.2em;
-    position: absolute;
-    right: 1.5em;
-}
-
-/*#api-options label { margin-right: 0.6em; }*/
-
-/* -- API list -------------------------------------------------------------- */
-#api-list {
-    margin-top: 1.5em;
-    *zoom: 1;
-}
-
-.apis {
-    font-size: 12px;
-    line-height: 1.4;
-    list-style: none;
-    margin: 0;
-    padding: 0.5em 0 0.5em 0.4em;
-}
-
-.apis a {
-    border: 1px solid transparent;
-    display: block;
-    margin: 0 0 0 -4px;
-    padding: 1px 4px 0;
-    text-decoration: none;
-    _border: none;
-    _display: inline;
-}
-
-.apis a:hover,
-.apis a:focus {
-    background: #E8EDFC;
-    background: -moz-linear-gradient(top, #e8edfc 0%, #becef7 100%);
-    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#E8EDFC), color-stop(100%,#BECEF7));
-    border-color: #AAC0FA;
-    border-radius: 3px;
-    color: #333;
-    outline: none;
-}
-
-.api-list-item a:hover,
-.api-list-item a:focus {
-    font-weight: bold;
-    text-shadow: 1px 1px 1px #fff;
-}
-
-.apis .message { color: #888; }
-.apis .result a { padding: 3px 5px 2px; }
-
-.apis .result .type {
-    right: 4px;
-    top: 7px;
-}
-
-.api-list-item .yui3-highlight {
-    font-weight: bold;
-}
-
diff --git a/plugins/dali-script-v8/docs/dali-theme/assets/favicon.png b/plugins/dali-script-v8/docs/dali-theme/assets/favicon.png
deleted file mode 100644 (file)
index 5a95dda..0000000
Binary files a/plugins/dali-script-v8/docs/dali-theme/assets/favicon.png and /dev/null differ
diff --git a/plugins/dali-script-v8/docs/dali-theme/assets/img b/plugins/dali-script-v8/docs/dali-theme/assets/img
deleted file mode 120000 (symlink)
index e8c2249..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../../../../../docs/content/images/
\ No newline at end of file
diff --git a/plugins/dali-script-v8/docs/dali-theme/assets/index.html b/plugins/dali-script-v8/docs/dali-theme/assets/index.html
deleted file mode 100644 (file)
index 487fe15..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<!doctype html>
-<html>
-    <head>
-        <title>Redirector</title>
-        <meta http-equiv="refresh" content="0;url=../">
-    </head>
-    <body>
-        <a href="../">Click here to redirect</a>
-    </body>
-</html>
diff --git a/plugins/dali-script-v8/docs/dali-theme/assets/js/api-filter.js b/plugins/dali-script-v8/docs/dali-theme/assets/js/api-filter.js
deleted file mode 100644 (file)
index 37aefba..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-YUI.add('api-filter', function (Y) {
-
-Y.APIFilter = Y.Base.create('apiFilter', Y.Base, [Y.AutoCompleteBase], {
-    // -- Initializer ----------------------------------------------------------
-    initializer: function () {
-        this._bindUIACBase();
-        this._syncUIACBase();
-    },
-    getDisplayName: function(name) {
-
-        Y.each(Y.YUIDoc.meta.allModules, function(i) {
-            if (i.name === name && i.displayName) {
-                name = i.displayName;
-            }
-        });
-
-        return name;
-    }
-
-}, {
-    // -- Attributes -----------------------------------------------------------
-    ATTRS: {
-        resultHighlighter: {
-            value: 'phraseMatch'
-        },
-
-        // May be set to "classes" or "modules".
-        queryType: {
-            value: 'classes'
-        },
-
-        source: {
-            valueFn: function() {
-                var self = this;
-                return function(q) {
-                    var data = Y.YUIDoc.meta[self.get('queryType')],
-                        out = [];
-                    Y.each(data, function(v) {
-                        if (v.toLowerCase().indexOf(q.toLowerCase()) > -1) {
-                            out.push(v);
-                        }
-                    });
-                    return out;
-                };
-            }
-        }
-    }
-});
-
-}, '3.4.0', {requires: [
-    'autocomplete-base', 'autocomplete-highlighters', 'autocomplete-sources'
-]});
diff --git a/plugins/dali-script-v8/docs/dali-theme/assets/js/api-list.js b/plugins/dali-script-v8/docs/dali-theme/assets/js/api-list.js
deleted file mode 100644 (file)
index 88905b5..0000000
+++ /dev/null
@@ -1,251 +0,0 @@
-YUI.add('api-list', function (Y) {
-
-var Lang   = Y.Lang,
-    YArray = Y.Array,
-
-    APIList = Y.namespace('APIList'),
-
-    classesNode    = Y.one('#api-classes'),
-    inputNode      = Y.one('#api-filter'),
-    modulesNode    = Y.one('#api-modules'),
-    tabviewNode    = Y.one('#api-tabview'),
-
-    tabs = APIList.tabs = {},
-
-    filter = APIList.filter = new Y.APIFilter({
-        inputNode : inputNode,
-        maxResults: 1000,
-
-        on: {
-            results: onFilterResults
-        }
-    }),
-
-    search = APIList.search = new Y.APISearch({
-        inputNode : inputNode,
-        maxResults: 100,
-
-        on: {
-            clear  : onSearchClear,
-            results: onSearchResults
-        }
-    }),
-
-    tabview = APIList.tabview = new Y.TabView({
-        srcNode  : tabviewNode,
-        panelNode: '#api-tabview-panel',
-        render   : true,
-
-        on: {
-            selectionChange: onTabSelectionChange
-        }
-    }),
-
-    focusManager = APIList.focusManager = tabviewNode.plug(Y.Plugin.NodeFocusManager, {
-        circular   : true,
-        descendants: '#api-filter, .yui3-tab-panel-selected .api-list-item a, .yui3-tab-panel-selected .result a',
-        keys       : {next: 'down:40', previous: 'down:38'}
-    }).focusManager,
-
-    LIST_ITEM_TEMPLATE =
-        '<li class="api-list-item {typeSingular}">' +
-            '<a href="{rootPath}{typePlural}/{name}.html">{displayName}</a>' +
-        '</li>';
-
-// -- Init ---------------------------------------------------------------------
-
-// Duckpunch FocusManager's key event handling to prevent it from handling key
-// events when a modifier is pressed.
-Y.before(function (e, activeDescendant) {
-    if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) {
-        return new Y.Do.Prevent();
-    }
-}, focusManager, '_focusPrevious', focusManager);
-
-Y.before(function (e, activeDescendant) {
-    if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) {
-        return new Y.Do.Prevent();
-    }
-}, focusManager, '_focusNext', focusManager);
-
-// Create a mapping of tabs in the tabview so we can refer to them easily later.
-tabview.each(function (tab, index) {
-    var name = tab.get('label').toLowerCase();
-
-    tabs[name] = {
-        index: index,
-        name : name,
-        tab  : tab
-    };
-});
-
-// Switch tabs on Ctrl/Cmd-Left/Right arrows.
-tabviewNode.on('key', onTabSwitchKey, 'down:37,39');
-
-// Focus the filter input when the `/` key is pressed.
-Y.one(Y.config.doc).on('key', onSearchKey, 'down:83');
-
-// Keep the Focus Manager up to date.
-inputNode.on('focus', function () {
-    focusManager.set('activeDescendant', inputNode);
-});
-
-// Update all tabview links to resolved URLs.
-tabview.get('panelNode').all('a').each(function (link) {
-    link.setAttribute('href', link.get('href'));
-});
-
-// -- Private Functions --------------------------------------------------------
-function getFilterResultNode() {
-    return filter.get('queryType') === 'classes' ? classesNode : modulesNode;
-}
-
-// -- Event Handlers -----------------------------------------------------------
-function onFilterResults(e) {
-    var frag         = Y.one(Y.config.doc.createDocumentFragment()),
-        resultNode   = getFilterResultNode(),
-        typePlural   = filter.get('queryType'),
-        typeSingular = typePlural === 'classes' ? 'class' : 'module';
-
-    if (e.results.length) {
-        YArray.each(e.results, function (result) {
-            frag.append(Lang.sub(LIST_ITEM_TEMPLATE, {
-                rootPath    : APIList.rootPath,
-                displayName : filter.getDisplayName(result.highlighted),
-                name        : result.text,
-                typePlural  : typePlural,
-                typeSingular: typeSingular
-            }));
-        });
-    } else {
-        frag.append(
-            '<li class="message">' +
-                'No ' + typePlural + ' found.' +
-            '</li>'
-        );
-    }
-
-    resultNode.empty(true);
-    resultNode.append(frag);
-
-    focusManager.refresh();
-}
-
-function onSearchClear(e) {
-
-    focusManager.refresh();
-}
-
-function onSearchKey(e) {
-    var target = e.target;
-
-    if (target.test('input,select,textarea')
-            || target.get('isContentEditable')) {
-        return;
-    }
-
-    e.preventDefault();
-
-    inputNode.focus();
-    focusManager.refresh();
-}
-
-function onSearchResults(e) {
-    var frag = Y.one(Y.config.doc.createDocumentFragment());
-
-    if (e.results.length) {
-        YArray.each(e.results, function (result) {
-            frag.append(result.display);
-        });
-    } else {
-        frag.append(
-            '<li class="message">' +
-                'No results found. Maybe you\'ll have better luck with a ' +
-                'different query?' +
-            '</li>'
-        );
-    }
-
-
-    focusManager.refresh();
-}
-
-function onTabSelectionChange(e) {
-    var tab  = e.newVal,
-        name = tab.get('label').toLowerCase();
-
-    tabs.selected = {
-        index: tab.get('index'),
-        name : name,
-        tab  : tab
-    };
-
-    switch (name) {
-    case 'classes': // fallthru
-    case 'modules':
-        filter.setAttrs({
-            minQueryLength: 0,
-            queryType     : name
-        });
-
-        search.set('minQueryLength', -1);
-
-        // Only send a request if this isn't the initially-selected tab.
-        if (e.prevVal) {
-            filter.sendRequest(filter.get('value'));
-        }
-        break;
-
-    case 'everything':
-        filter.set('minQueryLength', -1);
-        search.set('minQueryLength', 1);
-
-        if (search.get('value')) {
-            search.sendRequest(search.get('value'));
-        } else {
-            inputNode.focus();
-        }
-        break;
-
-    default:
-        // WTF? We shouldn't be here!
-        filter.set('minQueryLength', -1);
-        search.set('minQueryLength', -1);
-    }
-
-    if (focusManager) {
-        setTimeout(function () {
-            focusManager.refresh();
-        }, 1);
-    }
-}
-
-function onTabSwitchKey(e) {
-    var currentTabIndex = tabs.selected.index;
-
-    if (!(e.ctrlKey || e.metaKey)) {
-        return;
-    }
-
-    e.preventDefault();
-
-    switch (e.keyCode) {
-    case 37: // left arrow
-        if (currentTabIndex > 0) {
-            tabview.selectChild(currentTabIndex - 1);
-            inputNode.focus();
-        }
-        break;
-
-    case 39: // right arrow
-        if (currentTabIndex < (Y.Object.size(tabs) - 2)) {
-            tabview.selectChild(currentTabIndex + 1);
-            inputNode.focus();
-        }
-        break;
-    }
-}
-
-}, '3.4.0', {requires: [
-    'api-filter', 'api-search', 'event-key', 'node-focusmanager', 'tabview'
-]});
diff --git a/plugins/dali-script-v8/docs/dali-theme/assets/js/api-search.js b/plugins/dali-script-v8/docs/dali-theme/assets/js/api-search.js
deleted file mode 100644 (file)
index 175f6a6..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-YUI.add('api-search', function (Y) {
-
-var Lang   = Y.Lang,
-    Node   = Y.Node,
-    YArray = Y.Array;
-
-Y.APISearch = Y.Base.create('apiSearch', Y.Base, [Y.AutoCompleteBase], {
-    // -- Public Properties ----------------------------------------------------
-    RESULT_TEMPLATE:
-        '<li class="result {resultType}">' +
-            '<a href="{url}">' +
-                '<h3 class="title">{name}</h3>' +
-                '<span class="type">{resultType}</span>' +
-                '<div class="description">{description}</div>' +
-                '<span class="className">{class}</span>' +
-            '</a>' +
-        '</li>',
-
-    // -- Initializer ----------------------------------------------------------
-    initializer: function () {
-        this._bindUIACBase();
-        this._syncUIACBase();
-    },
-
-    // -- Protected Methods ----------------------------------------------------
-    _apiResultFilter: function (query, results) {
-        // Filter components out of the results.
-        return YArray.filter(results, function (result) {
-            return result.raw.resultType === 'component' ? false : result;
-        });
-    },
-
-    _apiResultFormatter: function (query, results) {
-        return YArray.map(results, function (result) {
-            var raw  = Y.merge(result.raw), // create a copy
-                desc = raw.description || '';
-
-            // Convert description to text and truncate it if necessary.
-            desc = Node.create('<div>' + desc + '</div>').get('text');
-
-            if (desc.length > 65) {
-                desc = Y.Escape.html(desc.substr(0, 65)) + ' &hellip;';
-            } else {
-                desc = Y.Escape.html(desc);
-            }
-
-            raw['class'] || (raw['class'] = '');
-            raw.description = desc;
-
-            // Use the highlighted result name.
-            raw.name = result.highlighted;
-
-            return Lang.sub(this.RESULT_TEMPLATE, raw);
-        }, this);
-    },
-
-    _apiTextLocator: function (result) {
-        return result.displayName || result.name;
-    }
-}, {
-    // -- Attributes -----------------------------------------------------------
-    ATTRS: {
-        resultFormatter: {
-            valueFn: function () {
-                return this._apiResultFormatter;
-            }
-        },
-
-        resultFilters: {
-            valueFn: function () {
-                return this._apiResultFilter;
-            }
-        },
-
-        resultHighlighter: {
-            value: 'phraseMatch'
-        },
-
-        resultListLocator: {
-            value: 'data.results'
-        },
-
-        resultTextLocator: {
-            valueFn: function () {
-                return this._apiTextLocator;
-            }
-        },
-
-        source: {
-            value: '/api/v1/search?q={query}&count={maxResults}'
-        }
-    }
-});
-
-}, '3.4.0', {requires: [
-    'autocomplete-base', 'autocomplete-highlighters', 'autocomplete-sources',
-    'escape'
-]});
diff --git a/plugins/dali-script-v8/docs/dali-theme/assets/js/apidocs.js b/plugins/dali-script-v8/docs/dali-theme/assets/js/apidocs.js
deleted file mode 100644 (file)
index e00591c..0000000
+++ /dev/null
@@ -1,370 +0,0 @@
-YUI().use(
-    'yuidoc-meta',
-    'api-list', 'history-hash', 'node-screen', 'node-style', 'pjax',
-function (Y) {
-
-var win          = Y.config.win,
-    localStorage = win.localStorage,
-
-    bdNode = Y.one('#bd'),
-
-    pjax,
-    defaultRoute,
-
-    classTabView,
-    selectedTab;
-
-// Kill pjax functionality unless serving over HTTP.
-if (!Y.getLocation().protocol.match(/^https?\:/)) {
-    Y.Router.html5 = false;
-}
-
-// Create the default route with middleware which enables syntax highlighting
-// on the loaded content.
-defaultRoute = Y.Pjax.defaultRoute.concat(function (req, res, next) {
-    prettyPrint();
-    bdNode.removeClass('loading');
-
-    next();
-});
-
-pjax = new Y.Pjax({
-    container      : '#docs-main',
-    contentSelector: '#docs-main > .content',
-    linkSelector   : '#bd a',
-    titleSelector  : '#xhr-title',
-
-    navigateOnHash: true,
-    root          : '/',
-    routes        : [
-        // -- / ----------------------------------------------------------------
-        {
-            path     : '/(index.html)?',
-            callbacks: defaultRoute
-        },
-
-        // -- /classes/* -------------------------------------------------------
-        {
-            path     : '/classes/:class.html*',
-            callbacks: [defaultRoute, 'handleClasses']
-        },
-
-        // -- /files/* ---------------------------------------------------------
-        {
-            path     : '/files/*file',
-            callbacks: [defaultRoute, 'handleFiles']
-        },
-
-        // -- /modules/* -------------------------------------------------------
-        {
-            path     : '/modules/:module.html*',
-            callbacks: defaultRoute
-        }
-    ]
-});
-
-// -- Utility Functions --------------------------------------------------------
-
-pjax.checkVisibility = function (tab) {
-    tab || (tab = selectedTab);
-
-    if (!tab) { return; }
-
-    var panelNode = tab.get('panelNode'),
-        visibleItems;
-
-    // If no items are visible in the tab panel due to the current visibility
-    // settings, display a message to that effect.
-    visibleItems = panelNode.all('.item,.index-item').some(function (itemNode) {
-        if (itemNode.getComputedStyle('display') !== 'none') {
-            return true;
-        }
-    });
-
-    panelNode.all('.no-visible-items').remove();
-
-    if (!visibleItems) {
-        if (Y.one('#index .index-item')) {
-            panelNode.append(
-                '<div class="no-visible-items">' +
-                    '<p>' +
-                    'Some items are not shown due to the current visibility ' +
-                    'settings. Use the checkboxes at the upper right of this ' +
-                    'page to change the visibility settings.' +
-                    '</p>' +
-                '</div>'
-            );
-        } else {
-            panelNode.append(
-                '<div class="no-visible-items">' +
-                    '<p>' +
-                    'This class doesn\'t provide any methods, properties, ' +
-                    'attributes, or events.' +
-                    '</p>' +
-                '</div>'
-            );
-        }
-    }
-
-    // Hide index sections without any visible items.
-    Y.all('.index-section').each(function (section) {
-        var items        = 0,
-            visibleItems = 0;
-
-        section.all('.index-item').each(function (itemNode) {
-            items += 1;
-
-            if (itemNode.getComputedStyle('display') !== 'none') {
-                visibleItems += 1;
-            }
-        });
-
-        section.toggleClass('hidden', !visibleItems);
-        section.toggleClass('no-columns', visibleItems < 4);
-    });
-};
-
-pjax.initClassTabView = function () {
-    if (!Y.all('#classdocs .api-class-tab').size()) {
-        return;
-    }
-
-    if (classTabView) {
-        classTabView.destroy();
-        selectedTab = null;
-    }
-
-    classTabView = new Y.TabView({
-        srcNode: '#classdocs',
-
-        on: {
-            selectionChange: pjax.onTabSelectionChange
-        }
-    });
-
-    pjax.updateTabState();
-    classTabView.render();
-};
-
-pjax.initLineNumbers = function () {
-    var hash      = win.location.hash.substring(1),
-        container = pjax.get('container'),
-        hasLines, node;
-
-    // Add ids for each line number in the file source view.
-    container.all('.linenums>li').each(function (lineNode, index) {
-        lineNode.set('id', 'l' + (index + 1));
-        lineNode.addClass('file-line');
-        hasLines = true;
-    });
-
-    // Scroll to the desired line.
-    if (hasLines && /^l\d+$/.test(hash)) {
-        if ((node = container.getById(hash))) {
-            win.scroll(0, node.getY());
-        }
-    }
-};
-
-pjax.initRoot = function () {
-    var terminators = /^(?:classes|files|modules)$/,
-        parts       = pjax._getPathRoot().split('/'),
-        root        = [],
-        i, len, part;
-
-    for (i = 0, len = parts.length; i < len; i += 1) {
-        part = parts[i];
-
-        if (part.match(terminators)) {
-            // Makes sure the path will end with a "/".
-            root.push('');
-            break;
-        }
-
-        root.push(part);
-    }
-
-    pjax.set('root', root.join('/'));
-};
-
-pjax.updateTabState = function (src) {
-    var hash = win.location.hash.substring(1),
-        defaultTab, node, tab, tabPanel;
-
-    function scrollToNode() {
-        if (node.hasClass('protected')) {
-            Y.one('#api-show-protected').set('checked', true);
-            pjax.updateVisibility();
-        }
-
-        if (node.hasClass('private')) {
-            Y.one('#api-show-private').set('checked', true);
-            pjax.updateVisibility();
-        }
-
-        setTimeout(function () {
-            // For some reason, unless we re-get the node instance here,
-            // getY() always returns 0.
-            var node = Y.one('#classdocs').getById(hash);
-            win.scrollTo(0, node.getY() - 70);
-        }, 1);
-    }
-
-    if (!classTabView) {
-        return;
-    }
-
-    if (src === 'hashchange' && !hash) {
-        defaultTab = 'index';
-    } else {
-        if (localStorage) {
-            defaultTab = localStorage.getItem('tab_' + pjax.getPath()) ||
-                'index';
-        } else {
-            defaultTab = 'index';
-        }
-    }
-
-    if (hash && (node = Y.one('#classdocs').getById(hash))) {
-        if ((tabPanel = node.ancestor('.api-class-tabpanel', true))) {
-            if ((tab = Y.one('#classdocs .api-class-tab.' + tabPanel.get('id')))) {
-                if (classTabView.get('rendered')) {
-                    Y.Widget.getByNode(tab).set('selected', 1);
-                } else {
-                    tab.addClass('yui3-tab-selected');
-                }
-            }
-        }
-
-        // Scroll to the desired element if this is a hash URL.
-        if (node) {
-            if (classTabView.get('rendered')) {
-                scrollToNode();
-            } else {
-                classTabView.once('renderedChange', scrollToNode);
-            }
-        }
-    } else {
-        tab = Y.one('#classdocs .api-class-tab.' + defaultTab);
-
-        // When the `defaultTab` node isn't found, `localStorage` is stale.
-        if (!tab && defaultTab !== 'index') {
-            tab = Y.one('#classdocs .api-class-tab.index');
-        }
-
-        if (classTabView.get('rendered')) {
-            Y.Widget.getByNode(tab).set('selected', 1);
-        } else {
-            tab.addClass('yui3-tab-selected');
-        }
-    }
-};
-
-pjax.updateVisibility = function () {
-    var container = pjax.get('container');
-
-    container.toggleClass('hide-inherited',
-            !Y.one('#api-show-inherited').get('checked'));
-
-    container.toggleClass('show-deprecated',
-            Y.one('#api-show-deprecated').get('checked'));
-
-    container.toggleClass('show-protected',
-            Y.one('#api-show-protected').get('checked'));
-
-    container.toggleClass('show-private',
-            Y.one('#api-show-private').get('checked'));
-
-    pjax.checkVisibility();
-};
-
-// -- Route Handlers -----------------------------------------------------------
-
-pjax.handleClasses = function (req, res, next) {
-    var status = res.ioResponse.status;
-
-    // Handles success and local filesystem XHRs.
-    if (res.ioResponse.readyState === 4 && (!status || (status >= 200 && status < 300))) {
-        pjax.initClassTabView();
-    }
-
-    next();
-};
-
-pjax.handleFiles = function (req, res, next) {
-    var status = res.ioResponse.status;
-
-    // Handles success and local filesystem XHRs.
-    if (res.ioResponse.readyState === 4 && (!status || (status >= 200 && status < 300))) {
-        pjax.initLineNumbers();
-    }
-
-    next();
-};
-
-// -- Event Handlers -----------------------------------------------------------
-
-pjax.onNavigate = function (e) {
-    var hash         = e.hash,
-        originTarget = e.originEvent && e.originEvent.target,
-        tab;
-
-    if (hash) {
-        tab = originTarget && originTarget.ancestor('.yui3-tab', true);
-
-        if (hash === win.location.hash) {
-            pjax.updateTabState('hashchange');
-        } else if (!tab) {
-            win.location.hash = hash;
-        }
-
-        e.preventDefault();
-        return;
-    }
-
-    // Only scroll to the top of the page when the URL doesn't have a hash.
-    this.set('scrollToTop', !e.url.match(/#.+$/));
-
-    bdNode.addClass('loading');
-};
-
-pjax.onOptionClick = function (e) {
-    pjax.updateVisibility();
-};
-
-pjax.onTabSelectionChange = function (e) {
-    var tab   = e.newVal,
-        tabId = tab.get('contentBox').getAttribute('href').substring(1);
-
-    selectedTab = tab;
-
-    // If switching from a previous tab (i.e., this is not the default tab),
-    // replace the history entry with a hash URL that will cause this tab to
-    // be selected if the user navigates away and then returns using the back
-    // or forward buttons.
-    if (e.prevVal && localStorage) {
-        localStorage.setItem('tab_' + pjax.getPath(), tabId);
-    }
-
-    pjax.checkVisibility(tab);
-};
-
-// -- Init ---------------------------------------------------------------------
-
-pjax.on('navigate', pjax.onNavigate);
-
-pjax.initRoot();
-pjax.upgrade();
-pjax.initClassTabView();
-pjax.initLineNumbers();
-pjax.updateVisibility();
-
-Y.APIList.rootPath = pjax.get('root');
-
-Y.one('#api-options').delegate('click', pjax.onOptionClick, 'input');
-
-Y.on('hashchange', function (e) {
-    pjax.updateTabState('hashchange');
-}, win);
-
-});
diff --git a/plugins/dali-script-v8/docs/dali-theme/assets/js/yui-prettify.js b/plugins/dali-script-v8/docs/dali-theme/assets/js/yui-prettify.js
deleted file mode 100644 (file)
index 18de864..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-YUI().use('node', function(Y) {
-    var code = Y.all('.prettyprint.linenums');
-    if (code.size()) {
-        code.each(function(c) {
-            var lis = c.all('ol li'),
-                l = 1;
-            lis.each(function(n) {
-                n.prepend('<a name="LINENUM_' + l + '"></a>');
-                l++;
-            });
-        });
-        var h = location.hash;
-        location.hash = '';
-        h = h.replace('LINE_', 'LINENUM_');
-        location.hash = h;
-    }
-});
diff --git a/plugins/dali-script-v8/docs/dali-theme/assets/vendor/prettify/CHANGES.html b/plugins/dali-script-v8/docs/dali-theme/assets/vendor/prettify/CHANGES.html
deleted file mode 100644 (file)
index b50b841..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-    <title>Change Log</title>
-  </head>
-  <body bgcolor="white">
-    <a style="float:right" href="README.html">README</a>
-
-    <h1>Known Issues</h1>
-    <ul>
-      <li>Perl formatting is really crappy.  Partly because the author is lazy and
-      partly because Perl is
-      <a href="http://www.perlmonks.org/?node_id=663393">hard</a> to parse.
-      <li>On some browsers, <code>&lt;code&gt;</code> elements with newlines in the text
-      which use CSS to specify <code>white-space:pre</code> will have the newlines
-      improperly stripped if the element is not attached to the document at the time
-      the stripping is done.  Also, on IE 6, all newlines will be stripped from
-      <code>&lt;code&gt;</code> elements because of the way IE6 produces
-      <code>innerHTML</code>.  Workaround: use <code>&lt;pre&gt;</code> for code with
-      newlines.
-    </ul>
-
-    <h1>Change Log</h1>
-    <h2>29 March 2007</h2>
-    <ul>
-      <li>Added <a href="tests/prettify_test.html#PHP">tests</a> for PHP support
-        to address 
-      <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=3"
-       >issue 3</a>.
-      <li>Fixed
-      <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=6"
-       >bug</a>: <code>prettyPrintOne</code> was not halting.  This was not
-        reachable through the normal entry point.
-      <li>Fixed
-      <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=4"
-       >bug</a>: recursing into a script block or PHP tag that was not properly
-        closed would not silently drop the content.
-        (<a href="tests/prettify_test.html#issue4">test</a>)
-      <li>Fixed
-      <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=8"
-       >bug</a>: was eating tabs
-        (<a href="tests/prettify_test.html#issue8">test</a>)
-      <li>Fixed entity handling so that the caveat
-        <blockquote>
-          <p>Caveats: please properly escape less-thans.  <tt>x&amp;lt;y</tt>
-          instead of <tt>x&lt;y</tt>, and use <tt>&quot;</tt> instead of 
-          <tt>&amp;quot;</tt> for string delimiters.</p>
-        </blockquote>
-        is no longer applicable.
-      <li>Added noisefree's C#
-      <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=4"
-       >patch</a>
-      <li>Added a <a href="http://google-code-prettify.googlecode.com/files/prettify-small.zip">distribution</a> that has comments and
-        whitespace removed to reduce download size from 45.5kB to 12.8kB.
-    </ul>
-    <h2>4 Jul 2008</h2>
-    <ul>
-      <li>Added <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=17">language specific formatters</a> that are triggered by the presence
-      of a <code>lang-&lt;language-file-extension&gt;</code></li>
-      <li>Fixed <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=29">bug</a>: python handling of <code>'''string'''</code>
-      <li>Fixed bug: <code>/</code> in regex <code>[charsets] should not end regex</code>
-    </ul>
-    <h2>5 Jul 2008</h2>
-    <ul>
-      <li>Defined language extensions for Lisp and Lua</code>
-    </ul>
-    <h2>14 Jul 2008</h2>
-    <ul>
-      <li>Language handlers for F#, OCAML, SQL</code>
-      <li>Support for <code>nocode</code> spans to allow embedding of line
-      numbers and code annotations which should not be styled or otherwise
-      affect the tokenization of prettified code.
-      See the issue 22
-      <a href="tests/prettify_test.html#issue22">testcase</a>.</code>
-    </ul>
-    <h2>6 Jan 2009</h2>
-    <ul>
-      <li>Language handlers for Visual Basic, Haskell, CSS, and WikiText</li>
-      <li>Added <tt>.mxml</tt> extension to the markup style handler for
-        Flex <a href="http://en.wikipedia.org/wiki/MXML">MXML files</a>.  See
-        <a
-        href="http://code.google.com/p/google-code-prettify/issues/detail?id=37"
-        >issue 37</a>.
-      <li>Added <tt>.m</tt> extension to the C style handler so that Objective
-        C source files properly highlight.  See
-        <a
-        href="http://code.google.com/p/google-code-prettify/issues/detail?id=58"
-       >issue 58</a>.
-      <li>Changed HTML lexer to use the same embedded source mechanism as the
-        wiki language handler, and changed to use the registered
-        CSS handler for STYLE element content.
-    </ul>
-    <h2>21 May 2009</h2>
-    <ul>
-      <li>Rewrote to improve performance on large files.
-        See <a href="http://mikesamuel.blogspot.com/2009/05/efficient-parsing-in-javascript.html">benchmarks</a>.</li>
-      <li>Fixed bugs with highlighting of Haskell line comments, Lisp
-        number literals, Lua strings, C preprocessor directives,
-        newlines in Wiki code on Windows, and newlines in IE6.</li>
-    </ul>
-    <h2>14 August 2009</h2>
-    <ul>
-      <li>Fixed prettifying of <code>&lt;code&gt;</code> blocks with embedded newlines.
-    </ul>
-    <h2>3 October 2009</h2>
-    <ul>
-      <li>Fixed prettifying of XML/HTML tags that contain uppercase letters.
-    </ul>
-    <h2>19 July 2010</h2>
-    <ul>
-      <li>Added support for line numbers.  Bug
-        <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=22"
-         >22</a></li>
-      <li>Added YAML support.  Bug
-        <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=123"
-         >123</a></li>
-      <li>Added VHDL support courtesy Le Poussin.</li>
-      <li>IE performance improvements.  Bug
-        <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=102"
-         >102</a> courtesy jacobly.</li>
-      <li>A variety of markup formatting fixes courtesy smain and thezbyg.</li>
-      <li>Fixed copy and paste in IE[678].
-      <li>Changed output to use <code>&amp;#160;</code> instead of
-        <code>&amp;nbsp;</code> so that the output works when embedded in XML.
-        Bug
-        <a href="http://code.google.com/p/google-code-prettify/issues/detail?id=108"
-         >108</a>.</li>
-    </ul>
-  </body>
-</html>
diff --git a/plugins/dali-script-v8/docs/dali-theme/assets/vendor/prettify/COPYING b/plugins/dali-script-v8/docs/dali-theme/assets/vendor/prettify/COPYING
deleted file mode 100644 (file)
index d645695..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   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.
diff --git a/plugins/dali-script-v8/docs/dali-theme/assets/vendor/prettify/prettify-min.css b/plugins/dali-script-v8/docs/dali-theme/assets/vendor/prettify/prettify-min.css
deleted file mode 100644 (file)
index d44b3a2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
\ No newline at end of file
diff --git a/plugins/dali-script-v8/docs/dali-theme/assets/vendor/prettify/prettify-min.js b/plugins/dali-script-v8/docs/dali-theme/assets/vendor/prettify/prettify-min.js
deleted file mode 100644 (file)
index 4845d05..0000000
+++ /dev/null
@@ -1 +0,0 @@
-window.PR_SHOULD_USE_CONTINUATION=true;var prettyPrintOne;var prettyPrint;(function(){var O=window;var j=["break,continue,do,else,for,if,return,while"];var v=[j,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var q=[v,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var m=[q,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var y=[q,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var T=[y,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"];var s="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes";var x=[q,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var t="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var J=[j,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var g=[j,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var I=[j,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var B=[m,T,x,t+J,g,I];var f=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/;var D="str";var A="kwd";var k="com";var Q="typ";var H="lit";var M="pun";var G="pln";var n="tag";var F="dec";var K="src";var R="atn";var o="atv";var P="nocode";var N="(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<<?=?|>>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function l(ab){var af=0;var U=false;var ae=false;for(var X=0,W=ab.length;X<W;++X){var ag=ab[X];if(ag.ignoreCase){ae=true}else{if(/[a-z]/i.test(ag.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){U=true;ae=false;break}}}var aa={b:8,t:9,n:10,v:11,f:12,r:13};function ad(aj){var ai=aj.charCodeAt(0);if(ai!==92){return ai}var ah=aj.charAt(1);ai=aa[ah];if(ai){return ai}else{if("0"<=ah&&ah<="7"){return parseInt(aj.substring(1),8)}else{if(ah==="u"||ah==="x"){return parseInt(aj.substring(2),16)}else{return aj.charCodeAt(1)}}}}function V(ah){if(ah<32){return(ah<16?"\\x0":"\\x")+ah.toString(16)}var ai=String.fromCharCode(ah);return(ai==="\\"||ai==="-"||ai==="]"||ai==="^")?"\\"+ai:ai}function Z(an){var ar=an.substring(1,an.length-1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g"));var ah=[];var ap=ar[0]==="^";var ao=["["];if(ap){ao.push("^")}for(var at=ap?1:0,al=ar.length;at<al;++at){var aj=ar[at];if(/\\[bdsw]/i.test(aj)){ao.push(aj)}else{var ai=ad(aj);var am;if(at+2<al&&"-"===ar[at+1]){am=ad(ar[at+2]);at+=2}else{am=ai}ah.push([ai,am]);if(!(am<65||ai>122)){if(!(am<65||ai>90)){ah.push([Math.max(65,ai)|32,Math.min(am,90)|32])}if(!(am<97||ai>122)){ah.push([Math.max(97,ai)&~32,Math.min(am,122)&~32])}}}}ah.sort(function(aw,av){return(aw[0]-av[0])||(av[1]-aw[1])});var ak=[];var aq=[];for(var at=0;at<ah.length;++at){var au=ah[at];if(au[0]<=aq[1]+1){aq[1]=Math.max(aq[1],au[1])}else{ak.push(aq=au)}}for(var at=0;at<ak.length;++at){var au=ak[at];ao.push(V(au[0]));if(au[1]>au[0]){if(au[1]+1>au[0]){ao.push("-")}ao.push(V(au[1]))}}ao.push("]");return ao.join("")}function Y(an){var al=an.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var aj=al.length;var ap=[];for(var am=0,ao=0;am<aj;++am){var ai=al[am];if(ai==="("){++ao}else{if("\\"===ai.charAt(0)){var ah=+ai.substring(1);if(ah){if(ah<=ao){ap[ah]=-1}else{al[am]=V(ah)}}}}}for(var am=1;am<ap.length;++am){if(-1===ap[am]){ap[am]=++af}}for(var am=0,ao=0;am<aj;++am){var ai=al[am];if(ai==="("){++ao;if(!ap[ao]){al[am]="(?:"}}else{if("\\"===ai.charAt(0)){var ah=+ai.substring(1);if(ah&&ah<=ao){al[am]="\\"+ap[ah]}}}}for(var am=0;am<aj;++am){if("^"===al[am]&&"^"!==al[am+1]){al[am]=""}}if(an.ignoreCase&&U){for(var am=0;am<aj;++am){var ai=al[am];var ak=ai.charAt(0);if(ai.length>=2&&ak==="["){al[am]=Z(ai)}else{if(ak!=="\\"){al[am]=ai.replace(/[a-zA-Z]/g,function(aq){var ar=aq.charCodeAt(0);return"["+String.fromCharCode(ar&~32,ar|32)+"]"})}}}}return al.join("")}var ac=[];for(var X=0,W=ab.length;X<W;++X){var ag=ab[X];if(ag.global||ag.multiline){throw new Error(""+ag)}ac.push("(?:"+Y(ag)+")")}return new RegExp(ac.join("|"),ae?"gi":"g")}function b(aa,Y){var W=/(?:^|\s)nocode(?:\s|$)/;var ab=[];var Z=0;var X=[];var V=0;function U(ac){switch(ac.nodeType){case 1:if(W.test(ac.className)){return}for(var af=ac.firstChild;af;af=af.nextSibling){U(af)}var ae=ac.nodeName.toLowerCase();if("br"===ae||"li"===ae){ab[V]="\n";X[V<<1]=Z++;X[(V++<<1)|1]=ac}break;case 3:case 4:var ad=ac.nodeValue;if(ad.length){if(!Y){ad=ad.replace(/[ \t\r\n]+/g," ")}else{ad=ad.replace(/\r\n?/g,"\n")}ab[V]=ad;X[V<<1]=Z;Z+=ad.length;X[(V++<<1)|1]=ac}break}}U(aa);return{sourceCode:ab.join("").replace(/\n$/,""),spans:X}}function C(U,W,Y,V){if(!W){return}var X={sourceCode:W,basePos:U};Y(X);V.push.apply(V,X.decorations)}var w=/\S/;function p(U){var X=undefined;for(var W=U.firstChild;W;W=W.nextSibling){var V=W.nodeType;X=(V===1)?(X?U:W):(V===3)?(w.test(W.nodeValue)?U:X):X}return X===U?undefined:X}function h(W,V){var U={};var X;(function(){var af=W.concat(V);var aj=[];var ai={};for(var ad=0,ab=af.length;ad<ab;++ad){var aa=af[ad];var ae=aa[3];if(ae){for(var ag=ae.length;--ag>=0;){U[ae.charAt(ag)]=aa}}var ah=aa[1];var ac=""+ah;if(!ai.hasOwnProperty(ac)){aj.push(ah);ai[ac]=null}}aj.push(/[\0-\uffff]/);X=l(aj)})();var Z=V.length;var Y=function(aj){var ab=aj.sourceCode,aa=aj.basePos;var af=[aa,G];var ah=0;var ap=ab.match(X)||[];var al={};for(var ag=0,at=ap.length;ag<at;++ag){var ai=ap[ag];var ar=al[ai];var ak=void 0;var ao;if(typeof ar==="string"){ao=false}else{var ac=U[ai.charAt(0)];if(ac){ak=ai.match(ac[1]);ar=ac[0]}else{for(var aq=0;aq<Z;++aq){ac=V[aq];ak=ai.match(ac[1]);if(ak){ar=ac[0];break}}if(!ak){ar=G}}ao=ar.length>=5&&"lang-"===ar.substring(0,5);if(ao&&!(ak&&typeof ak[1]==="string")){ao=false;ar=K}if(!ao){al[ai]=ar}}var ad=ah;ah+=ai.length;if(!ao){af.push(aa+ad,ar)}else{var an=ak[1];var am=ai.indexOf(an);var ae=am+an.length;if(ak[2]){ae=ai.length-ak[2].length;am=ae-an.length}var au=ar.substring(5);C(aa+ad,ai.substring(0,am),Y,af);C(aa+ad+am,an,r(au,an),af);C(aa+ad+ae,ai.substring(ae),Y,af)}}aj.decorations=af};return Y}function i(V){var Y=[],U=[];if(V.tripleQuotedStrings){Y.push([D,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(V.multiLineStrings){Y.push([D,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{Y.push([D,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(V.verbatimStrings){U.push([D,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var ab=V.hashComments;if(ab){if(V.cStyleComments){if(ab>1){Y.push([k,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{Y.push([k,/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}U.push([D,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,null])}else{Y.push([k,/^#[^\r\n]*/,null,"#"])}}if(V.cStyleComments){U.push([k,/^\/\/[^\r\n]*/,null]);U.push([k,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(V.regexLiterals){var aa=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");U.push(["lang-regex",new RegExp("^"+N+"("+aa+")")])}var X=V.types;if(X){U.push([Q,X])}var W=(""+V.keywords).replace(/^ | $/g,"");if(W.length){U.push([A,new RegExp("^(?:"+W.replace(/[\s,]+/g,"|")+")\\b"),null])}Y.push([G,/^\s+/,null," \r\n\t\xA0"]);var Z=/^.[^\s\w\.$@\'\"\`\/\\]*/;U.push([H,/^@[a-z_$][a-z_$@0-9]*/i,null],[Q,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[G,/^[a-z_$][a-z_$@0-9]*/i,null],[H,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[G,/^\\[\s\S]?/,null],[M,Z,null]);return h(Y,U)}var L=i({keywords:B,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function S(W,ah,aa){var V=/(?:^|\s)nocode(?:\s|$)/;var ac=/\r\n?|\n/;var ad=W.ownerDocument;var ag=ad.createElement("li");while(W.firstChild){ag.appendChild(W.firstChild)}var X=[ag];function af(am){switch(am.nodeType){case 1:if(V.test(am.className)){break}if("br"===am.nodeName){ae(am);if(am.parentNode){am.parentNode.removeChild(am)}}else{for(var ao=am.firstChild;ao;ao=ao.nextSibling){af(ao)}}break;case 3:case 4:if(aa){var an=am.nodeValue;var ak=an.match(ac);if(ak){var aj=an.substring(0,ak.index);am.nodeValue=aj;var ai=an.substring(ak.index+ak[0].length);if(ai){var al=am.parentNode;al.insertBefore(ad.createTextNode(ai),am.nextSibling)}ae(am);if(!aj){am.parentNode.removeChild(am)}}}break}}function ae(al){while(!al.nextSibling){al=al.parentNode;if(!al){return}}function aj(am,at){var ar=at?am.cloneNode(false):am;var ap=am.parentNode;if(ap){var aq=aj(ap,1);var ao=am.nextSibling;aq.appendChild(ar);for(var an=ao;an;an=ao){ao=an.nextSibling;aq.appendChild(an)}}return ar}var ai=aj(al.nextSibling,0);for(var ak;(ak=ai.parentNode)&&ak.nodeType===1;){ai=ak}X.push(ai)}for(var Z=0;Z<X.length;++Z){af(X[Z])}if(ah===(ah|0)){X[0].setAttribute("value",ah)}var ab=ad.createElement("ol");ab.className="linenums";var Y=Math.max(0,((ah-1))|0)||0;for(var Z=0,U=X.length;Z<U;++Z){ag=X[Z];ag.className="L"+((Z+Y)%10);if(!ag.firstChild){ag.appendChild(ad.createTextNode("\xA0"))}ab.appendChild(ag)}W.appendChild(ab)}function E(af){var X=/\bMSIE\s(\d+)/.exec(navigator.userAgent);X=X&&+X[1]<=8;var ao=/\n/g;var an=af.sourceCode;var ap=an.length;var Y=0;var ad=af.spans;var V=ad.length;var aj=0;var aa=af.decorations;var ab=aa.length;var ac=0;aa[ab]=ap;var av,at;for(at=av=0;at<ab;){if(aa[at]!==aa[at+2]){aa[av++]=aa[at++];aa[av++]=aa[at++]}else{at+=2}}ab=av;for(at=av=0;at<ab;){var aw=aa[at];var ae=aa[at+1];var Z=at+2;while(Z+2<=ab&&aa[Z+1]===ae){Z+=2}aa[av++]=aw;aa[av++]=ae;at=Z}ab=aa.length=av;var au=af.sourceNode;var ak;if(au){ak=au.style.display;au.style.display="none"}try{var ah=null;while(aj<V){var ai=ad[aj];var U=ad[aj+2]||ap;var ar=aa[ac+2]||ap;var Z=Math.min(U,ar);var am=ad[aj+1];var W;if(am.nodeType!==1&&(W=an.substring(Y,Z))){if(X){W=W.replace(ao,"\r")}am.nodeValue=W;var al=am.ownerDocument;var aq=al.createElement("span");aq.className=aa[ac+1];var ag=am.parentNode;ag.replaceChild(aq,am);aq.appendChild(am);if(Y<U){ad[aj+1]=am=al.createTextNode(an.substring(Z,U));ag.insertBefore(am,aq.nextSibling)}}Y=Z;if(Y>=U){aj+=2}if(Y>=ar){ac+=2}}}finally{if(au){au.style.display=ak}}}var u={};function d(W,X){for(var U=X.length;--U>=0;){var V=X[U];if(!u.hasOwnProperty(V)){u[V]=W}else{if(O.console){console.warn("cannot override language handler %s",V)}}}}function r(V,U){if(!(V&&u.hasOwnProperty(V))){V=/^\s*</.test(U)?"default-markup":"default-code"}return u[V]}d(L,["default-code"]);d(h([],[[G,/^[^<?]+/],[F,/^<!\w[^>]*(?:>|$)/],[k,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[M,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);d(h([[G,/^[\s]+/,null," \t\r\n"],[o,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[n,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[R,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[M,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);d(h([],[[o,/^[\s\S]+/]]),["uq.val"]);d(i({keywords:m,hashComments:true,cStyleComments:true,types:f}),["c","cc","cpp","cxx","cyc","m"]);d(i({keywords:"null,true,false"}),["json"]);d(i({keywords:T,hashComments:true,cStyleComments:true,verbatimStrings:true,types:f}),["cs"]);d(i({keywords:y,cStyleComments:true}),["java"]);d(i({keywords:I,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);d(i({keywords:J,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);d(i({keywords:t,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);d(i({keywords:g,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);d(i({keywords:x,cStyleComments:true,regexLiterals:true}),["js"]);d(i({keywords:s,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);d(h([],[[D,/^[\s\S]+/]]),["regex"]);function e(X){var W=X.langExtension;try{var U=b(X.sourceNode,X.pre);var V=U.sourceCode;X.sourceCode=V;X.spans=U.spans;X.basePos=0;r(W,V)(X);E(X)}catch(Y){if(O.console){console.log(Y&&Y.stack?Y.stack:Y)}}}function z(Y,X,W){var U=document.createElement("pre");U.innerHTML=Y;if(W){S(U,W,true)}var V={langExtension:X,numberLines:W,sourceNode:U,pre:1};e(V);return U.innerHTML}function c(aj){function ab(al){return document.getElementsByTagName(al)}var ah=[ab("pre"),ab("code"),ab("xmp")];var V=[];for(var ae=0;ae<ah.length;++ae){for(var ac=0,Y=ah[ae].length;ac<Y;++ac){V.push(ah[ae][ac])}}ah=null;var Z=Date;if(!Z.now){Z={now:function(){return +(new Date)}}}var aa=0;var U;var af=/\blang(?:uage)?-([\w.]+)(?!\S)/;var ak=/\bprettyprint\b/;var W=/\bprettyprinted\b/;var ag=/pre|xmp/i;var ai=/^code$/i;var ad=/^(?:pre|code|xmp)$/i;function X(){var ar=(O.PR_SHOULD_USE_CONTINUATION?Z.now()+250:Infinity);for(;aa<V.length&&Z.now()<ar;aa++){var at=V[aa];var au=at.className;if(ak.test(au)&&!W.test(au)){var aw=false;for(var ao=at.parentNode;ao;ao=ao.parentNode){var ax=ao.tagName;if(ad.test(ax)&&ao.className&&ak.test(ao.className)){aw=true;break}}if(!aw){at.className+=" prettyprinted";var aq=au.match(af);var am;if(!aq&&(am=p(at))&&ai.test(am.tagName)){aq=am.className.match(af)}if(aq){aq=aq[1]}var ap;if(ag.test(at.tagName)){ap=1}else{var an=at.currentStyle;var al=(an?an.whiteSpace:(document.defaultView&&document.defaultView.getComputedStyle)?document.defaultView.getComputedStyle(at,null).getPropertyValue("white-space"):0);ap=al&&"pre"===al.substring(0,3)}var av=at.className.match(/\blinenums\b(?::(\d+))?/);av=av?av[1]&&av[1].length?+av[1]:true:false;if(av){S(at,av,ap)}U={langExtension:aq,sourceNode:at,numberLines:av,pre:ap};e(U)}}}if(aa<V.length){setTimeout(X,250)}else{if(aj){aj()}}}X()}var a=O.PR={createSimpleLexer:h,registerLangHandler:d,sourceDecorator:i,PR_ATTRIB_NAME:R,PR_ATTRIB_VALUE:o,PR_COMMENT:k,PR_DECLARATION:F,PR_KEYWORD:A,PR_LITERAL:H,PR_NOCODE:P,PR_PLAIN:G,PR_PUNCTUATION:M,PR_SOURCE:K,PR_STRING:D,PR_TAG:n,PR_TYPE:Q,prettyPrintOne:O.prettyPrintOne=z,prettyPrint:O.prettyPrint=c};if(typeof define==="function"&&define.amd){define("google-code-prettify",[],function(){return a})}})();PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_DECLARATION,/^<!\w[^>]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^<script\b[^>]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:<!--|-->)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]);
\ No newline at end of file
diff --git a/plugins/dali-script-v8/docs/dali-theme/layouts/main.handlebars b/plugins/dali-script-v8/docs/dali-theme/layouts/main.handlebars
deleted file mode 100644 (file)
index 7ea2bd4..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="utf-8">
-    <title>{{htmlTitle}}</title>
-    <link rel="stylesheet" href="{{yuiGridsUrl}}">
-    <link rel="stylesheet" href="{{projectAssets}}/vendor/prettify/prettify-min.css">
-    <link rel="stylesheet" href="{{projectAssets}}/css/main.css" id="site_styles">
-    <link rel="shortcut icon" type="image/png" href="{{projectAssets}}/favicon.png">
-    <script src="{{yuiSeedUrl}}"></script>
-</head>
-<body class="yui3-skin-sam">
-
-<div id="doc">
-    <div id="hd" class="yui3-g header">
-        <div class="yui3-u-3-4">
-            {{#if projectLogo}}
-                <h1><img src="{{projectLogo}}" title="{{projectName}}"></h1>
-            {{else}}
-                <h1><img src="{{projectAssets}}/css/logo.png" title="{{projectName}}"></h1>
-            {{/if}}
-        </div>
-        <div class="yui3-u-1-4 version">
-            <em>API Docs for: {{projectVersion}}</em>
-        </div>
-    </div>
-    <div id="bd" class="yui3-g">
-
-        <div class="yui3-u-1-4">
-            <div id="docs-sidebar" class="sidebar apidocs">
-                {{>sidebar}}
-            </div>
-        </div>
-        <div class="yui3-u-3-4">
-            {{>options}}
-            <div class="apidocs">
-                <div id="docs-main">
-                    <div class="content">
-{{>layout_content}}
-                    </div>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
-<script src="{{projectAssets}}/vendor/prettify/prettify-min.js"></script>
-<script>prettyPrint();</script>
-<script src="{{projectAssets}}/js/yui-prettify.js"></script>
-<script src="{{projectAssets}}/../api.js"></script>
-<script src="{{projectAssets}}/js/api-filter.js"></script>
-<script src="{{projectAssets}}/js/api-list.js"></script>
-<script src="{{projectAssets}}/js/api-search.js"></script>
-<script src="{{projectAssets}}/js/apidocs.js"></script>
-</body>
-</html>
diff --git a/plugins/dali-script-v8/docs/dali-theme/layouts/xhr.handlebars b/plugins/dali-script-v8/docs/dali-theme/layouts/xhr.handlebars
deleted file mode 100644 (file)
index c66f7d3..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-<div id="docs-main">
-    <div class="content">
-{{>layout_content}}
-    </div>
-</div>
-
-<div id="xhr-title" class="hidden">{{title}}</div>
diff --git a/plugins/dali-script-v8/docs/dali-theme/partials/attrs.handlebars b/plugins/dali-script-v8/docs/dali-theme/partials/attrs.handlebars
deleted file mode 100644 (file)
index a957ce0..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-<div id="attr_{{name}}" class="attr item{{#if access}} {{access}}{{/if}}{{#if deprecated}} deprecated{{/if}}{{#if extended_from}} inherited{{/if}}">
-    <a name="config_{{name}}"></a> {{! For backwards compatibility }}
-    <h3 class="name"><code>{{name}}</code></h3>
-    <span class="type">{{#crossLink type}}{{/crossLink}}</span>
-
-    {{#if deprecated}}
-        <span class="flag deprecated"{{#if deprecationMessage}} title="{{deprecationMessage}}"{{/if}}>deprecated</span>
-    {{/if}}
-
-    {{#if access}}
-        <span class="flag {{access}}">{{access}}</span>
-    {{/if}}
-
-    {{#if final}}
-        <span class="flag final">final</span>
-    {{/if}}
-
-    {{#if static}}
-        <span class="flag static">static</span>
-    {{/if}}
-
-    {{#if optional}}
-        <span class="flag optional">optional</span>
-    {{/if}}
-
-    {{#if required}}
-        <span class="flag required">required</span>
-    {{/if}}
-
-    {{#if readonly}}
-        <span class="flag readonly">readonly</span>
-    {{/if}}
-
-    <div class="meta">
-        {{#if overwritten_from}}
-            <p>Inherited from
-            <a href="{{crossLinkRaw overwritten_from/class}}#attr_{{overwritten_from/name}}">
-                {{overwritten_from/class}}
-            </a>
-            {{#if foundAt}}
-            but overwritten in
-            {{/if}}
-        {{else}}
-            {{#if extended_from}}
-                <p>Inherited from
-                <a href="{{crossLinkRaw extended_from}}#attr_{{name}}">{{extended_from}}</a>:
-            {{else}}
-                {{#providedBy}}
-                    <p>Provided by the <a href="../modules/{{.}}.html">{{.}}</a> module.</p>
-                {{/providedBy}}
-                <p>
-                {{#if foundAt}}
-                Defined in
-                {{/if}}
-            {{/if}}
-        {{/if}}
-        {{#if foundAt}}
-        <a href="{{foundAt}}">`{{{file}}}:{{{line}}}`</a>
-        {{/if}}
-        </p>
-
-        {{#if deprecationMessage}}
-            <p>Deprecated: {{deprecationMessage}}</p>
-        {{/if}}
-
-        {{#if since}}
-            <p>Available since {{since}}</p>
-        {{/if}}
-    </div>
-
-    <div class="description">
-        {{{attrDescription}}}
-    </div>
-
-    {{#if default}}
-        <p><strong>Default:</strong> {{default}}</p>
-    {{/if}}
-
-    {{#if emit}}
-        <div class="emits box">
-            <h4>Fires event <code>{{name}}Change</code></h4>
-
-            <p>
-            Fires when the value for the configuration attribute `{{{name}}}` is
-            changed. You can listen for the event using the `on` method if you
-            wish to be notified before the attribute's value has changed, or
-            using the `after` method if you wish to be notified after the
-            attribute's value has changed.
-            </p>
-
-            <div class="params">
-                <h4>Parameters:</h4>
-
-                <ul class="params-list">
-                    <li class="param">
-                        <code class="param-name">e</code>
-                        <span class="type">{{#crossLink "EventFacade"}}{{/crossLink}}</span>
-
-                        <div class="param-description">
-                            An Event Facade object with the following
-                            attribute-specific properties added:
-                        </div>
-
-                        <ul class="params-list">
-                            <li class="param">
-                                <code class="param-name">prevVal</code>
-                                <span class="type">Any</span>
-                                <div class="param-description">The value of the attribute, prior to it being set.</div>
-                            </li>
-                            <li class="param">
-                                <code class="param-name">newVal</code>
-                                <span class="type">Any</span>
-                                <div class="param-description">The value the attribute is to be set to.</div>
-                            </li>
-                            <li class="param">
-                                <code class="param-name">attrName</code>
-                                <span class="type">{{#crossLink "String"}}{{/crossLink}}</span>
-                                <div class="param-description">The name of the attribute being set.</div>
-                            </li>
-                            <li class="param">
-                                <code class="param-name">subAttrName</code>
-                                <span class="type">{{#crossLink "String"}}{{/crossLink}}</span>
-                                <div class="param-description">If setting a property within the attribute's value, the name of the sub-attribute property being set.</div>
-                            </li>
-                        </ul>
-                    </li>
-                </ul>
-            </div>
-        </div>
-    {{/if}}
-
-    {{#example}}
-        <div class="example">
-            <h4>Example:</h4>
-
-            <div class="example-content">
-                {{{.}}}
-            </div>
-        </div>
-    {{/example}}
-</div>
diff --git a/plugins/dali-script-v8/docs/dali-theme/partials/classes.handlebars b/plugins/dali-script-v8/docs/dali-theme/partials/classes.handlebars
deleted file mode 100644 (file)
index 0d0a937..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
-<h1>{{name}} Class</h1>
-<div class="box meta">
-    {{#if uses}}
-        <div class="uses">
-            Uses
-            <ul class="inline commas">
-                {{#uses}}
-                    <li><a href="{{.}}.html">{{.}}</a></li>
-                {{/uses}}
-            </ul>
-        </div>
-    {{/if}}
-
-    {{#if extends}}
-        <div class="extends">
-            Extends {{#crossLink extends}}{{/crossLink}}
-        </div>
-    {{/if}}
-
-    {{#if foundAt}}
-        <div class="foundat">
-            Defined in: <a href="{{foundAt}}">`{{{file}}}:{{{line}}}`</a>
-        </div>
-    {{/if}}
-
-    {{#if module}}
-        {{#if submodule}}
-            Module: {{#crossLinkModule submodule}}{{/crossLinkModule}}<br>
-            Parent Module: {{#crossLinkModule module}}{{/crossLinkModule}}
-        {{else}}
-            Module: {{#crossLinkModule module}}{{/crossLinkModule}}
-        {{/if}}
-    {{/if}}
-
-    {{#if since}}
-        <p>Available since {{since}}</p>
-    {{/if}}
-</div>
-
-{{#if deprecated}}
-    <div class="box deprecated">
-        <p>
-        {{#if deprecationMessage}}
-            <strong>Deprecated:</strong> {{deprecationMessage}}
-        {{else}}
-            This class is deprecated.
-        {{/if}}
-        </p>
-    </div>
-{{/if}}
-
-<div class="box intro">
-    {{{classDescription}}}
-</div>
-
-{{#is_constructor}}
-    <div class="constructor">
-        <h2>Constructor</h2>
-        {{>method}}
-    </div>
-{{/is_constructor}}
-
-<div id="classdocs" class="tabview">
-    <ul class="api-class-tabs">
-        <li class="api-class-tab index"><a href="#index">Index</a></li>
-
-        {{#if methods}}
-            <li class="api-class-tab methods"><a href="#methods">Methods</a></li>
-        {{/if}}
-        {{#if properties}}
-            <li class="api-class-tab properties"><a href="#properties">Properties</a></li>
-        {{/if}}
-        {{#if attrs}}
-            <li class="api-class-tab attrs"><a href="#attrs">Attributes</a></li>
-        {{/if}}
-        {{#if events}}
-            <li class="api-class-tab events"><a href="#events">Events</a></li>
-        {{/if}}
-    </ul>
-
-    <div>
-        <div id="index" class="api-class-tabpanel index">
-            <h2 class="off-left">Item Index</h2>
-
-            {{#if methods}}
-                <div class="index-section methods">
-                    <h3>Methods</h3>
-
-                    <ul class="index-list methods{{#if extends}} extends{{/if}}">
-                        {{#methods}}
-                            <li class="index-item method{{#if access}} {{access}}{{/if}}{{#if deprecated}} deprecated{{/if}}{{#if overwritten_from}} inherited{{/if}}{{#if extended_from}} inherited{{/if}}">
-                                <a href="#method_{{name}}">{{name}}</a>
-
-                                {{#if static}}
-                                    <span class="flag static">static</span>
-                                {{/if}}
-                                {{#if deprecated}}
-                                    <span class="flag deprecated">deprecated</span>
-                                {{/if}}
-                            </li>
-                        {{/methods}}
-                    </ul>
-                </div>
-            {{/if}}
-
-            {{#if properties}}
-                <div class="index-section properties">
-                    <h3>Properties</h3>
-
-                    <ul class="index-list properties{{#if extends}} extends{{/if}}">
-                        {{#properties}}
-                            <li class="index-item property{{#if access}} {{access}}{{/if}}{{#if deprecated}} deprecated{{/if}}{{#if overwritten_from}} inherited{{/if}}{{#if extended_from}} inherited{{/if}}">
-                                <a href="#property_{{name}}">{{name}}</a>
-
-                                {{#if static}}
-                                    <span class="flag static">static</span>
-                                {{/if}}
-                                {{#if deprecated}}
-                                    <span class="flag deprecated">deprecated</span>
-                                {{/if}}
-                            </li>
-                        {{/properties}}
-                    </ul>
-                </div>
-            {{/if}}
-
-            {{#if attrs}}
-                <div class="index-section attrs">
-                    <h3>Attributes</h3>
-
-                    <ul class="index-list attrs{{#if extends}} extends{{/if}}">
-                        {{#attrs}}
-                            <li class="index-item attr{{#if access}} {{access}}{{/if}}{{#if deprecated}} deprecated{{/if}}{{#if overwritten_from}} inherited{{/if}}{{#if extended_from}} inherited{{/if}}">
-                                <a href="#attr_{{name}}">{{name}}</a>
-                            </li>
-                        {{/attrs}}
-                    </ul>
-                </div>
-            {{/if}}
-
-            {{#if events}}
-                <div class="index-section events">
-                    <h3>Events</h3>
-
-                    <ul class="index-list events{{#if extends}} extends{{/if}}">
-                        {{#events}}
-                            <li class="index-item event{{#if access}} {{access}}{{/if}}{{#if deprecated}} deprecated{{/if}}{{#if overwritten_from}} inherited{{/if}}{{#if extended_from}} inherited{{/if}}">
-                                <a href="#event_{{name}}">{{name}}</a>
-
-                                {{#if static}}
-                                    <span class="flag static">static</span>
-                                {{/if}}
-                                {{#if deprecated}}
-                                    <span class="flag deprecated">deprecated</span>
-                                {{/if}}
-                            </li>
-                        {{/events}}
-                    </ul>
-                </div>
-            {{/if}}
-        </div>
-
-        {{#if methods}}
-            <div id="methods" class="api-class-tabpanel">
-                <h2 class="off-left">Methods</h2>
-
-                {{#methods}}
-{{>method}}
-                {{/methods}}
-            </div>
-        {{/if}}
-
-        {{#if properties}}
-            <div id="properties" class="api-class-tabpanel">
-                <h2 class="off-left">Properties</h2>
-
-                {{#properties}}
-                    {{>props}}
-                {{/properties}}
-            </div>
-        {{/if}}
-
-        {{#if attrs}}
-            <div id="attrs" class="api-class-tabpanel">
-                <h2 class="off-left">Attributes</h2>
-
-                {{#attrs}}
-                    {{>attrs}}
-                {{/attrs}}
-            </div>
-        {{/if}}
-
-        {{#if events}}
-            <div id="events" class="api-class-tabpanel">
-                <h2 class="off-left">Events</h2>
-
-                {{#events}}
-                    {{>events}}
-                {{/events}}
-            </div>
-        {{/if}}
-    </div>
-</div>
diff --git a/plugins/dali-script-v8/docs/dali-theme/partials/events.handlebars b/plugins/dali-script-v8/docs/dali-theme/partials/events.handlebars
deleted file mode 100644 (file)
index cb7a6b5..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-<div id="event_{{name}}" class="events item{{#if access}} {{access}}{{/if}}{{#if deprecated}} deprecated{{/if}}{{#if extended_from}} inherited{{/if}}">
-    <h3 class="name"><code>{{name}}</code></h3>
-    <span class="type">{{#crossLink type}}{{/crossLink}}</span>
-
-    {{#if deprecated}}
-        <span class="flag deprecated"{{#if deprecationMessage}} title="{{deprecationMessage}}"{{/if}}>deprecated</span>
-    {{/if}}
-
-    {{#if access}}
-        <span class="flag {{access}}">{{access}}</span>
-    {{/if}}
-
-    {{#if final}}
-        <span class="flag final">final</span>
-    {{/if}}
-
-    {{#if static}}
-        <span class="flag static">static</span>
-    {{/if}}
-
-    <div class="meta">
-        {{#if overwritten_from}}
-            <p>Inherited from
-            <a href="{{crossLinkRaw overwritten_from/class}}#event_{{overwritten_from/name}}">
-                {{overwritten_from/class}}
-            </a>
-            {{#if foundAt}}
-            but overwritten in
-            {{/if}}
-        {{else}}
-            {{#if extended_from}}
-                <p>Inherited from
-                <a href="{{crossLinkRaw extended_from}}#event_{{name}}">{{extended_from}}</a>:
-            {{else}}
-                {{#providedBy}}
-                    <p>Provided by the <a href="../modules/{{.}}.html">{{.}}</a> module.</p>
-                {{/providedBy}}
-                <p>
-                {{#if foundAt}}
-                Defined in
-                {{/if}}
-            {{/if}}
-        {{/if}}
-        {{#if foundAt}}
-        <a href="{{foundAt}}">`{{{file}}}:{{{line}}}`</a>
-        {{/if}}
-        </p>
-
-        {{#if deprecationMessage}}
-            <p>Deprecated: {{deprecationMessage}}</p>
-        {{/if}}
-
-        {{#if since}}
-            <p>Available since {{since}}</p>
-        {{/if}}
-    </div>
-
-    <div class="description">
-        {{{eventDescription}}}
-    </div>
-
-    {{#if params}}
-        <div class="params">
-            <h4>Event Payload:</h4>
-
-            <ul class="params-list">
-            {{#params}}
-                <li class="param">
-                    {{#if optional}}
-                        <code class="param-name optional">[{{name}}{{#if optdefault}}={{optdefault}}{{/if}}]</code>
-                        <span class="type">{{#crossLink type}}{{/crossLink}}</span>
-                        <span class="flag optional" title="This parameter is optional.">optional</span>
-                    {{else}}
-                        <code class="param-name">{{name}}</code>
-                        <span class="type">{{#crossLink type}}{{/crossLink}}</span>
-                    {{/if}}
-
-                    {{#if multiple}}
-                        <span class="flag multiple" title="This parameter may occur one or more times.">Multiple</span>
-                    {{/if}}
-
-                    <div class="param-description">
-                        {{{description}}}
-                    </div>
-
-                    {{#if props}}
-                        <ul class="params-list">
-                            {{#props}}
-                            <li class="param">
-                                {{#if optional}}
-                                    <code class="param-name optional">[{{name}}{{#if optdefault}}={{optdefault}}{{/if}}]</code>
-                                    <span class="type">{{#crossLink type}}{{/crossLink}}</span>
-                                    <span class="flag optional" title="This parameter is optional.">optional</span>
-                                {{else}}
-                                    <code class="param-name">{{name}}</code>
-                                    <span class="type">{{#crossLink type}}{{/crossLink}}</span>
-                                {{/if}}
-
-                                <div class="param-description">
-                                    {{{description}}}
-                                </div>
-
-                                {{#if props}}
-                                    <ul class="params-list">
-                                        {{#props}}
-                                        <li class="param">
-                                            <code class="param-name">{{name}}</code>
-                                            <span class="type">{{#crossLink type}}{{/crossLink}}</span>
-
-                                            <div class="param-description">
-                                                {{{description}}}
-                                            </div>
-                                        </li>
-                                        {{/props}}
-                                    </ul>
-                                {{/if}}
-                            </li>
-                            {{/props}}
-                        </ul>
-                    {{/if}}
-                </li>
-            {{/params}}
-            </ul>
-        </div>
-    {{/if}}
-
-
-    {{#example}}
-        <div class="example">
-            <h4>Example:</h4>
-
-            <div class="example-content">
-                {{{.}}}
-            </div>
-        </div>
-    {{/example}}
-</div>
diff --git a/plugins/dali-script-v8/docs/dali-theme/partials/files.handlebars b/plugins/dali-script-v8/docs/dali-theme/partials/files.handlebars
deleted file mode 100644 (file)
index fccd476..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-<h1 class="file-heading">File: {{fileName}}</h1>
-
-<div class="file">
-    <pre class="code prettyprint linenums">
-{{fileData}}
-    </pre>
-</div>
diff --git a/plugins/dali-script-v8/docs/dali-theme/partials/index.handlebars b/plugins/dali-script-v8/docs/dali-theme/partials/index.handlebars
deleted file mode 100644 (file)
index 29a0e85..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-    <div class="apidocs">
-        <div id="docs-main" class="content">
-            <p>
-            Browse to a module or class using the sidebar to view its API documentation.
-            </p>
-
-            <h2>Keyboard Shortcuts</h2>
-
-            <ul>
-                <li><p>Press <kbd>s</kbd> to focus the API search box.</p></li>
-
-                <li><p>Use <kbd>Up</kbd> and <kbd>Down</kbd> to select classes, modules, and search results.</p></li>
-
-                <li class="mac-only"><p>With the API search box or sidebar focused, use <kbd><span class="cmd">&#x2318;</span>-Left</kbd> or <kbd><span class="cmd">&#x2318;</span>-Right</kbd> to switch sidebar tabs.</p></li>
-
-                <li class="pc-only"><p>With the API search box or sidebar focused, use <kbd>Ctrl+Left</kbd> and <kbd>Ctrl+Right</kbd> to switch sidebar tabs.</p></li>
-            </ul>
-        </div>
-    </div>
-
-
diff --git a/plugins/dali-script-v8/docs/dali-theme/partials/method.handlebars b/plugins/dali-script-v8/docs/dali-theme/partials/method.handlebars
deleted file mode 100644 (file)
index 664d79b..0000000
+++ /dev/null
@@ -1,212 +0,0 @@
-<div id="method_{{name}}" class="method item{{#if access}} {{access}}{{/if}}{{#if deprecated}} deprecated{{/if}}{{#if extended_from}} inherited{{/if}}">
-    <h3 class="name"><code>{{name}}</code></h3>
-
-    {{#if params}}
-        <div class="args">
-            <span class="paren">(</span><ul class="args-list inline commas">
-            {{#params}}
-                <li class="arg">
-                    {{#if optional}}
-                        <code class="optional">[{{name}}{{#if optdefault}}={{optdefault}}{{/if}}]</code>
-                    {{else}}
-                        <code>{{name}}</code>
-                    {{/if}}
-                </li>
-            {{/params}}
-            </ul><span class="paren">)</span>
-        </div>
-    {{else}}
-        <span class="paren">()</span>
-    {{/if}}
-
-    {{#if return}}
-        <span class="returns-inline">
-            <span class="type">{{#crossLink returnType}}{{/crossLink}}</span>
-        </span>
-    {{/if}}
-
-    {{#if deprecated}}
-        <span class="flag deprecated"{{#if deprecationMessage}} title="{{deprecationMessage}}"{{/if}}>deprecated</span>
-    {{/if}}
-
-    {{#if access}}
-        <span class="flag {{access}}">{{access}}</span>
-    {{/if}}
-
-    {{#if final}}
-        <span class="flag final">final</span>
-    {{/if}}
-
-    {{#if static}}
-        <span class="flag static">static</span>
-    {{/if}}
-
-    {{#if chainable}}
-        <span class="flag chainable">chainable</span>
-    {{/if}}
-
-    {{#if async}}
-        <span class="flag async">async</span>
-    {{/if}}
-
-    <div class="meta">
-        {{#if overwritten_from}}
-            <p>Inherited from
-            <a href="{{crossLinkRaw overwritten_from/class}}#method_{{overwritten_from/name}}">
-                {{overwritten_from/class}}
-            </a>
-            {{#if foundAt}}
-            but overwritten in
-            {{/if}}
-        {{else}}
-            {{#if extended_from}}
-                <p>Inherited from
-                <a href="{{crossLinkRaw extended_from}}#method_{{name}}">{{extended_from}}</a>:
-            {{else}}
-                {{#providedBy}}
-                    <p>Provided by the <a href="../modules/{{.}}.html">{{.}}</a> module.</p>
-                {{/providedBy}}
-                <p>
-                {{#if foundAt}}
-                Defined in
-                {{/if}}
-            {{/if}}
-        {{/if}}
-        {{#if foundAt}}
-        <a href="{{foundAt}}">`{{{file}}}:{{{line}}}`</a>
-        {{/if}}
-        </p>
-
-
-        {{#if deprecationMessage}}
-            <p>Deprecated: {{deprecationMessage}}</p>
-        {{/if}}
-
-        {{#if since}}
-            <p>Available since {{since}}</p>
-        {{/if}}
-    </div>
-
-    <div class="description">
-        {{{methodDescription}}}
-    </div>
-
-    {{#if params}}
-        <div class="params">
-            <h4>Parameters:</h4>
-
-            <ul class="params-list">
-            {{#params}}
-                <li class="param">
-                    {{#if optional}}
-                        <code class="param-name optional">[{{name}}{{#if optdefault}}={{optdefault}}{{/if}}]</code>
-                        <span class="type">{{#crossLink type}}{{/crossLink}}</span>
-                        <span class="flag optional" title="This parameter is optional.">optional</span>
-                    {{else}}
-                        <code class="param-name">{{name}}</code>
-                        <span class="type">{{#crossLink type}}{{/crossLink}}</span>
-                    {{/if}}
-
-                    {{#if multiple}}
-                        <span class="flag multiple" title="This argument may occur one or more times.">multiple</span>
-                    {{/if}}
-
-                    <div class="param-description">
-                        {{{description}}}
-                    </div>
-
-                    {{#if props}}
-                        <ul class="params-list">
-                            {{#props}}
-                            <li class="param">
-                                {{#if optional}}
-                                    <code class="param-name optional">[{{name}}{{#if optdefault}}={{optdefault}}{{/if}}]</code>
-                                    <span class="type">{{#crossLink type}}{{/crossLink}}</span>
-                                    <span class="flag optional" title="This parameter is optional.">optional</span>
-                                {{else}}
-                                    <code class="param-name">{{name}}</code>
-                                    <span class="type">{{#crossLink type}}{{/crossLink}}</span>
-                                {{/if}}
-
-                                <div class="param-description">
-                                    {{{description}}}
-                                </div>
-
-                                {{#if props}}
-                                    <ul class="params-list">
-                                        {{#props}}
-                                        <li class="param">
-                                            {{#if optional}}
-                                                <code class="param-name optional">[{{name}}{{#if optdefault}}={{optdefault}}{{/if}}]</code>
-                                                <span class="type">{{#crossLink type}}{{/crossLink}}</span>
-                                                <span class="flag optional" title="This parameter is optional.">optional</span>
-                                            {{else}}
-                                                <code class="param-name">{{name}}</code>
-                                                <span class="type">{{#crossLink type}}{{/crossLink}}</span>
-                                            {{/if}}
-
-                                            <div class="param-description">
-                                                {{{description}}}
-                                            </div>
-                                        </li>
-                                        {{/props}}
-                                    </ul>
-                                {{/if}}
-                            </li>
-                            {{/props}}
-                        </ul>
-                    {{/if}}
-                </li>
-            {{/params}}
-            </ul>
-        </div>
-    {{/if}}
-
-    {{#return}}
-        <div class="returns">
-            <h4>Returns:</h4>
-
-            <div class="returns-description">
-                {{#if description}}
-                    {{#if type}}
-                        <span class="type">{{#crossLink type}}{{/crossLink}}</span>:
-                    {{/if}}
-                    {{{description}}}
-                {{else}}
-                    {{#if type}}
-                        <span class="type">{{#crossLink type}}{{/crossLink}}</span>:
-                    {{/if}}
-                {{/if}}
-            </div>
-        </div>
-    {{/return}}
-
-    {{#throws}}
-        <div class="throws">
-            <h4>Throws:</h4>
-
-            <div class="throws-description">
-                {{#if description}}
-                    {{#if type}}
-                        <span class="type">{{#crossLink type}}{{/crossLink}}</span>:
-                    {{/if}}
-                    {{{description}}}
-                {{else}}
-                    {{#if type}}
-                        <span class="type">{{#crossLink type}}{{/crossLink}}</span>:
-                    {{/if}}
-                {{/if}}
-            </div>
-        </div>
-    {{/throws}}
-
-    {{#example}}
-        <div class="example">
-            <h4>Example:</h4>
-
-            <div class="example-content">
-                {{{.}}}
-            </div>
-        </div>
-    {{/example}}
-</div>
diff --git a/plugins/dali-script-v8/docs/dali-theme/partials/module.handlebars b/plugins/dali-script-v8/docs/dali-theme/partials/module.handlebars
deleted file mode 100644 (file)
index 190007f..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-<h1>{{name}} Module</h1>
-<div class="box clearfix meta">
-    {{#extra}}
-        {{#selleck}}
-            <a class="button link-docs" href="/yui/docs/{{name}}">User Guide &amp; Examples</a>
-        {{/selleck}}
-    {{/extra}}
-
-    {{#if requires}}
-        <div class="uses">
-            Requires
-            <ul class="inline commas">
-                {{#requires}}
-                    <li>{{#crossLinkModule .}}{{/crossLinkModule}}</li>
-                {{/requires}}
-            </ul>
-        </div>
-    {{/if}}
-
-    {{#if foundAt}}
-        <div class="foundat">
-            Defined in: <a href="{{foundAt}}">`{{{file}}}:{{{line}}}`</a>
-        </div>
-    {{/if}}
-
-    {{#if since}}
-        <p>Available since {{since}}</p>
-    {{/if}}
-</div>
-
-{{#if deprecated}}
-    <div class="box deprecated">
-        <p>
-        {{#if deprecationMessage}}
-            <strong>Deprecated:</strong> {{deprecationMessage}}
-        {{else}}
-            This module is deprecated.
-        {{/if}}
-        </p>
-    </div>
-{{/if}}
-
-<div class="box intro">
-    {{{moduleDescription}}}
-</div>
-
-{{#example}}
-    <div class="example">
-        <h4>Example:</h4>
-        <div class="example-content">
-            {{{.}}}
-        </div>
-    </div>
-{{/example}}
-
-<div class="yui3-g">
-    <div class="yui3-u-1-2">
-        {{#if moduleClasses}}
-            <p>This module provides the following classes:</p>
-
-            <ul class="module-classes">
-            {{#moduleClasses}}
-                <li class="module-class">
-                    <a href="{{../projectRoot}}classes/{{name}}.html">
-                        {{displayName}}
-                    </a>
-                </li>
-            {{/moduleClasses}}
-            </ul>
-        {{/if}}
-    </div>
-
-    <div class="yui3-u-1-2">
-        {{#if subModules}}
-            <p>This module is a rollup of the following modules:</p>
-
-            <ul class="module-submodules">
-            {{#subModules}}
-                <li class="module-submodule">
-                    <a href="{{../projectRoot}}modules/{{name}}.html">
-                        {{displayName}}
-                    </a>
-
-                    <div class="module-submodule-description">
-                        {{{description}}}
-                    </div>
-                </li>
-            {{/subModules}}
-            </ul>
-        {{/if}}
-    </div>
-</div>
diff --git a/plugins/dali-script-v8/docs/dali-theme/partials/options.handlebars b/plugins/dali-script-v8/docs/dali-theme/partials/options.handlebars
deleted file mode 100644 (file)
index 2b26210..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-    <div id="api-options">
-        Show:
-        <label for="api-show-inherited">
-            <input type="checkbox" id="api-show-inherited" checked>
-            Inherited
-        </label>
-
-        <label for="api-show-protected">
-            <input type="checkbox" id="api-show-protected">
-            Protected
-        </label>
-
-        <label for="api-show-private">
-            <input type="checkbox" id="api-show-private">
-            Private
-        </label>
-        <label for="api-show-deprecated">
-            <input type="checkbox" id="api-show-deprecated">
-            Deprecated
-        </label>
-
-    </div>
-
diff --git a/plugins/dali-script-v8/docs/dali-theme/partials/props.handlebars b/plugins/dali-script-v8/docs/dali-theme/partials/props.handlebars
deleted file mode 100644 (file)
index 696e720..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-<div id="property_{{name}}" class="property item{{#if access}} {{access}}{{/if}}{{#if deprecated}} deprecated{{/if}}{{#if extended_from}} inherited{{/if}}">
-    <h3 class="name"><code>{{name}}</code></h3>
-    <span class="type">{{#crossLink type}}{{/crossLink}}</span>
-
-    {{#if deprecated}}
-        <span class="flag deprecated"{{#if deprecationMessage}} title="{{deprecationMessage}}"{{/if}}>deprecated</span>
-    {{/if}}
-
-    {{#if access}}
-        <span class="flag {{access}}">{{access}}</span>
-    {{/if}}
-
-    {{#if final}}
-        <span class="flag final">final</span>
-    {{/if}}
-
-    {{#if static}}
-        <span class="flag static">static</span>
-    {{/if}}
-
-    <div class="meta">
-        {{#if overwritten_from}}
-            <p>Inherited from
-            <a href="{{crossLinkRaw overwritten_from/class}}#property_{{overwritten_from/name}}">
-                {{overwritten_from/class}}
-            </a>
-            {{#if foundAt}}
-            but overwritten in
-            {{/if}}
-        {{else}}
-            {{#if extended_from}}
-                <p>Inherited from
-                <a href="{{crossLinkRaw extended_from}}#property_{{name}}">{{extended_from}}</a>:
-            {{else}}
-                {{#providedBy}}
-                    <p>Provided by the <a href="../modules/{{.}}.html">{{.}}</a> module.</p>
-                {{/providedBy}}
-                <p>
-                {{#if foundAt}}
-                Defined in
-                {{/if}}
-            {{/if}}
-        {{/if}}
-        {{#if foundAt}}
-        <a href="{{foundAt}}">`{{{file}}}:{{{line}}}`</a>
-        {{/if}}
-        </p>
-
-        {{#if deprecationMessage}}
-            <p>Deprecated: {{deprecationMessage}}</p>
-        {{/if}}
-
-        {{#if since}}
-            <p>Available since {{since}}</p>
-        {{/if}}
-    </div>
-
-    <div class="description">
-        {{{propertyDescription}}}
-    </div>
-
-    {{#if default}}
-        <p><strong>Default:</strong> {{default}}</p>
-    {{/if}}
-
-    {{#example}}
-        <div class="example">
-            <h4>Example:</h4>
-
-            <div class="example-content">
-                {{{.}}}
-            </div>
-        </div>
-    {{/example}}
-
-    {{#if subprops}}
-        <h4>Sub-properties:</h4>
-
-        <ul class="params-list">
-            {{#subprops}}
-            <li class="param">
-                {{#if optional}}
-                    <code class="param-name optional">[{{name}}{{#if optdefault}}={{optdefault}}{{/if}}]</code>
-                    <span class="type">{{#crossLink type}}{{/crossLink}}</span>
-                    <span class="flag optional" title="This property is optional.">optional</span>
-                {{else}}
-                    <code class="param-name">{{name}}</code>
-                    <span class="type">{{#crossLink type}}{{/crossLink}}</span>
-                {{/if}}
-
-                <div class="param-description">
-                    {{{description}}}
-                </div>
-
-                {{#if subprops}}
-                    <ul class="params-list">
-                        {{#subprops}}
-                        <li class="param">
-                            {{#if optional}}
-                                <code class="param-name optional">[{{name}}{{#if optdefault}}={{optdefault}}{{/if}}]</code>
-                                <span class="type">{{#crossLink type}}{{/crossLink}}</span>
-                                <span class="flag optional" title="This property is optional.">optional</span>
-                            {{else}}
-                                <code class="param-name">{{name}}</code>
-                                <span class="type">{{#crossLink type}}{{/crossLink}}</span>
-                            {{/if}}
-
-                            <div class="param-description">
-                                {{{description}}}
-                            </div>
-                        </li>
-                        {{/subprops}}
-                    </ul>
-                {{/if}}
-            </li>
-            {{/subprops}}
-        </ul>
-    {{/if}}
-</div>
diff --git a/plugins/dali-script-v8/docs/dali-theme/partials/sidebar.handlebars b/plugins/dali-script-v8/docs/dali-theme/partials/sidebar.handlebars
deleted file mode 100644 (file)
index a8500c5..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-<div id="api-list">
-    <h2 class="off-left">APIs</h2>
-    <div id="api-tabview" class="tabview">
-        <ul class="tabs">
-            <li><a href="#api-classes">Classes</a></li>
-            <li><a href="#api-modules">Modules</a></li>
-        </ul>
-
-        <div id="api-tabview-filter">
-            <input type="search" id="api-filter" placeholder="Type to filter APIs">
-        </div>
-
-        <div id="api-tabview-panel">
-            <ul id="api-classes" class="apis classes">
-            {{#classes}}
-                <li><a href="{{../projectRoot}}classes/{{name}}.html">{{displayName}}</a></li>
-            {{/classes}}
-            </ul>
-
-            <ul id="api-modules" class="apis modules">
-            {{#allModules}}
-                <li><a href="{{../projectRoot}}modules/{{name}}.html">{{displayName}}</a></li>
-            {{/allModules}}
-            </ul>
-        </div>
-    </div>
-</div>
diff --git a/plugins/dali-script-v8/docs/dali-theme/theme.json b/plugins/dali-script-v8/docs/dali-theme/theme.json
deleted file mode 100644 (file)
index d540f15..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "yuiGridsUrl": "http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css",
-    "yuiSeedUrl": "http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"
-}
diff --git a/plugins/dali-script-v8/docs/gmon.out b/plugins/dali-script-v8/docs/gmon.out
deleted file mode 100644 (file)
index 04ee467..0000000
Binary files a/plugins/dali-script-v8/docs/gmon.out and /dev/null differ
diff --git a/plugins/dali-script-v8/docs/yuidoc.json b/plugins/dali-script-v8/docs/yuidoc.json
deleted file mode 100644 (file)
index 89a27cb..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-    "name": "DALI JavaScript API",
-    "description": "DALI is a dynamic animtaion library for building advanced 3D applications",
-    "version": "1.0.0",
-    "themedir": "dali-theme",
-    "url": "https://review.tizen.org/gerrit/platform/core/uifw/dali-core",
-    "options": {
-        "outdir": "generated",
-        "markdown": {
-          "gfm":"true"
-       }
-    }
-}
diff --git a/plugins/dali-script-v8/file.list b/plugins/dali-script-v8/file.list
deleted file mode 100644 (file)
index 3c50077..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-# Add local source files here
-
-v8_plugin_dir =\
- $(plugin_src_dir)/dali-script-v8/src
-
-script_v8_plugin_src_files = \
-   $(v8_plugin_dir)/dali-script-v8.cpp \
-   $(v8_plugin_dir)/utils/v8-utils.cpp \
-   $(v8_plugin_dir)/dali-wrapper.cpp \
-   $(v8_plugin_dir)/shared/base-wrapped-object.cpp \
-   $(v8_plugin_dir)/shared/object-template-helper.cpp \
-   $(v8_plugin_dir)/actors/actor-wrapper.cpp \
-   $(v8_plugin_dir)/actors/actor-api.cpp \
-   $(v8_plugin_dir)/actors/layer-api.cpp \
-   $(v8_plugin_dir)/actors/camera-actor-api.cpp \
-   $(v8_plugin_dir)/controls/control-wrapper.cpp \
-   $(v8_plugin_dir)/controls/item-factory-wrapper.cpp \
-   $(v8_plugin_dir)/controls/item-view-api.cpp \
-   $(v8_plugin_dir)/controls/scroll-view-api.cpp \
-   $(v8_plugin_dir)/constants/constants-wrapper.cpp \
-   $(v8_plugin_dir)/animation/animation-api.cpp \
-   $(v8_plugin_dir)/animation/animation-wrapper.cpp \
-   $(v8_plugin_dir)/animation/constrainer-api.cpp \
-   $(v8_plugin_dir)/animation/linear-constrainer-wrapper.cpp \
-   $(v8_plugin_dir)/animation/path-api.cpp \
-   $(v8_plugin_dir)/animation/path-constrainer-wrapper.cpp \
-   $(v8_plugin_dir)/animation/path-wrapper.cpp \
-   $(v8_plugin_dir)/stage/stage-wrapper.cpp \
-   $(v8_plugin_dir)/events/event-object-generator.cpp \
-   $(v8_plugin_dir)/events/pan-gesture-detector-api.cpp \
-   $(v8_plugin_dir)/events/pan-gesture-detector-wrapper.cpp \
-   $(v8_plugin_dir)/stage/stage-api.cpp \
-   $(v8_plugin_dir)/image/image-wrapper.cpp \
-   $(v8_plugin_dir)/image/image-api.cpp \
-   $(v8_plugin_dir)/image/buffer-image-api.cpp \
-   $(v8_plugin_dir)/image/frame-buffer-image-api.cpp \
-   $(v8_plugin_dir)/image/resource-image-api.cpp \
-   $(v8_plugin_dir)/object/handle-wrapper.cpp \
-   $(v8_plugin_dir)/object/property-buffer-api.cpp \
-   $(v8_plugin_dir)/object/property-buffer-wrapper.cpp \
-   $(v8_plugin_dir)/object/property-value-wrapper.cpp \
-   $(v8_plugin_dir)/signals/signal-manager.cpp \
-   $(v8_plugin_dir)/render-tasks/render-task-list-api.cpp \
-   $(v8_plugin_dir)/render-tasks/render-task-list-wrapper.cpp \
-   $(v8_plugin_dir)/render-tasks/render-task-api.cpp \
-   $(v8_plugin_dir)/render-tasks/render-task-wrapper.cpp \
-   $(v8_plugin_dir)/rendering/geometry-api.cpp \
-   $(v8_plugin_dir)/rendering/geometry-wrapper.cpp \
-   $(v8_plugin_dir)/rendering/texture-set-api.cpp \
-   $(v8_plugin_dir)/rendering/texture-set-wrapper.cpp \
-   $(v8_plugin_dir)/rendering/renderer-api.cpp \
-   $(v8_plugin_dir)/rendering/renderer-wrapper.cpp \
-   $(v8_plugin_dir)/rendering/sampler-api.cpp \
-   $(v8_plugin_dir)/rendering/sampler-wrapper.cpp \
-   $(v8_plugin_dir)/rendering/shader-api.cpp \
-   $(v8_plugin_dir)/rendering/shader-wrapper.cpp \
-   $(v8_plugin_dir)/toolkit/builder/builder-api.cpp \
-   $(v8_plugin_dir)/toolkit/builder/builder-wrapper.cpp \
-   $(v8_plugin_dir)/toolkit/focus-manager/keyboard-focus-manager-api.cpp \
-   $(v8_plugin_dir)/toolkit/focus-manager/keyboard-focus-manager-wrapper.cpp \
-   $(v8_plugin_dir)/signals/dali-any-javascript-converter.cpp \
-   $(v8_plugin_dir)/garbage-collector/garbage-collector.cpp \
-   $(v8_plugin_dir)/module-loader/module.cpp \
-   $(v8_plugin_dir)/module-loader/module-loader.cpp
diff --git a/plugins/dali-script-v8/src/actors/actor-api.cpp b/plugins/dali-script-v8/src/actors/actor-api.cpp
deleted file mode 100644 (file)
index 9459a46..0000000
+++ /dev/null
@@ -1,846 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "actor-api.h"
-
-// EXTERNAL INCLUDES
-#include <dali-toolkit/public-api/controls/text-controls/text-label.h>
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <actors/actor-wrapper.h>
-#include <animation/path-constrainer-wrapper.h>
-#include <rendering/renderer-wrapper.h>
-#include <rendering/renderer-api.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace  // unanmed namespace
-{
-
-Actor GetActor( v8::Isolate* isolate, const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  HandleWrapper* handleWrapper = HandleWrapper::Unwrap( isolate, args.This() );
-  return Actor::DownCast( handleWrapper->mHandle );
-}
-
-} //unanmed namespace
-
-/***************************************
- * ACTOR API FUNCTIONS
- ****************************************/
-/**
- * Constructor
- *
- * @for Actor
- * @constructor
- * @method Actor
- * @return {Object} actor
- */
-Actor ActorApi::New( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  return Actor::New();
-}
-
-/**
- * get the actors unique id
- *
- * @for Actor
- * @method getId
- * @return {Integer} id
- */
-void ActorApi::GetId( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor actor = GetActor( isolate, args );
-
-  args.GetReturnValue().Set( v8::Integer::New( isolate, actor.GetId() ) );
-}
-
-/**
- * Query whether an actor is the root actor, which is owned by the Stage
- *
- * @for Actor
- * @method isRoot
- * @return {Boolean} true if it is root
- *
- */
-void ActorApi::IsRoot( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor actor = GetActor( isolate, args );
-
-  args.GetReturnValue().Set( v8::Boolean::New( isolate, actor.IsRoot() ) );
-}
-
-/**
- *
- * Query whether the actor is connected to the Stage.
- * When an actor is connected, it will be directly or indirectly parented to the root Actor.
- * The root Actor is provided automatically by dali.stage, and is always considered to be connected.
- *
- * @for Actor
- * @method onStage
- * @return {Boolean} True if the actor is connected to the Stage
- */
-void ActorApi::OnStage( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor actor = GetActor( isolate, args );
-
-  args.GetReturnValue().Set( v8::Boolean::New( isolate, actor.OnStage() ) );
-}
-
-/**
- * Query whether an actor is a layer
- *
- * @for Actor
- * @method isLayer
- * @return {Boolean} true if it is a layer
- */
-void ActorApi::IsLayer( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor actor = GetActor( isolate, args );
-
-  args.GetReturnValue().Set( v8::Boolean::New( isolate, actor.IsLayer() ) );
-}
-
-/**
- * Gets the layer in which the actor is present.
- *
- * @for Actor
- * @method getLayer
- * @return {Object} Layer
- */
-void ActorApi::GetLayer( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor actor = GetActor( isolate, args );
-  Layer layer = actor.GetLayer();
-  if( layer ) // actors don't always have a layer
-  {
-    v8::Handle < v8::Object > wrappedLayer = ActorWrapper::ActorWrapper::WrapActor( isolate, layer, ActorWrapper::LAYER_ACTOR );
-    args.GetReturnValue().Set( wrappedLayer );
-  }
-  // else return an empty object
-}
-
-/**
- * Adds a child Actor to this Actor.
- *
- * NOTE! if the child already has a parent, it will be removed from old parent
- * and reparented to this actor. This may change childs position, color, shader effect,
- * scale etc as it now inherits them from this actor
- *
- * Pre-conditions
- * - The child actor is not the same as the parent actor.
- * - The actor is not the Root actor
-
- * Once added The child will be referenced by its parent. This means that the child will be kept alive,
- * even if the handle passed into this method is reset or destroyed.
- *
- * @for Actor
- * @method add
- * @param {Object} Actor
- */
-void ActorApi::AddActor( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor parent = GetActor( isolate, args );
-  bool found(false);
-  Actor child = V8Utils::GetActorParameter( PARAMETER_0, found, isolate, args );
-  if( found )
-  {
-    parent.Add( child );
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "child parameter missing" );
-  }
-}
-
-/**
- * Removes a child Actor from this Actor.
- *
- * If the actor was not a child of this actor, this is a no-op.
- *
- * Preconditions:
- * -  The child actor is not the same as the parent actor.
- *
- * @for Actor
- * @param{Object} Actor the child actor
- * @method Remove
- */
-void ActorApi::RemoveActor( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor parent = GetActor( isolate, args );
-  bool found( false );
-  Actor child = V8Utils::GetActorParameter( PARAMETER_0, found, isolate, args );
-
-  if( found )
-  {
-    parent.Remove( child );
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "child parameter missing" );
-  }
-}
-
-/**
- * Checks whether an Actor is equal to this Actor.
- *
- * @for Actor
- * @method iIsEqualTo
- * @param {Object} Actor
- */
-void ActorApi::IsEqualTo( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor self = GetActor( isolate, args );
-  bool found( false );
-
-  Actor actor = V8Utils::GetActorParameter( PARAMETER_0, found, isolate, args );
-  if( found )
-  {
-    args.GetReturnValue().Set( v8::Boolean::New( isolate, (actor == self) ) );
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "actor parameter missing" );
-  }
-}
-
-/** Removes an actor from its parent.
- *
- * If the actor has no parent, this method does nothing.
- *
- * @for Actor
- * @method Unparent
- */
-void ActorApi::Unparent( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor actor = GetActor( isolate, args );
-  actor.Unparent();
-}
-
-/**
- * get number of child actors
- *
- * @for Actor
- * @method getChildCount
- * @return {Integer} count
- */
-void ActorApi::GetChildCount( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor actor = GetActor( isolate, args );
-
-  args.GetReturnValue().Set( v8::Integer::New( isolate, actor.GetChildCount() ) );
-}
-
-/**
- * Retrieve a child actor by index.
- *
- * @for Actor
- * @method getChildAt
- * @param {Integer} actor index
- * @return {Object} actor on success, empty actor handle if not found
- */
-void ActorApi::GetChildAt( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor parent = GetActor( isolate, args );
-  bool found( false );
-  int id = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "Integer parameter missing" );
-    return;
-  }
-  Actor childActor = parent.GetChildAt( id );
-  if( childActor )
-  {
-    // wrap the child
-    v8::Handle < v8::Object > wrappedActor = ActorWrapper::WrapActor( isolate, childActor );
-    args.GetReturnValue().Set( wrappedActor );
-  }
-}
-
-/**
- * Search through this actor's hierarchy for an actor with the given name
- * The actor itself is also considered in the search
- *
- * @for Actor
- * @method findChildByName
- * @param {String} actor name
- * @return {Object} actor on success, empty actor handle if not found
- */
-void ActorApi::FindChildByName( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor parent = GetActor( isolate, args );
-  bool found( false );
-  std::string name = V8Utils::GetStringParameter( PARAMETER_0, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "string parameter missing" );
-    return;
-  }
-  Actor childActor = parent.FindChildByName( name );
-  if( childActor )
-  {
-    // wrap the child
-    v8::Handle < v8::Object > wrappedLayer = ActorWrapper::WrapActor( isolate, childActor );
-    args.GetReturnValue().Set( wrappedLayer );
-  }
-}
-
-/**
- * Search through this actor's hierarchy for an actor with the given unique ID.
- * The actor itself is also considered in the search
- *
- * @for Actor
- * @method findChildById
- * @param {Integer} id
- * @return {Object} actor on success, empty actor handle if not found
- */
-void ActorApi::FindChildById( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor parent = GetActor( isolate, args );
-
-  bool found( false );
-  int id = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "Integer parameter missing" );
-    return;
-  }
-  Actor childActor = parent.FindChildById( id );
-  if( childActor )
-  {
-    // wrap the child
-    v8::Local < v8::Object > wrappedLayer = ActorWrapper::WrapActor( isolate, childActor );
-    args.GetReturnValue().Set( wrappedLayer );
-  }
-}
-
-
-/**
- * retrieve the actor's parent.
- *
- * @for Actor
- * @method getParent
- * @return {Object} actor on success, empty actor handle if actor has no parent
- */
-void ActorApi::GetParent( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor actor = GetActor( isolate, args );
-  Actor parent = actor.GetParent();
-
-  if( parent )
-  {
-    v8::Local < v8::Object > wrappedLayer = ActorWrapper::WrapActor( isolate, parent );
-    args.GetReturnValue().Set( wrappedLayer );
-  }
-}
-/**
- * Converts screen coordinates into the actor's coordinate system using the default camera.
- *
- * The actor coordinates are relative to the top-left (0.0, 0.0, 0.5)
- *
- * @example
- *    var local = actor.screenToLocal( [ 10, 53 ]);
- *    var xPos = local.x;
- *    var yPos = local.y;
- *
- *
- * @for Actor
- * @method screenToLocal
- * @param {Object}  ScreenCoordinates array of 2 objects
- * @return {Object} local coordinates object with x,y properties
- */
-void ActorApi::ScreenToLocal( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor actor = GetActor( isolate, args );
-
-  //ool ScreenToLocal(float& localX, float& localY, float screenX, float screenY) const;
-  bool found( false );
-
-  int argCount( args.Length() );
-  Vector2 vector;
-
-  if( argCount == 1 )
-  {
-    vector = V8Utils::GetVector2Parameter( PARAMETER_0, found, isolate, args );
-    if( !found )
-    {
-      DALI_SCRIPT_EXCEPTION( isolate, "invalid parameters (x,y)" );
-      return;
-    }
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid parameters (x,y)" );
-    return;
-  }
-  float localX, localY;
-  actor.ScreenToLocal( localX, localY, vector.x, vector.y );
-
-  v8::Local < v8::Object > localCoordinates = v8::Object::New( isolate );
-
-  localCoordinates->Set( v8::String::NewFromUtf8( isolate, "x" ), v8::Number::New( isolate, localX ) );
-  localCoordinates->Set( v8::String::NewFromUtf8( isolate, "y" ), v8::Number::New( isolate, localY ) );
-
-  args.GetReturnValue().Set( localCoordinates );
-
-}
-
-/**
- * Sets whether the actor should be focusable by keyboard navigation.
- *
- * @for Actor
- * @method setKeyboardFocusable
- * @param {Boolean}  folcusable
- */
-void ActorApi::SetKeyboardFocusable( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor actor = GetActor( isolate, args );
-  bool parameterFound( false );
-  bool focus = V8Utils::GetBooleanParameter( PARAMETER_0, parameterFound, isolate, args );
-  if( !parameterFound )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "boolean parameter missing" );
-    return;
-  }
-
-  actor.SetKeyboardFocusable( focus );
-}
-
-/**
- * Returns whether the actor is focusable by keyboard navigation.
- *
- *
- * @for Actor
- * @method isKeyboardFocusable
- * @return {Boolean}  folcusable
- */
-void ActorApi::IsKeyboardFocusable( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor actor = GetActor( isolate, args );
-
-  args.GetReturnValue().Set( v8::Boolean::New( isolate, actor.IsKeyboardFocusable() ) );
-
-}
-/**
- * retrieve the actor type
- *
- * @for Actor
- * @method getActorType
- * @return {String} Actor, Layer, CameraActor ...
- */
-void ActorApi::GetActorType( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor actor = GetActor( isolate, args );
-
-  std::string name = actor.GetTypeName();
-  v8::Local < v8::String > v8String = v8::String::NewFromUtf8( isolate, name.c_str() );
-  args.GetReturnValue().Set( v8String );
-}
-/**
- * Return the natural size of the actor.
- *
- * @for Actor
- * @method getNaturalSize
- * @return {Object} { x, y, z }
- */
-void ActorApi::GetNaturalSize( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor actor = GetActor( isolate, args );
-
-  Vector3 size( actor.GetNaturalSize() );
-
-  v8::Local<v8::Object> sizeObject = v8::Object::New( isolate );
-
-  sizeObject->Set( v8::String::NewFromUtf8( isolate, "x" ), v8::Integer::New( isolate, size.width ) );
-  sizeObject->Set( v8::String::NewFromUtf8( isolate, "y" ), v8::Integer::New( isolate, size.height ) );
-  sizeObject->Set( v8::String::NewFromUtf8( isolate, "z" ), v8::Integer::New( isolate, size.depth ) );
-
-  args.GetReturnValue().Set( sizeObject );
-}
-
-/**
- * Return the value of negotiated dimension for the given dimension
- *
- * @for Actor
- * @method getRelayoutSize
- * @param {Integer} dimension The dimension of layout to retrieve (either dali.DIMENSION_WIDTH or dali.DIMENSION_HEIGHT)
- * @return {Number} The value of the negotiated dimension
- */
-void ActorApi::GetRelayoutSize( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor actor = GetActor( isolate, args );
-
-  bool found;
-  int dimension = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "missing dimension parameter");
-    return;
-  }
-
-  args.GetReturnValue().Set( v8::Number::New( isolate, actor.GetRelayoutSize( static_cast<Dimension::Type>(dimension) ) ) );
-}
-
-/**
- *  Calculate the width of the actor given a height
- *
- * The natural size is used for default calculation.
- * size 0 is treated as aspect ratio 1:1.
- * @for Actor
- * @method getWidthForHeight
- * @param {Float} height to use
- * @return {Float} Return the width based on the height
- * @example
- *   myTextLabel.getWidthForHeight(40);
- *
- * // DALi uses this formula internally
- * // width = naturalSize.width * height / naturalSize.height;
- *
- *
- */
-void ActorApi::GetWidthForHeight( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor actor = GetActor( isolate, args );
-
-  bool found;
-  float height = V8Utils::GetFloatParameter( PARAMETER_0, found, isolate, args, 0.f );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "missing height parameter");
-    return;
-  }
-  args.GetReturnValue().Set( v8::Number::New( isolate, actor.GetWidthForHeight( height ) ) );
-}
-
-/**
- *  Calculate the height of the actor given a width
- *
- * The natural size is used for default calculation.
- * size 0 is treated as aspect ratio 1:1.
- * @for Actor
- * @method getHeightForWidth
- * @param {Float} width to use
- * @return {Float} Return the height based on the width
- * @example
- *   myTextLabel.getHeightForWidth(250);
- *
- * // DALi uses this formula internally
- * // height = naturalSize.height * width / naturalSize.width
- */
-void ActorApi::GetHeightForWidth( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor actor = GetActor( isolate, args );
-
-  bool found;
-  float width = V8Utils::GetFloatParameter( PARAMETER_0, found, isolate, args, 0.f );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "missing width parameter");
-    return;
-  }
-  args.GetReturnValue().Set( v8::Number::New( isolate, actor.GetHeightForWidth( width ) ) );
-}
-/**
- * Move an actor relative to its existing position.
- * @example
- *
- *    // using an array
- *    actor.translateBy( [20,40,0] );
- *
- * @for Actor
- * @method translateBy
- * @param {object} an array of 3 numbers
- */
-void ActorApi::TranslateBy( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor actor = GetActor( isolate, args );
-
-  //Get displacement vector
-  Vector3 vector;
-  int argCount( args.Length() );
-  if( argCount == 1 )
-  {
-    bool found(false);
-    vector = V8Utils::GetVector3Parameter( PARAMETER_0, found, isolate, args );
-    if( !found )
-    {
-      DALI_SCRIPT_EXCEPTION( isolate, "Vector3 move parameter missing" );
-      return;
-    }
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "Vector3 move parameter missing" );
-    return;
-  }
-  actor.TranslateBy( vector );
-
-}
-
-
-/**
- * Apply a relative rotation to an actor.
- * @example
- *
- *     var rotation =new dali.Rotation( pitch, roll, yaw );
- *     actor.rotateBy( rotation );
- *
- * @for Actor
- * @method rotateBy
- * @param {object} dali rotation object
- */
-void ActorApi::RotateBy( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor actor = GetActor( isolate, args );
-
-  bool found( false );
-  Property::Value rotation = V8Utils::GetPropertyValueParameter( PARAMETER_0, found, isolate, args );
-
-  if( rotation.GetType() != Property::ROTATION )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "Rotation parameter missing" );
-    return;
-  }
-  // the rotation parameter has to be either a AngleAxis or a Quaternion
-  // both will work when calling Get( Quaternion);
-
-  Quaternion quaternionValue;
-  rotation.Get( quaternionValue );
-
-  actor.RotateBy( quaternionValue );
-}
-
-/**
- * Apply a relative scale to an actor.
- * @example
- *    // Double actor width and height ( keep depth the same )
- *    // using an array
- *    actor.scaleBy( [2,2,1] );
- *
- *
- * @for Actor
- * @method scaleBy
- * @param {object} JavaScript array
- */
-void ActorApi::ScaleBy( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor actor = GetActor( isolate, args );
-
-  Vector3 vector;
-  int argCount( args.Length() );
-  if( argCount == 1 )
-  {
-    bool found(false);
-    vector = V8Utils::GetVector3Parameter( PARAMETER_0, found, isolate, args );
-    if( !found )
-    {
-      DALI_SCRIPT_EXCEPTION( isolate, "Vector3 move parameter missing" );
-      return;
-    }
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "Vector3 parameter missing" );
-    return;
-  }
-  actor.ScaleBy( vector );
-}
-
-/**
- * Add a renderer to this actor.
- * @example
- *
- *     var renderer = new dali.Renderer( geometry, shader );
- *     actor.addRenderer( renderer );
- *
- * @for Actor
- * @method addRenderer
- * @param {object} renderer Renderer to add to the actor
- * @return {integer} The index of the Renderer that was added
- */
-void ActorApi::AddRenderer( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor actor = GetActor( isolate, args );
-
-  unsigned int index = 0;
-
-  bool found( false );
-  Renderer renderer = RendererApi::GetRendererFromParams( 0, found, isolate, args );
-  if( found )
-  {
-    index = actor.AddRenderer(renderer);
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "Renderer parameter missing" );
-    return;
-  }
-
-  args.GetReturnValue().Set( v8::Integer::New( isolate, index ) );
-}
-
-/**
- * Get the number of renderers on this actor.
- * @example
- *
- *     var count = actor.getRendererCount();
- *
- * @for Actor
- * @method getRendererCount
- * @return {integer} the number of renderers on this actor
- */
-void ActorApi::GetRendererCount( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Actor actor = GetActor( isolate, args );
-  args.GetReturnValue().Set( v8::Integer::New( isolate, actor.GetRendererCount() ) );
-}
-
-/**
- * Get a Renderer by index.
- * @example
- *
- *     var renderer = actor.getRendererAt( 0 );
- *
- * @for Actor
- * @method getRendererAt
- * @param {integer} index The index of the renderer to fetch, which must be between 0 and getRendererCount()-1
- * @return {object} The renderer at the specified index
- */
-void ActorApi::GetRendererAt( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor actor = GetActor( isolate, args );
-
-  Renderer renderer;
-
-  bool found( false );
-  int index = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0);
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid index parameter" );
-    return;
-  }
-  else
-  {
-    renderer = actor.GetRendererAt(static_cast<unsigned int>(index));
-    if( !renderer )
-    {
-      DALI_SCRIPT_EXCEPTION( isolate, "renderer not found" );
-      return;
-    }
-  }
-
-  // Wrap the renderer
-  v8::Local<v8::Object> localObject = RendererWrapper::WrapRenderer( isolate, renderer );
-  args.GetReturnValue().Set( localObject );
-}
-
-/**
- * Remove an renderer from the actor by index.
- * @example
- *
- *     actor.removeRenderer( 0 );
- *
- * @for Actor
- * @method removeRenderer
- * @param {integer} index Index of the renderer to be removed, which must be between 0 and getRendererCount()-1
- */
-void ActorApi::RemoveRenderer( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Actor actor = GetActor( isolate, args );
-
-  bool found( false );
-  int index = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0);
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid index parameter" );
-  }
-  else
-  {
-    actor.RemoveRenderer(static_cast<unsigned int>(index));
-  }
-}
-
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/actors/actor-api.h b/plugins/dali-script-v8/src/actors/actor-api.h
deleted file mode 100644 (file)
index 6db7534..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-#ifndef DALI_V8PLUGIN_ACTOR_API_H
-#define DALI_V8PLUGIN_ACTOR_API_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/actors/actor.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace ActorApi
-{
-
-  /**
-   * constructor
-   */
-  Actor New( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  /**
-   * Actor API. See actor.h for description of functions
-   */
-  void IsRoot( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetId( const v8::FunctionCallbackInfo< v8::Value >& args);
-  void OnStage( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void IsLayer( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetLayer( const v8::FunctionCallbackInfo< v8::Value >& args);
-  void AddActor( const v8::FunctionCallbackInfo< v8::Value >& args);
-  void RemoveActor( const v8::FunctionCallbackInfo< v8::Value >& args);
-  void IsEqualTo( const v8::FunctionCallbackInfo<v8::Value>& args );
-  void Unparent( const v8::FunctionCallbackInfo< v8::Value >& args);
-  void GetChildAt( const v8::FunctionCallbackInfo< v8::Value >& args);
-  void FindChildByName( const v8::FunctionCallbackInfo< v8::Value >& args);
-  void FindChildById( const v8::FunctionCallbackInfo< v8::Value >& args);
-  void GetParent( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetChildCount( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void ScreenToLocal( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void SetKeyboardFocusable( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void IsKeyboardFocusable( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetNaturalSize( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetRelayoutSize( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetWidthForHeight( const v8::FunctionCallbackInfo<v8::Value>& args );
-  void GetHeightForWidth( const v8::FunctionCallbackInfo<v8::Value>& args );
-  void TranslateBy( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void RotateBy( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void ScaleBy( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void AddRenderer( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetRendererCount( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetRendererAt( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void RemoveRenderer( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  // new function just for JavaScript API, to help developers know what type of actor
-  // they're dealing with, returns actor name as a string
-  void GetActorType( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-}; // namespace ActorApi
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_ACTOR_API_H
diff --git a/plugins/dali-script-v8/src/actors/actor-wrapper.cpp b/plugins/dali-script-v8/src/actors/actor-wrapper.cpp
deleted file mode 100644 (file)
index c9d3e1d..0000000
+++ /dev/null
@@ -1,413 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "actor-wrapper.h"
-
-// EXTERNAL INCLUDES
-#include <dali/public-api/object/type-registry.h>
-#include <dali-toolkit/public-api/controls/control.h>
-
-// INTERNAL INCLUDES
-#include <actors/layer-api.h>
-#include <actors/actor-api.h>
-#include <actors/camera-actor-api.h>
-#include <v8-utils.h>
-#include <dali-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-v8::Persistent<v8::ObjectTemplate> ActorWrapper::mActorTemplate;
-v8::Persistent<v8::ObjectTemplate> ActorWrapper::mCameraActorTemplate;
-v8::Persistent<v8::ObjectTemplate> ActorWrapper::mLayerActorTemplate;
-
-namespace
-{
-
-
-/**
- * pointer to a persistent template handle
- */
-struct ActorTemplate
-{
-  v8::Persistent<v8::ObjectTemplate>* actorTemplate;
-};
-
-/**
- * array of templates for each type of actor
- */
-const ActorTemplate ActorTemplateLookup[]=
-{
-    { &ActorWrapper::mActorTemplate },        // ACTOR
-    { &ActorWrapper::mLayerActorTemplate },   // LAYER_ACTOR
-    { &ActorWrapper::mCameraActorTemplate}    // CAMERA_ACTOR
-};
-
-/**
- * Bitmask of API's that an actor can support
- */
-enum ActorApiBitMask
-{
-  ACTOR_API              = 1 << 0,
-  LAYER_API              = 1 << 1,
-  CAMERA_ACTOR_API       = 1 << 2,
-};
-
-/**
- * structure used for the ActorApiLookup.
- */
-struct ActorApiStruct
-{
-  const char* actorName;
-  ActorWrapper::ActorType actorType;
-  Actor (*constructor)( const v8::FunctionCallbackInfo< v8::Value >& args);
-  int supportApis;
-};
-
-/**
- * Lookup table to match a actor type with a constructor and supported API's.
- * ActorWrapper::ActorType is used to index this table
- */
-const ActorApiStruct ActorApiLookup[]=
-{
-  {"Actor",      ActorWrapper::ACTOR,        ActorApi::New,       ACTOR_API },
-  {"Layer",      ActorWrapper::LAYER_ACTOR,  LayerApi::New,       ACTOR_API | LAYER_API                                },
-  {"CameraActor",ActorWrapper::CAMERA_ACTOR, CameraActorApi::New, ACTOR_API | CAMERA_ACTOR_API                         },
-};
-
-const unsigned int ActorApiLookupCount = sizeof(ActorApiLookup)/sizeof(ActorApiLookup[0]);
-
-
-
-/**
- * Creates an actor given a type name
- * Uses the type registry to create an actor of the correct type
- */
-Actor CreateActor( const v8::FunctionCallbackInfo< v8::Value >& args,
-                        const std::string& typeName )
-{
-  Actor actor;
-
-  ActorWrapper::ActorType actorType = ActorWrapper::GetActorType( typeName );
-
-  // if we don't currently support the actor type, then use type registry to create it
-  if( actorType == ActorWrapper::UNKNOWN_ACTOR )
-  {
-      DALI_SCRIPT_EXCEPTION( args.GetIsolate(), "Unknown actor type" );
-      return Actor();
-  }
-  else
-  {
-    // run the constructor for this type of actor so it can pull out
-    // custom parameters;
-    actor = (ActorApiLookup[actorType].constructor)( args );
-  }
-  return actor;
-}
-
-
-
-/**
- * given an actor type return what api's it supports
- */
-int GetActorSupportedApis( ActorWrapper::ActorType type )
-{
-  return ActorApiLookup[ type].supportApis;
-}
-
-/**
- * Used for the ActorFunctionTable to map function names to functions
- * with for a specific API
- */
-struct ActorFunctions
-{
-  const char* name;               ///< function name
-  void (*function)( const v8::FunctionCallbackInfo< v8::Value >& args);
-  ActorApiBitMask api;
-};
-
-/**
- * Contains a list of all functions that can be called an
- * actor / image-actor / layer / camera-actor
- */
-const ActorFunctions ActorFunctionTable[]=
-{
-    /**************************************
-    * Actor API (in order of actor.h)
-    * Any properties that have accessor functions are ignored to avoid duplication
-    **************************************/
-    // ignore. GetName()  use Actor.name
-    // ignore. SetName()  use Actor.name
-    { "GetId",             ActorApi::GetId,            ACTOR_API },
-    { "IsRoot",            ActorApi::IsRoot,           ACTOR_API },
-    { "OnStage",           ActorApi::OnStage,          ACTOR_API },
-    { "IsLayer",           ActorApi::IsLayer,          ACTOR_API },
-    { "GetLayer",          ActorApi::GetLayer,         ACTOR_API },
-    { "Add",               ActorApi::AddActor,         ACTOR_API },
-    { "Remove",            ActorApi::RemoveActor,      ACTOR_API },
-    { "IsEqualTo" ,        ActorApi::IsEqualTo,        ACTOR_API },
-    { "Unparent",          ActorApi::Unparent,         ACTOR_API },
-    { "GetChildCount",     ActorApi::GetChildCount,    ACTOR_API },
-    { "GetChildAt"   ,     ActorApi::GetChildAt,       ACTOR_API },
-    { "FindChildByName",   ActorApi::FindChildByName,  ACTOR_API },
-    { "FindChildById",     ActorApi::FindChildById,    ACTOR_API },
-    { "GetParent" ,        ActorApi::GetParent,        ACTOR_API },
-    { "GetActorType" ,     ActorApi::GetActorType,     ACTOR_API }, // custom for javascript
-
-    // ignore. SetParentOrigin() use Actor.parentOrigin
-    // ignore. GetCurrentParentOrigin()  use Actor.parentOrigin
-    // ignore. SetAnchorPoint()  use Actor.anchorPoint
-    // ignore. GetCurrentAnchorPoint()  use Actor.anchorPoint
-    // ignore. SetSize() use Actor.size
-    // ignore. GetCurrentSize() use Actor.size
-    { "GetNaturalSize",   ActorApi::GetNaturalSize,    ACTOR_API },
-    { "GetRelayoutSize",  ActorApi::GetRelayoutSize,   ACTOR_API },
-    { "GetWidthForHeight",ActorApi::GetWidthForHeight, ACTOR_API },
-    { "GetHeightForWidth",ActorApi::GetHeightForWidth, ACTOR_API },
-    // ignore. SetPosition(....) use Actor.position
-    // ignore. SetX, SetY, SetZ,  use Actor.position.x, Actor.position.y, Actor.position.z
-    { "TranslateBy",         ActorApi::TranslateBy,              ACTOR_API },
-    // ignore GetCurrentPosition(). use Actor.position
-    // ignore GetCurrentWorldPosition() use Actor.worldPosition
-    // ignore SetPositionInheritanceMode() use Actor.positionInheritance
-    // ignore GetPositionInheritanceMode()  use Actor.positionInheritance
-    // ignore SetOrientation() use Actor.orientation
-    { "RotateBy",         ActorApi::RotateBy,          ACTOR_API },
-    // ignore GetCurrentOrientation() use Actor.orientation
-    // ignore SetInheritOrientation() use Actor.inheritOrientation
-    // ignore IsOrientationInherited() use Actor.inheritOrientation
-    // ignore GetCurrentWorldOrientation() use Actor.worldOrientation
-    // ignore SetScale() use Actor.scale
-    { "ScaleBy",         ActorApi::ScaleBy,            ACTOR_API },
-    // ignore GetCurrentScale() use Actor.scale
-    // ignore GetCurrentWorldScale() use Actor.worldScale
-    // ignore SetInheritScale() use Actor.inheritScale
-    // ignore IsScaleInherited() use Actor.inheritScale
-    // ignore GetCurrentWorldMatrix() use Actor.worldMatrix
-    // ignore SetVisible() use Actor.visible
-    // ignore IsVisible() use Actor.visible
-    // ignore SetOpacity() use Actor.opacity
-    // ignore GetCurrentOpacity() use Actor.opacity
-    // ignore SetColor() use Actor.color
-    // ignore GetCurrentColor() use Actor.color
-    // ignore SetColorMode() use Actor.colorMode
-    // ignore GetColorMode() use Actor.colorMode
-    // ignore GetCurrentWorldColor() use Actor.worldColor
-    // ignore SetDrawMode() use Actor.drawMode
-    // ignore GetDrawMode() use Actor.drawMode
-    // ignore SetSensitive() use Actor.sensitve
-    // ignore IsSensitive() use Actor.sensitive
-    { "ScreenToLocal"       , ActorApi::ScreenToLocal,         ACTOR_API},
-    // ignore SetLeaveRequired() use Actor.leaveRequired
-    // ignore GetLeaveRequired() use Actor.leaveRequired
-    { "SetKeyboardFocusable", ActorApi::SetKeyboardFocusable,  ACTOR_API }, //-- should this be a property???
-    { "IsKeyboardFocusable" , ActorApi::IsKeyboardFocusable,   ACTOR_API }, //-- should this be a property???
-
-    { "AddRenderer",          ActorApi::AddRenderer,           ACTOR_API },
-    { "GetRendererCount",     ActorApi::GetRendererCount,      ACTOR_API },
-    { "GetRendererAt" ,       ActorApi::GetRendererAt,         ACTOR_API },
-    { "RemoveRenderer" ,      ActorApi::RemoveRenderer,        ACTOR_API },
-
-    /**************************************
-     * Layer  API (in order of layer.h)
-     **************************************/
-    { "GetDepth",           LayerApi::GetDepth,                 LAYER_API  },
-    { "Raise",              LayerApi::Raise,                    LAYER_API  },
-    { "Lower",              LayerApi::Lower,                    LAYER_API  },
-    { "RaiseAbove",         LayerApi::RaiseAbove,               LAYER_API  },
-    { "LowerBelow",         LayerApi::LowerBelow,               LAYER_API  },
-    { "RaiseToTop",         LayerApi::RaiseToTop,               LAYER_API  },
-    { "LowerToBottom",      LayerApi::LowerToBottom,            LAYER_API  },
-    { "MoveAbove",          LayerApi::MoveAbove,                LAYER_API  },
-    { "MoveBelow",          LayerApi::MoveBelow,                LAYER_API  },
-    // ignore SetClipping, use layer.clippingEnable
-    // ignore IsClipping, use layer.clippingEnable
-    // ignore SetClippingBox, use layer.clippingBox
-    { "SetDepthTestDisabled", LayerApi::SetDepthTestDisabled,   LAYER_API },
-    { "IsDepthTestDisabled",  LayerApi::IsDepthTestDisabled,    LAYER_API },
-    // @todo SetSortFunction
-
-    /**************************************
-     * Camera Actor API (in order of camera.h)
-     **************************************/
-    // ignore SetType use camera.type
-    // ignore GetType use camera.type
-    // ignore SetProjectionMode use camera.projectionMode
-    // ignore GetProjectionMode use camera.projectionMode
-    // ignore SetFieldOfView use camera.fieldOfView
-    // ignore GetFieldOfView use camera.fieldOfView
-    // ignore SetAspectRatio use camera.aspectRatio
-    // ignore GetAspectRatio use camera.aspectRatio
-    // ignore SetNearClippingPlane use camera.nearPlaneDistance
-    // ignore GetNearClippingPlane use camera.nearPlaneDistance
-    // ignore SetFarClippingPlane use camera.farPlaneDistance
-    // ignore GetFarClippingPlane use camera.farPlaneDistance
-    // ignore GetTargetPosition use camera.targetPosition
-    // ignore SetInvertYAxis use camera.invertYAxis
-    // ignore GetInvertYAxis use camera.invertYAxis
-    { "SetPerspectiveProjection",   CameraActorApi::SetPerspectiveProjection,   CAMERA_ACTOR_API },
-    { "SetOrthographicProjection",  CameraActorApi::SetOrthographicProjection,  CAMERA_ACTOR_API },
-
-};
-
-const unsigned int ActorFunctionTableCount = sizeof(ActorFunctionTable)/sizeof(ActorFunctionTable[0]);
-} //un-named space
-
-
-ActorWrapper::ActorWrapper( Actor actor,
-              GarbageCollectorInterface& gc )
-: HandleWrapper( BaseWrappedObject::ACTOR , actor, gc ),
-  mActor( actor )
-
-{
-}
-
-v8::Handle<v8::Object> ActorWrapper::WrapActor(v8::Isolate* isolate, Actor actor )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  // Check whether the actor is a Control
-  ActorWrapper::ActorType type = Toolkit::Control::DownCast(actor) ? ACTOR : GetActorType( actor.GetTypeName() );
-  v8::Local<v8::Object> object = WrapActor( isolate, actor, type );
-
-  return handleScope.Escape( object );
-}
-
-Actor ActorWrapper::GetActor()
-{
-  return mActor;
-}
-
-v8::Handle<v8::Object> ActorWrapper::WrapActor( v8::Isolate* isolate, Actor actor, ActorType actorType )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  objectTemplate = GetActorTemplate( isolate, actorType );
-
-  // create an instance of the template
-  v8::Local<v8::Object> localObject = objectTemplate->NewInstance();
-
-  // create the actor object
-  ActorWrapper* pointer = new ActorWrapper( actor, Dali::V8Plugin::DaliWrapper::Get().GetDaliGarbageCollector() );
-
-  // assign the JavaScript object to the wrapper.
-  // This also stores Dali object, in an internal field inside the JavaScript object.
-  pointer->SetJavascriptObject( isolate, localObject );
-
-  return handleScope.Escape( localObject );
-}
-
-v8::Local<v8::ObjectTemplate> ActorWrapper::GetActorTemplate( v8::Isolate* isolate, ActorWrapper::ActorType type )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  if( ActorTemplateLookup[type].actorTemplate->IsEmpty() )
-  {
-    objectTemplate = MakeDaliActorTemplate( isolate, type );
-    ActorTemplateLookup[type].actorTemplate->Reset( isolate, objectTemplate );
-  }
-  else
-  {
-    // get the object template
-    objectTemplate = v8::Local<v8::ObjectTemplate>::New( isolate, *ActorTemplateLookup[type].actorTemplate );
-  }
-
-  return handleScope.Escape( objectTemplate );
-}
-
-v8::Handle<v8::ObjectTemplate> ActorWrapper::MakeDaliActorTemplate( v8::Isolate* isolate, ActorType actorType )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  v8::Local<v8::ObjectTemplate> objTemplate = v8::ObjectTemplate::New();
-
-  objTemplate->SetInternalFieldCount( BaseWrappedObject::FIELD_COUNT );
-
-  // find out what API's this actor supports
-  int supportApis = GetActorSupportedApis( actorType );
-
-  // add our function properties
-  for( unsigned int i = 0; i < ActorFunctionTableCount; ++i )
-  {
-    const ActorFunctions property =  ActorFunctionTable[i];
-
-    // check to see if the actor supports a certain type of API
-    // e.g. Layer will support ACTOR_API and LAYER_API
-    if( supportApis &  property.api )
-    {
-      std::string funcName = V8Utils::GetJavaScriptFunctionName( property.name);
-
-      objTemplate->Set( v8::String::NewFromUtf8(   isolate, funcName.c_str() ),
-                      v8::FunctionTemplate::New( isolate, property.function ) );
-    }
-  }
-
-  // property handle intercepts property getters and setters and signals
-  HandleWrapper::AddInterceptsToTemplate( isolate, objTemplate );
-
-
-  return handleScope.Escape( objTemplate );
-}
-
-void ActorWrapper::NewActor( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  if( !args.IsConstructCall() )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "constructor called without 'new" );
-    return;
-  }
-
-  // find out the callee function name...e.g. CameraActor
-  v8::Local<v8::Function> callee = args.Callee();
-  v8::Local<v8::Value> v8String = callee->GetName();
-  std::string typeName = V8Utils::v8StringToStdString( v8String );
-
-  // create a new actor based on type, using the type registry.
-  Actor actor = CreateActor( args, typeName );
-
-  v8::Local<v8::Object> localObject = WrapActor( isolate, actor );
-
-  args.GetReturnValue().Set( localObject );
-}
-
-/**
- * given an actor type name, e.g. CameraActor returns the type, e.g. ActorWrapper::CAMERA_ACTOR
- */
-ActorWrapper::ActorType ActorWrapper::GetActorType( const std::string& name )
-{
-  for( unsigned int i = 0 ; i < ActorApiLookupCount ; i++ )
-  {
-    if( ActorApiLookup[i].actorName == name )
-    {
-      return ActorApiLookup[i].actorType;
-    }
-  }
-  return ActorWrapper::UNKNOWN_ACTOR;
-}
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/actors/actor-wrapper.h b/plugins/dali-script-v8/src/actors/actor-wrapper.h
deleted file mode 100644 (file)
index f7a48b3..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-#ifndef DALI_V8PLUGIN_ACTOR_WRAPPER_H
-#define DALI_V8PLUGIN_ACTOR_WRAPPER_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/actors/actor.h>
-
-// INTERNAL INCLUDES
-#include <object/handle-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-
-/**
- * Wraps a Dali Actor.
- */
-class ActorWrapper : public HandleWrapper
-{
-
-public:
-
-  /**
-   * Actor type used an index.
-   * These enums are used to index the ActorApiLookup table in actor-wrapper.cpp.
-   * Any changes made must be reflected in the ActorApiLookup otherwise it may segfault when creating an actor
-   */
-  enum ActorType
-  {
-    UNKNOWN_ACTOR = -1,
-    ACTOR        = 0,
-    LAYER_ACTOR  = 1,
-    CAMERA_ACTOR = 2
-  };
-
-  /**
-   * Constructor
-   * @param actor DALi actor
-   * @param gc garbage collection interface
-   */
-  ActorWrapper( Actor actor,
-                GarbageCollectorInterface& gc );
-
-  /**
-   * destructor
-   */
-  virtual ~ActorWrapper()
-  {
-  }
-
-  /**
-   * @brief Creates a new Actor wrapped inside a Javascript Object.
-   * @note: the actor type ie 'CameraActor' is expected to be the name of the callee function.
-   * @param[in] args v8 function call arguments interpreted
-   */
-  static void NewActor( const v8::FunctionCallbackInfo< v8::Value >& args);
-
-  /**
-   * @brief Wraps an actor of a given type
-   */
-  static v8::Handle<v8::Object> WrapActor(v8::Isolate* isolate, Dali::Actor actor,ActorType actorType);
-
-  /**
-   * @brief Wraps an actor, the type is looked up from the actor
-   */
-  static v8::Handle<v8::Object> WrapActor(v8::Isolate* isolate, Dali::Actor actor );
-
-  // The Actor ObjectTemplates.
-  static v8::Persistent<v8::ObjectTemplate> mActorTemplate;
-  static v8::Persistent<v8::ObjectTemplate> mCameraActorTemplate;
-  static v8::Persistent<v8::ObjectTemplate> mLayerActorTemplate;
-
-  /**
-   * @return the wrapped actor
-   */
-  Actor GetActor();
-
-  /**
-   * @return they actor type
-   */
-  static ActorWrapper::ActorType GetActorType( const std::string& name );
-
-protected:
-
-  /**
-   * @brief Helper to make the actor template
-   *
-   */
-  static v8::Handle<v8::ObjectTemplate> MakeDaliActorTemplate( v8::Isolate* isolate, ActorType actorType );
-
-private:
-
-  /**
-   * Helper, get an actor template given an actor type
-   */
-  static v8::Local<v8::ObjectTemplate> GetActorTemplate( v8::Isolate* isolate, ActorType type );
-
-  Actor mActor;
-
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_ACTOR_WRAPPER_H
diff --git a/plugins/dali-script-v8/src/actors/camera-actor-api.cpp b/plugins/dali-script-v8/src/actors/camera-actor-api.cpp
deleted file mode 100644 (file)
index 94fcbe5..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "camera-actor-api.h"
-
-// INTERNAL INCLUDES
-#include <object/handle-wrapper.h>
-#include <v8-utils.h>
-#include <shared/base-wrapped-object.h>
-#include <object/property-value-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace // un-named namespace
-{
-
-CameraActor GetCameraActor( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  HandleWrapper* handleWrapper = HandleWrapper::Unwrap( isolate, args.This() );
-  return CameraActor::DownCast( handleWrapper->mHandle );
-}
-
-} // un-named name space
-
-/***************************************
- * CAMERA ACTOR FUNCTIONS
- ****************************************/
-/**
- * Constructor
- *
- * @constructor
- * @method CameraActor
- * @for CameraActor
- * @return {Object} CameraActor
- */
-Actor CameraActorApi::New( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  return CameraActor::New();
-}
-
-/**
- *
- * Sets the default camera perspective projection for the given canvas size.
- *
- * Sets the near and far clipping planes, the field of view, the aspect ratio
- * and the Z position of the actor based on the canvas size so that 1 unit in
- * XY (z=0) plane is 1 pixel on screen.
- *
- * If the canvas size is ZERO, it sets the default camera perspective
- * projection for the stage's size.
- *
- * If size is non ZERO, \e width and \e height must be greater than zero.
- *
- *
- * @example
- *     var camera = dali.stage.getRenderTaskList().getTask(0).getCameraActor();
- *
- *     camera.setPerspectiveProjection( [100, 150] );
- *
- *
- * @for CameraActor
- * @method setPerspectiveProjection
- * @param {Object}  The canvas size, array of 2 numbers
- */
-void CameraActorApi::SetPerspectiveProjection( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  CameraActor cameraActor = GetCameraActor( isolate, args );
-
-  bool found;
-  Vector2 size = V8Utils::GetVector2Parameter( PARAMETER_0, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad parameter" );
-    return;
-  }
-  cameraActor.SetPerspectiveProjection( size );
-}
-
-/**
- *
- * Sets the camera projection to use orthographic projection.
- *
- * The XY plane is centered on the camera axis. The units in the X/Y
- * plane directly equate to pixels on an equivalently sized
- * framebuffer.
- *
- * The Z position of the actor, and the near and far clip planes of the
- * bounding box match those that would be created by using
- * SetPerspectiveProjection with the same size.
- *
- *
- * @example
- *     var camera = dali.stage.getRenderTaskList().getTask(0).getCameraActor();
- *     camera.setOrthographicProjection( [1920, 1080] );
- *
- * @for CameraActor
- * @method setOrthographicProjection
- * @param {Object}  Size Size of XY plane (normal to camera axis)
- */
-void CameraActorApi::SetOrthographicProjection( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  CameraActor cameraActor = GetCameraActor( isolate, args );
-
-  bool found;
-  Vector2 size = V8Utils::GetVector2Parameter( PARAMETER_0, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad parameter" );
-    return;
-  }
-  cameraActor.SetOrthographicProjection( size );
-}
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/actors/camera-actor-api.h b/plugins/dali-script-v8/src/actors/camera-actor-api.h
deleted file mode 100644 (file)
index eeabae7..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef DALI_V8PLUGIN_CAMERA_ACTOR_API_H
-#define DALI_V8PLUGIN_CAMERA_ACTOR_API_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/actors/camera-actor.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace CameraActorApi
-{
-  /**
-   * constructor
-   */
-  Actor New( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-
-  /**
-   * Camera API see DALI camera.h
-   */
-  void SetPerspectiveProjection( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void SetOrthographicProjection( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-}; // namespace CameraActorApi
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_CAMERA_ACTOR_API_H
diff --git a/plugins/dali-script-v8/src/actors/layer-api.cpp b/plugins/dali-script-v8/src/actors/layer-api.cpp
deleted file mode 100644 (file)
index da6e18f..0000000
+++ /dev/null
@@ -1,299 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "layer-api.h"
-
-// INTERNAL INCLUDES
-#include <object/handle-wrapper.h>
-#include <v8-utils.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace //unnamed name space
-{
-
-Layer GetLayer( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  HandleWrapper* handleWrapper = HandleWrapper::Unwrap( isolate, args.This() );
-  return Layer::DownCast( handleWrapper->mHandle );
-}
-
-} //unnamed name space
-
-/***************************************
- * LAYER FUNCTIONS
- *
- ****************************************/
-/**
- * Constructor
- *
- * @constructor
- * @method Layer
- * @for Layer
- * @return {Object} Layer
- */
-Actor LayerApi::New( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  return Layer::New();
-}
-
-/**
- *  Query the depth of the layer
- *
- * 0 is bottom most layer, higher number is on top
- * Condition: layer is on the stage
- * If layer is not added to the stage, returns 0.
- * @return  {Number}  the current depth of the layer.
- */
-void LayerApi::GetDepth( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Layer layer = GetLayer( isolate, args );
-
-  args.GetReturnValue().Set( v8::Integer::New( isolate, layer.GetDepth() ) );
-
-}
-
-/**
- * Increment the depth of the layer.
- * Condition: layer is on the stage
- * @method Raise
- * @for Layer
- *
- */
-void LayerApi::Raise( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Layer layer = GetLayer( isolate, args );
-  layer.Raise();
-}
-
-/**
- * Decrement the depth of the layer.
- * Condition: layer is on the stage
- * @for Layer
- * @method lower
- */
-void LayerApi::Lower( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Layer layer = GetLayer( isolate, args );
-  layer.Lower();
-}
-
-/**
- *  Ensures the layers depth is greater than the target layer.
- *
- * If the layer already is above target layer its depth is not changed
- * If the layer was below target, its new depth will be immediately above target
- * Note! All layers between this layer and target get new depth values
- * Condition: layer is on the stage
- * Condition: target layer is on the stage
- * @for Layer
- * @method raiseAbove
- * @param target layer to get above of
- */
-void LayerApi::RaiseAbove( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Layer layer = GetLayer( isolate, args );
-  bool found(false);
-
-  Layer target = V8Utils::GetLayerParameter( PARAMETER_0, found, isolate, args );
-  if( found )
-  {
-    layer.RaiseAbove( target );
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "layer param not found");
-  }
-}
-
-/**
- *  Ensures the layers depth is less than the target layer.
- *
- * If the layer already is below the layer its depth is not changed
- * If the layer was above target, its new depth will be immediately below target
- * Note! All layers between this layer and target get new depth values
- * Conditions: layer is on the stage, target layer is on the stage
- * @param target layer to get below of
- * @for Layer
- * @method lowerBelow
- */
-void LayerApi::LowerBelow( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Layer layer = GetLayer( isolate, args );
-  bool found( false );
-
-  Layer target = V8Utils::GetLayerParameter( PARAMETER_0, found, isolate, args );
-
-  if( found )
-  {
-    layer.LowerBelow( target );
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "layer param not found");
-  }
-
-}
-
-/**
- * Raises the layer to the top.
- * Conditions:  layer is on the stage
- * @for Layer
- * @method raiseToTop
- */
-void LayerApi::RaiseToTop( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Layer layer = GetLayer( isolate, args );
-  layer.RaiseToTop();
-}
-
-/**
- * Lowers the layer to the bottom.
- * Conditions:  layer is on the stage
- * @for Layer
- * @method lowerToBottom
- */
-void LayerApi::LowerToBottom( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Layer layer = GetLayer( isolate, args );
-  layer.LowerToBottom();
-}
-
-/**
- *  Moves the layer directly above the given layer.
- *
- * After the call this layers depth will be immediately above target
- * Note! All layers between this layer and target get new depth values
- * Conditions: layer is on the stage, target layer is on the stage
- * @param target layer to get on top of
- * @for Layer
- * @method moveAbove
- */
-void LayerApi::MoveAbove( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Layer layer = GetLayer( isolate, args );
-  bool found( false );
-
-  Layer target = V8Utils::GetLayerParameter( PARAMETER_0, found, isolate, args );
-  if( found )
-  {
-    layer.MoveAbove( target );
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "layer param not found");
-  }
-}
-
-/**
- *  Moves the layer directly below the given layer.
- *
- * After the call this layers depth will be immediately below target
- * Note! All layers between this layer and target get new depth values
- * Condition: layer is on the stage
- * Condition: target layer is on the stage
- * @param target layer to get below of
- * @for Layer
- * @method moveBelow
- */
-void LayerApi::MoveBelow( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Layer layer = GetLayer( isolate, args );
-  bool found( false );
-
-  Layer target = V8Utils::GetLayerParameter( PARAMETER_0, found, isolate, args );
-
-  if( found )
-  {
-    layer.MoveBelow( target );
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "layer param not found");
-  }
-}
-
-// should really be a property
-/**
- *  Whether to disable the depth test.
- *
- * By default a layer enables depth test if there is more than one opaque actor or if there is one opaque actor and one, or more, transparent actors.
- * However, it's possible to disable the depth test by calling this method.
- *
- * @param {Boolean}  disable true disables depth test. false sets the default behaviour.
- * @for Layer
- * @method setDepthTestDisabled
- */
-void LayerApi::SetDepthTestDisabled( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Layer layer = GetLayer( isolate, args );
-  bool parameterFound( false );
-  bool depthTest = V8Utils::GetBooleanParameter( PARAMETER_0, parameterFound, isolate, args );
-  if( !parameterFound )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad parameter" );
-    return;
-  }
-  layer.SetDepthTestDisabled( depthTest );
-
-}
-
-/**
- *  Retrieves whether depth test is disabled.
- *
- * @return { Boolean}  true if depth test is disabled.
- * @for Layer
- * @method isDepthTestDisabled
- */
-void LayerApi::IsDepthTestDisabled( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Layer layer = GetLayer( isolate, args );
-  args.GetReturnValue().Set( v8::Boolean::New( isolate, layer.IsDepthTestDisabled() ) );
-}
-
-
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/actors/layer-api.h b/plugins/dali-script-v8/src/actors/layer-api.h
deleted file mode 100644 (file)
index e6d0187..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-#ifndef DALI_V8PLUGIN_LAYER_API_H
-#define DALI_V8PLUGIN_LAYER_API_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/actors/layer.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace LayerApi
-{
-  /**
-   * Layer constructor
-   */
-  Actor New( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  /**
-   * Layer API see layer.h for a description
-   */
-  void GetDepth( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void Raise( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void Lower( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void RaiseAbove( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void LowerBelow( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void RaiseToTop( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void LowerToBottom( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void MoveBelow( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void MoveAbove( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void SetDepthTestDisabled( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void IsDepthTestDisabled( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-
-}; // namespace LayerApi
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_LAYER_API_H
diff --git a/plugins/dali-script-v8/src/animation/animation-api.cpp b/plugins/dali-script-v8/src/animation/animation-api.cpp
deleted file mode 100644 (file)
index 3a63034..0000000
+++ /dev/null
@@ -1,1088 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "animation-api.h"
-#include "path-wrapper.h"
-
-// EXTERNAL INCLUDES
-#include <dali/integration-api/debug.h>
-
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <animation/animation-wrapper.h>
-#include <object/property-value-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace // un named namespace
-{
-
-struct AnimationParameters
-{
-  AnimationParameters( const Animation& anim)
-  : propertyIndex( Property::INVALID_INDEX  ),
-    alphaFunction( AlphaFunction::DEFAULT),
-    delay( 0.f ),
-    duration(anim.GetDuration()),
-    optionsFound( false )
-  {
-  }
-
-  Handle target;
-  Property::Index propertyIndex;
-  Property::Value value;
-  KeyFrames keyFrames;
-  AlphaFunction alphaFunction;
-  float delay;
-  float duration;
-  bool optionsFound;
-};
-
-void GetAnimationOptions( v8::Isolate* isolate,
-                          v8::Local<v8::Value > options,
-                          AnimationParameters& animParams )
-{
-  // animation options is an optional parameter passed in which holds
-  // optional settings
-  // var animOptions = {
-  //  alpha: "Bounce",
-  //  delay: 5,
-  //  duration: 20
-  // };
-  v8::HandleScope handleScope( isolate );
-
-  if( options->IsObject() )
-  {
-    v8::Local<v8::Object> obj = options->ToObject();
-    v8::Local<v8::Value> alphaValue = obj->Get( v8::String::NewFromUtf8( isolate, "alpha" ) );
-    if( alphaValue->IsUint32() )
-    {
-      animParams.optionsFound = true;
-      animParams.alphaFunction = static_cast<AlphaFunction::BuiltinFunction>(alphaValue->ToUint32()->Value());
-    }
-
-    v8::Local<v8::Value> delayValue = obj->Get( v8::String::NewFromUtf8( isolate, "delay" ) );
-    if( delayValue->IsNumber() )
-    {
-      animParams.optionsFound = true;
-      v8::Local<v8::Number> num = delayValue->ToNumber();
-      animParams.delay = num->Value();
-    }
-
-    v8::Local<v8::Value> durationValue = obj->Get( v8::String::NewFromUtf8( isolate, "duration" ) );
-    if( durationValue->IsNumber() )
-    {
-      animParams.optionsFound = true;
-      v8::Local<v8::Number> num = durationValue->ToNumber();
-      animParams.duration = num->Value();
-    }
-
-  }
-}
-KeyFrames GetKeyFrames( v8::Isolate* isolate, v8::Local<v8::Value > keyFrameArray )
-{
-  // keyframe object is an array of
-  // {
-  //   float: progress
-  //   value: property value ( position/ rotation etc)
-  //   alpha: function
-  //
-  v8::HandleScope handleScope( isolate );
-
-  if( !keyFrameArray->IsObject() || !keyFrameArray->IsArray() )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "missing keyframe array" );
-    return KeyFrames();
-  }
-
-  KeyFrames keyframes = KeyFrames::New();
-
-  v8::Local<v8::Array> array = v8::Local<v8::Array>::Cast( keyFrameArray );
-  for( uint32_t i=0; i < array->Length() ; ++i)
-  {
-    v8::Handle<v8::Value> arrayItem =  array->Get( i );
-
-    if(!arrayItem->IsObject() )
-    {
-      DALI_SCRIPT_EXCEPTION( isolate, "missing keyframe object" );
-      return KeyFrames();
-    }
-    v8::Handle<v8::Object> keyFrameObject = arrayItem->ToObject();
-
-    // get keyframe.progress
-    v8::Handle<v8::Value> progress = keyFrameObject->Get(v8::String::NewFromUtf8( isolate, "progress"));
-    if( !progress->IsNumber() )
-    {
-      DALI_SCRIPT_EXCEPTION( isolate, "keyframe missing progress property" );
-      return keyframes;
-    }
-
-    // get keyframe.value
-    bool found(false);
-    v8::Handle<v8::Value> propertyValue = keyFrameObject->Get(v8::String::NewFromUtf8( isolate, "value"));
-    Property::Value value =  V8Utils::GetPropertyValueFromObject( found, isolate, propertyValue );
-    if( !found )
-    {
-      DALI_SCRIPT_EXCEPTION( isolate, "keyframe missing value property" );
-      return keyframes;
-    }
-
-    // get keyframe.alpha
-    v8::Handle<v8::Value> alphaValue = keyFrameObject->Get(v8::String::NewFromUtf8( isolate, "alpha"));
-    if( alphaValue->IsUint32() )
-    {
-      AlphaFunction alphaFunction = static_cast<AlphaFunction::BuiltinFunction>(alphaValue->ToUint32()->Value());
-      keyframes.Add( progress->NumberValue(), value, alphaFunction );
-    }
-    else
-    {
-      keyframes.Add( progress->NumberValue(), value );
-    }
-
-  }
-  return keyframes;
-
-}
-bool GetAnimationParameters(  v8::Isolate* isolate,
-                              const v8::FunctionCallbackInfo< v8::Value >& args,
-                              AnimationParameters& animParams,
-                              AnimationApi::AnimationParameterType type)
-{
-  // used for things like anim.AnimateBy(  myImageView, property-name,  property-value (or Javascript number array));
-  // 1 extract property handle from param1.
-  // 2 extract property name from param2  ( in the format "uColor" )
-  // 3 extract PropertyValue from param3
-  // 4 extract animation options ( delay, duration, alpha func)
-
-  // 1 extract HANDLE
-  bool foundHandle;
-  animParams.target = V8Utils::GetHandleParameter( PARAMETER_0, foundHandle, isolate, args );
-  if( !foundHandle )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad parameter 0 (Handle)" );
-    return false;
-  }
-
-  // 2 extract property name
-  bool foundPropName;
-  std::string propertyName = V8Utils::GetStringParameter( PARAMETER_1, foundPropName, isolate, args );
-  if( !foundPropName )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad parameter 1 ( PropertyName )" );
-    return false;
-  }
-  // try both properties with dashes and without
-  Property::Index index = animParams.target.GetPropertyIndex( propertyName );
-
-  if( index == Property::INVALID_INDEX )
-  {
-    index = animParams.target.GetPropertyIndex( propertyName );
-  }
-
-  animParams.propertyIndex = index;
-
-  if( type == AnimationApi::PROPERTY_VALUE )
-  {
-    // 3 extract property value
-    bool foundPropValue( false );
-    animParams.value = V8Utils::GetPropertyValueParameter( PARAMETER_2, foundPropValue, isolate, args );
-    if( !foundPropValue )
-    {
-      DALI_SCRIPT_EXCEPTION( isolate, "bad parameter 2 ( value )" );
-      return false;
-    }
-  }
-  else  // type == KEYFRAMES
-  {
-    animParams.keyFrames = GetKeyFrames(isolate, args[2]);
-  }
-  // 4 extract animation options
-  GetAnimationOptions( isolate, args[3], animParams );
-
-  return true;
-}
-
-Animation GetAnimation( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::HandleScope handleScope( isolate );
-
-  v8::Local<v8::Object> object = args.This();
-  v8::Local<v8::External> field = v8::Local<v8::External>::Cast( object->GetInternalField( 0 ) );
-  void* ptr = field->Value();
-
-  AnimationWrapper* wrapper = static_cast<AnimationWrapper *>( ptr );
-  return wrapper->GetAnimation();
-}
-
-
-} // un-named namespace
-
-/**
- * Constructor
- *
- * @constructor
- * @for Animation
- * @method Animation
- * @param {float} duration
- *
- */
-Animation AnimationApi::New( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  bool found( false );
-  float value = V8Utils::GetFloatParameter( PARAMETER_0, found, isolate, args, 1.f /* default */);
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad parameter" );
-    return Animation();
-  }
-  // get the duration
-  return Animation::New( value );
-}
-
-/**
- * Set the animation duration.
- * @method setDuration
- * @for Animation
- * @param {float} duration in seconds
- *
- */
-void AnimationApi::SetDuration( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Animation anim = GetAnimation( isolate, args );
-
-  bool found( false );
-  float value = V8Utils::GetFloatParameter( PARAMETER_0, found, isolate, args, 1.f /* default */);
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad parameter" );
-    return;
-  }
-  anim.SetDuration( value );
-}
-/**
- * Get the animation duration.
- * @method getDuration
- * @for Animation
- * @return {float} duration in seconds
- *
- */
-void AnimationApi::GetDuration( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Animation anim = GetAnimation( isolate, args );
-
-  args.GetReturnValue().Set( v8::Number::New( isolate, anim.GetDuration() ) );
-
-}
-/**
- * Set whether the animation will loop.
- * @method setLooping
- * @for Animation
- * @param {bool} looping enabled
- *
- */
-void AnimationApi::SetLooping( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Animation anim = GetAnimation( isolate, args );
-
-  bool found( false );
-  bool value = V8Utils::GetBooleanParameter( PARAMETER_0, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad parameter" );
-  }
-  else
-  {
-    anim.SetLooping( value );
-  }
-
-}
-/**
- * Query whether the animation will loop.
- * @method isLooping
- * @for Animation
- * @return {bool} looping enabled
- *
- */
-void AnimationApi::IsLooping( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Animation anim = GetAnimation( isolate, args );
-
-  args.GetReturnValue().Set( v8::Boolean::New( isolate, anim.IsLooping() ) );
-}
-
-/**
- * Set the end action of the animation.
- *
- * This action is performed when the animation ends.
- * Default end action is bake
- * @method setEndAction
- * @for Animation
- * @param {integer} bake mode
- * @example
- *       anim.setEndAction( dali.ANIMATION_BAKE ); // When the animation ends, the animated property values are saved.
- *       anim.setEndAction( dali.ANIMATION_DISCARD ); //  When the animation ends, the animated property values are forgotten.
- *       anim.setEndAction( dali.ANIMATION_BAKE_FINAL ); // If the animation is stopped, the animated property values are saved as if the animation had run to completion, otherwise behaves like Bake.
- */
-void AnimationApi::SetEndAction( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Animation anim = GetAnimation( isolate, args );
-
-  bool found( false );
-  int value = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad parameter" );
-  }
-  else
-  {
-    anim.SetEndAction( static_cast<Animation::EndAction>( value ) );
-  }
-}
-
-/**
- * Returns the end action of the animation.
-
- * @method getEndAction
- * @for Animation
- * @return {integer} bake mode
- *
- * There are 3 different bake modes
- * @example
- *     dali.ANIMATION_BAKE  // When the animation ends, the animated property values are saved.
- *     dali.ANIMATION_DISCARD // When the animation ends, the animated property values are forgotten.
- *     dali.ANIMATION_BAKE_FINAL  // If the animation is stopped, the animated property values are saved as if the animation had run to completion, otherwise behaves like Bake.
- */
-void AnimationApi::GetEndAction( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Animation anim = GetAnimation( isolate, args );
-
-  args.GetReturnValue().Set( v8::Integer::New( isolate, anim.GetEndAction() ) );
-}
-
-/**
- * Set the disconnect action of the animation.
- * If any of the animated property owners are disconnected from the stage, this action is performed.
- * Default disconnection action is BakeFinal.
- * @method setDisconnectAction
- * @for Animation
- * @param {integer} end mode
- *
- * There are 3 different end modes
- * @example
- *     dali.ANIMATION_BAKE  // When the animation is destroyed, the animated property values are saved.
- *     dali.ANIMATION_DISCARD // When the animation is destroyed, the animated property values are forgotten.
- *     dali.ANIMATION_BAKE_FINAL  // When the animation is destroyed, the animated property values are saved as if the animation had run to completion, otherwise behaves like Bake.
- */
-void AnimationApi::SetDisconnectAction( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Animation anim = GetAnimation( isolate, args );
-
-  bool found( false );
-  int value = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad parameter" );
-  }
-  else
-  {
-    anim.SetDisconnectAction( static_cast<Animation::EndAction>( value ) );
-  }
-}
-
-/**
- * Returns the disconnect action of the animation.
- * @method getDisconnectAction
- * @for Animation
- * @return {integer} end mode
- */
-void AnimationApi::GetDisconnectAction( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Animation anim = GetAnimation( isolate, args );
-
-  args.GetReturnValue().Set( v8::Integer::New( isolate, anim.GetDisconnectAction() ) );
-}
-/**
- * Set the default alpha function for an animation.
- * @method setDefaultAlphaFunction
- * @for Animation
- * @param {Integer} alpha function
- */
-void AnimationApi::SetDefaultAlphaFunction( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Animation anim = GetAnimation( isolate, args );
-
-  bool found( false );
-  int alphaFunc = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad parameter" );
-  }
-  else
-  {
-    AlphaFunction func = static_cast<AlphaFunction::BuiltinFunction>(alphaFunc);
-    anim.SetDefaultAlphaFunction( func );
-  }
-}
-/**
- * Get the default alpha function for an animation.
- * @method getDefaultAlphaFunction
- * @for Animation
- * @return {Integer} alpha function
- */
-void AnimationApi::GetDefaultAlphaFunction( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Animation anim = GetAnimation( isolate, args );
-
-  AlphaFunction alphaFunc = anim.GetDefaultAlphaFunction();
-
-
-  args.GetReturnValue().Set( v8::Integer::New( isolate, alphaFunc.GetBuiltinFunction() ) );
-}
-
-/**
- * Get the current progress of the animation.
- * @method getCurrentProgress
- * @for Animation
- * @return {float} The current progress as a normalized value between [0..1].
- *
- */
-void AnimationApi::GetCurrentProgress( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Animation anim = GetAnimation( isolate, args );
-
-  args.GetReturnValue().Set( v8::Number::New( isolate, anim.GetCurrentProgress() ) );
-}
-
-/**
- * Specifies an speed factor for the animation.
- *
- * The speed factor is a multiplier of the normal velocity of the animation. Values between [0,1] will
- * slow down the animation and values above one will speed up the animation. It is also possible to specify a negative multiplier
- * to play the animation in reverse.
- *
- * @method setSpeedFactor
- * @for Animation
- * @param {float}  value which will multiply the velocity.
- * @example
- *     anim.setSpeedFactor(2);
- *     anim.play();             // plays the animation twice as fast
- *
- *
- *     anim.setSpeedFactor(0.5);
- *     anim.play();             // plays the animation half speed
- *
- */
-void AnimationApi::SetSpeedFactor( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Animation anim = GetAnimation( isolate, args );
-
-  bool found( false );
-  float speedFactor = V8Utils::GetFloatParameter( PARAMETER_0, found, isolate, args, 0.f );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "float parameter missing" );
-  }
-  else
-  {
-    anim.SetSpeedFactor( speedFactor );
-  }
-
-}
-
-/**
- * Retrieve the speed factor of the animation
- *
- *
- * @method getSpeedFactor
- * @for Animation
- * @return {float} speed factor
- */
-void AnimationApi::GetSpeedFactor( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Animation anim = GetAnimation( isolate, args );
-
-  args.GetReturnValue().Set( v8::Number::New( isolate, anim.GetSpeedFactor() ) );
-}
-
-/**
- * Set the playing range.
- * Animation will play between the values specified.
- * Both values ( range.x and range.y ) should be between 0-1,
- * otherwise they will be ignored.
- * If the range provided is not in proper order ( minimum,maximum), it will be reordered.
- * @method setPlayRange
- * @for Animation
- * @param {Object} Range
- * @param {Float} Range.start
- * @param {Float} Range.end
- * @example
- *     var range = {  start:0.1, end:0.6 };
- *     anim.setPlayRange( range );
- */
-void AnimationApi::SetPlayRange( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Animation anim = GetAnimation( isolate, args );
-  Vector2 range(0,0);
-
-  if( args.Length() != 1 )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "missing / invalid parameters" );
-    return;
-  }
-  v8::Local<v8::Value > rangeValue = args[0];
-  if( !rangeValue->IsObject() )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid parameters" );
-    return;
-  }
-  v8::Local<v8::Object> obj = rangeValue->ToObject();
-  v8::Local<v8::Value> startValue = obj->Get( v8::String::NewFromUtf8( isolate, "start" ) );
-  v8::Local<v8::Value> endValue = obj->Get( v8::String::NewFromUtf8( isolate, "end" ) );
-
-  if( startValue->IsNumber() &&  endValue->IsNumber())
-  {
-        range.x= startValue->ToNumber()->Value();
-        range.y = endValue->ToNumber()->Value();
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "missing start/end value" );
-    return;
-  }
-
-  anim.SetPlayRange( range );
-
-}
-
-/**
- * Get the playing range.
- * @method getPlayRange
- * @for Animation
- * @return {Object} Range with { start: ,  end: } properties.
- */
-void AnimationApi::GetPlayRange( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::EscapableHandleScope handleScope( isolate );
-  Animation anim = GetAnimation( isolate, args );
-
-
-  v8::Local<v8::Object> rangeObject = v8::Object::New( isolate );
-
-  Vector2 range = anim.GetPlayRange();
-
- // set device id
-  rangeObject->Set( v8::String::NewFromUtf8( isolate, "start"), v8::Number::New( isolate,range.x ));
-
-   // set state
-  rangeObject->Set( v8::String::NewFromUtf8( isolate, "end"), v8::Number::New( isolate,range.y ));
-
-  args.GetReturnValue().Set( rangeObject );
-}
-
-
-/**
- * Sets the progress of the animation.
- * The animation will play (or continue playing) from this point. The progress
- * must be in the 0-1 interval or in the play range interval if defined ( See SetPlayRange ),
- * otherwise, it will be ignored.
- *
- * @method setCurrentProgress
- * @for Animation
- * @param {float}  progress The new progress as a normalized value between [0,1] or between the
- * play range if specified.
- */
-void AnimationApi::SetCurrentProgress( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Animation anim = GetAnimation( isolate, args );
-
-  bool found( false );
-
-  float progress = V8Utils::GetFloatParameter( PARAMETER_0, found, isolate, args, 0.f );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "float parameter missing" );
-    return;
-  }
-  anim.SetCurrentProgress( progress );
-
-}
-
-/**
- *
- *  Play the animation from a given point.
- * The progress must be in the 0-1 interval or in the play range interval if defined ( See SetPlayRange ),
- * otherwise, it will be ignored.
- * @method playFrom
- * @for Animation
- * @param {float} progress A value between [0,1], or between the play range if specified, form where the animation should start playing
- */
-void AnimationApi::PlayFrom( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Animation anim = GetAnimation( isolate, args );
-
-  bool found( false );
-
-  float progress = V8Utils::GetFloatParameter( PARAMETER_0, found, isolate, args, 0.f );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "float parameter missing" );
-    return;
-  }
-  anim.PlayFrom( progress );
-
-}
-
-/**
- * Play the animation
- * @method play
- * @for Animation
- */
-void AnimationApi::Play( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Animation anim = GetAnimation( isolate, args );
-  anim.Play();
-}
-/**
- * Pause the animation
- * @method pause
- * @for Animation
- */
-void AnimationApi::Pause( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Animation anim = GetAnimation( isolate, args );
-  anim.Pause();
-}
-/**
- * Stop the animation
- * @method stop
- * @for Animation
- */
-void AnimationApi::Stop( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Animation anim = GetAnimation( isolate, args );
-  anim.Stop();
-}
-/**
- * Clear the animation
- * This disconnects any objects that were being animated, effectively stopping the animation.
- * @method clear
- * @for Animation
- */
-void AnimationApi::Clear( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Animation anim = GetAnimation( isolate, args );
-  anim.Clear();
-}
-
-
-void AnimationApi::Animate( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Animation anim = GetAnimation( isolate, args );
-  AnimationParameters animParams( anim );
-  bool found(false);
-
-  //Get actor
-  Dali::Actor actor = V8Utils::GetActorParameter( PARAMETER_0, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "Missing actor parameter");
-    return;
-  }
-
-  //Get path
-  Dali::Path path;
-  BaseWrappedObject* wrapper = V8Utils::GetWrappedDaliObjectParameter( PARAMETER_1, BaseWrappedObject::PATH, isolate, args);
-  PathWrapper* pathWrapper = static_cast< PathWrapper*>( wrapper );
-  if( !pathWrapper )
-  {
-    return;
-  }
-  path = pathWrapper->GetPath();
-
-  //Get forward vector
-  bool bFound(false);
-  Vector3 forward = V8Utils::GetVector3Parameter( PARAMETER_2, bFound, isolate, args );
-  if( !bFound )
-  {
-    return;
-  }
-
-  //Get animation options
-  GetAnimationOptions( isolate, args[3], animParams );
-  if( animParams.optionsFound )
-  {
-    anim.Animate( actor, path, forward, animParams.alphaFunction, TimePeriod( animParams.delay, animParams.duration) );
-  }
-  else
-  {
-    anim.Animate( actor, path, forward );
-  }
-}
-
-/**
- *
- * Animate a property value by a relative amount.
- *
- * The effect will start & end when the animation begins & ends.
- * @method animateBy
- * @for Animation
- * @param {Object} target object that contains a property to be animated (e.g. myActor )
- * @param {String} property name (e.g. "position" )
- * @param {Object} relativeValue The property value will change by this amount.
- * @param {Object} [options] Animation options.
- * @param {Float} [options.delay] amount to delay the start of the animation in seconds
- * @param {Float} [options.duration] duration of the animation
- * @param {String} [options.alpha] Animation alpha function (e.g. "linear")
- *
- * @example
- *
- *     // animation x position
- *     var anim = new dali.Animation( 1 );
- *     anim.animateBy( actor,"positionX", 30 );
- *     anim.play();
- *
- *     // animate x,y,z position with the optional animation options
- *     var options = {
- *        delay: 3,     // 3 second delay before starting
- *        duration: 5,  // 5 second duration
- *        alpha:"easeInOutSine"   // Speeds up and slows to a gradual stop
- *     }
- *
- *     anim.animateBy( actor,"position", [100,200,0], options );
- *
- */
-void AnimationApi::AnimateBy( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Animation anim = GetAnimation( isolate, args );
-  AnimationParameters animParams( anim );
-
-  // grab all the parameters
-  bool ok = GetAnimationParameters( isolate, args, animParams, AnimationApi::PROPERTY_VALUE);
-  if( !ok )
-  {
-    // GetAnimationParameters will log
-    return;
-  }
-
-  if( animParams.optionsFound )
-  {
-    anim.AnimateBy( Property( animParams.target, animParams.propertyIndex ),
-                              animParams.value,
-                              animParams.alphaFunction,
-                              TimePeriod( animParams.delay, animParams.duration) );
-  }
-  else
-  {
-    anim.AnimateBy( Property( animParams.target, animParams.propertyIndex ), animParams.value );
-  }
-
-}
-
-/**
- *
- * Animate a property to a destination value.
- *
- * The effect will start & end when the animation begins & ends.
- * @method animateTo
- * @for Animation
- * @param {Object} target object that contains a property to be animated (e.g. myActor )
- * @param {String} property name (e.g. "position" )
- * @param {Object} destinationValue The property value will changed to this value
- * @param {Object} [options] Animation options.
- * @param {Float} [options.delay] amount to delay the start of the animation in seconds
- * @param {Float} [options.duration] duration of the animation
- * @param {String} [options.alpha] Animation alpha function (e.g. "linear")
- *
- * @example
- *
- *     var anim = new dali.Animation( 1 );
- *     anim.animateTo( actor,"positionX", 30 );
- *     anim.play();
- *
- *
- *     // with the optional animation options object
- *     var options = {
- *        delay: 3,     // 3 second delay before starting
- *        duration: 5,  // 5 second duration
- *        alpha:"easeInOutSine"   // Speeds up and slows to a gradual stop
- *     }
- *
- *     anim.animateTo( actor,"position", [100,200,0], options );
- *
- */
-void AnimationApi::AnimateTo( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Animation anim = GetAnimation( isolate, args );
-  AnimationParameters animParams( anim );
-
-  // grab all the parameters
-  bool ok = GetAnimationParameters( isolate, args, animParams, AnimationApi::PROPERTY_VALUE );
-  if( !ok )
-  {
-    // GetAnimationParameters will log
-    return;
-  }
-
-  if( animParams.optionsFound )
-  {
-
-    anim.AnimateTo( Property( animParams.target,animParams.propertyIndex ),
-                                  animParams.value,
-                                  animParams.alphaFunction,
-                                  TimePeriod( animParams.delay, animParams.duration) );
-  }
-  else
-  {
-    anim.AnimateTo( Property( animParams.target, animParams.propertyIndex ), animParams.value );
-  }
-}
-
-/**
- *
- * Animate a property between keyframes.
- *
- * The effect will start & end when the animation begins & ends.
- * @method animateBetween
- * @for Animation
- * @param {Object} target object that contains a property to be animated (e.g. myActor )
- * @param {String} property name (e.g. "position" )
- * @param {Object} keyframes array of keyframe objects
- * @param {Object} [options] Animation options.
- * @param {Float} [options.delay] amount to delay the start of the animation in seconds
- * @param {Float} [options.duration] duration of the animation
- * @param {String} [options.alpha] Animation alpha function (e.g. "linear")
- *
- *
- * @example
- *
- *  create some keyframes to move an actor around a square, and return to the start
- * </br >
- *  <img src="../assets/img/animation/keyframe-animation.png">
- *
- *
- *     var keyframes = [
- *     {
- *       progress:0.0,
- *       value: [0,0,0]
- *     },
- *     {
- *       progress:0.25,
- *       value: [500,0,0]
- *     },
- *
- *     {
- *       progress:0.5,
- *       value: [500,500,0]
- *     },
- *     {
- *       progress:0.75,
- *       value: [0,500,0]
- *     },
- *     {
- *       progress:1.0,
- *       value: [0,0,0]
- *     } ];
- *
- *
- *     anim.animateBetween( actor,"position", keyframes );
- *
- */
-void AnimationApi::AnimateBetween( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Animation anim = GetAnimation( isolate, args );
-  AnimationParameters animParams( anim );
-
-  // grab all the parameters
-  bool ok = GetAnimationParameters( isolate, args, animParams, AnimationApi::KEYFRAMES );
-  if( !ok )
-  {
-    // GetAnimationParameters will log
-    return;
-  }
-
-  // if animation options exist...
-  if( animParams.optionsFound )
-  {
-
-    anim.AnimateBetween( Property( animParams.target,animParams.propertyIndex ),
-                                  animParams.keyFrames,
-                                  animParams.alphaFunction,
-                                  TimePeriod( animParams.delay, animParams.duration) );
-  }
-  else
-  {
-    anim.AnimateBetween( Property( animParams.target, animParams.propertyIndex ), animParams.keyFrames );
-  }
-}
-
-/**
- * show an actor during the animation.
- *
- * This is a helper, which simulates animating the visibility property of an actor
- * with zero duration ( it is just a boolean).
- * e.g. it performs  anim.AnimateTo( actor,"visible",true, { delay:delay: duration:0 } );
- * @method show
- * @for Animation
- * @param {Object} Actor
- * @param {float} delay until the actor is shown
- */
-void AnimationApi::Show( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Animation anim = GetAnimation( isolate, args );
-  bool found( false );
-
-  Actor actor = V8Utils::GetActorParameter( PARAMETER_0, found, isolate, args );
-  if( !found)
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad parameter 0 actor" );
-    return;
-  }
-  // get the duration
-  float delay = V8Utils::GetFloatParameter( PARAMETER_1, found, isolate, args, 1.f /* default */);
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad parameter 1 delay" );
-    return;
-  }
-  anim.Show( actor, delay );
-
-}
-
-/**
- * hide an actor during the animation.
- *
- * This is a helper, which simulates animating the visibility property of an actor
- * with zero duration ( it is just a boolean).
- * e.g. it performs  anim.AnimateTo( actor,"visible",false, { delay:delay: duration:0 } );
- * @method hide
- * @for Animation
- * @param {Object} Actor
- * @param {float} delay until the actor is hidden
- */
-void AnimationApi::Hide( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Animation anim = GetAnimation( isolate, args );
-  bool found( false );
-  Actor actor = V8Utils::GetActorParameter( PARAMETER_0, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad parameter 0 actor" );
-    return;
-  }
-
-  // get the duration
-  float delay = V8Utils::GetFloatParameter( PARAMETER_1, found, isolate, args, 1.f /* default */);
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad parameter 1 delay" );
-    return;
-  }
-  anim.Hide( actor, delay );
-}
-
-
-
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/animation/animation-api.h b/plugins/dali-script-v8/src/animation/animation-api.h
deleted file mode 100644 (file)
index b903818..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-#ifndef DALI_V8PLUGIN_ANIMATION_API_H
-#define DALI_V8PLUGIN_ANIMATION_API_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/animation/animation.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace AnimationApi
-{
-  /**
-   * Constructor
-   */
-  Animation New( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-
-  /**
-   * Animation API see animation.h for a description
-   */
-  void SetDuration( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetDuration( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void SetLooping( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void IsLooping( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void SetEndAction( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetEndAction( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void SetDisconnectAction( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetDisconnectAction( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void SetDefaultAlphaFunction( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetDefaultAlphaFunction( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetCurrentProgress( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void SetSpeedFactor( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetSpeedFactor( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void SetPlayRange( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetPlayRange( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void SetCurrentProgress( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void PlayFrom( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void Play( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void Pause( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void Stop( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void Clear( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void Animate( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void AnimateBy( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void AnimateTo( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void AnimateBetween( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void Show( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void Hide( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  enum AnimationParameterType
-  {
-    PROPERTY_VALUE,
-    KEYFRAMES
-  };
-
-}; // namespace AnimationApi
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_ANIMATION_API_H
diff --git a/plugins/dali-script-v8/src/animation/animation-wrapper.cpp b/plugins/dali-script-v8/src/animation/animation-wrapper.cpp
deleted file mode 100644 (file)
index d962522..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "animation-wrapper.h"
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <dali-wrapper.h>
-#include <animation/animation-api.h>
-#include <shared/api-function.h>
-#include <shared/object-template-helper.h>
-
-namespace Dali
-{
-namespace V8Plugin
-{
-
-v8::Persistent<v8::ObjectTemplate> AnimationWrapper::mAnimationTemplate;
-
-namespace
-{
-
-/**
- * Contains a list of all functions that can be called
- */
-const ApiFunction AnimationFunctionTable[]=
-{
-    /**************************************
-    * Animation API (in order of animation.h)
-    **************************************/
-
-    { "SetDuration"             , AnimationApi::SetDuration               },
-    { "GetDuration"             , AnimationApi::GetDuration               },
-    { "SetLooping"              , AnimationApi::SetLooping                },
-    { "IsLooping"               , AnimationApi::IsLooping                 },
-    { "SetEndAction"            , AnimationApi::SetEndAction              },
-    { "GetEndAction"            , AnimationApi::GetEndAction              },
-    { "SetDisconnectAction"     , AnimationApi::SetDisconnectAction       },
-    { "GetDisconnectAction"     , AnimationApi::GetDisconnectAction       },
-    { "SetDefaultAlphaFunction" , AnimationApi::SetDefaultAlphaFunction   },
-    { "GetDefaultAlphaFunction" , AnimationApi::GetDefaultAlphaFunction   },
-    { "GetCurrentProgress"      , AnimationApi::GetCurrentProgress        },
-    { "SetSpeedFactor"          , AnimationApi::SetSpeedFactor            },
-    { "GetSpeedFactor"          , AnimationApi::GetSpeedFactor            },
-    { "SetPlayRange"            , AnimationApi::SetPlayRange              },
-    { "GetPlayRange"            , AnimationApi::GetPlayRange              },
-    { "SetCurrentProgress"      , AnimationApi::SetCurrentProgress        },
-    { "Play"                    , AnimationApi::Play                      },
-    { "PlayFrom"                , AnimationApi::PlayFrom                  },
-    { "Pause"                   , AnimationApi::Pause                     },
-    { "Stop"                    , AnimationApi::Stop                      },
-    { "Clear"                   , AnimationApi::Clear                     },
-    { "Animate"                 , AnimationApi::Animate                   },
-    { "AnimateBy"               , AnimationApi::AnimateBy                 },
-    { "AnimateTo"               , AnimationApi::AnimateTo                 },
-    { "AnimateBetween"          , AnimationApi::AnimateBetween            },
-    { "Show"                    , AnimationApi::Show                      },
-    { "Hide"                    , AnimationApi::Hide                      },
-
-};
-
-const unsigned int AnimationFunctionTableCount = sizeof(AnimationFunctionTable)/sizeof(AnimationFunctionTable[0]);
-} //un-named space
-
-
-AnimationWrapper::AnimationWrapper( const Dali::Animation& animation, GarbageCollectorInterface& gc )
-: BaseWrappedObject( BaseWrappedObject::ANIMATION , gc )
-{
-    mAnimation = animation;
-}
-
-AnimationWrapper::~AnimationWrapper()
-{
-
-}
-
-v8::Handle<v8::Object> AnimationWrapper::WrapAnimation(v8::Isolate* isolate, const Dali::Animation& animation )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  objectTemplate = GetAnimationTemplate( isolate);
-
-  // create an instance of the template
-  v8::Local<v8::Object> localObject = objectTemplate->NewInstance();
-
-  // create the Animation wrapper
-  AnimationWrapper* pointer =  new AnimationWrapper( animation, Dali::V8Plugin::DaliWrapper::Get().GetDaliGarbageCollector() );
-
-  // assign the JavaScript object to the wrapper.
-  pointer->SetJavascriptObject( isolate, localObject );
-
-  return handleScope.Escape( localObject );
-}
-
-v8::Local<v8::ObjectTemplate> AnimationWrapper::GetAnimationTemplate( v8::Isolate* isolate)
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  if( mAnimationTemplate.IsEmpty() )
-  {
-    objectTemplate = MakeAnimationTemplate( isolate );
-    mAnimationTemplate.Reset( isolate, objectTemplate );
-  }
-  else
-  {
-    // get the object template
-    objectTemplate = v8::Local<v8::ObjectTemplate>::New( isolate, mAnimationTemplate );
-  }
-  return handleScope.Escape( objectTemplate );
-}
-
-v8::Handle<v8::ObjectTemplate> AnimationWrapper::MakeAnimationTemplate( v8::Isolate* isolate )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  v8::Local<v8::ObjectTemplate> objTemplate = v8::ObjectTemplate::New();
-
-  // add intercepts for Signals, we can't use HandleWrapper::AddIntercepts because Animation doesn't inherit
-  // from Handle ( just baseHandle)
-  ObjectTemplateHelper::AddSignalConnectAndDisconnect( isolate, objTemplate );
-
-  objTemplate->SetInternalFieldCount( BaseWrappedObject::FIELD_COUNT );
-
-  // add our function properties
-  ObjectTemplateHelper::InstallFunctions( isolate, objTemplate, AnimationFunctionTable, AnimationFunctionTableCount );
-
-  return handleScope.Escape( objTemplate );
-}
-
-void AnimationWrapper::NewAnimation( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate);
-
-  if( !args.IsConstructCall() )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "Animation constructor called without 'new'" );
-    return;
-  }
-
-  Dali::Animation animation = AnimationApi::New( args );
-  v8::Local<v8::Object> localObject = WrapAnimation( isolate, animation );
-  args.GetReturnValue().Set( localObject );
-}
-
-
-Animation AnimationWrapper::GetAnimation()
-{
-  return mAnimation;
-}
-
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/animation/animation-wrapper.h b/plugins/dali-script-v8/src/animation/animation-wrapper.h
deleted file mode 100644 (file)
index 2fcc541..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-#ifndef DALI_V8PLUGIN_ANIMATION_WRAPPER_H
-#define DALI_V8PLUGIN_ANIMATION_WRAPPER_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/animation/animation.h>
-
-// INTERNAL INCLUDES
-#include <shared/base-wrapped-object.h>
-#include <signals/signal-manager.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-/**
- * Animation  wrapper.
- * Provides access to Animation specific functionality
- */
-class AnimationWrapper : public BaseWrappedObject
-{
-
-public:
-
-  AnimationWrapper( const Animation& animation,
-                GarbageCollectorInterface& gc );
-
-  virtual ~AnimationWrapper();
-
-  /**
-   * @brief Creates a new Animation wrapped inside a Javascript Object.
-   * @param[in] args v8 function call arguments interpreted
-   */
-  static void NewAnimation( const v8::FunctionCallbackInfo< v8::Value >& args);
-
-  /**
-   * Wraps an animation
-   */
-  static v8::Handle<v8::Object> WrapAnimation(v8::Isolate* isolate, const Dali::Animation& );
-
-
-  // The AnimationAttribute ObjectTemplate, we cache templates so we don't have
-  // keep generating them everytime we want to create an Animation
-  static v8::Persistent<v8::ObjectTemplate> mAnimationTemplate;
-
-  Animation GetAnimation();
-  virtual SignalManager* GetSignalManager() { return &mSignalManager;}
-
-private:
-
-  Animation mAnimation;           ///< animation object
-  SignalManager mSignalManager;   ///< signal manager
-
-  static v8::Handle<v8::ObjectTemplate> MakeAnimationTemplate( v8::Isolate* isolate );
-  static v8::Local<v8::ObjectTemplate> GetAnimationTemplate( v8::Isolate* isolate );
-
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_ANIMATION_WRAPPER_H
diff --git a/plugins/dali-script-v8/src/animation/constrainer-api.cpp b/plugins/dali-script-v8/src/animation/constrainer-api.cpp
deleted file mode 100644 (file)
index d15097a..0000000
+++ /dev/null
@@ -1,280 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "constrainer-api.h"
-
-//EXTERNAL INCLUDES
-#include <cfloat> //For FLT_MAX
-
-// INTERNAL INCLUDES
-#include <animation/linear-constrainer-wrapper.h>
-#include <animation/path-constrainer-wrapper.h>
-#include <object/property-value-wrapper.h>
-#include <v8-utils.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace // un named namespace
-{
-
-PathConstrainer GetPathConstrainer( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::HandleScope handleScope( isolate );
-
-  v8::Local<v8::Object> object = args.This();
-  v8::Local<v8::External> field = v8::Local<v8::External>::Cast( object->GetInternalField( 0 ) );
-  void* ptr = field->Value();
-
-  PathConstrainerWrapper* wrapper = static_cast<PathConstrainerWrapper *>( ptr );
-  return wrapper->GetPathConstrainer();
-}
-
-LinearConstrainer GetLinearConstrainer( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::HandleScope handleScope( isolate );
-
-  v8::Local<v8::Object> object = args.This();
-  v8::Local<v8::External> field = v8::Local<v8::External>::Cast( object->GetInternalField( 0 ) );
-  void* ptr = field->Value();
-
-  LinearConstrainerWrapper* wrapper = static_cast<LinearConstrainerWrapper *>( ptr );
-  return wrapper->GetLinearConstrainer();
-}
-
-bool GetApplyParameters( const v8::FunctionCallbackInfo< v8::Value >& args, Actor& targetActor, Property::Index& targetPropertyIndex,
-                         Actor& sourceActor, Property::Index& sourcePropertyIndex, Vector2& range, Vector2& wrap )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  if( args[0]->IsObject() )
-  {
-    bool found(false);
-
-    v8::Local<v8::Object> obj = args[0]->ToObject();
-    v8::Local<v8::Value> member = obj->Get( v8::String::NewFromUtf8( isolate, "target" ) );
-
-    //Get target actor
-    if( member->IsObject() )
-    {
-      v8::Local<v8::Object> targetActorObject = member->ToObject();
-      targetActor = V8Utils::GetActorFromObject( isolate, found, targetActorObject );
-      if( !targetActor )
-      {
-        DALI_SCRIPT_EXCEPTION( isolate, "Target actor not found" );
-        return false;
-      }
-    }
-    else
-    {
-      DALI_SCRIPT_EXCEPTION( isolate, "Target actor not specified" );
-      return false;
-    }
-
-    //Get source actor
-    member = obj->Get( v8::String::NewFromUtf8( isolate, "source" ) );
-    if( member->IsObject() )
-    {
-      v8::Local<v8::Object> sourceActorObject = member->ToObject();
-      sourceActor = V8Utils::GetActorFromObject( isolate, found, sourceActorObject );
-      if( !sourceActor )
-      {
-        DALI_SCRIPT_EXCEPTION( isolate, "Source actor not found" );
-        return false;
-      }
-    }
-    else
-    {
-      DALI_SCRIPT_EXCEPTION( isolate, "Source actor not specified" );
-      return false;
-    }
-
-    //Get target property
-    member = obj->Get( v8::String::NewFromUtf8( isolate, "targetProperty" ) );
-    if( member->IsString() )
-    {
-      std::string propertyName = V8Utils::v8StringToStdString( member );
-      targetPropertyIndex = targetActor.GetPropertyIndex( propertyName );
-      if( targetPropertyIndex == Property::INVALID_INDEX )
-      {
-        DALI_SCRIPT_EXCEPTION( isolate, "Target property not found" );
-        return false;
-      }
-    }
-    else
-    {
-      DALI_SCRIPT_EXCEPTION( isolate, "Target property not specified" );
-      return false;
-    }
-
-    //Get source property
-    member = obj->Get( v8::String::NewFromUtf8( isolate, "sourceProperty" ) );
-    if( member->IsString() )
-    {
-      std::string propertyName = V8Utils::v8StringToStdString( member );
-      sourcePropertyIndex = targetActor.GetPropertyIndex( propertyName );
-      if( sourcePropertyIndex == Property::INVALID_INDEX )
-      {
-        DALI_SCRIPT_EXCEPTION( isolate, "Source property not found" );
-        return false;
-        }
-    }
-    else
-    {
-      DALI_SCRIPT_EXCEPTION( isolate, "Source property not specified" );
-      return false;
-    }
-
-    //Get range
-    member = obj->Get( v8::String::NewFromUtf8( isolate, "range" ) );
-    if( member->IsObject() )
-    {
-      v8::Local<v8::Object> rangeObject = member->ToObject();
-      Property::Value value = V8Utils::GetPropertyValueFromObject( found, isolate, rangeObject );
-      value.Get( range );
-    }
-    else
-    {
-      DALI_SCRIPT_EXCEPTION( isolate, "Range not specified" );
-      return false;
-    }
-
-    //Get wrap range
-    member = obj->Get( v8::String::NewFromUtf8( isolate, "wrap" ) );
-    if( member->IsObject() )
-    {
-      v8::Local<v8::Object> wrapObject = member->ToObject();
-      Property::Value value = V8Utils::GetPropertyValueFromObject( found, isolate, wrapObject );
-      value.Get( wrap );
-    }
-    else
-    {
-      wrap =  Vector2(-FLT_MAX, FLT_MAX);
-    }
-
-    return true;
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "Bad parameter (Object)" );
-    return false;
-  }
-}
-
-} // un-named namespace
-
-/**
- * Apply the constraint
- * @method applyConstraint
- * @for PathConstrainer and LinearConstrainer
- * @param {Object}  Constraint
- * @param {Object}  Constraint.targetActor
- * @param {String}  Constraint.targetProperty
- * @param {String}  Constraint.sourceProperty
- * @param {Vector2} Constraint.range
- * @param {Vector2} Constraint.wrap
- *
- * @example
- *
- *        var constraintPosition = {  "target":targetActor,
- *                                    "targetProperty":"position",
- *                                    "source":sourceActor,
- *                                    "sourceProperty":"colorAlpha",
- *                                    "range":range
- *                                    "wrap":wrap
- *                                 };
- *        pathConstrainer.applyConstraint( constraintPosition );
- */
-void ConstrainerApi::Apply( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Actor target, source;
-  Property::Index targetPropertyIndex = Property::INVALID_INDEX;
-  Property::Index sourcePropertyIndex = Property::INVALID_INDEX;
-
-  Vector2 range, wrap;
-  if( GetApplyParameters(args, target, targetPropertyIndex, source,  sourcePropertyIndex, range, wrap ) )
-  {
-
-    PathConstrainer pathConstrainer = GetPathConstrainer( isolate, args );
-    if( pathConstrainer )
-    {
-      pathConstrainer.Apply( Property(target, targetPropertyIndex),
-                             Property(source, sourcePropertyIndex),
-                             range, wrap );
-    }
-    else
-    {
-      LinearConstrainer linearConstrainer = GetLinearConstrainer( isolate, args );
-      if( linearConstrainer )
-      {
-        linearConstrainer.Apply( Property(target, targetPropertyIndex),
-                                 Property(source, sourcePropertyIndex),
-                                 range, wrap );
-      }
-    }
-  }
-}
-
-/**
- * Remove the constraint
- * @method remove
- * @for PathConstrainer
- * @param {Object} Actor
- * @example
- *        pathConstrainer.remove( targetActor );
- */
-void ConstrainerApi::Remove( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  //Get target actor
-  bool found( false );
-  Actor targetActor = V8Utils::GetActorParameter( PARAMETER_0, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad parameter 0 (Actor)" );
-    return;
-  }
-
-
-  PathConstrainer pathConstrainer = GetPathConstrainer( isolate, args );
-  if( pathConstrainer )
-  {
-    pathConstrainer.Remove(targetActor);
-  }
-  else
-  {
-    LinearConstrainer linearConstrainer = GetLinearConstrainer( isolate, args );
-    if( linearConstrainer )
-    {
-      linearConstrainer.Remove(targetActor);
-    }
-  }
-}
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/animation/constrainer-api.h b/plugins/dali-script-v8/src/animation/constrainer-api.h
deleted file mode 100644 (file)
index bbd5729..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef DALI_V8PLUGIN_CONSTRAINER_API_H
-#define DALI_V8PLUGIN_CONSTRAINER_API_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace ConstrainerApi
-{
-  /**
-   * Constrainer API see constrainer.h for a description
-   */
-  void Apply( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void Remove( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-}; // namespace ConstrainerApi
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_PATH_CONSTRAINER_API_H
diff --git a/plugins/dali-script-v8/src/animation/linear-constrainer-wrapper.cpp b/plugins/dali-script-v8/src/animation/linear-constrainer-wrapper.cpp
deleted file mode 100644 (file)
index 02d009c..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "linear-constrainer-wrapper.h"
-
-// INTERNAL INCLUDES
-#include <animation/constrainer-api.h>
-#include <dali-wrapper.h>
-#include <shared/object-template-helper.h>
-#include <v8-utils.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace
-{
-
-const ApiFunction ConstrainerFunctions[]=
-{
- { "ApplyConstraint",  ConstrainerApi::Apply },
- { "RemoveConstraint", ConstrainerApi::Remove }
-};
-const unsigned int ConstrainerFunctionTableCount = sizeof(ConstrainerFunctions)/sizeof(ConstrainerFunctions[0]);
-
-} //un-named space
-
-LinearConstrainerWrapper::LinearConstrainerWrapper( LinearConstrainer linearConstrainer, GarbageCollectorInterface& gc )
-:HandleWrapper( BaseWrappedObject::LINEAR_CONSTRAINER, linearConstrainer, gc ),
- mLinearConstrainer( linearConstrainer )
-{
-}
-
-v8::Handle<v8::ObjectTemplate> LinearConstrainerWrapper::MakeLinearConstrainerTemplate( v8::Isolate* isolate )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  v8::Local<v8::ObjectTemplate> objTemplate = v8::ObjectTemplate::New();
-  objTemplate->SetInternalFieldCount( BaseWrappedObject::FIELD_COUNT );
-
-  // add our function properties
-  ObjectTemplateHelper::InstallFunctions( isolate, objTemplate, ConstrainerFunctions, ConstrainerFunctionTableCount );
-
-  // property handle intercepts property getters and setters and signals
-  HandleWrapper::AddInterceptsToTemplate( isolate, objTemplate );
-
-  return handleScope.Escape( objTemplate );
-}
-
-v8::Handle<v8::Object> LinearConstrainerWrapper::WrapLinearConstrainer( v8::Isolate* isolate, LinearConstrainer linearConstrainer )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  objectTemplate = MakeLinearConstrainerTemplate( isolate );
-
-  // create an instance of the template
-  v8::Local<v8::Object> localObject = objectTemplate->NewInstance();
-
-  // create the pathconstrainer object
-  LinearConstrainerWrapper* pointer = new LinearConstrainerWrapper( linearConstrainer, Dali::V8Plugin::DaliWrapper::Get().GetDaliGarbageCollector() );
-
-  // assign the JavaScript object to the wrapper.
-  // This also stores Dali object, in an internal field inside the JavaScript object.
-  pointer->SetJavascriptObject( isolate, localObject );
-
-  return handleScope.Escape( localObject );
-}
-
-LinearConstrainer LinearConstrainerWrapper::GetLinearConstrainer()
-{
-  return mLinearConstrainer;
-}
-
-/**
- * Create an initialized PathConstrainer handle.
- * @constructor
- * @for PathConstrainer
- * @method PathConstrainer
- */
-void LinearConstrainerWrapper::NewLinearConstrainer( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  if( !args.IsConstructCall() )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "constructor called without 'new" );
-    return;
-  }
-
-  LinearConstrainer linearConstrainer = LinearConstrainer::New();
-  v8::Local<v8::Object> localObject = WrapLinearConstrainer( isolate, linearConstrainer );
-  args.GetReturnValue().Set( localObject );
-}
-
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/animation/linear-constrainer-wrapper.h b/plugins/dali-script-v8/src/animation/linear-constrainer-wrapper.h
deleted file mode 100644 (file)
index 426a65c..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-#ifndef DALI_V8PLUGIN_LINEAR_CONSTRAINER_WRAPPER_H
-#define DALI_V8PLUGIN_LINEAR_CONSTRAINER_WRAPPER_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <dali/public-api/animation/linear-constrainer.h>
-#include <v8.h>
-
-// INTERNAL INCLUDES
-#include <object/handle-wrapper.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-/**
- * Wraps a LinearConstrainer.
- */
-class LinearConstrainerWrapper : public HandleWrapper
-{
-
-public:
-
-  /**
-   * Constructor
-   */
-  LinearConstrainerWrapper( LinearConstrainer linearConstrainer, GarbageCollectorInterface& gc );
-
-  /**
-   * Virtual destructor
-   */
-  virtual ~LinearConstrainerWrapper(){};
-
-  /**
-   * Creates a new PathConstrainer wrapped inside a Javascript Object.
-   * @param[in] args v8 function call arguments interpreted
-   */
-  static void NewLinearConstrainer( const v8::FunctionCallbackInfo< v8::Value >& args);
-
-  /**
-   * Wraps a PathConstrainer inside a Javascript object
-   */
-  static v8::Handle<v8::Object> WrapLinearConstrainer(v8::Isolate* isolate, LinearConstrainer pathConstrainer );
-
-  /*
-   * Get the wrapped PathConstrainer
-   */
-  LinearConstrainer GetLinearConstrainer();
-
-private:
-
-  /**
-   * Create a v8 object template for the PathConstrainer
-   */
-  static v8::Handle<v8::ObjectTemplate> MakeLinearConstrainerTemplate( v8::Isolate* isolate );
-
-  Dali::LinearConstrainer mLinearConstrainer;
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_LINEAR_CONSTRAINER_WRAPPER_H
diff --git a/plugins/dali-script-v8/src/animation/path-api.cpp b/plugins/dali-script-v8/src/animation/path-api.cpp
deleted file mode 100644 (file)
index 95dba63..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "path-api.h"
-
-// INTERNAL INCLUDES
-#include <animation/path-wrapper.h>
-#include <object/property-value-wrapper.h>
-#include <v8-utils.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace // un named namespace
-{
-
-Path GetPath( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::HandleScope handleScope( isolate );
-
-  v8::Local<v8::Object> object = args.This();
-  v8::Local<v8::External> field = v8::Local<v8::External>::Cast( object->GetInternalField( 0 ) );
-  void* ptr = field->Value();
-
-  PathWrapper* wrapper = static_cast<PathWrapper *>( ptr );
-  return wrapper->GetPath();
-}
-
-} // un-named namespace
-
-
-/**
- * Automatic generation of control points. Generated control points which result in a smooth join between the splines of each segment.
- *
- * The generating algorithm is as follows:
- * For a given knot point K[N], find the vector that bisects K[N-1],[N] and [N],[N+1].
- * Calculate the tangent vector by taking the normal of this bisector.
- * The in control point is the length of the preceding segment back along this bisector multiplied by the curvature
- * The out control point is the length of the succeeding segment forward along this bisector multiplied by the curvature
- *
- * @method generateControlPoints
- * @for Path
- * @param {float} curvature curvature The curvature of the spline. 0 gives straight lines between the knots,
- * negative values means the spline contains loops, positive values up to
- * 0.5 result in a smooth curve, positive values between 0.5 and 1 result
- * in looped curves where the loops are not distinct (i.e. the curve appears
- * to be non-continuous), positive values higher than 1 result in looped curves.
- */
-void PathApi::GenerateControlPoints( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  bool found( false );
-  float curvature = V8Utils::GetFloatParameter( PARAMETER_0, found, isolate, args, 1.0f /* default */);
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad parameter" );
-    return;
-  }
-
-  Path path = GetPath( isolate, args );
-  path.GenerateControlPoints( curvature );
-}
-
-
-/**
- * Add a interpolation point.
- * @method addPoint
- * @for Path
- * @param {Vector3} interpolationPoint The new interpolation point to be added
- * @example
- *        path.addPoint([ 10,40,0] );
- */
-void PathApi::AddPoint( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  bool found( false );
-  Vector3 value = V8Utils::GetVector3Parameter( PARAMETER_0, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad parameter" );
-    return;
-  }
-
-  Path path = GetPath( isolate, args );
-  path.AddPoint( value );
-}
-
-
-/**
- * Add a control point.
- * @method addControlPoint
- * @for Path
- * @param {Vector3} controlPoint The new control point to be added
- * @example
- *        path.addControlPoint([ 10,40,0] );
- */
-void PathApi::AddControlPoint( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  bool found( false );
-  Vector3 value = V8Utils::GetVector3Parameter( PARAMETER_0, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad parameter" );
-    return;
-  }
-
-  Path path = GetPath( isolate, args );
-  path.AddControlPoint( value );
-}
-
-/**
- * Sample path at a given progress. Calculates position and tangent at that point of the curve
- * @method sample
- * @for Path
- * @param {float} Progress  A floating point value between 0.0 and 1.0.
- * @return {Object} { position: Vector3, tangent:Vector3 }
- */
-void PathApi::Sample( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  bool found( false );
-  float progress = V8Utils::GetFloatParameter( PARAMETER_0, found, isolate, args, 0.0f /* default */);
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad parameter" );
-    return;
-  }
-
-  //Sample the path
-  Path path = GetPath( isolate, args );
-  Vector3 position, tangent;
-  path.Sample( progress, position, tangent );
-
-  //Create v8 object with the result
-  v8::Local<v8::Object> sampleObject = v8::Object::New( isolate );
-
-  Dali::Property::Value valuePosition( position );
-  sampleObject->Set( v8::String::NewFromUtf8( isolate, "position"), PropertyValueWrapper::WrapDaliProperty( isolate, valuePosition));
-
-  Dali::Property::Value valueTangent( tangent );
-  sampleObject->Set( v8::String::NewFromUtf8( isolate, "tangent"), PropertyValueWrapper::WrapDaliProperty( isolate, valueTangent));
-
-  args.GetReturnValue().Set( sampleObject );
-}
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/animation/path-api.h b/plugins/dali-script-v8/src/animation/path-api.h
deleted file mode 100644 (file)
index a144110..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-#ifndef DALI_V8PLUGIN_PATH_API_H
-#define DALI_V8PLUGIN_PATH_API_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/animation/path.h>
-
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace PathApi
-{
-  /**
-   * Path API see path.h for a description
-   */
-  void GenerateControlPoints( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void AddPoint( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void AddControlPoint( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void Sample( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-}; // namespace PathApi
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_PATH_API_H
diff --git a/plugins/dali-script-v8/src/animation/path-constrainer-wrapper.cpp b/plugins/dali-script-v8/src/animation/path-constrainer-wrapper.cpp
deleted file mode 100644 (file)
index 4060533..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "path-constrainer-wrapper.h"
-
-// INTERNAL INCLUDES
-#include <animation/constrainer-api.h>
-#include <dali-wrapper.h>
-#include <shared/object-template-helper.h>
-#include <v8-utils.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace
-{
-
-const ApiFunction ConstrainerFunctions[]=
-{
- { "ApplyConstraint",  ConstrainerApi::Apply },
- { "RemoveConstraint", ConstrainerApi::Remove }
-};
-const unsigned int ConstrainerFunctionTableCount = sizeof(ConstrainerFunctions)/sizeof(ConstrainerFunctions[0]);
-
-} //un-named space
-
-PathConstrainerWrapper::PathConstrainerWrapper( PathConstrainer pathConstrainer, GarbageCollectorInterface& gc )
-:HandleWrapper( BaseWrappedObject::PATH_CONSTRAINER, pathConstrainer, gc ),
- mPathConstrainer( pathConstrainer )
-{
-}
-
-v8::Handle<v8::ObjectTemplate> PathConstrainerWrapper::MakePathConstrainerTemplate( v8::Isolate* isolate )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  v8::Local<v8::ObjectTemplate> objTemplate = v8::ObjectTemplate::New();
-  objTemplate->SetInternalFieldCount( BaseWrappedObject::FIELD_COUNT );
-
-  // add our function properties
-  ObjectTemplateHelper::InstallFunctions( isolate, objTemplate, ConstrainerFunctions, ConstrainerFunctionTableCount );
-
-  // property handle intercepts property getters and setters and signals
-  HandleWrapper::AddInterceptsToTemplate( isolate, objTemplate );
-
-  return handleScope.Escape( objTemplate );
-}
-
-v8::Handle<v8::Object> PathConstrainerWrapper::WrapPathConstrainer( v8::Isolate* isolate, PathConstrainer pathConstrainer )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  objectTemplate = MakePathConstrainerTemplate( isolate );
-
-  // create an instance of the template
-  v8::Local<v8::Object> localObject = objectTemplate->NewInstance();
-
-  // create the pathconstrainer object
-  PathConstrainerWrapper* pointer = new PathConstrainerWrapper( pathConstrainer, Dali::V8Plugin::DaliWrapper::Get().GetDaliGarbageCollector() );
-
-  // assign the JavaScript object to the wrapper.
-  // This also stores Dali object, in an internal field inside the JavaScript object.
-  pointer->SetJavascriptObject( isolate, localObject );
-
-  return handleScope.Escape( localObject );
-}
-
-PathConstrainer PathConstrainerWrapper::GetPathConstrainer()
-{
-  return mPathConstrainer;
-}
-
-/**
- * Create an initialized PathConstrainer handle.
- * @constructor
- * @for PathConstrainer
- * @method PathConstrainer
- */
-void PathConstrainerWrapper::NewPathConstrainer( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  if( !args.IsConstructCall() )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "constructor called without 'new" );
-    return;
-  }
-
-  PathConstrainer pathConstrainer = PathConstrainer::New();
-  v8::Local<v8::Object> localObject = WrapPathConstrainer( isolate, pathConstrainer );
-  args.GetReturnValue().Set( localObject );
-}
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/animation/path-constrainer-wrapper.h b/plugins/dali-script-v8/src/animation/path-constrainer-wrapper.h
deleted file mode 100644 (file)
index c7fab39..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-#ifndef DALI_V8PLUGIN_PATH_CONSTRAINER_WRAPPER_H
-#define DALI_V8PLUGIN_PATH_CONSTRAINER_WRAPPER_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <dali/devel-api/animation/path-constrainer.h>
-#include <v8.h>
-
-// INTERNAL INCLUDES
-#include <object/handle-wrapper.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-/**
- * Wraps a PathConstrainer.
- */
-class PathConstrainerWrapper : public HandleWrapper
-{
-
-public:
-
-  /**
-   * Constructor
-   */
-  PathConstrainerWrapper( PathConstrainer pathConstrainer, GarbageCollectorInterface& gc );
-
-  /**
-   * Virtual destructor
-   */
-  virtual ~PathConstrainerWrapper(){};
-
-  /**
-   * Creates a new PathConstrainer wrapped inside a Javascript Object.
-   * @param[in] args v8 function call arguments interpreted
-   */
-  static void NewPathConstrainer( const v8::FunctionCallbackInfo< v8::Value >& args);
-
-  /**
-   * Wraps a PathConstrainer inside a Javascript object
-   */
-  static v8::Handle<v8::Object> WrapPathConstrainer(v8::Isolate* isolate, PathConstrainer pathConstrainer );
-
-  /*
-   * Get the wrapped PathConstrainer
-   */
-  PathConstrainer GetPathConstrainer();
-
-private:
-
-  /**
-   * Create a v8 object template for the PathConstrainer
-   */
-  static v8::Handle<v8::ObjectTemplate> MakePathConstrainerTemplate( v8::Isolate* isolate );
-
-  Dali::PathConstrainer mPathConstrainer;
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_PATH_CONSTRAINER_WRAPPER_H
diff --git a/plugins/dali-script-v8/src/animation/path-wrapper.cpp b/plugins/dali-script-v8/src/animation/path-wrapper.cpp
deleted file mode 100644 (file)
index b89179f..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "path-wrapper.h"
-
-// INTERNAL INCLUDES
-#include <animation/path-api.h>
-#include <v8-utils.h>
-#include <dali-wrapper.h>
-#include <shared/object-template-helper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace
-{
-
-const ApiFunction PathFunctions[]=
-{
- { "GenerateControlPoints",  PathApi::GenerateControlPoints },
- { "AddPoint",               PathApi::AddPoint },
- { "AddControlPoint",        PathApi::AddControlPoint },
- { "Sample",                 PathApi::Sample }
-};
-
-const unsigned int PathFunctionTableCount = sizeof(PathFunctions)/sizeof(PathFunctions[0]);
-} //un-named space
-
-
-PathWrapper::PathWrapper( Path path, GarbageCollectorInterface& gc )
-:HandleWrapper( BaseWrappedObject::PATH, path, gc ),
- mPath( path )
-{
-}
-
-v8::Handle<v8::ObjectTemplate> PathWrapper::MakePathTemplate( v8::Isolate* isolate )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  v8::Local<v8::ObjectTemplate> objTemplate = v8::ObjectTemplate::New();
-  objTemplate->SetInternalFieldCount( BaseWrappedObject::FIELD_COUNT );
-
-  // add our function properties
-  ObjectTemplateHelper::InstallFunctions( isolate, objTemplate, PathFunctions, PathFunctionTableCount );
-
-  // property handle intercepts property getters and setters and signals
-  HandleWrapper::AddInterceptsToTemplate( isolate, objTemplate );
-
-  return handleScope.Escape( objTemplate );
-}
-
-v8::Handle<v8::Object> PathWrapper::WrapPath( v8::Isolate* isolate, Path path )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  objectTemplate = MakePathTemplate( isolate );
-
-  // create an instance of the template
-  v8::Local<v8::Object> localObject = objectTemplate->NewInstance();
-
-  // create teh actor object
-  PathWrapper* pointer = new PathWrapper( path, Dali::V8Plugin::DaliWrapper::Get().GetDaliGarbageCollector() );
-
-  // assign the JavaScript object to the wrapper.
-  // This also stores Dali object, in an internal field inside the JavaScript object.
-  pointer->SetJavascriptObject( isolate, localObject );
-
-  return handleScope.Escape( localObject );
-}
-
-Path PathWrapper::GetPath()
-{
-  return mPath;
-}
-
-/**
- * Create an initialized Path handle.
- * @constructor
- * @for Path
- * @method Path
- */
-void PathWrapper::NewPath( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  if( !args.IsConstructCall() )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "constructor called without 'new" );
-    return;
-  }
-
-  // Create a new path
-  Path path = Path::New();
-  v8::Local<v8::Object> localObject = WrapPath( isolate, path );
-  args.GetReturnValue().Set( localObject );
-}
-
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/animation/path-wrapper.h b/plugins/dali-script-v8/src/animation/path-wrapper.h
deleted file mode 100644 (file)
index 1736bda..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-#ifndef DALI_V8PLUGIN_PATH_WRAPPER_H
-#define DALI_V8PLUGIN_PATH_WRAPPER_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/animation/path.h>
-
-// INTERNAL INCLUDES
-#include <object/handle-wrapper.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-/**
- * Wraps a Path.
- */
-class PathWrapper : public HandleWrapper
-{
-
-public:
-
-  /**
-   * Constructor
-   */
-  PathWrapper( Path path, GarbageCollectorInterface& gc );
-
-  /**
-   * Virtual destructor
-   */
-  virtual ~PathWrapper(){};
-
-  /**
-   * Creates a new Path wrapped inside a Javascript Object.
-   * @param[in] args v8 function call arguments interpreted
-   */
-  static void NewPath( const v8::FunctionCallbackInfo< v8::Value >& args);
-
-  /**
-   * Wraps a path inside a Javascript object
-   */
-  static v8::Handle<v8::Object> WrapPath(v8::Isolate* isolate, Path path );
-
-  /*
-   * Get the wrapped path
-   */
-  Path GetPath();
-
-private:
-
-  /**
-   * Create a v8 object template for the path
-   */
-  static v8::Handle<v8::ObjectTemplate> MakePathTemplate( v8::Isolate* isolate );
-
-  Path mPath;
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_PATH_WRAPPER_H
diff --git a/plugins/dali-script-v8/src/constants/constants-wrapper.cpp b/plugins/dali-script-v8/src/constants/constants-wrapper.cpp
deleted file mode 100644 (file)
index 355b207..0000000
+++ /dev/null
@@ -1,322 +0,0 @@
-/*
- * 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.
- *
- */
-
-// CLASS HEADER
-#include "constants-wrapper.h"
-
-// EXTERNAL INCLUDES
-#include <dali/public-api/common/constants.h>
-#include <dali/public-api/math/vector3.h>
-#include <dali/public-api/animation/animation.h>
-#include <dali/public-api/images/pixel.h>
-#include <dali/public-api/images/image.h>
-#include <dali/public-api/images/resource-image.h>
-#include <dali/public-api/actors/actor-enumerations.h>
-#include <dali/public-api/actors/draw-mode.h>
-#include <dali/public-api/actors/camera-actor.h>
-#include <dali/public-api/actors/sampling.h>
-#include <dali/public-api/render-tasks/render-task.h>
-#include <dali/public-api/common/loading-state.h>
-#include <dali/public-api/rendering/geometry.h>
-#include <dali/public-api/rendering/renderer.h>
-#include <dali-toolkit/public-api/controls/scrollable/item-view/default-item-layout.h>
-#include <dali-toolkit/public-api/controls/scrollable/scroll-view/scroll-view.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace
-{
-
-struct Vector3Pair
-{
-  const char* name;
-  const Vector3& value;
-};
-
-struct Vector4Pair
-{
-  const char* name;
-  const Vector4& value;
-};
-
-struct IntegerPair
-{
-  const char* name;
-  const int value;
-};
-
-
-const Vector3Pair Vector3Table[] =
-{
-    { "TOP_LEFT"            , ParentOrigin::TOP_LEFT          },
-    { "TOP_CENTER"          , ParentOrigin::TOP_CENTER        },
-    { "TOP_RIGHT"           , ParentOrigin::TOP_RIGHT         },
-    { "CENTER_LEFT"         , ParentOrigin::CENTER_LEFT       },
-    { "CENTER"              , ParentOrigin::CENTER            },
-    { "CENTER_RIGHT"        , ParentOrigin::CENTER_RIGHT      },
-    { "BOTTOM_LEFT"         , ParentOrigin::BOTTOM_LEFT       },
-    { "BOTTOM_CENTER"       , ParentOrigin::BOTTOM_CENTER     },
-    { "BOTTOM_RIGHT"        , ParentOrigin::BOTTOM_RIGHT      },
-
-    { "VECTOR3_ONE"                  ,      Vector3::ONE                        },
-    { "VECTOR3_XAXIS"                ,      Vector3::XAXIS                      },
-    { "VECTOR3_YAXIS"                ,      Vector3::YAXIS                      },
-    { "VECTOR3_ZAXIS"                ,      Vector3::ZAXIS                      },
-    { "VECTOR3_NEGATIVE_XAXIS"       ,      Vector3::NEGATIVE_XAXIS             },
-    { "VECTOR3_NEGATIVE_YAXIS"       ,      Vector3::NEGATIVE_YAXIS             },
-    { "VECTOR3_NEGATIVE_ZAXIS"       ,      Vector3::NEGATIVE_ZAXIS             },
-    { "VECTOR3_ZERO"                 ,      Vector3::ZERO                       }
-
-
-};
-
-const unsigned int Vector3TableCount = sizeof(Vector3Table)/sizeof(Vector3Table[0]);
-
-const Vector4Pair Vector4Table[] =
-{
-    { "COLOR_BLACK"                  , Color::BLACK       },
-    { "COLOR_WHITE"                  , Color::WHITE       },
-    { "COLOR_RED"                    , Color::RED         },
-    { "COLOR_GREEN"                  , Color::GREEN       },
-    { "COLOR_BLUE"                   , Color::BLUE        },
-    { "COLOR_YELLOW"                 , Color::YELLOW      },
-    { "COLOR_MAGENTA"                , Color::MAGENTA     },
-    { "COLOR_CYAN"                   , Color::CYAN        },
-    { "COLOR_TRANSPARENT"            , Color::TRANSPARENT }
-
-};
-
-const unsigned int Vector4TableCount = sizeof(Vector4Table)/sizeof(Vector4Table[0]);
-
-const IntegerPair EnumTable[] =
-{
-
-    { "ANIMATION_BAKE",                                       Animation::Bake                    },
-    { "ANIMATION_DISCARD",                                    Animation::Discard                 },
-    { "ANIMATION_BAKE_FINAL",                                 Animation::BakeFinal               },
-    { "REFRESH_ONCE",                                         RenderTask::REFRESH_ONCE           },
-    { "REFRESH_ALWAYS",                                       RenderTask::REFRESH_ALWAYS         },
-
-    { "PIXEL_FORMAT_A8",                                       Pixel::A8,                        },
-    { "PIXEL_FORMAT_L8",                                       Pixel::L8,                        },
-    { "PIXEL_FORMAT_LA88",                                     Pixel::LA88,                      },
-    { "PIXEL_FORMAT_RGB565",                                   Pixel::RGB565,                    },
-    { "PIXEL_FORMAT_BGR565",                                   Pixel::BGR565,                    },
-    { "PIXEL_FORMAT_RGBA4444",                                 Pixel::RGBA4444,                  },
-    { "PIXEL_FORMAT_BGRA4444",                                 Pixel::BGRA4444,                  },
-    { "PIXEL_FORMAT_RGBA5551",                                 Pixel::RGBA5551,                   },
-    { "PIXEL_FORMAT_BGRA5551",                                 Pixel::BGRA5551,                  },
-    { "PIXEL_FORMAT_RGB888",                                   Pixel::RGB888,                    },
-    { "PIXEL_FORMAT_RGB8888",                                  Pixel::RGB8888,                   },
-    { "PIXEL_FORMAT_BGR8888",                                  Pixel::BGR8888,                   },
-    { "PIXEL_FORMAT_RGBA8888",                                 Pixel::RGBA8888,                  },
-    { "PIXEL_FORMAT_BGRA8888",                                 Pixel::BGRA8888,                  },
-
-    { "PIXEL_FORMAT_COMPRESSED_R11_EAC",                       Pixel::COMPRESSED_R11_EAC,        },
-    { "PIXEL_FORMAT_COMPRESSED_SIGNED_R11_EAC",                Pixel::COMPRESSED_SIGNED_R11_EAC,                },
-    { "PIXEL_FORMAT_COMPRESSED_RG11_EAC",                      Pixel::COMPRESSED_RG11_EAC,                      },
-    { "PIXEL_FORMAT_COMPRESSED_SIGNED_RG11_EAC",               Pixel::COMPRESSED_SIGNED_RG11_EAC,               },
-    { "PIXEL_FORMAT_COMPRESSED_RGB8_ETC2",                     Pixel::COMPRESSED_RGB8_ETC2,                     },
-    { "PIXEL_FORMAT_COMPRESSED_SRGB8_ETC2",                    Pixel::COMPRESSED_SRGB8_ETC2,                    },
-    { "PIXEL_FORMAT_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2", Pixel::COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, },
-    { "PIXEL_FORMAT_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",Pixel::COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2},
-    { "PIXEL_FORMAT_COMPRESSED_RGBA8_ETC2_EAC",                Pixel::COMPRESSED_RGBA8_ETC2_EAC,                },
-    { "PIXEL_FORMAT_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC",         Pixel::COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,         },
-    { "PIXEL_FORMAT_COMPRESSED_RGB8_ETC1",                     Pixel::COMPRESSED_RGB8_ETC1,                     },
-    { "PIXEL_FORMAT_COMPRESSED_RGB_PVRTC_4BPPV1",              Pixel::COMPRESSED_RGB_PVRTC_4BPPV1               },
-
-
-    { "COLOR_MODE_USE_OWN_COLOR",                              USE_OWN_COLOR                    },
-    { "COLOR_MODE_USE_PARENT_COLOR",                           USE_PARENT_COLOR                 },
-    { "COLOR_MODE_USE_OWN_MULTIPLY_PARENT_COLOR",              USE_OWN_MULTIPLY_PARENT_COLOR    },
-    { "COLOR_MODE_USE_OWN_MULTIPLY_PARENT_ALPHA",              USE_OWN_MULTIPLY_PARENT_ALPHA    },
-
-
-    { "DRAW_MODE_NORMAL",                                   DrawMode::NORMAL     },
-    { "DRAW_MODE_OVERLAY_2D",                               DrawMode::OVERLAY_2D },
-
-    { "RESOURCE_LOADING",                                   Dali::ResourceLoading },
-    { "RESOURCE_LOADING_SUCCEEDED",                         Dali::ResourceLoadingSucceeded  },
-    { "RESOURCE_LOADING_FAILED",                            Dali::ResourceLoadingFailed  },
-
-    { "FITTING_MODE_SHRINK_TO_FIT",     FittingMode::SHRINK_TO_FIT },
-    { "FITTING_MODE_SCALE_TO_FILL",     FittingMode::SCALE_TO_FILL },
-    { "FITTING_MODE_FIT_WIDTH",         FittingMode::FIT_WIDTH },
-    { "FITTING_MODE_FIT_HEIGHT",        FittingMode::FIT_HEIGHT },
-
-    { "SAMPLING_MODE_BOX",              SamplingMode::BOX },
-    { "SAMPLING_MODE_NEAREST",          SamplingMode::NEAREST },
-    { "SAMPLING_MODE_LINEAR",           SamplingMode::LINEAR },
-    { "SAMPLING_MODE_BOX_THEN_NEAREST", SamplingMode::BOX_THEN_NEAREST },
-    { "SAMPLING_MODE_BOX_THEN_LINEAR",  SamplingMode::BOX_THEN_LINEAR },
-    { "SAMPLING_MODE_NO_FILTER",        SamplingMode::NO_FILTER },
-    { "SAMPLING_MODE_DONT_CARE",        SamplingMode::DONT_CARE },
-
-    { "BLEND_FACTOR_ZERO",                                  BlendFactor::ZERO                    },
-    { "BLEND_FACTOR_ONE",                                   BlendFactor::ONE                     },
-    { "BLEND_FACTOR_SRC_COLOR",                             BlendFactor::SRC_COLOR               },
-    { "BLEND_FACTOR_ONE_MINUS_SRC_COLOR",                   BlendFactor::ONE_MINUS_SRC_COLOR     },
-    { "BLEND_FACTOR_SRC_ALPHA",                             BlendFactor::SRC_ALPHA               },
-    { "BLEND_FACTOR_ONE_MINUS_SRC_ALPHA",                   BlendFactor::ONE_MINUS_SRC_ALPHA     },
-    { "BLEND_FACTOR_DST_ALPHA",                             BlendFactor::DST_ALPHA                },
-    { "BLEND_FACTOR_ONE_MINUS_DST_ALPHA",                   BlendFactor::ONE_MINUS_DST_ALPHA      },
-    { "BLEND_FACTOR_DST_COLOR",                             BlendFactor::DST_COLOR                },
-    { "BLEND_FACTOR_ONE_MINUS_DST_COLOR",                   BlendFactor::ONE_MINUS_DST_COLOR      },
-    { "BLEND_FACTOR_SRC_ALPHA_SATURATE",                    BlendFactor::SRC_ALPHA_SATURATE       },
-    { "BLEND_FACTOR_CONSTANT_COLOR",                        BlendFactor::CONSTANT_COLOR           },
-    { "BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR",              BlendFactor::ONE_MINUS_CONSTANT_COLOR },
-    { "BLEND_FACTOR_CONSTANT_ALPHA" ,                       BlendFactor::CONSTANT_ALPHA           },
-    { "BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA",              BlendFactor::ONE_MINUS_CONSTANT_ALPHA },
-
-    { "BLEND_MODE_OFF",                                      BlendMode::OFF             },
-    { "BLEND_MODE_AUTO",                                     BlendMode::AUTO            },
-    { "BLEND_MODE_ON",                                       BlendMode::ON              },
-
-    { "BLEND_EQUATION_ADD",                                BlendEquation::ADD              },
-    { "BLEND_EQUATION_SUBTRACT",                           BlendEquation::SUBTRACT         },
-    { "BLEND_EQUATION_REVERSE_SUBTRACT",                   BlendEquation::REVERSE_SUBTRACT },
-
-    { "CAMERA_FREE_LOOK"             ,      Camera::FREE_LOOK                   },
-    { "CAMERA_LOOK_AT_TARGET"        ,      Camera::LOOK_AT_TARGET              },
-    { "CAMERA_PERSPECTIVE_PROJECTION" ,     Camera::PERSPECTIVE_PROJECTION      },
-    { "CAMERA_ORTHOGRAPHIC_PROJECTION",     Camera::ORTHOGRAPHIC_PROJECTION     },
-
-    { "FILTER_MODE_NONE",                     FilterMode::NONE           },
-    { "FILTER_MODE_DEFAULT",                  FilterMode::DEFAULT        },
-    { "FILTER_MODE_NEAREST",                  FilterMode::NEAREST        },
-    { "FILTER_MODE_LINEAR",                   FilterMode::LINEAR         },
-
-    { "WRAP_MODE_DEFAULT",                    WrapMode::DEFAULT          },
-    { "WRAP_MODE_CLAMP_TO_EDGE",              WrapMode::CLAMP_TO_EDGE    },
-    { "WRAP_MODE_REPEAT",                     WrapMode::REPEAT           },
-    { "WRAP_MODE_MIRRORED_REPEAT",            WrapMode::MIRRORED_REPEAT  },
-
-    { "FACE_CULLING_NONE",                    FaceCullingMode::NONE           },
-    { "FACE_CULLING_BACK",                    FaceCullingMode::BACK           },
-    { "FACE_CULLING_FRONT",                   FaceCullingMode::FRONT          },
-    { "FACE_CULLING_FRONT_AND_BACK",          FaceCullingMode::FRONT_AND_BACK },
-
-    { "DEPTH_WRITE_OFF",                      DepthWriteMode::OFF   },
-    { "DEPTH_WRITE_AUTO",                     DepthWriteMode::AUTO  },
-    { "DEPTH_WRITE_ON",                       DepthWriteMode::ON    },
-
-    { "GEOMETRY_POINTS",                      Geometry::POINTS          },
-    { "GEOMETRY_LINES",                       Geometry::LINES           },
-    { "GEOMETRY_LINE_LOOP",                   Geometry::LINE_LOOP       },
-    { "GEOMETRY_LINE_STRIP",                  Geometry::LINE_STRIP      },
-    { "GEOMETRY_TRIANGLES",                   Geometry::TRIANGLES       },
-    { "GEOMETRY_TRIANGLE_FAN",                Geometry::TRIANGLE_FAN    },
-    { "GEOMETRY_TRIANGLE_STRIP",              Geometry::TRIANGLE_STRIP  },
-
-    { "PROPERTY_NONE",                        Property::NONE           },
-    { "PROPERTY_BOOLEAN",                     Property::BOOLEAN        },
-    { "PROPERTY_FLOAT",                       Property::FLOAT          },
-    { "PROPERTY_INTEGER",                     Property::INTEGER        },
-    { "PROPERTY_VECTOR2",                     Property::VECTOR2        },
-    { "PROPERTY_VECTOR3",                     Property::VECTOR3        },
-    { "PROPERTY_VECTOR4",                     Property::VECTOR4        },
-    { "PROPERTY_MATRIX3",                     Property::MATRIX3        },
-    { "PROPERTY_MATRIX",                      Property::MATRIX         },
-    { "PROPERTY_RECTANGLE",                   Property::RECTANGLE      },
-    { "PROPERTY_ROTATION",                    Property::ROTATION       },
-    { "PROPERTY_STRING",                      Property::STRING         },
-    { "PROPERTY_ARRAY",                       Property::ARRAY          },
-    { "PROPERTY_MAP",                         Property::MAP            },
-    { "PROPERTY_INVALID_INDEX",               Property::INVALID_INDEX  },
-    { "PROPERTY_READ_ONLY",                   Property::READ_ONLY      },
-    { "PROPERTY_READ_WRITE",                  Property::READ_WRITE     },
-    { "PROPERTY_ANIMATABLE",                  Property::ANIMATABLE     },
-
-    { "DIMENSION_WIDTH",                      Dimension::WIDTH   },
-    { "DIMENSION_HEIGHT",                     Dimension::HEIGHT  },
-
-    { "ITEM_LAYOUT_LIST",                     Toolkit::DefaultItemLayout::LIST     },
-    { "ITEM_LAYOUT_GRID",                     Toolkit::DefaultItemLayout::GRID     },
-
-    { "DIRECTION_BIAS_NONE",                  Toolkit::DirectionBiasNone   },
-    { "DIRECTION_BIAS_LEFT",                  Toolkit::DirectionBiasLeft   },
-    { "DIRECTION_BIAS_RIGHT",                 Toolkit::DirectionBiasRight  },
-
-    { "ALPHA_FUNCTION_DEFAULT",               AlphaFunction::DEFAULT              },
-    { "ALPHA_FUNCTION_LINEAR",                AlphaFunction::LINEAR               },
-    { "ALPHA_FUNCTION_REVERSE",               AlphaFunction::REVERSE              },
-    { "ALPHA_FUNCTION_EASE_IN_SQUARE",        AlphaFunction::EASE_IN_SQUARE       },
-    { "ALPHA_FUNCTION_EASE_OUT_SQUARE",       AlphaFunction::EASE_OUT_SQUARE      },
-    { "ALPHA_FUNCTION_EASE_IN",               AlphaFunction::EASE_IN              },
-    { "ALPHA_FUNCTION_EASE_OUT",              AlphaFunction::EASE_OUT             },
-    { "ALPHA_FUNCTION_EASE_IN_OUT",           AlphaFunction::EASE_IN_OUT          },
-    { "ALPHA_FUNCTION_EASE_IN_SINE",          AlphaFunction::EASE_IN_SINE         },
-    { "ALPHA_FUNCTION_EASE_OUT_SINE",         AlphaFunction::EASE_OUT_SINE        },
-    { "ALPHA_FUNCTION_EASE_IN_OUT_SINE",      AlphaFunction::EASE_IN_OUT_SINE     },
-    { "ALPHA_FUNCTION_BOUNCE",                AlphaFunction::BOUNCE               },
-    { "ALPHA_FUNCTION_SIN",                   AlphaFunction::SIN                  },
-    { "ALPHA_FUNCTION_EASE_OUT_BACK",         AlphaFunction::EASE_OUT_BACK        },
-
-    { "CLIPPING_MODE_DISABLED",                     ClippingMode::DISABLED                     },
-    { "CLIPPING_MODE_CLIP_CHILDREN",                ClippingMode::CLIP_CHILDREN                },
-};
-const unsigned int EnumTableCount = sizeof(EnumTable)/sizeof(EnumTable[0]);
-
-} // un-named name space
-
-
-void ConstantsWrapper::AddDaliConstants( v8::Isolate* isolate, v8::Local<v8::Object >& obj  )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-
-  for( unsigned int i = 0; i < EnumTableCount; ++i )
-  {
-    obj->Set( v8::String::NewFromUtf8( isolate, EnumTable[i].name ),
-                      v8::Integer::New(isolate, EnumTable[i].value ) );
-  }
-
-  for( unsigned int i = 0; i < Vector3TableCount; ++i )
-  {
-    // create a JavaScript array object with 3 entries.
-    v8::Local<v8::Array> array = v8::Array::New( isolate ,3 );
-    array->Set( 0 , v8::Number::New(isolate, Vector3Table[i].value.x ));
-    array->Set( 1 , v8::Number::New(isolate, Vector3Table[i].value.y ));
-    array->Set( 2 , v8::Number::New(isolate, Vector3Table[i].value.z ));
-
-    obj->Set( v8::String::NewFromUtf8( isolate, Vector3Table[i].name),
-              array);
-  }
-
-
-  for( unsigned int i = 0; i < Vector4TableCount; ++i )
-  {
-    // create a JavaScript array object with 3 entries.
-    v8::Local<v8::Array> array = v8::Array::New( isolate ,4 );
-    array->Set( 0 , v8::Number::New(isolate, Vector4Table[i].value.x ));
-    array->Set( 1 , v8::Number::New(isolate, Vector4Table[i].value.y ));
-    array->Set( 2 , v8::Number::New(isolate, Vector4Table[i].value.z ));
-    array->Set( 3 , v8::Number::New(isolate, Vector4Table[i].value.w ));
-
-    obj->Set( v8::String::NewFromUtf8( isolate, Vector4Table[i].name),
-              array);
-  }
-
-}
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/constants/constants-wrapper.h b/plugins/dali-script-v8/src/constants/constants-wrapper.h
deleted file mode 100644 (file)
index c4ed4f3..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef DALI_V8PLUGIN_DALI_CONSTANTS_WRAPPER
-#define DALI_V8PLUGIN_DALI_CONSTANTS_WRAPPER
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace  ConstantsWrapper
-{
-
-void AddDaliConstants( v8::Isolate* isolate, v8::Local<v8::Object >& obj  );
-} // namespace ConstantsWrapper
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_DALI_CONSTANTS_WRAPPER
diff --git a/plugins/dali-script-v8/src/controls/control-wrapper.cpp b/plugins/dali-script-v8/src/controls/control-wrapper.cpp
deleted file mode 100644 (file)
index b3cc3dc..0000000
+++ /dev/null
@@ -1,358 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include <actors/actor-wrapper.h>
-#include "control-wrapper.h"
-
-// EXTERNAL INCLUDES
-#include <dali/public-api/object/type-registry.h>
-
-// INTERNAL INCLUDES
-#include <controls/item-view-api.h>
-#include <controls/scroll-view-api.h>
-#include <v8-utils.h>
-#include <dali-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-v8::Persistent<v8::ObjectTemplate> ControlWrapper::mControlTemplate;
-v8::Persistent<v8::ObjectTemplate> ControlWrapper::mItemViewTemplate;
-v8::Persistent<v8::ObjectTemplate> ControlWrapper::mScrollViewTemplate;
-
-Vector< void* > ControlWrapper::mControlGarbageContainer;
-
-namespace
-{
-
-
-/**
- * pointer to a persistent template handle
- */
-struct ControlTemplate
-{
-  v8::Persistent<v8::ObjectTemplate>* controlTemplate;
-};
-
-/**
- * array of templates for each type of control
- */
-const ControlTemplate ControlTemplateLookup[]=
-{
-    { &ControlWrapper::mControlTemplate },        // CONTROL
-    { &ControlWrapper::mItemViewTemplate },       // ITEMVIEW
-    { &ControlWrapper::mScrollViewTemplate }      // SCROLLVIEW
-};
-
-/**
- * Bitmask of API's that an control can support
- */
-enum ControlApiBitMask
-{
-  CONTROL_API             = 1 << 0,
-  ITEMVIEW_API            = 1 << 1,
-  SCROLLVIEW_API          = 1 << 2
-};
-
-/**
- * structure used for the ControlApiLookup.
- */
-struct ControlApiStruct
-{
-  const char* controlName;
-  ControlWrapper::ControlType controlType;
-  Toolkit::Control (*constructor)( const v8::FunctionCallbackInfo< v8::Value >& args);
-  int supportApis;
-};
-
-/**
- * Lookup table to match a control type with a constructor and supported API's.
- * ControlWrapper::ControlType is used to index this table
- */
-const ControlApiStruct ControlApiLookup[]=
-{
-  {"Control",      ControlWrapper::CONTROL,      NULL,                 CONTROL_API },
-  {"ItemView",     ControlWrapper::ITEMVIEW,     ItemViewApi::New,     CONTROL_API | ITEMVIEW_API },
-  {"ScrollView",   ControlWrapper::SCROLLVIEW,   ScrollViewApi::New,   CONTROL_API | SCROLLVIEW_API }
-};
-
-const unsigned int ControlApiLookupCount = sizeof(ControlApiLookup)/sizeof(ControlApiLookup[0]);
-
-
-/**
- * Creates a control given a type name
- * Uses the type registry to create an control of the correct type
- */
-Toolkit::Control CreateControl( const v8::FunctionCallbackInfo< v8::Value >& args,
-                        const std::string& typeName )
-{
-  Toolkit::Control control;
-
-  ControlWrapper::ControlType controlType = ControlWrapper::GetControlType( typeName );
-
-  // if we don't currently have specific binding for the given control type,
-  // try to use type registry to create it
-  if( controlType == ControlWrapper::UNKNOWN_CONTROL )
-  {
-    Dali::TypeInfo typeInfo = Dali::TypeRegistry::Get().GetTypeInfo( typeName );
-    if( typeInfo )
-    {
-      Dali::BaseHandle handle = typeInfo.CreateInstance();
-      if( handle )
-      {
-        control = Toolkit::Control::DownCast( handle );
-        if( !control )
-        {
-          DALI_SCRIPT_EXCEPTION( args.GetIsolate(), "Unknown control type" );
-          return Toolkit::Control();
-        }
-      }
-    }
-  }
-  else
-  {
-    // run the constructor for this type of control so it can pull out custom parameters
-    control = (ControlApiLookup[controlType].constructor)( args );
-  }
-
-  return control;
-}
-
-/**
- * given a control type return what api's it supports
- */
-int GetControlSupportedApis( ControlWrapper::ControlType type )
-{
-  return ControlApiLookup[type].supportApis;
-}
-
-/**
- * Used for the ControlFunctionTable to map function names to functions
- * with for a specific API
- */
-struct ControlFunctions
-{
-  const char* name;               ///< function name
-  void (*function)( const v8::FunctionCallbackInfo< v8::Value >& args);
-  ControlApiBitMask api;
-};
-
-/**
- * Contains a list of all functions that can be called in
- * ItemView
- */
-const ControlFunctions ControlFunctionTable[]=
-{
-
-    /**************************************
-     * ItemView  API
-     **************************************/
-    { "GetLayoutCount",                  ItemViewApi::GetLayoutCount,                   ITEMVIEW_API  },
-    { "AddLayout",                       ItemViewApi::AddLayout,                        ITEMVIEW_API  },
-    { "RemoveLayout",                    ItemViewApi::RemoveLayout,                     ITEMVIEW_API  },
-    { "ActivateLayout",                  ItemViewApi::ActivateLayout,                   ITEMVIEW_API  },
-    { "GetItemSize",                     ItemViewApi::GetItemSize,                      ITEMVIEW_API  },
-    { "SetItemSize",                     ItemViewApi::SetItemSize,                      ITEMVIEW_API  },
-    { "ScrollToItem",                    ItemViewApi::ScrollToItem,                     ITEMVIEW_API  },
-    { "GetItem",                         ItemViewApi::GetItem,                          ITEMVIEW_API  },
-    { "GetItemId",                       ItemViewApi::GetItemId,                        ITEMVIEW_API  },
-    { "GetItemsRange",                   ItemViewApi::GetItemsRange,                    ITEMVIEW_API  },
-
-    /**************************************
-     * ScrollView  API
-     **************************************/
-    { "SetScrollMode",                   ScrollViewApi::SetScrollMode,                  SCROLLVIEW_API },
-    { "GetCurrentPage",                  ScrollViewApi::GetCurrentPage,                 SCROLLVIEW_API },
-    { "ScrollToPosition",                ScrollViewApi::ScrollToPosition,               SCROLLVIEW_API },
-    { "ScrollToPage",                    ScrollViewApi::ScrollToPage,                   SCROLLVIEW_API },
-    { "ScrollToActor",                   ScrollViewApi::ScrollToActor,                  SCROLLVIEW_API },
-    { "ScrollToSnapInterval",            ScrollViewApi::ScrollToSnapInterval,           SCROLLVIEW_API },
-    { "SetScrollFlickAlphaFunction",     ScrollViewApi::SetScrollFlickAlphaFunction,    SCROLLVIEW_API },
-    { "SetScrollSnapAlphaFunction",      ScrollViewApi::SetScrollSnapAlphaFunction,     SCROLLVIEW_API },
-    { "SetSnapOvershootAlphaFunction",   ScrollViewApi::SetSnapOvershootAlphaFunction,  SCROLLVIEW_API },
-
-};
-
-const unsigned int ControlFunctionTableCount = sizeof(ControlFunctionTable)/sizeof(ControlFunctionTable[0]);
-} //un-named space
-
-
-ControlWrapper::ControlWrapper( Toolkit::Control control,
-              GarbageCollectorInterface& gc )
-: ActorWrapper( control, gc ),
-  mControl( control )
-
-{
-}
-
-ControlWrapper::~ControlWrapper()
-{
-  mControlGarbageContainer.Release();
-}
-
-v8::Handle<v8::Object> ControlWrapper::WrapControl(v8::Isolate* isolate, Toolkit::Control control )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  // Check whether the control is a Control
-  ControlWrapper::ControlType controlType = GetControlType( control.GetTypeName() );
-
-  if( controlType == ControlWrapper::UNKNOWN_CONTROL && Toolkit::Control::DownCast(control) )
-  {
-    controlType = ControlWrapper::CONTROL;
-  }
-
-  v8::Local<v8::Object> object = WrapControl( isolate, control, controlType );
-
-  return handleScope.Escape( object );
-}
-
-Toolkit::Control ControlWrapper::GetControl()
-{
-  return mControl;
-}
-
-v8::Handle<v8::Object> ControlWrapper::WrapControl( v8::Isolate* isolate, Toolkit::Control control, ControlType controlType )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  objectTemplate = GetControlTemplate( isolate, controlType );
-
-  // create an instance of the template
-  v8::Local<v8::Object> localObject = objectTemplate->NewInstance();
-
-  // create the control object
-  ControlWrapper* pointer = new ControlWrapper( control, Dali::V8Plugin::DaliWrapper::Get().GetDaliGarbageCollector() );
-
-  // assign the JavaScript object to the wrapper.
-  // This also stores Dali object, in an internal field inside the JavaScript object.
-  pointer->SetJavascriptObject( isolate, localObject );
-
-  return handleScope.Escape( localObject );
-}
-
-v8::Local<v8::ObjectTemplate> ControlWrapper::GetControlTemplate( v8::Isolate* isolate, ControlWrapper::ControlType type )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  if( ControlTemplateLookup[type].controlTemplate->IsEmpty() )
-  {
-    objectTemplate = MakeDaliControlTemplate( isolate, type );
-    ControlTemplateLookup[type].controlTemplate->Reset( isolate, objectTemplate );
-  }
-  else
-  {
-    // get the object template
-    objectTemplate = v8::Local<v8::ObjectTemplate>::New( isolate, *ControlTemplateLookup[type].controlTemplate );
-  }
-
-  return handleScope.Escape( objectTemplate );
-}
-
-v8::Handle<v8::ObjectTemplate> ControlWrapper::MakeDaliControlTemplate( v8::Isolate* isolate, ControlType controlType )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  // all the controls support actor APIs
-  v8::Local<v8::ObjectTemplate> objTemplate = ActorWrapper::MakeDaliActorTemplate( isolate, ActorWrapper::ACTOR );
-
-  // find out what API's this control supports
-  int supportApis = GetControlSupportedApis( controlType );
-
-  // add our function properties
-  for( unsigned int i = 0; i < ControlFunctionTableCount; ++i )
-  {
-    const ControlFunctions property =  ControlFunctionTable[i];
-
-    // check to see if the control supports a certain type of API
-    // e.g. ItemView will support CONTROL_API and ITEMVIEW_API
-    if( supportApis &  property.api )
-    {
-      std::string funcName = V8Utils::GetJavaScriptFunctionName( property.name);
-
-      objTemplate->Set( v8::String::NewFromUtf8( isolate, funcName.c_str() ),
-                      v8::FunctionTemplate::New( isolate, property.function ) );
-    }
-  }
-
-  return handleScope.Escape( objTemplate );
-}
-
-void ControlWrapper::NewControl( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  if( !args.IsConstructCall() )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "constructor called without 'new" );
-    return;
-  }
-
-  bool found( false );
-  std::string controlName = V8Utils::GetStringParameter( PARAMETER_0, found, isolate,  args );
-
-  Toolkit::Control control;
-  if( found && controlName != ControlApiLookup[0].controlName )
-  {
-    control = CreateControl( args, controlName ); // create the control with the given type
-  }
-  else
-  {
-    control = Toolkit::Control::New(); // no given type, so create the base type of control
-  }
-
-  if( control )
-  {
-    v8::Local<v8::Object> localObject = WrapControl( isolate, control );
-    args.GetReturnValue().Set( localObject );
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "unsupported control type" );
-  }
-}
-
-/**
- * Given a control type name, e.g. ItemView returns the type, e.g. ControlWrapper::ITEMVIEW
- */
-ControlWrapper::ControlType ControlWrapper::GetControlType( const std::string& name )
-{
-  for( unsigned int i = 0 ; i < ControlApiLookupCount ; i++ )
-  {
-    if( ControlApiLookup[i].controlName == name )
-    {
-      return ControlApiLookup[i].controlType;
-    }
-  }
-  return ControlWrapper::UNKNOWN_CONTROL;
-}
-
-void ControlWrapper::RegisterGarbage(void* garbage)
-{
-  mControlGarbageContainer.PushBack(garbage);
-}
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/controls/control-wrapper.h b/plugins/dali-script-v8/src/controls/control-wrapper.h
deleted file mode 100644 (file)
index 7e4e843..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-#ifndef DALI_V8PLUGIN_CONTROL_WRAPPER_H
-#define DALI_V8PLUGIN_CONTROL_WRAPPER_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/common/dali-vector.h>
-#include <dali-toolkit/public-api/controls/control.h>
-
-// INTERNAL INCLUDES
-#include <actors/actor-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-
-/**
- * Wraps a Dali Control.
- */
-class ControlWrapper : public ActorWrapper
-{
-
-public:
-
-  /**
-   * Control type used an index.
-   * These enums are used to index the ControlApiLookup table in control-wrapper.cpp.
-   * Any changes made must be reflected in the ControlApiLookup otherwise it may segfault when creating a control
-   */
-  enum ControlType
-  {
-    UNKNOWN_CONTROL = -1,
-    CONTROL         = 0,
-    ITEMVIEW        = 1,
-    SCROLLVIEW      = 2
-  };
-
-  /**
-   * Constructor
-   * @param control DALi control
-   * @param gc garbage collection interface
-   */
-  ControlWrapper( Toolkit::Control control,
-                GarbageCollectorInterface& gc );
-
-  /**
-   * destructor
-   */
-  virtual ~ControlWrapper();
-
-  /**
-   * @brief Creates a new Control wrapped inside a Javascript Object.
-   * @note: the control type is passed as a parameter e.g. 'ItemView'
-   * @param[in] args v8 function call arguments interpreted
-   */
-  static void NewControl( const v8::FunctionCallbackInfo< v8::Value >& args);
-
-  /**
-   * @brief Wraps a control of a given type
-   */
-  static v8::Handle<v8::Object> WrapControl(v8::Isolate* isolate, Toolkit::Control control, ControlType controlType);
-
-  /**
-   * @brief Wraps a control, the type is looked up from the control
-   */
-  static v8::Handle<v8::Object> WrapControl(v8::Isolate* isolate, Toolkit::Control control );
-
-  // The Control ObjectTemplates.
-  static v8::Persistent<v8::ObjectTemplate> mControlTemplate;
-  static v8::Persistent<v8::ObjectTemplate> mItemViewTemplate;
-  static v8::Persistent<v8::ObjectTemplate> mScrollViewTemplate;
-
-  /**
-   * @return the wrapped control
-   */
-  Toolkit::Control GetControl();
-
-  /**
-   * @return the control type
-   */
-  static ControlWrapper::ControlType GetControlType( const std::string& name );
-
-  /**
-   * @brief Register the garbage to be released when the wrapped control is deleted.
-   */
-  static void RegisterGarbage(void* garbage);
-
-private:
-
-  /**
-   * Helper to make the control template
-   */
-  static v8::Handle<v8::ObjectTemplate> MakeDaliControlTemplate( v8::Isolate* isolate, ControlType controlType );
-
-  /**
-   * Helper, get a control template given a control type
-   */
-  static v8::Local<v8::ObjectTemplate> GetControlTemplate( v8::Isolate* isolate, ControlType type );
-
-  Toolkit::Control mControl;
-  static Vector< void* > mControlGarbageContainer;
-
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_CONTROL_WRAPPER_H
diff --git a/plugins/dali-script-v8/src/controls/item-factory-wrapper.cpp b/plugins/dali-script-v8/src/controls/item-factory-wrapper.cpp
deleted file mode 100644 (file)
index 6085cf2..0000000
+++ /dev/null
@@ -1,467 +0,0 @@
-/*
- * Copyright (c) 2017 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.
- *
- */
-
-// CLASS HEADER
-#include "item-factory-wrapper.h"
-
-// EXTERNAL INCLUDES
-#include <dali/public-api/common/vector-wrapper.h>
-#include <dali/public-api/object/weak-handle.h>
-#include <dali-toolkit/devel-api/builder/builder.h>
-#include <dali-toolkit/public-api/controls/scrollable/item-view/item-view.h>
-#include <dali-toolkit/public-api/controls/scrollable/item-view/item-layout.h>
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <dali-wrapper.h>
-#include <shared/api-function.h>
-#include <shared/object-template-helper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-v8::Persistent<v8::ObjectTemplate> ItemFactoryWrapper::mItemFactoryTemplate;
-
-namespace
-{
-
-typedef std::vector< Property::Map > ItemDataContainer;
-
-// Implementation of ItemFactory for providing actors to ItemView
-class ItemFactory : public Toolkit::ItemFactory
-{
-public:
-
-  /**
-   * Constructor
-   * @param application class, stored as reference
-   */
-  ItemFactory()
-  : mJsonFileLoaded(false),
-    mNumberOfItems(0)
-  {
-    mBuilder = Toolkit::Builder::New();
-  }
-
-  /**
-   * Set the name of the JSON file which defines the templates of items.
-   * @param jsonFile The JSON file
-   */
-  void SetJsonTemplateFile(std::string jsonFile)
-  {
-    if(mJsonFile != jsonFile)
-    {
-      mJsonFile = jsonFile;
-      LoadJsonFile(mJsonFile);
-
-      // Check whether any layout activated in ItemView
-      Toolkit::ItemView itemView = mItemView.GetHandle();
-      if(itemView && itemView.GetActiveLayout() != NULL)
-      {
-        // Refresh ItemView if item templates are changed
-        itemView.Refresh();
-      }
-    }
-  }
-
-  /**
-   * Returns the name of the JSON file.
-   * @return The JSON file name
-   */
-  std::string GetJsonTemplate()
-  {
-    return mJsonFile;
-  }
-
-  /**
-   * Set the data to be used to create new items.
-   *
-   * If ItemView is already created, this will immediately update ItemView with the
-   * new data.
-   *
-   * The data is an array of property maps in which each map contains the data for
-   * each item, including the template to be used to build the actor and the pairs
-   * of key/value to be used to replace the constants defined in the template.
-   * The order of property maps in the array represents the actual order of items
-   * in ItemView.
-   *
-   * @param data The array of property maps
-   */
-  void SetData(ItemDataContainer data)
-  {
-    ItemDataContainer currentData = mData;
-    mData = data;
-    mNumberOfItems = mData.size();
-
-    // Check whether any layout activated in ItemView
-    Toolkit::ItemView itemView = mItemView.GetHandle();
-    if(itemView && itemView.GetActiveLayout() != NULL)
-    {
-      unsigned int currentNumberOfItems = currentData.size();
-      unsigned int newNumberOfItems = data.size();
-
-      // Check whether any items added or deleted from the data
-      // which requires ItemView to be refreshed with the new data
-      if(currentNumberOfItems != newNumberOfItems)
-      {
-        itemView.Refresh();
-      }
-      else
-      {
-        for( unsigned int itemId = 0; itemId < newNumberOfItems; itemId++)
-        {
-          // Check whether the item is already built in ItemView
-          Actor itemActor = itemView.GetItem(itemId);
-          if(itemActor)
-          {
-            // Check if the item needs to be rebuilt
-            if( !V8Utils::IsPropertyMapIdentical(currentData[itemId], data[itemId]) )
-            {
-              // Rebuild the item with the new data
-              Actor newItemActor = NewItem(itemId);
-
-              // Replace the old item with the new one
-              itemView.ReplaceItem( Toolkit::Item( itemId, newItemActor ), 0.0f );
-            }
-          }
-        }
-      }
-    }
-  }
-
-  /**
-   * Retrieve the data.
-   * @return the data.
-   */
-  ItemDataContainer GetData()
-  {
-    return mData;
-  }
-
-  /**
-   * Store a weak handle of ItemView in order to access ItemView APIs
-   * from this ItemFactory implementation
-   * @return the data.
-   */
-  void SetItemView(Toolkit::ItemView itemView)
-  {
-    mItemView = itemView;
-  }
-
-public: // From Toolkit::ItemFactory
-
-  /**
-   * Query the number of items available from the factory.
-   * The maximum available item has an ID of GetNumberOfItems() - 1.
-   */
-  virtual unsigned int GetNumberOfItems()
-  {
-    return mJsonFileLoaded ? mNumberOfItems : 0;
-  }
-
-  /**
-   * Create an Actor to represent a visible item.
-   * @param itemId
-   * @return the created actor.
-   */
-  virtual Actor NewItem(unsigned int itemId)
-  {
-    std::string itemTemplate;
-
-    Property::Map constantsMap = mData[itemId];
-    for ( unsigned int i = 0, count = constantsMap.Count(); i < count; ++i )
-    {
-      Property::Value& constantValue = constantsMap.GetValue(i);
-      if(constantsMap.GetKey(i) == "template")
-      {
-        constantValue.Get(itemTemplate);
-      }
-      else
-      {
-        mBuilder.AddConstant( constantsMap.GetKey(i), constantValue );
-      }
-    }
-
-    Actor item = Actor::DownCast( mBuilder.Create(itemTemplate) );
-    return item;
-  }
-
-private:
-
-  /**
-   * Load the JSON file.
-   * @param The JSON file name
-   */
-  void LoadJsonFile(std::string jsonFile)
-  {
-    try
-    {
-      std::string data;
-      V8Utils::GetFileContents(jsonFile, data);
-
-      mBuilder.LoadFromString(data);
-
-      mJsonFileLoaded = true;
-    }
-    catch(...)
-    {
-//      printf("invalid JSON data\n");
-      mJsonFileLoaded = false;
-    }
-  }
-
-private:
-
-  std::string mJsonFile;
-  bool mJsonFileLoaded;
-  Toolkit::Builder mBuilder;
-  unsigned int mNumberOfItems;
-  ItemDataContainer mData;
-  WeakHandle< Toolkit::ItemView > mItemView;
-};
-
-} //un-named space
-
-ItemFactoryWrapper::ItemFactoryWrapper( Toolkit::ItemFactory& factory, GarbageCollectorInterface& gc )
-: BaseWrappedObject( BaseWrappedObject::ITEMFACTORY , gc ),
-  mItemFactory( factory )
-{
-}
-
-ItemFactoryWrapper::~ItemFactoryWrapper()
-{
-}
-
-v8::Handle<v8::Object> ItemFactoryWrapper::WrapItemFactory(v8::Isolate* isolate, Toolkit::ItemFactory& factory )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  objectTemplate = GetItemFactoryTemplate( isolate );
-
-  // create an instance of the template
-  v8::Local<v8::Object> localObject = objectTemplate->NewInstance();
-
-  // create the ItemFactory wrapper
-  ItemFactoryWrapper* pointer =  new ItemFactoryWrapper( factory, Dali::V8Plugin::DaliWrapper::Get().GetDaliGarbageCollector() );
-
-  // assign the JavaScript object to the wrapper.
-  pointer->SetJavascriptObject( isolate, localObject );
-
-  return handleScope.Escape( localObject );
-}
-
-v8::Local<v8::ObjectTemplate> ItemFactoryWrapper::GetItemFactoryTemplate( v8::Isolate* isolate)
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  if( mItemFactoryTemplate.IsEmpty() )
-  {
-    objectTemplate = MakeItemFactoryTemplate( isolate );
-    mItemFactoryTemplate.Reset( isolate, objectTemplate );
-  }
-  else
-  {
-    // get the object template
-    objectTemplate = v8::Local<v8::ObjectTemplate>::New( isolate, mItemFactoryTemplate );
-  }
-  return handleScope.Escape( objectTemplate );
-}
-
-v8::Handle<v8::ObjectTemplate> ItemFactoryWrapper::MakeItemFactoryTemplate( v8::Isolate* isolate )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  v8::Local<v8::ObjectTemplate> objTemplate = v8::ObjectTemplate::New();
-
-  objTemplate->SetInternalFieldCount( BaseWrappedObject::FIELD_COUNT );
-
-  // set property setter and getter
-  objTemplate->SetNamedPropertyHandler( ItemFactoryWrapper::PropertyGet, ItemFactoryWrapper::PropertySet);
-
-  return handleScope.Escape( objTemplate );
-}
-
-void ItemFactoryWrapper::NewItemFactory( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate);
-
-  if( !args.IsConstructCall() )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "ItemFactory constructor called without 'new'" );
-    return;
-  }
-
-  Toolkit::ItemFactory* factory = new ItemFactory();
-
-  v8::Local<v8::Object> localObject = WrapItemFactory( isolate, *factory );
-  args.GetReturnValue().Set( localObject );
-}
-
-Toolkit::ItemFactory& ItemFactoryWrapper::GetItemFactoryFromParams( int paramIndex,
-                                             bool& found,
-                                             v8::Isolate* isolate,
-                                             const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  found = false;
-
-  v8::HandleScope handleScope( isolate );
-  BaseWrappedObject* wrappedObject = V8Utils::GetWrappedDaliObjectParameter( paramIndex, BaseWrappedObject::ITEMFACTORY, isolate, args );
-  if( wrappedObject )
-  {
-    found = true;
-    ItemFactoryWrapper* wrapper = static_cast< ItemFactoryWrapper *>(wrappedObject);
-    return wrapper->GetItemFactory();
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "no valid ItemFactory parameter" );
-    Toolkit::ItemFactory* dummyFactory = new ItemFactory();
-    return *dummyFactory; // avoid build error
-  }
-}
-
-ItemFactoryWrapper* ItemFactoryWrapper::Unwrap( v8::Isolate* isolate, v8::Handle< v8::Object> obj)
-{
-  v8::HandleScope handleScope( isolate );
-
-  v8::Local<v8::External> field = v8::Local<v8::External>::Cast( obj->GetInternalField(0) );
-  void* ptr = field->Value();
-  return static_cast< ItemFactoryWrapper *>(ptr);
-}
-
-void ItemFactoryWrapper::PropertyGet( v8::Local<v8::String> propertyName,
-                                        const v8::PropertyCallbackInfo<v8::Value>& info)
-{
-  v8::Isolate* isolate = info.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  // get the property name
-  std::string name = V8Utils::v8StringToStdString( propertyName );
-
-  if( std::isupper( name[0] ))
-  {
-    return;
-  }
-
-  // unwrap the object
-  ItemFactoryWrapper* itemFactoryWrapper = Unwrap( isolate, info.This() );
-  if( !itemFactoryWrapper )
-  {
-    return;
-  }
-
-  ItemFactory& factory = static_cast<ItemFactory&>( itemFactoryWrapper->GetItemFactory() );
-
-  if( name == "jsonTemplateFile" )
-  {
-    std::string jsonTemplateFile = factory.GetJsonTemplate();
-    info.GetReturnValue().Set(v8::String::NewFromUtf8(isolate, jsonTemplateFile.c_str()));
-  }
-  else if( name == "data" )
-  {
-    ItemDataContainer data = factory.GetData();
-    unsigned int itemCount = data.size();
-
-    v8::Local<v8::Array> array= v8::Array::New( isolate, itemCount );
-    for( unsigned int i = 0; i < itemCount; i++)
-    {
-      v8::Local<v8::Object> mapObject = v8::Object::New( isolate );
-      V8Utils::CreatePropertyMap( isolate, data[i], mapObject );
-
-      array->Set( i, mapObject);
-    }
-
-    info.GetReturnValue().Set(array);
-  }
-  else
-  {
-    std::string error="Invalid property Get for "+name + "\n";
-    DALI_SCRIPT_EXCEPTION( isolate, error );
-  }
-}
-
-void ItemFactoryWrapper::PropertySet( v8::Local<v8::String> propertyName,
-                  v8::Local<v8::Value> javaScriptValue,
-                  const v8::PropertyCallbackInfo<v8::Value>& info)
-{
-
-  v8::Isolate* isolate = info.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  // get the property name
-  std::string name = V8Utils::v8StringToStdString( propertyName );
-
-  // unwrap the object
-  ItemFactoryWrapper* itemFactoryWrapper = Unwrap( isolate, info.This() );
-  if( !itemFactoryWrapper )
-  {
-    return;
-  }
-
-  ItemFactory& factory = static_cast<ItemFactory&>( itemFactoryWrapper->GetItemFactory() );
-
-  if( name == "jsonTemplateFile" && javaScriptValue->IsString() )
-  {
-    std::string jsonTemplateFile = V8Utils::v8StringToStdString( javaScriptValue );
-    factory.SetJsonTemplateFile(jsonTemplateFile);
-  }
-  else if( name == "data" && javaScriptValue->IsArray() )
-  {
-    v8::Local<v8::Array> array = v8::Local<v8::Array>::Cast(javaScriptValue);
-
-    ItemDataContainer data;
-
-    for( unsigned int i = 0; i < array->Length(); ++i )
-    {
-      v8::Local<v8::Value> itemData = array->Get(i);
-
-      if( itemData->IsObject() )
-      {
-        Dali::Property::Map map = V8Utils::GetPropertyMapFromObject( isolate, itemData->ToObject() );
-        data.push_back(map);
-      }
-    }
-
-    factory.SetData(data);
-  }
-  else
-  {
-    std::string error = "Invalid property Set for " + name + "\n";
-    DALI_SCRIPT_EXCEPTION( isolate, error );
-  }
-}
-
-Toolkit::ItemFactory& ItemFactoryWrapper::GetItemFactory()
-{
-  return mItemFactory;
-}
-
-void ItemFactoryWrapper::SetItemView(Toolkit::ItemFactory& itemFactory, Toolkit::ItemView itemView)
-{
-  ItemFactory& factory = static_cast<ItemFactory&>( itemFactory );
-  factory.SetItemView(itemView);
-}
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/controls/item-factory-wrapper.h b/plugins/dali-script-v8/src/controls/item-factory-wrapper.h
deleted file mode 100644 (file)
index 44b9baf..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-#ifndef DALI_V8PLUGIN_ITEM_FACTORY_WRAPPER_H
-#define DALI_V8PLUGIN_ITEM_FACTORY_WRAPPER_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/common/dali-vector.h>
-#include <dali-toolkit/public-api/controls/scrollable/item-view/item-factory.h>
-#include <dali-toolkit/public-api/controls/scrollable/item-view/item-view.h>
-
-// INTERNAL INCLUDES
-#include <shared/base-wrapped-object.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-
-/**
- * Wraps a Dali ItemFactory.
- */
-class ItemFactoryWrapper : public BaseWrappedObject
-{
-
-public:
-
-  /**
-   * Constructor
-   * @param factory DALi ItemFactory
-   * @param gc garbage collection interface
-   */
-  ItemFactoryWrapper( Toolkit::ItemFactory& factory,
-                GarbageCollectorInterface& gc );
-
-  /**
-   * destructor
-   */
-  virtual ~ItemFactoryWrapper();
-
-  /**
-   * @brief Creates a new ItemFactory wrapped inside a Javascript Object.
-   * @note: the item template and data are passed as a parameter e.g. 'template'
-   * @param[in] args v8 function call arguments interpreted
-   */
-  static void NewItemFactory( const v8::FunctionCallbackInfo< v8::Value >& args);
-
-  /**
-   * @brief Wraps an ItemFactory
-   */
-  static v8::Handle<v8::Object> WrapItemFactory(v8::Isolate* isolate, Toolkit::ItemFactory& factory );
-
-  // The ItemFactory ObjectTemplates.
-  static v8::Persistent<v8::ObjectTemplate> mItemFactoryTemplate;
-
-  /**
-   * @brief Helper to get ItemFactory from the JavaScript object held in the given function argument
-   * @param[in] paramIndex Argument index the object is held in
-   * @param[in] found Whether ItemFactory is found in the given function parameter
-   * @param[in] isolate v8 isolated instance
-   * @param[in] args v8 function call arguments interpreted
-   */
-  static Toolkit::ItemFactory& GetItemFactoryFromParams( int paramIndex,
-                                                             bool& found,
-                                                             v8::Isolate* isolate,
-                                                             const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  /**
-   * @brief Helper to store a weak handle of ItemView in the given ItemFactory
-   * @param[in] itemFactory The item factory used to provide items to the given item view
-   * @param[in] itemView The ItemView which uses the given item factory to create items
-   */
-  static void SetItemView(Toolkit::ItemFactory& itemFactory, Toolkit::ItemView itemView);
-
-  /**
-   * @return the wrapped item factory
-   */
-  Toolkit::ItemFactory& GetItemFactory();
-
-private:
-
-  /**
-   * Helper to make the item factory template
-   */
-  static v8::Handle<v8::ObjectTemplate> MakeItemFactoryTemplate( v8::Isolate* isolate );
-
-  /**
-   * Helper, get a item factory template
-   */
-  static v8::Local<v8::ObjectTemplate> GetItemFactoryTemplate( v8::Isolate* isolate );
-
-  /**
-   * @brief get the value for a property for JavaScript object than contains a Dali ItemFactory.
-   * E.g. Get( "data", JavaScript object that wraps a Dali ItemFactory )
-   * @param[in] propertyName property name
-   * @param[in] info reference to PropertyCallbackInfo structure (contains the Javascript
-   * object and the return value).
-   */
-  static void PropertyGet( v8::Local<v8::String> propertyName,
-                              const v8::PropertyCallbackInfo<v8::Value>& info);
-
-  /**
-   * @brief Set the value for a property for JavaScript object than contains a Dali ItemFactory.
-   * E.g. Set( "data", itemData, JavaScript object that wraps a Dali ItemFactory)
-   * @param[in] propertyName property name
-   * @param[in] javaScriptValue javascript value to set, this is typically a number
-   * @param[in] info reference to PropertyCallbackInfo structure (contains the Javascript
-   * object).
-   */
-  static void PropertySet( v8::Local<v8::String> propertyName,
-                              v8::Local<v8::Value> javaScriptValue,
-                              const v8::PropertyCallbackInfo<v8::Value>& info);
-
-
-  /**
-   * @brief Extract a item factory wrapper from a javascript object
-   * @return item factory wrapper
-   */
-  static ItemFactoryWrapper* Unwrap( v8::Isolate* isolate, v8::Handle< v8::Object> obj);
-
-  Toolkit::ItemFactory& mItemFactory;
-
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_ITEM_FACTORY_WRAPPER_H
diff --git a/plugins/dali-script-v8/src/controls/item-view-api.cpp b/plugins/dali-script-v8/src/controls/item-view-api.cpp
deleted file mode 100644 (file)
index 4852a61..0000000
+++ /dev/null
@@ -1,412 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "item-view-api.h"
-
-// EXTERNAL INCLUDES
-#include <fstream>
-#include <dali-toolkit/public-api/controls/scrollable/item-view/item-layout.h>
-#include <dali-toolkit/public-api/controls/scrollable/item-view/item-factory.h>
-#include <dali-toolkit/public-api/controls/scrollable/item-view/default-item-layout.h>
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <actors/actor-wrapper.h>
-#include <controls/control-wrapper.h>
-#include <controls/item-factory-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace  // unanmed namespace
-{
-
-Toolkit::ItemView GetItemView( v8::Isolate* isolate, const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  HandleWrapper* handleWrapper = HandleWrapper::Unwrap( isolate, args.This() );
-  return Toolkit::ItemView::DownCast( handleWrapper->mHandle );
-}
-
-} //unanmed namespace
-
-/***************************************
- * ITEMVIEW API FUNCTIONS
- ***************************************/
-
-/**
- * Constructor
- *
- * @for ItemView
- * @constructor
- * @method ItemView
- * @return {Object} itemView
- */
-Toolkit::Control ItemViewApi::New( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  bool found( false );
-  Toolkit::ItemFactory& factory = ItemFactoryWrapper::GetItemFactoryFromParams( 1, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid ItemFactory parameter" );
-    return Toolkit::Control();
-  }
-  else
-  {
-    Toolkit::ItemView itemView = Toolkit::ItemView::New(factory);
-    ItemFactoryWrapper::SetItemView(factory, itemView);
-    return itemView;
-  }
-}
-
-/**
- * Query the number of layouts.
- *
- * @for ItemView
- * @method getLayoutCount
- * @return {Integer} The number of layouts.
- */
-void ItemViewApi::GetLayoutCount( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Toolkit::ItemView itemView = GetItemView( isolate, args );
-
-  args.GetReturnValue().Set( v8::Integer::New( isolate, itemView.GetLayoutCount() ) );
-}
-
-/**
- * Add a layout
- *
- * @for ItemView
- * @method addLayout
- * @param {Integer} layout The layout to be added
- * @example
- *      // layout is one of the following
- *      dali.ITEM_LAYOUT_LIST
- *      dali.ITEM_LAYOUT_GRID
- *
- *      itemView.addLayout( dali.ITEM_LAYOUT_LIST );
- */
-void ItemViewApi::AddLayout( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Toolkit::ItemView itemView = GetItemView( isolate, args );
-
-  bool found( false );
-  int layout = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 /* default */);
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid layout parameter" );
-    return;
-  }
-
-  Toolkit::ItemLayoutPtr layoutPtr = Toolkit::DefaultItemLayout::New( static_cast<Toolkit::DefaultItemLayout::Type>(layout) );
-  itemView.AddLayout( *layoutPtr );
-}
-
-/**
- * Remove a layout.
- *
- * @for ItemView
- * @method removeLayout
- * @param {Integer} layoutIndex The index of the ItemView layouts which must be less than getLayoutCount().
- */
-void ItemViewApi::RemoveLayout( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Toolkit::ItemView itemView = GetItemView( isolate, args );
-
-  bool found( false );
-  int layoutIndex = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 /* default */);
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid index parameter" );
-    return;
-  }
-
-  itemView.RemoveLayout( layoutIndex );
-}
-
-/**
- * Activate one of the layouts. This will resize the ItemView and relayout actors within the ItemView.
- *
- * @for ItemView
- * @method activateLayout
- * @param {Integer} layoutIndex The index of the ItemView layout which must be less than getLayoutCount().
- * @param {Object} targetSize An array of 3 numbers for the target ItemView and layout size.
- * @param {Float} [durationSeconds] The time taken to relayout in seconds (0 by default for immediate).
- */
-void ItemViewApi::ActivateLayout( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Toolkit::ItemView itemView = GetItemView( isolate, args );
-
-  bool found( false );
-  int layoutIndex = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid layout index parameter" );
-    return;
-  }
-
-  found = false;
-  Vector3 targetSize = V8Utils::GetVector3Parameter( PARAMETER_1, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "Vector3 targetSize size parameter missing" );
-    return;
-  }
-
-  found = false;
-  float durationSeconds = V8Utils::GetFloatParameter( PARAMETER_2, found, isolate, args, 0.0f ); // 0 by default for immediate activation
-
-  itemView.ActivateLayout( layoutIndex, targetSize, durationSeconds );
-}
-
-/**
- * Retrieve the target size of an item in the given layout.
- * This will return the default size for the layout unless overridden by calling setLayoutItemSize().
- *
- * @for ItemView
- * @method getItemSize
- * @param {Integer} layoutIndex The index of the ItemView layout which must be less than getLayoutCount().
- * @param {Integer} itemId The ID of an item in the layout.
- * @param {Object} targetLayoutSize An array of 3 numbers for the target ItemView and layout size.
- * @return {Object} The target size of the item {x, y, z}.
- */
-void ItemViewApi::GetItemSize( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Toolkit::ItemView itemView = GetItemView( isolate, args );
-
-  bool found( false );
-  int layoutIndex = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 /* default */);
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid layout index parameter" );
-    return;
-  }
-
-  found = false;
-  int itemId = V8Utils::GetIntegerParameter( PARAMETER_1, found, isolate, args, 0 /* default */);
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid item ID parameter" );
-    return;
-  }
-
-  found = false;
-  Vector3 targetLayoutSize = V8Utils::GetVector3Parameter( PARAMETER_2, found, isolate, args );
-  if( found )
-  {
-    Toolkit::ItemLayoutPtr layoutPtr = itemView.GetLayout(layoutIndex);
-    Vector3 itemSize;
-    layoutPtr->GetItemSize( itemId, targetLayoutSize, itemSize );
-
-    v8::Local<v8::Object> itemSizeObject = v8::Object::New( isolate );
-
-    itemSizeObject->Set( v8::String::NewFromUtf8( isolate, "x" ), v8::Integer::New( isolate, itemSize.width ) );
-    itemSizeObject->Set( v8::String::NewFromUtf8( isolate, "y" ), v8::Integer::New( isolate, itemSize.height ) );
-    itemSizeObject->Set( v8::String::NewFromUtf8( isolate, "z" ), v8::Integer::New( isolate, itemSize.depth ) );
-
-    args.GetReturnValue().Set( itemSizeObject );
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid Vector3 target size parameter" );
-  }
-}
-
-/**
- * Set the size of the item for the given layout which overrides the default item size for the layout.
- *
- * @for ItemView
- * @method setItemSize
- * @param {Integer} layoutIndex The index of the ItemView layout which must be less than getLayoutCount().
- * @param {Object} itemSize An array of 3 numbers for the size of the item.
- * @example
- *      itemView.setLayoutItemSize( 0, [100.0, 50.0, 0.0] );
- */
-void ItemViewApi::SetItemSize( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Toolkit::ItemView itemView = GetItemView( isolate, args );
-
-  bool found( false );
-  int layoutIndex = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 /* default */);
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid layout index parameter" );
-    return;
-  }
-
-  found = false;
-  Vector3 itemSize = V8Utils::GetVector3Parameter( PARAMETER_1, found, isolate, args );
-  if( found )
-  {
-    Toolkit::ItemLayoutPtr layoutPtr = itemView.GetLayout(layoutIndex);
-    layoutPtr->SetItemSize( itemSize );
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid item size parameter" );
-  }
-}
-
-/**
- * Scroll the current layout to a particular item.
- * If calling this with zero second of duration immediately after calling activateLayout(),
- * it will not work unless the duration of relayout animation for activateLayout is also
- * set to zero.
- *
- * @for ItemView
- * @method scrollToItem
- * @param {Integer} itemId The ID of an item in the layout.
- * @param {Float} [durationSeconds] How long the scrolling takes in seconds (0 by default for instant scrolling to the particular item).
- */
-void ItemViewApi::ScrollToItem( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Toolkit::ItemView itemView = GetItemView( isolate, args );
-
-  bool found( false );
-  int itemId = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 /* default */);
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid item Id parameter" );
-    return;
-  }
-
-  found = false;
-  float durationSeconds = V8Utils::GetFloatParameter( PARAMETER_1, found, isolate, args, 0.0f ); // 0 by default for instant scrolling
-
-  itemView.ScrollToItem( itemId, durationSeconds );
-}
-
-/**
- * Given the Item ID, this returns the accompanying actor.
- *
- * @for ItemView
- * @method getItem
- * @param {Integer} itemId The Item ID of the actor required.
- * @return {Object} The Actor corresponding to the Item ID.
- */
-void ItemViewApi::GetItem( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Toolkit::ItemView itemView = GetItemView( isolate, args );
-
-  bool found( false );
-  int itemId = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 /* default */);
-  if( found )
-  {
-    found = false;
-    Actor actor = itemView.GetItem( itemId );
-    if( actor )
-    {
-      found = true;
-      // wrap the actor
-      v8::Handle < v8::Object > wrappedActor = ActorWrapper::WrapActor( isolate, actor );
-      args.GetReturnValue().Set( wrappedActor );
-    }
-  }
-
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid item ID" );
-    return;
-  }
-}
-
-/**
- * Returns the Item ID of the specified actor. The actor must be an item of ItemView.
- *
- * @for ItemView
- * @method getItemId
- * @param {Object} actor The actor whose Item ID is required.
- * @return {Integer} The Item ID of the item.
- */
-void ItemViewApi::GetItemId( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Toolkit::ItemView itemView = GetItemView( isolate, args );
-
-  bool found( false );
-  Actor actor = V8Utils::GetActorParameter( 0, found, isolate, args );
-  if( found )
-  {
-    args.GetReturnValue().Set( itemView.GetItemId(actor) );
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid item actor parameter" );
-    return;
-  }
-}
-
-/**
- * Get the range of items that are currently in ItemView.
- *
- * @for ItemView
- * @method getItemsRange
- * @return {Object} The range of items in the item ID {begin, end}.
- */
-void ItemViewApi::GetItemsRange( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Toolkit::ItemView itemView = GetItemView( isolate, args );
-
-  Toolkit::ItemRange range(0, 0);
-  itemView.GetItemsRange(range);
-
-  v8::Local<v8::Object> itemRangeObject = v8::Object::New( isolate );
-
-  itemRangeObject->Set( v8::String::NewFromUtf8( isolate, "begin" ), v8::Integer::New( isolate, range.begin ) );
-  itemRangeObject->Set( v8::String::NewFromUtf8( isolate, "end" ), v8::Integer::New( isolate, range.end ) );
-
-  args.GetReturnValue().Set( itemRangeObject );
-}
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/controls/item-view-api.h b/plugins/dali-script-v8/src/controls/item-view-api.h
deleted file mode 100644 (file)
index a3349fa..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-#ifndef DALI_V8PLUGIN_ITEM_VIEW_API_H
-#define DALI_V8PLUGIN_ITEM_VIEW_API_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali-toolkit/public-api/controls/scrollable/item-view/item-view.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace ItemViewApi
-{
-
-  /**
-   * constructor
-   */
-  Toolkit::Control New( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  /**
-   * ItemView API. See item-view.h for description of functions
-   */
-  void GetLayoutCount( const v8::FunctionCallbackInfo< v8::Value >& args);
-  void AddLayout( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void RemoveLayout( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void ActivateLayout( const v8::FunctionCallbackInfo< v8::Value >& args);
-  void GetItemSize( const v8::FunctionCallbackInfo< v8::Value >& args);
-  void SetItemSize( const v8::FunctionCallbackInfo< v8::Value >& args);
-  void ScrollToItem( const v8::FunctionCallbackInfo< v8::Value >& args);
-  void GetItem( const v8::FunctionCallbackInfo< v8::Value >& args);
-  void GetItemId( const v8::FunctionCallbackInfo< v8::Value >& args);
-  void GetItemsRange( const v8::FunctionCallbackInfo< v8::Value >& args);
-
-}; // namespace ItemViewApi
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_ITEM_VIEW_API_H
diff --git a/plugins/dali-script-v8/src/controls/scroll-view-api.cpp b/plugins/dali-script-v8/src/controls/scroll-view-api.cpp
deleted file mode 100644 (file)
index 969fbf7..0000000
+++ /dev/null
@@ -1,477 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "scroll-view-api.h"
-
-// EXTERNAL INCLUDES
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <actors/actor-wrapper.h>
-#include <controls/control-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace  // unanmed namespace
-{
-
-Toolkit::ScrollView GetScrollView( v8::Isolate* isolate, const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  HandleWrapper* handleWrapper = HandleWrapper::Unwrap( isolate, args.This() );
-  return Toolkit::ScrollView::DownCast( handleWrapper->mHandle );
-}
-
-} //unanmed namespace
-
-/***************************************
- * SCROLLVIEW API FUNCTIONS
- ***************************************/
-
-/**
- * Constructor
- *
- * @for ScrollView
- * @constructor
- * @method ScrollView
- * @return {Object} scrollView
- */
-Toolkit::Control ScrollViewApi::New( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Toolkit::ScrollView scrollView = Toolkit::ScrollView::New();
-  return scrollView;
-}
-
-/**
- * Set the scroll mode of ScrollView.
- *
- * This defines whether scrolling is enabled horizontally or vertically, how
- * scrolling is snapped, and the boundary in which the scroll view can pan.
- *
- * When no specific scroll mode is set, scroll view can scroll to any position
- * both horizontally and vertically and no snapping is enabled.
- *
- * Example of setting the scroll boundary of scroll view in the X axis to
- * three pages (page size equals to the width of scroll view) and allowing
- * snapping between pages, and disabling scrolling in the Y axis.
- *
- * ```
- *  var scrollMode = {
- *                     xAxisScrollEnabled  : true,
- *                     xAxisSnapToInterval : scrollView.sizeWidth,
- *                     xAxisScrollBoundary : scrollView.sizeWidth * 3,
- *                     yAxisScrollEnabled  : false
- *                   }
- *
- *  scrollView.setScrollMode(scrollMode);
- * ```
- *
- * @for ScrollView
- * @method setScrollMode
- * @param {Object} scrollMode
- * @param {Boolean} scrollMode.xAxisScrollEnabled True if the content can be scrolled in X axis or false if not.
- * @param {Float} [scrollMode.xAxisSnapToInterval] When set, causes scroll view to snap to multiples of the value of the interval in the X axis while flicking. (by default no snapping)
- * @param {Float} [scrollMode.xAxisScrollBoundary] When set, causes scroll view unable to scroll beyond the value of the boundary in the X axis (by default no boundary)
- * @param {Boolean} scrollMode.yAxisScrollEnabled True if the content can be scrolled in Y axis or false if not.
- * @param {Float} [scrollMode.yAxisSnapToInterval] When set, causes scroll view to snap to multiples of the value of the interval in the Y axis while flicking. (by default no snapping)
- * @param {Float} [scrollMode.yAxisScrollBoundary] When set, causes scroll view unable to scroll beyond the value of the boundary in the Y axis (by default no boundary)
- */
-void ScrollViewApi::SetScrollMode( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Toolkit::ScrollView scrollView = GetScrollView( isolate, args );
-
-  v8::Local<v8::Value> scrollMode( args[0] );
-  if( !scrollMode->IsObject() )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid scroll mode parameter" );
-    return;
-  }
-
-  v8::Local<v8::Object> scrollModeObj = scrollMode->ToObject();
-
-  Toolkit::RulerPtr rulerX, rulerY;
-
-  // Check the scroll mode in the X axis
-  bool xAxisScrollEnabled = true;
-  v8::Local<v8::Value> xAxisScrollEnabledValue= scrollModeObj->Get( v8::String::NewFromUtf8( isolate, "xAxisScrollEnabled" ) );
-  if( xAxisScrollEnabledValue->IsBoolean() )
-  {
-    xAxisScrollEnabled = xAxisScrollEnabledValue->ToBoolean()->Value();
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "Missing xAxisScrollEnabled");
-    return;
-  }
-
-  if(!xAxisScrollEnabled)
-  {
-    // Default ruler and disabled
-    rulerX = new Toolkit::DefaultRuler();
-    rulerX->Disable();
-  }
-  else
-  {
-    v8::Local<v8::Value> xAxisSnapToIntervalValue= scrollModeObj->Get( v8::String::NewFromUtf8( isolate, "xAxisSnapToInterval" ) );
-    if( xAxisSnapToIntervalValue->IsNumber() )
-    {
-      // Fixed ruler and enabled
-      float xAxisSnapToInterval = xAxisSnapToIntervalValue->ToNumber()->Value();
-      rulerX = new Toolkit::FixedRuler(xAxisSnapToInterval);
-    }
-    else
-    {
-      // Default ruler and enabled
-      rulerX = new Toolkit::DefaultRuler();
-    }
-
-    v8::Local<v8::Value> xAxisScrollBoundaryValue= scrollModeObj->Get( v8::String::NewFromUtf8( isolate, "xAxisScrollBoundary" ) );
-    if( xAxisScrollBoundaryValue->IsNumber() )
-    {
-      // By default ruler domain is disabled unless set
-      float xAxisScrollBoundary = xAxisScrollBoundaryValue->ToNumber()->Value();
-      rulerX->SetDomain( Toolkit::RulerDomain( 0, xAxisScrollBoundary, true ) );
-    }
-  }
-
-  // Check the scroll mode in the Y axis
-  bool yAxisScrollEnabled = true;
-  v8::Local<v8::Value> yAxisScrollEnabledValue= scrollModeObj->Get( v8::String::NewFromUtf8( isolate, "yAxisScrollEnabled" ) );
-  if( yAxisScrollEnabledValue->IsBoolean() )
-  {
-    yAxisScrollEnabled = yAxisScrollEnabledValue->ToBoolean()->Value();
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "Missing yAxisScrollEnabled");
-    return;
-  }
-
-  if(!yAxisScrollEnabled)
-  {
-    // Default ruler and disabled
-    rulerY = new Toolkit::DefaultRuler();
-    rulerY->Disable();
-  }
-  else
-  {
-    v8::Local<v8::Value> yAxisSnapToIntervalValue= scrollModeObj->Get( v8::String::NewFromUtf8( isolate, "yAxisSnapToInterval" ) );
-    if( yAxisSnapToIntervalValue->IsNumber() )
-    {
-      // Fixed ruler and enabled
-      float yAxisSnapToInterval = yAxisSnapToIntervalValue->ToNumber()->Value();
-      rulerY = new Toolkit::FixedRuler(yAxisSnapToInterval);
-    }
-    else
-    {
-      // Default ruler and enabled
-      rulerY = new Toolkit::DefaultRuler();
-    }
-
-    v8::Local<v8::Value> yAxisScrollBoundaryValue= scrollModeObj->Get( v8::String::NewFromUtf8( isolate, "yAxisScrollBoundary" ) );
-    if( yAxisScrollBoundaryValue->IsNumber() )
-    {
-      // By default ruler domain is disabled unless set
-      float yAxisScrollBoundary = yAxisScrollBoundaryValue->ToNumber()->Value();
-      rulerY->SetDomain( Toolkit::RulerDomain( 0, yAxisScrollBoundary, true ) );
-    }
-  }
-
-  scrollView.SetRulerX(rulerX);
-  scrollView.SetRulerY(rulerY);
-}
-
-/**
- * Retrieves current scroll page based on the defined snap interval being the
- * size of one page, and all pages laid out in a grid fashion, increasing from
- * left to right until the end of the scroll boundary. Pages start from 0 as the
- * first page.
- *
- * If no snap interval is defined, this API will return undefined value.
- *
- * @for ScrollView
- * @method getCurrentPage
- * @return {Integer} The index of current page in scroll view
- */
-void ScrollViewApi::GetCurrentPage( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Toolkit::ScrollView scrollView = GetScrollView( isolate, args );
-  args.GetReturnValue().Set( v8::Integer::New( isolate, scrollView.GetCurrentPage() ) );
-}
-
-/**
- * Scrolls the contents to the given position.
- *
- * Position 0,0 is the origin. Increasing X scrolls contents left, while
- * increasing Y scrolls contents up. If Rulers have been applied to the axes,
- * then the contents will scroll until reaching the scroll boundary.
- * Contents will not snap.
- *
- * The biasing parameters are provided such that in scenarios with 2 or 2x2 pages
- * in wrap mode, the application developer can decide whether to scroll left or
- * right to get to the target page.
- *
- * @for ScrollView
- * @method scrollToPosition
- * @param {Array} position The position to scroll to.
- * @param {Float} [durationSeconds] The duration of the scroll animation in seconds (default value is scrollView.scrollSnapDuration)
- * @param {Integer} [alphaFunction] The alpha function to use.
- * @param {Integer} [horizontalBias] Whether to bias scrolling to left or right (by default no bias).
- * @param {Integer} [verticalBias] Whether to bias scrolling to top or bottom (by default no bias).
- * @example
- *      // scroll direction bias is one of the following
- *      dali.DIRECTION_BIAS_NONE           // Don't bias scroll snap
- *      dali.DIRECTION_BIAS_LEFT           // Bias scroll snap to Left
- *      dali.DIRECTION_BIAS_RIGHT          // Bias scroll snap to Right
- *
- *      scrollView.scrollToPosition( [150.0, 100.0], 0.5, dali.ALPHA_FUNCTION_EASE_IN_OUT, dali.DIRECTION_BIAS_LEFT, dali.DIRECTION_BIAS_NONE );
- */
-void ScrollViewApi::ScrollToPosition( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Toolkit::ScrollView scrollView = GetScrollView( isolate, args );
-
-  bool found( false );
-  Vector2 position = V8Utils::GetVector2Parameter( PARAMETER_0, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad position parameter" );
-    return;
-  }
-
-  float durationSeconds = V8Utils::GetFloatParameter( PARAMETER_1, found, isolate, args, scrollView.GetScrollSnapDuration() );
-
-  AlphaFunction alphaFunction = scrollView.GetScrollSnapAlphaFunction();
-
-  found = false;
-  int alpha = V8Utils::GetIntegerParameter( PARAMETER_2, found, isolate,  args, 0 );
-  if(found)
-  {
-    alphaFunction = static_cast<AlphaFunction::BuiltinFunction>(alpha);
-  }
-
-  Toolkit::DirectionBias horizontalBias = static_cast<Toolkit::DirectionBias>( V8Utils::GetIntegerParameter( PARAMETER_3, found, isolate, args, Toolkit::DirectionBiasNone ) );
-  Toolkit::DirectionBias verticalBias = static_cast<Toolkit::DirectionBias>( V8Utils::GetIntegerParameter( PARAMETER_4, found, isolate, args, Toolkit::DirectionBiasNone ) );
-
-  scrollView.ScrollTo( position, durationSeconds, alphaFunction, horizontalBias, verticalBias );
-}
-
-/**
- * Scrolls the contents to the page with the given index.
- *
- * This is based on assumption that the page index starts from 0 and the
- * position of each page is: [pageIndex * snapToInterval, 0].
- *
- * If no snap interval is defined, calling this API will cause unexpected
- * behaviour.
- *
- * The biasing parameter is provided such that in scenarios with 2 pages
- * in wrap mode, the application developer can decide whether to scroll
- * left or right to get to the target page.
- *
- * @for ScrollView
- * @method scrollToPage
- * @param {Integer} pageIndex The index of the page to scroll to.
- * @param {Float} [durationSeconds] The duration of the scroll animation in seconds (default value is scrollView.scrollSnapDuration)
- * @param {Integer} [bias] Whether to bias scrolling to left or right (by default no bias).
- * @example
- *      // scroll direction bias is one of the following
- *      dali.DIRECTION_BIAS_NONE           // Don't bias scroll snap
- *      dali.DIRECTION_BIAS_LEFT           // Bias scroll snap to Left
- *      dali.DIRECTION_BIAS_RIGHT          // Bias scroll snap to Right
- *
- *      scrollView.scrollToPage( 1, 0.5, dali.DIRECTION_BIAS_RIGHT );
- */
-void ScrollViewApi::ScrollToPage( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Toolkit::ScrollView scrollView = GetScrollView( isolate, args );
-
-  bool found( false );
-  int pageIndex = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad page index parameter" );
-    return;
-  }
-
-  float durationSeconds = V8Utils::GetFloatParameter( PARAMETER_1, found, isolate, args, scrollView.GetScrollSnapDuration() );
-  Toolkit::DirectionBias bias = static_cast<Toolkit::DirectionBias>( V8Utils::GetIntegerParameter( PARAMETER_2, found, isolate, args, Toolkit::DirectionBiasNone ) );
-
-  scrollView.ScrollTo( pageIndex, durationSeconds, bias );
-}
-
-/**
- * Scrolls the contents such that the given actor appears in the center of
- * the scroll view.
- *
- * The actor must be a direct child of scroll view.
- *
- * @for ScrollView
- * @method scrollToActor
- * @param {Object} actor The actor to scroll to.
- * @param {Float} [durationSeconds] The duration of the scroll animation in seconds (default value is scrollView.scrollSnapDuration)
- * @example
- *      scrollView.scrollToActor( childActor, 0.5 );
- */
-void ScrollViewApi::ScrollToActor( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Toolkit::ScrollView scrollView = GetScrollView( isolate, args );
-
-  bool found( false );
-  Actor actor = V8Utils::GetActorParameter( 0, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid actor parameter" );
-    return;
-  }
-
-  float durationSeconds = V8Utils::GetFloatParameter( PARAMETER_1, found, isolate, args, scrollView.GetScrollSnapDuration() );
-
-  scrollView.ScrollTo( actor, durationSeconds );
-}
-
-/**
- * Scrolls the content to the nearest snap point as specified by the snap interval.
- * If already at snap points, it will not scroll.
- *
- * @for ScrollView
- * @method scrollToSnapInterval
- * @return {Boolean} True if snapping is needed or false if already at snap points
- * @example
- *      var success = scrollView.scrollToSnapInterval();
- */
-void ScrollViewApi::ScrollToSnapInterval( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Toolkit::ScrollView scrollView = GetScrollView( isolate, args );
-
-  args.GetReturnValue().Set( v8::Boolean::New( isolate, scrollView.ScrollToSnapPoint() ) );
-}
-
-/**
- * Set the alpha function of flick animation.
- *
- * @for ScrollView
- * @method setScrollFlickAlphaFunction
- * @param {Integer} alphaFunction The alpha function to use.
- * @example
- *      scrollView.setScrollFlickAlphaFunction( dali.ALPHA_FUNCTION_EASE_IN_OUT );
- */
-void ScrollViewApi::SetScrollFlickAlphaFunction( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Toolkit::ScrollView scrollView = GetScrollView( isolate, args );
-
-  bool found( false );
-  int alphaFunction = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate,  args, 0 );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid alpha function parameter" );
-    return;
-  }
-  else
-  {
-    scrollView.SetScrollFlickAlphaFunction( static_cast<AlphaFunction::BuiltinFunction>(alphaFunction) );
-  }
-}
-
-/**
- * Set the alpha function of snap animation.
- *
- * @for ScrollView
- * @method setScrollSnapAlphaFunction
- * @param {String} alphaFunction The alpha function to use.
- * @example
- *      scrollView.setScrollSnapAlphaFunction( dali.ALPHA_FUNCTION_EASE_IN_OUT );
- */
-void ScrollViewApi::SetScrollSnapAlphaFunction( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Toolkit::ScrollView scrollView = GetScrollView( isolate, args );
-
-  bool found( false );
-  int alphaFunction = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate,  args, 0 );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid alpha function parameter" );
-    return;
-  }
-  else
-  {
-    scrollView.SetScrollSnapAlphaFunction( static_cast<AlphaFunction::BuiltinFunction>(alphaFunction) );
-  }
-}
-
-/**
- * Set the alpha function of overshoot snap animation.
- *
- * @for ScrollView
- * @method setSnapOvershootAlphaFunction
- * @param {String} alphaFunction The alpha function to use.
- * @example
- *      scrollView.setSnapOvershootAlphaFunction( dali.ALPHA_FUNCTION_EASE_IN_OUT );
- */
-void ScrollViewApi::SetSnapOvershootAlphaFunction( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Toolkit::ScrollView scrollView = GetScrollView( isolate, args );
-
-  bool found( false );
-  int alphaFunction = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate,  args, 0 );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid alpha function parameter" );
-    return;
-  }
-  else
-  {
-    scrollView.SetSnapOvershootAlphaFunction( static_cast<AlphaFunction::BuiltinFunction>(alphaFunction) );
-  }
-}
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/controls/scroll-view-api.h b/plugins/dali-script-v8/src/controls/scroll-view-api.h
deleted file mode 100644 (file)
index c3e0e50..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef DALI_V8PLUGIN_SCROLL_VIEW_API_H
-#define DALI_V8PLUGIN_SCROLL_VIEW_API_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali-toolkit/public-api/controls/scrollable/scroll-view/scroll-view.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace ScrollViewApi
-{
-
-  /**
-   * constructor
-   */
-  Toolkit::Control New( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  /**
-   * ScrollView API. See scroll-view.h for description of functions
-   */
-  void SetScrollMode( const v8::FunctionCallbackInfo< v8::Value >& args);
-  void GetCurrentPage( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void ScrollToPosition( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void ScrollToPage( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void ScrollToActor( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void ScrollToSnapInterval( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void SetScrollFlickAlphaFunction( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void SetScrollSnapAlphaFunction( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void SetSnapOvershootAlphaFunction( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-}; // namespace ScrollViewApi
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_SCROLL_VIEW_API_H
diff --git a/plugins/dali-script-v8/src/dali-script-v8.cpp b/plugins/dali-script-v8/src/dali-script-v8.cpp
deleted file mode 100644 (file)
index b93b605..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (c) 2018 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-script-v8.h"
-
-// EXTERNAL INCLUDES
-#include <iostream>
-#include <fstream>
-#include <dali/integration-api/debug.h>
-
-// INTERNAL INCLUDES
-#include <dali-script-v8.h>
-#include <dali-wrapper.h>
-#include <utils/v8-utils.h>
-
-// The plugin factories
-extern "C" DALI_TOOLKIT_API Dali::Toolkit::ScriptPlugin* CreateScriptPlugin(void)
-{
-  return new Dali::V8Plugin::DaliScriptV8;
-}
-
-extern "C" DALI_TOOLKIT_API void DestroyScriptPlugin(Dali::Toolkit::ScriptPlugin* plugin)
-{
-  delete plugin;
-}
-
-namespace Dali
-{
-namespace V8Plugin
-{
-
-DaliScriptV8::DaliScriptV8()
-{
-}
-
-DaliScriptV8::~DaliScriptV8()
-{
-  DaliWrapper::Get().Shutdown();
-}
-
-void DaliScriptV8::SetFlags(const std::string& s)
-{
-  DaliWrapper::Get().SetFlagsFromString(s);
-}
-
-bool DaliScriptV8::ExecuteBuffer(const std::string& buffer, const std::string& filename)
-{
-  return DaliWrapper::Get().ExecuteBuffer(buffer, filename);
-}
-
-bool DaliScriptV8::ExecuteFile(const std::string& filename)
-{
-  return DaliWrapper::Get().ExecuteFile( filename );
-}
-
-}  // namespace V8Plugin
-
-}  // namespace Dali
-
diff --git a/plugins/dali-script-v8/src/dali-script-v8.h b/plugins/dali-script-v8/src/dali-script-v8.h
deleted file mode 100644 (file)
index 1a9d773..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-#ifndef DALI_V8PLUGIN_SCRIPT_H
-#define DALI_V8PLUGIN_SCRIPT_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <dali-toolkit/devel-api/scripting/script-plugin.h>
-#include <dali-toolkit/public-api/dali-toolkit-common.h>
-
-namespace Dali DALI_TOOLKIT_API
-{
-
-namespace V8Plugin
-{
-
-/**
- * Executes JavaScript V8 scripts
- */
-class  DaliScriptV8 : public Dali::Toolkit::ScriptPlugin
-{
-public: // Construction & Destruction
-
-  /**
-   * Constructor
-   */
-  DaliScriptV8();
-
-  /**
-   * Destructor
-   */
-  virtual ~DaliScriptV8();
-
-public: // ScriptV8Plugin overrides
-
-  /**
-   * @copydoc Dali::Toolkit::ScriptPlugin::SetFlags()
-   */
-  virtual void SetFlags(const std::string& s);
-
-  /**
-   * @copydoc Dali::Toolkit::ScriptPlugin::ExecuteBuffer()
-   */
-  virtual bool ExecuteBuffer(const std::string& buffer, const std::string& filename);
-
-  /**
-   * @copydoc Dali::Toolkit::ScriptPlugin::ExecuteFile()
-   */
-  virtual bool ExecuteFile(const std::string& fileName);
-};
-
-}  // namespace V8Plugin
-
-}  // namespace Dali
-
-#endif // DALI_V8PLUGIN_SCRIPT_H
diff --git a/plugins/dali-script-v8/src/dali-wrapper.cpp b/plugins/dali-script-v8/src/dali-wrapper.cpp
deleted file mode 100644 (file)
index ef9d285..0000000
+++ /dev/null
@@ -1,319 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "dali-wrapper.h"
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <object/property-value-wrapper.h>
-#include <dali/integration-api/debug.h>
-#include <actors/actor-wrapper.h>
-#include <controls/control-wrapper.h>
-#include <stage/stage-wrapper.h>
-#include <image/image-wrapper.h>
-#include <animation/linear-constrainer-wrapper.h>
-#include <animation/path-constrainer-wrapper.h>
-#include <animation/path-wrapper.h>
-#include <animation/animation-wrapper.h>
-#include <controls/item-factory-wrapper.h>
-#include <events/pan-gesture-detector-wrapper.h>
-#include <object/property-buffer-wrapper.h>
-#include <rendering/geometry-wrapper.h>
-#include <rendering/texture-set-wrapper.h>
-#include <rendering/renderer-wrapper.h>
-#include <rendering/shader-wrapper.h>
-#include <rendering/sampler-wrapper.h>
-#include <shared/object-template-helper.h>
-#include <constants/constants-wrapper.h>
-#include <toolkit/builder/builder-wrapper.h>
-#include <toolkit/focus-manager/keyboard-focus-manager-wrapper.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace
-{
-/**
- * This string defines how the global DALi object/namespace is used from JavaScript
- * E.g. new dali.Image or dali.stage.add( )
- */
-const char* const DALI_API_NAME = "dali";
-
-/**
- * lookup table for setting up function calls for creating Dali objects
- * e.g.  new dali.TextActor()
- */
-const ApiFunction ConstructorFunctionTable[]=
-{
-    { "Rotation",           PropertyValueWrapper::NewRotation},
-    { "Matrix",             PropertyValueWrapper::NewMatrix},
-    { "Path",               PathWrapper::NewPath },
-    { "PathConstrainer",    PathConstrainerWrapper::NewPathConstrainer},
-    { "LinearConstrainer",  LinearConstrainerWrapper::NewLinearConstrainer},
-    { "Actor",              ActorWrapper::NewActor },
-    { "CameraActor",        ActorWrapper::NewActor },
-    { "Layer",              ActorWrapper::NewActor },
-    { "Control",            ControlWrapper::NewControl },
-    { "ResourceImage",      ImageWrapper::NewImage },
-    { "BufferImage",        ImageWrapper::NewImage },
-    { "FrameBufferImage",   ImageWrapper::NewImage },
-    { "Animation",          AnimationWrapper::NewAnimation},
-    { "ItemFactory",        ItemFactoryWrapper::NewItemFactory},
-    { "Shader",             ShaderWrapper::NewShader},
-    { "Sampler",            SamplerWrapper::NewSampler},
-    { "TextureSet",         TextureSetWrapper::NewTextureSet},
-    { "Geometry",           GeometryWrapper::NewGeometry},
-    { "Renderer",           RendererWrapper::NewRenderer},
-    { "PropertyBuffer",     PropertyBufferWrapper::NewPropertyBuffer},
-    { "Builder",            BuilderWrapper::NewBuilder},
-    { "PanGestureDetector", PanGestureDetectorWrapper::NewPanGestureDetector},
-
-};
-
-const unsigned int PropertyFunctionTableCount = sizeof(ConstructorFunctionTable)/sizeof(ConstructorFunctionTable[0]);
-
-void FatalErrorCallback(const char* location, const char* message)
-{
-  DALI_LOG_ERROR("%s, %s \n",location,message);
-  DALI_ASSERT_ALWAYS( 0 && "V8 fatal error");
-}
-
-#if defined(DEBUG_ENABLED)
-// default to verbose logging
-Integration::Log::Filter* gLogExecuteFilter( Integration::Log::Filter::New(Debug::Verbose, false, "EXECUTE_JAVASCRIPT") );
-#endif
-} // un-named name space
-
-
-
-bool DaliWrapper::mInstanceCreated = false;
-DaliWrapper* DaliWrapper::mWrapper = NULL;
-
-DaliWrapper::DaliWrapper( RunMode runMode, v8::Isolate* isolate )
-:mIsolate( isolate ),
- mRunMode(runMode)
-{
-}
-
-DaliWrapper::~DaliWrapper()
-{
-  mInstanceCreated = false;
-}
-
-DaliWrapper& DaliWrapper::Get()
-{
-  if( !mInstanceCreated )
-  {
-    mWrapper = new DaliWrapper( RUNNING_STANDALONE, NULL );
-
-    mInstanceCreated = true;
-
-    mWrapper->InitializeStandAlone();
-
-  }
-  return *mWrapper;
-}
-
-v8::Local<v8::Object> DaliWrapper::CreateWrapperForNodeJS( v8::Isolate* isolate )
-{
-  v8::EscapableHandleScope handleScope( isolate);
-
-  mInstanceCreated = true;
-
-  mWrapper = new DaliWrapper( RUNNING_IN_NODE_JS, isolate );
-
-  v8::Local<v8::Object> dali = mWrapper->CreateDaliObject();
-
-  // As we running inside node, we already have an isolate and context
-  return handleScope.Escape( dali );
-}
-
-v8::Local<v8::Object>  DaliWrapper::CreateDaliObject()
-{
-  v8::EscapableHandleScope handleScope( mIsolate  );
-
-  // Create dali object used for creating objects, and accessing constant values
-  // e.g. var x =  new dali.Actor(), or var col = dali.COLOR_RED;
-
-  v8::Local<v8::ObjectTemplate> daliObjectTemplate = NewDaliObjectTemplate( mIsolate );
-
-  // add dali.staqe
-  v8::Local<v8::Object> stageObject = StageWrapper::WrapStage( mIsolate, Stage::GetCurrent() );
-  daliObjectTemplate->Set( v8::String::NewFromUtf8( mIsolate, "stage") , stageObject );
-
-  v8::Local<v8::Object> keyboardObject = KeyboardFocusManagerWrapper::WrapKeyboardFocusManager( mIsolate,Toolkit::KeyboardFocusManager::Get() );
-  daliObjectTemplate->Set( v8::String::NewFromUtf8( mIsolate, "keyboardFocusManager") , keyboardObject );
-
-
-  //create an instance of the template
-  v8::Local<v8::Object> daliObject = daliObjectTemplate->NewInstance();
-
-  ConstantsWrapper::AddDaliConstants( mIsolate, daliObject);
-
-  daliObject->Set( v8::String::NewFromUtf8( mIsolate,  "V8_VERSION") ,v8::String::NewFromUtf8( mIsolate, v8::V8::GetVersion() ));
-
-  return handleScope.Escape( daliObject  );
-}
-
-
-void DaliWrapper::SetFlagsFromString(const std::string &flags)
-{
-  v8::V8::SetFlagsFromString(flags.c_str(), flags.size());
-}
-
-void DaliWrapper::Shutdown()
-{
-  // if we're running inside node then we don't have ownership of the context
-  if( mRunMode == RUNNING_IN_NODE_JS )
-  {
-    return;
-  }
-
-  DALI_LOG_WARNING("Destroying V8 DALi context\n");
-
-  if( !mContext.IsEmpty())
-  {
-    v8::HandleScope handleScope( mIsolate );
-    v8::Local<v8::Context> context = v8::Local<v8::Context>::New(mIsolate, mContext);
-    context->Exit();   // exit the context
-    mContext.Reset();  // destroys the context
-  }
-}
-
-bool DaliWrapper::ExecuteBuffer(const std::string &sourceCode, const std::string &sourceFileName)
-{
-  return mModuleLoader.ExecuteScript( mIsolate,  sourceCode, sourceFileName );
-}
-
-bool DaliWrapper::ExecuteFile( const std::string& sourceFileName )
-{
-  DALI_LOG_INFO( gLogExecuteFilter, Debug::Verbose, "Executing source file %s \n",sourceFileName.c_str() );
-
-  return mModuleLoader.ExecuteScriptFromFile( mIsolate,  sourceFileName );
-}
-
-GarbageCollectorInterface& DaliWrapper::GetDaliGarbageCollector()
-{
-  return mGarbageCollector;
-}
-
-void DaliWrapper::ApplyGlobalObjectsToContext( v8::Local<v8::Context> context )
-{
-  v8::HandleScope handleScope( mIsolate );
-
-  // Add global objects ( functions/ values ) e.g. log function
-  // create a console.log and console.error functions
-  v8::Local<v8::ObjectTemplate> consoleObjectTemplate = v8::ObjectTemplate::New( mIsolate );
-  consoleObjectTemplate->Set( v8::String::NewFromUtf8( mIsolate, "log"),   v8::FunctionTemplate::New( mIsolate, V8Utils::Log));
-  consoleObjectTemplate->Set( v8::String::NewFromUtf8( mIsolate, "error"), v8::FunctionTemplate::New( mIsolate, V8Utils::LogError));
-
-  context->Global()->Set( v8::String::NewFromUtf8( mIsolate, "console"), consoleObjectTemplate->NewInstance() );
-
-  // add require functionality
-  context->Global()->Set( v8::String::NewFromUtf8( mIsolate, "require"), v8::FunctionTemplate::New( mIsolate, DaliWrapper::Require)->GetFunction());
-
-  // Create the Dali object
-  // @todo consider forcing developers to perform require('dali') if we want to avoid polluting the global namespace
-  v8::Local<v8::Object> daliObject = CreateDaliObject();
-
-  // allow developers to require('dali'); // this is to maintain compatibility with node.js where dali is not part of the global namespace
-  mModuleLoader.StorePreBuiltModule( mIsolate, daliObject, DALI_API_NAME );
-
-  context->Global()->Set( v8::String::NewFromUtf8( mIsolate, DALI_API_NAME),daliObject );
-
-}
-
-void DaliWrapper::InitializeStandAlone()
-{
-  if( !mIsolate )
-  {
-    v8::V8::InitializeICU();
-
-    v8::V8::Initialize();
-
-    // default isolate removed from V8 version 3.27.1 and beyond.
-    mIsolate = v8::Isolate::New();
-
-    mIsolate->Enter();
-
-    v8::V8::SetFatalErrorHandler( FatalErrorCallback );
-  }
-
-  // if context is null, create it and add dali object to the global object.
-  if( mContext.IsEmpty())
-  {
-     v8::HandleScope handleScope( mIsolate );
-
-     // create a new context.
-     // Isolate = isolated copy of the V8 including a heap manager, a garbage collector
-     // Only 1 thread can access a single Isolate at a given time. However, multiple Isolates can be run in parallel.
-     // Context = multiple contexts can exist in a given Isolate, and share data between contexts
-     v8::Local<v8::Context> context  = v8::Context::New( mIsolate );
-
-     context->Enter();
-
-     // Apply global objects like dali and console to the context
-     ApplyGlobalObjectsToContext(context);
-
-     mContext.Reset( mIsolate, context);
-  }
-
-  DALI_LOG_INFO( gLogExecuteFilter, Debug::Verbose, "V8 Library %s loaded \n", v8::V8::GetVersion() );
-}
-
-
-v8::Handle<v8::ObjectTemplate> DaliWrapper::NewDaliObjectTemplate( v8::Isolate* isolate )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  // create the template
-  v8::Local< v8::ObjectTemplate > objTemplate = v8::ObjectTemplate::New( isolate );
-
-  // Add some value properties ( a property can be a primitive value, an object or a function).
-  objTemplate->Set( v8::String::NewFromUtf8( isolate, "BUILD"),
-                    v8::String::NewFromUtf8( isolate, "Dali binary built on:" __DATE__ ", at " __TIME__));
-
-#ifdef DALI_DATA_READ_ONLY_DIR
-  // add the data data directory,
-  objTemplate->Set( v8::String::NewFromUtf8( isolate, "DALI_DATA_DIRECTORY"),
-                    v8::String::NewFromUtf8( isolate, DALI_DATA_READ_ONLY_DIR));
-#endif
-  // add our constructor functions
-  ObjectTemplateHelper::InstallFunctions( isolate,
-                                          objTemplate,
-                                          ConstructorFunctionTable,
-                                          PropertyFunctionTableCount,
-                                          ObjectTemplateHelper::CONSTRUCTOR_FUNCTIONS);
-
-  return handleScope.Escape( objTemplate );
-}
-
-void DaliWrapper::Require(const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  DaliWrapper& wrapper( DaliWrapper::Get() );
-  wrapper.mModuleLoader.Require( args );
-}
-
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/dali-wrapper.h b/plugins/dali-script-v8/src/dali-wrapper.h
deleted file mode 100644 (file)
index e3e5e91..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-#ifndef DALI_V8PLUGIN_DALI_WRAP_H
-#define DALI_V8PLUGIN_DALI_WRAP_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-
-// INTERNAL INCLUDES
-#include <dali-toolkit/public-api/dali-toolkit-common.h>
-#include <garbage-collector/garbage-collector.h>
-
-#include <module-loader/module-loader.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-/**
- * Sets up JavaScript context and environment and allows execution of JavaScript in the context
- *
- *
- * Exceptions
- * ----------
- *
- * Execptions can be raised by calling DALI_SCRIPT_EXCEPTION()
- *
- * Expections break JavaScript execution with a printout but do not cause a c++ exception.
- * So always return from the calling function before attempting to run any further V8 code.
- *
- * Coding Style
- * ------------
- *
- *  Uses Tizen Web API coding style, which appears to be the same as this:
- *
- *  https://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml
- *
- * "In general, use
- *
- * functionNamesLikeThis,
- * variableNamesLikeThis,
- * ClassNamesLikeThis,
- * ConstructorsLikeThis,
- * EnumNamesLikeThis,
- * methodNamesLikeThis,
- * CONSTANT_VALUES_LIKE_THIS,
- * foo.namespaceNamesLikeThis.bar,
- * filenameslikethis.js. "
- */
-class DALI_INTERNAL DaliWrapper
-{
-
-public:
-
-  /**
-   * @brief whether the wrapper is running in standalone using V8,
-   * or inside Node.JS using V8
-   */
-  enum RunMode
-  {
-    RUNNING_STANDALONE,
-    RUNNING_IN_NODE_JS
-  };
-
-  /**
-   * @brief Constructor
-   * @param[in] runMode whether the wrapper is running standalone or inside Node.JS
-   * @param[in] isolate v8 isolate ( can be null if running standalone )
-   */
-  DaliWrapper( RunMode runMode, v8::Isolate* isolate );
-
-  /**
-   * non virtual destructor, not intended as a base class
-   */
-  ~DaliWrapper();
-
-  /**
-   * Gets the DaliWrapper singleton.
-   *
-   * @return the wrapper
-   */
-  static DaliWrapper& Get();
-
-  /**
-   * Intialize DaliWrapper for running inside NodeJS
-   */
-  static v8::Local<v8::Object> CreateWrapperForNodeJS( v8::Isolate* isolate);
-
-
-  /**
-   * Set V8 engine configuration flags
-   *
-   * @param[in] flags Configruation flags (See v8 documentation)
-   */
-  void SetFlagsFromString(const std::string& flags);
-
-  /**
-   * Delete the current V8 context
-   */
-  void Shutdown();
-
-  /**
-   * Excute the buffer in the v8 context
-   *
-   * @param[in] sourceCode The buffer containing javascript to execute
-   * @param[in] sourceFileName Filename associated with the buffer (for error tracing)
-   * @return true on success, false on failure
-   */
-  bool ExecuteBuffer(const std::string &sourceCode, const std::string &sourceFileName);
-
-
-  /**
-   * Excute the buffer in the v8 context
-   *
-   * @param[in] sourceFileName Filename associated with the buffer (for error tracing)
-   * @return true on success, false on failure
-   */
-  bool ExecuteFile( const std::string& sourceFileName);
-
-
-  /**
-   * Get DALi's own garbage collector
-   * @return garbage collector interface
-   */
-  GarbageCollectorInterface& GetDaliGarbageCollector();
-
-private:
-
-  /**
-   * @brief Apply global objects like console.log and require() to the context
-   */
-  void ApplyGlobalObjectsToContext( v8::Local<v8::Context> context );
-
-  /**
-   * @brief Initialize DaliWrapper for running standalone
-   * Creates a new isolate
-   *
-   */
-  void InitializeStandAlone();
-
-  /**
-   * @brief create dali namespace/object
-   */
-  v8::Local<v8::Object> CreateDaliObject();
-
-  /**
-   * Create Dali ObjectTemplate
-   * @return the Dali ObjectTemplate
-   */
-  static v8::Handle<v8::ObjectTemplate> NewDaliObjectTemplate( v8::Isolate* isolate );
-
-  /**
-   * Called when require keyword is found in a script
-   */
-  static void Require(const v8::FunctionCallbackInfo< v8::Value >& args);
-
-  static bool mInstanceCreated;                                 ///< whether an instance has been created
-  static DaliWrapper* mWrapper;                                 ///< static pointer to the wrapper
-
-  GarbageCollector mGarbageCollector;                           ///< DALi garbage collector
-  ModuleLoader mModuleLoader;                                   ///< Module loader
-  v8::Persistent<v8::Context> mContext;                         ///< A sandboxed execution context with its own set of built-in objects and functions.
-  v8::Isolate* mIsolate;                                        ///< represents an isolated instance of the V8 engine.
-  RunMode mRunMode;
-};
-
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_DALI_WRAP_H
diff --git a/plugins/dali-script-v8/src/events/event-object-generator.cpp b/plugins/dali-script-v8/src/events/event-object-generator.cpp
deleted file mode 100644 (file)
index e9d8955..0000000
+++ /dev/null
@@ -1,489 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "event-object-generator.h"
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <actors/actor-wrapper.h>
-#include <object/property-value-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace
-{
-
-struct TouchDataPointState
-{
-  PointState::Type state;
-  const char* name;
-};
-
-const TouchDataPointState TouchDataPointStateLookup[]=
-{
-    { PointState::DOWN,         "DOWN"        },
-    { PointState::UP,           "UP"          },
-    { PointState::MOTION,       "MOTION"      },
-    { PointState::LEAVE,        "LEAVE"       },
-    { PointState::STATIONARY,   "STATIONARY"  },
-    { PointState::INTERRUPTED,  "INTERRUPT"   },
-    { PointState::STARTED,      "STARTED"     },
-    { PointState::FINISHED,     "FINISHED"    },
-};
-
-const unsigned int TouchDataPointStateLookupCount = sizeof(TouchDataPointStateLookup)/sizeof(TouchDataPointStateLookup[0]);
-
-struct TouchPointState
-{
-  TouchPoint::State state;
-  const char* name;
-};
-
-const TouchPointState PointStateLookup[]=
-{
-    { TouchPoint::Down,         "down"        },       /**< Screen touched */
-    { TouchPoint::Up,           "up"          },       /**< Touch stopped */
-    { TouchPoint::Motion,       "motion"      },       /**< Touch stopped */
-    { TouchPoint::Leave,        "leave"       },       /**< Touch stopped */
-    { TouchPoint::Stationary,   "stationary"  },       /**< Touch stopped */
-    { TouchPoint::Interrupted,  "interrupt"   },       /**< Touch stopped */
-    { TouchPoint::Started,      "started"     },       /**< Touch or hover started */
-    { TouchPoint::Finished,     "finished"    },       /**< Touch or hover finished */
-};
-
-const unsigned int PointStateLookupCount = sizeof(PointStateLookup)/sizeof(PointStateLookup[0]);
-
-struct GestureState
-{
-  Gesture::State state;
-  const char* name;
-};
-
-const GestureState GestureStateLookup[]=
-{
-    { Gesture::Clear,      "clear"        },       /**< No state associated */
-    { Gesture::Started,    "started"      },       /**< Gesture started */
-    { Gesture::Continuing, "continuing"   },       /**< Gesture continuing */
-    { Gesture::Finished,   "finished"     },       /**< Gesture finished */
-    { Gesture::Cancelled,  "cancelled"    },       /**< Gesture cancelled */
-    { Gesture::Possible,   "possible"     },       /**< Gesture is possible */
-};
-
-const unsigned int GestureStateLookupCount = sizeof(GestureStateLookup)/sizeof(GestureStateLookup[0]);
-
-const char* GetTouchDataPointStateName( PointState::Type state )
-{
-  // could use the enum as index, but dali-core may change, so for now just do a lookup
-  for( unsigned int i = 0; i < TouchDataPointStateLookupCount; i++ )
-  {
-    if( TouchDataPointStateLookup[i].state == state )
-    {
-      return TouchDataPointStateLookup[i].name;
-    }
-  }
-  return "error point state not found";
-}
-
-const char* GetTouchPointStateName( TouchPoint::State state )
-{
-  // could use the enum as index, but dali-core may change, so for now just do a lookup
-  for( unsigned int i = 0; i < PointStateLookupCount; i++ )
-  {
-    if( PointStateLookup[i].state == state )
-    {
-      return PointStateLookup[i].name;
-    }
-  }
-  return "error point state not found";
-}
-
-const char* GetGestureStateName( Gesture::State state )
-{
-  // could use the enum as index, but dali-core may change, so for now just do a lookup
-  for( unsigned int i = 0; i < GestureStateLookupCount; i++ )
-  {
-    if( GestureStateLookup[i].state == state )
-    {
-      return GestureStateLookup[i].name;
-    }
-  }
-  return "error gesture state not found";
-}
-
-// create a point object, x,y
-v8::Local<v8::Object> CreateTouchPoint( v8::Isolate* isolate, const TouchPoint& touchPoint )
-{
-  /*
-   * touch point object
-   *
-   *   { "deviceId",  int }  Each touch point has a unique device ID
-   *   { "state",   string } touch state ="Down,Up,Motion,Leave,Stationary, Interrupted }
-   *   { "hitActor", actor } actor that was hit ( wrapped dali object)
-   *   { "local",  {x,y} } co-ordinates of top left of hit actor
-   *   { "screen", {x,y} } co-ordinates of top left of hit actor
-   */
-  v8::EscapableHandleScope handleScope( isolate );
-
-  v8::Local<v8::Object> pointObject = v8::Object::New( isolate );
-
-  // set device id
-  pointObject->Set( v8::String::NewFromUtf8( isolate, "deviceId"), v8::Integer::New( isolate, touchPoint.deviceId ));
-
-  // set state
-  pointObject->Set( v8::String::NewFromUtf8( isolate, "state"), v8::String::NewFromUtf8( isolate, GetTouchPointStateName(touchPoint.state)));
-
-  if(touchPoint.hitActor)
-  {
-    // set the hit actor
-    pointObject->Set( v8::String::NewFromUtf8( isolate, "hitActor"), ActorWrapper::WrapActor(isolate, touchPoint.hitActor ));
-  }
-
-  // Think about changing these Vector 2 from wrapped objects to JavaScript objects...
-
-  // Set the local co-ordinates
-  v8::Local<v8::Object> localPointObject = v8::Object::New( isolate );
-  localPointObject->Set( v8::String::NewFromUtf8( isolate, "x"),v8::Integer::New( isolate, touchPoint.local.x) );
-  localPointObject->Set( v8::String::NewFromUtf8( isolate, "y"),v8::Integer::New( isolate, touchPoint.local.y) );
-  pointObject->Set( v8::String::NewFromUtf8( isolate, "local"),  localPointObject);
-
-
-  // set the screen co-ordinates
-  v8::Local<v8::Object> screenPointObject = v8::Object::New( isolate );
-  screenPointObject->Set( v8::String::NewFromUtf8( isolate, "x"),v8::Integer::New( isolate, touchPoint.screen.x) );
-  screenPointObject->Set( v8::String::NewFromUtf8( isolate, "y"),v8::Integer::New( isolate, touchPoint.screen.y) );
-  pointObject->Set( v8::String::NewFromUtf8( isolate, "screen"), screenPointObject );
-
-
-  return handleScope.Escape( pointObject );
-}
-
-} // un-named namespace
-
-
-v8::Handle<v8::Object> EventObjectGenerator::CreateTouchData( v8::Isolate* isolate, const TouchData& touch )
-{
-  // we are creating a touch event object that looks like this
-  //
-  //  event.pointCount = points touched
-  //  event.time       = The time (in ms) that the touch event occurred.
-  //  event.point[]    = array of Points
-  //
-  // A Point =
-  //   { "deviceId",  int }  Each touch point has a unique device ID
-  //   { "state",   string } touch state ="Down,Up,Motion,Leave,Stationary, Interrupted }
-  //   { "sourceActor", actor }  the actor that is emitting the callback (the actor that is hit maybe a child of it)
-  //   { "hitActor", actor } actor that was hit
-  //   { "local",  {x,y} } co-ordinates of top left of hit actor
-  //   { "screen", {x,y} } co-ordinates of top left of hit actor
-  //   { "radius", float } radius of the press point (average of both the horizontal & vertical radii)
-  //   { "ellipseRadius", {x,y} } both the horizontal and the vertical radii of the press point
-  //   { "pressure", float } the touch pressure
-  //   { "angle", float } angle of the press point relative to the Y-Axis
-  //
-
-  v8::EscapableHandleScope handleScope( isolate );
-
-  v8::Local<v8::Object> touchObject = v8::Object::New( isolate );
-
-  // Set the pointCount
-  touchObject->Set( v8::String::NewFromUtf8( isolate, "pointCount" ), v8::Integer::New( isolate, touch.GetPointCount() ) );
-
-  // Set the time
-  touchObject->Set( v8::String::NewFromUtf8( isolate, "time" ), v8::Number::New( isolate, touch.GetTime() ) );
-
-  // Set the emitting actor
-  // touchObject->Set( v8::String::NewFromUtf8( isolate, "sourceActor" ), ActorWrapper::WrapActor(isolate, emittingActor));
-
-  // Create the array of touch points
-  v8::Local < v8::Array > pointArrayObject = v8::Array::New( isolate, touch.GetPointCount() );
-  for( unsigned int i = 0 ; i < touch.GetPointCount() ; ++i )
-  {
-    v8::Local<v8::Object> pointObject = v8::Object::New( isolate );
-
-    // set device id
-    pointObject->Set( v8::String::NewFromUtf8( isolate, "deviceId" ), v8::Integer::New( isolate, touch.GetDeviceId( i ) ) );
-
-    // set state
-    pointObject->Set( v8::String::NewFromUtf8( isolate, "state" ), v8::String::NewFromUtf8( isolate, GetTouchDataPointStateName( touch.GetState( i ) ) ) );
-
-    Actor hitActor = touch.GetHitActor( i );
-    if( hitActor )
-    {
-      // set the hit actor
-      pointObject->Set( v8::String::NewFromUtf8( isolate, "hitActor" ), ActorWrapper::WrapActor( isolate, hitActor ) );
-    }
-
-    // set the local co-ordinates
-    const Vector2& local = touch.GetLocalPosition( i );
-    v8::Local<v8::Object> localPointObject = v8::Object::New( isolate );
-    localPointObject->Set( v8::String::NewFromUtf8( isolate, "x" ), v8::Integer::New( isolate, local.x ) );
-    localPointObject->Set( v8::String::NewFromUtf8( isolate, "y" ), v8::Integer::New( isolate, local.y ) );
-    pointObject->Set( v8::String::NewFromUtf8( isolate, "local" ),  localPointObject );
-
-    // set the screen co-ordinates
-    const Vector2& screen = touch.GetScreenPosition( i );
-    v8::Local<v8::Object> screenPointObject = v8::Object::New( isolate );
-    screenPointObject->Set( v8::String::NewFromUtf8( isolate, "x" ), v8::Integer::New( isolate, screen.x ) );
-    screenPointObject->Set( v8::String::NewFromUtf8( isolate, "y" ), v8::Integer::New( isolate, screen.y ) );
-    pointObject->Set( v8::String::NewFromUtf8( isolate, "screen" ), screenPointObject );
-
-    // set the radius
-    pointObject->Set( v8::String::NewFromUtf8( isolate, "radius" ), v8::Integer::New( isolate, touch.GetRadius( i ) ) );
-
-    // set the ellipse Radius
-    const Vector2& ellipse = touch.GetEllipseRadius( i );
-    v8::Local<v8::Object> ellipseObject = v8::Object::New( isolate );
-    ellipseObject->Set( v8::String::NewFromUtf8( isolate, "x" ), v8::Integer::New( isolate, ellipse.x ) );
-    ellipseObject->Set( v8::String::NewFromUtf8( isolate, "y" ), v8::Integer::New( isolate, ellipse.y ) );
-    pointObject->Set( v8::String::NewFromUtf8( isolate, "ellipseRadius" ),  ellipseObject );
-
-    // set the pressure
-    pointObject->Set( v8::String::NewFromUtf8( isolate, "pressure" ), v8::Integer::New( isolate, touch.GetPressure( i ) ) );
-
-    // set the angle
-    pointObject->Set( v8::String::NewFromUtf8( isolate, "angle" ), v8::Integer::New( isolate, touch.GetAngle( i ).degree ) );
-
-    // add the point
-    pointArrayObject->Set( v8::Number::New( isolate, i ), pointObject  );
-  }
-
-  // set the array
-  touchObject->Set( v8::String::NewFromUtf8( isolate, "points" ), pointArrayObject );
-
-  return handleScope.Escape( touchObject );
-}
-
-v8::Handle<v8::Object> EventObjectGenerator::CreateHoverEvent( v8::Isolate* isolate, const HoverEvent& hoverEvent)
-{
-  // we are creating a hover event object that looks like this
-  //
-  //  event.pointCount = points hovered
-  //  event.time       = The time (in ms) that the hover event occurred.
-  //  event.point[]    = array of TouchPoints
-  //
-  // A TouchPoint =
-  //   { "deviceId",  int }  Each touch point has a unique device ID
-  //   { "state",   string } touch state ="Down,Up,Motion,Leave,Stationary, Interrupted }
-  //   { "sourceActor", actor }  the actor that is emitting the callback (the actor that is hit maybe a child of it)
-  //   { "hitActor", actor } actor that was hit
-  //   { "local",  {x,y} } co-ordinates of top left of hit actor
-  //   { "screen", {x,y} } co-ordinates of top left of hit actor
-  //
-
-  v8::EscapableHandleScope handleScope( isolate );
-
-  v8::Local<v8::Object> hoverObject = v8::Object::New( isolate );
-
-  // Set the pointCount
-  hoverObject->Set( v8::String::NewFromUtf8( isolate, "pointCount" ), v8::Integer::New( isolate, hoverEvent.GetPointCount() ) );
-
-  // Set the time
-  hoverObject->Set( v8::String::NewFromUtf8( isolate, "time" ), v8::Number::New( isolate, hoverEvent.time ) );
-
-  // Set the emitting actor
-  // hoverObject->Set( v8::String::NewFromUtf8( isolate, "sourceActor" ), ActorWrapper::WrapActor(isolate, emittingActor));
-
-  // Create the array of touch points
-  v8::Local < v8::Array > pointArrayObject = v8::Array::New( isolate, hoverEvent.GetPointCount() );
-  for( unsigned int i = 0 ; i < hoverEvent.GetPointCount() ; ++i )
-  {
-    v8::Local < v8::Object > pointObject = CreateTouchPoint( isolate, hoverEvent.points[i] );
-    pointArrayObject->Set( v8::Number::New( isolate, i ), pointObject  );
-  }
-
-  // set the array
-  hoverObject->Set( v8::String::NewFromUtf8( isolate, "points" ), pointArrayObject );
-
-  return handleScope.Escape( hoverObject );
-}
-
-v8::Handle<v8::Object> EventObjectGenerator::CreateWheelEvent( v8::Isolate* isolate, const WheelEvent& wheelEvent)
-{
-  //  we are creating a wheel event object that looks like this
-  //
-  //  event.type = "mouseWheel" or "customWheel" type of the wheel event
-  //  event.direction = "vertical" or "horizontal" direction the wheel is being rolled
-  //  event.shiftPressed       = boolean, shift key is held
-  //  event.ctrlPressed        = boolean, ctrl key is held
-  //  event.altPressed     = boolean, alt key is held
-  //  event.keyModifiers = bitmask of keys pressed
-  //  event.point {x,y}    = The co-ordinates of the mouse cursor relative to the top-left of the screen when the wheel is being rolled.
-  //  event.rolled          = offset of wheel rolling, positive = rolling down or clockwise, negative = rolling up or counter-clockwise
-  //  event.timestamp    = The time (in ms) that the touch event occurred
-
-  v8::EscapableHandleScope handleScope( isolate );
-
-  v8::Local<v8::Object> wheelObject = v8::Object::New( isolate );
-
-  // Set the type
-  std::string type = wheelEvent.type ? "mouseWheel" : "customWheel";
-  wheelObject->Set( v8::String::NewFromUtf8( isolate, "type" ), v8::String::NewFromUtf8( isolate, type.c_str() ) );
-
-  // Set the direction
-  std::string direction = wheelEvent.direction ? "vertical" : "horizontal";
-  wheelObject->Set( v8::String::NewFromUtf8( isolate, "direction" ), v8::String::NewFromUtf8( isolate, direction.c_str() ) );
-
-  // set shift / ctrl/ alt keys
-  wheelObject->Set( v8::String::NewFromUtf8( isolate, "shiftPressed" ), v8::Boolean::New( isolate, wheelEvent.IsShiftModifier()) );
-  wheelObject->Set( v8::String::NewFromUtf8( isolate, "ctrlPressed" ),  v8::Boolean::New( isolate, wheelEvent.IsCtrlModifier()) );
-  wheelObject->Set( v8::String::NewFromUtf8( isolate, "altPressed" ),   v8::Boolean::New( isolate, wheelEvent.IsAltModifier()) );
-
-  // set keyModifiers
-  wheelObject->Set( v8::String::NewFromUtf8( isolate, "keyModifiers" ),  v8::Integer::New( isolate, wheelEvent.modifiers) );
-
-  // set Point
-  v8::Local<v8::Object> wheelPointObject = v8::Object::New( isolate );
-  wheelPointObject->Set( v8::String::NewFromUtf8( isolate, "x"),v8::Integer::New( isolate, wheelEvent.point.x ) );
-  wheelPointObject->Set( v8::String::NewFromUtf8( isolate, "y"),v8::Integer::New( isolate, wheelEvent.point.y ) );
-  wheelObject->Set( v8::String::NewFromUtf8( isolate, "point"), wheelPointObject );
-
-  // set rolledAmout
-  wheelObject->Set( v8::String::NewFromUtf8( isolate, "rolled" ),  v8::Integer::New( isolate, wheelEvent.z) );
-
-  // set timestamp
-  wheelObject->Set( v8::String::NewFromUtf8( isolate, "timestamp" ),  v8::Integer::New( isolate, wheelEvent.timeStamp) );
-
-  return handleScope.Escape( wheelObject );
-
-}
-
-v8::Handle<v8::Object> EventObjectGenerator::CreateKeyEvent( v8::Isolate* isolate, const KeyEvent& keyEvent)
-{
-  // keyCode
-  // keyModifier
-  // event.keyCode       = key code
-  // event.key           = key presssed
-  // event.keyDescription = key description, e.g. BackSpace
-  // event.state = "down" or "up" key state
-  // event.shiftPressed  = boolean, shift key is held
-  // event.ctrlPressed   = boolean, ctrl key is held
-  // event.altPressed    = boolean, alt key is held
-  // event.keyModifiers  = key modifiers
-  // event.timestamp     = Time stamp
-
-  v8::EscapableHandleScope handleScope( isolate );
-
-  v8::Local<v8::Object> keyObject = v8::Object::New( isolate );
-
-  // Set the direction
-  std::string state ("up");
-  if ( keyEvent.state == KeyEvent::Down)
-  {
-    state = "down";
-  }
-
-  keyObject->Set( v8::String::NewFromUtf8( isolate, "state" ), v8::String::NewFromUtf8( isolate, state.c_str() ) );
-
-  // set keyCode
-   keyObject->Set( v8::String::NewFromUtf8( isolate, "keyCode" ),  v8::Integer::New( isolate, keyEvent.keyCode) );
-
-  // set keyModifiers
-  keyObject->Set( v8::String::NewFromUtf8( isolate, "keyModifier" ),  v8::Integer::New( isolate, keyEvent.keyModifier) );
-
-  // set Key pressed name
-  keyObject->Set( v8::String::NewFromUtf8( isolate, "keyDescription" ),  v8::String::NewFromUtf8( isolate, keyEvent.keyPressedName.c_str() )  );
-
-  // set Key pressed
-  keyObject->Set( v8::String::NewFromUtf8( isolate, "key" ),  v8::String::NewFromUtf8( isolate, keyEvent.keyPressed.c_str() )  );
-
-  // set time stamp
-  keyObject->Set( v8::String::NewFromUtf8( isolate, "timestamp" ),  v8::Integer::New( isolate, keyEvent.time) );
-
-  // set shift / ctrl/ alt keys
-  keyObject->Set( v8::String::NewFromUtf8( isolate, "shiftPressed" ), v8::Boolean::New( isolate, keyEvent.IsShiftModifier()) );
-  keyObject->Set( v8::String::NewFromUtf8( isolate, "ctrlPressed" ),  v8::Boolean::New( isolate, keyEvent.IsCtrlModifier()) );
-  keyObject->Set( v8::String::NewFromUtf8( isolate, "altPressed" ),   v8::Boolean::New( isolate, keyEvent.IsAltModifier()) );
-
-  return handleScope.Escape( keyObject );
-
-}
-
-v8::Handle<v8::Object> EventObjectGenerator::CreatePanGesture( v8::Isolate* isolate, const PanGesture& panGesture)
-{
-  // gesture.numberOfTouches     = total number of fingers touching the screen
-  // gesture.state               = pan state {Clear, Started, Continuing, Finished, Cancelled, Possible}
-  // gesture.time                = Time stamp
-  // gesture.velocity            = pan velocity in actor coordinates
-  // gesture.displacement        = pan displacement in actor coordinates
-  // gesture.position            = pan position in actor coordinates
-  // gesture.screenVelocity      = pan velocity in screen coordinates
-  // gesture.screenDisplacement  = pan displacement in screen coordinates
-  // gesture.screenPosition      = pan position in screen coordinates
-
-  v8::EscapableHandleScope handleScope( isolate );
-
-  v8::Local<v8::Object> panObject = v8::Object::New( isolate );
-
-  // Set the numberOfTouches
-  panObject->Set( v8::String::NewFromUtf8( isolate, "numberOfTouches" ), v8::Integer::New( isolate, panGesture.numberOfTouches ) );
-
-  // Set the state
-  panObject->Set( v8::String::NewFromUtf8( isolate, "state"), v8::String::NewFromUtf8( isolate, GetGestureStateName(panGesture.state)));
-
-  // Set the time
-  panObject->Set( v8::String::NewFromUtf8( isolate, "time" ), v8::Number::New( isolate, panGesture.time ) );
-
-  // Set the local velocity
-  v8::Local<v8::Object> velocityObject = v8::Object::New( isolate );
-  velocityObject->Set( v8::String::NewFromUtf8( isolate, "x"),v8::Number::New( isolate, panGesture.velocity.x) );
-  velocityObject->Set( v8::String::NewFromUtf8( isolate, "y"),v8::Number::New( isolate, panGesture.velocity.y) );
-  panObject->Set( v8::String::NewFromUtf8( isolate, "velocity"),  velocityObject);
-
-  // Set the local displacement
-  v8::Local<v8::Object> displacementObject = v8::Object::New( isolate );
-  displacementObject->Set( v8::String::NewFromUtf8( isolate, "x"),v8::Number::New( isolate, panGesture.displacement.x) );
-  displacementObject->Set( v8::String::NewFromUtf8( isolate, "y"),v8::Number::New( isolate, panGesture.displacement.y) );
-  panObject->Set( v8::String::NewFromUtf8( isolate, "displacement"),  displacementObject);
-
-  // Set the local position
-  v8::Local<v8::Object> positionObject = v8::Object::New( isolate );
-  positionObject->Set( v8::String::NewFromUtf8( isolate, "x"),v8::Number::New( isolate, panGesture.position.x) );
-  positionObject->Set( v8::String::NewFromUtf8( isolate, "y"),v8::Number::New( isolate, panGesture.position.y) );
-  panObject->Set( v8::String::NewFromUtf8( isolate, "position"),  positionObject);
-
-  // Set the screen velocity
-  v8::Local<v8::Object> screenVelocityObject = v8::Object::New( isolate );
-  screenVelocityObject->Set( v8::String::NewFromUtf8( isolate, "x"),v8::Number::New( isolate, panGesture.screenVelocity.x) );
-  screenVelocityObject->Set( v8::String::NewFromUtf8( isolate, "y"),v8::Number::New( isolate, panGesture.screenVelocity.y) );
-  panObject->Set( v8::String::NewFromUtf8( isolate, "screenVelocity"),  screenVelocityObject);
-
-  // Set the screen displacement
-  v8::Local<v8::Object> screenDisplacementObject = v8::Object::New( isolate );
-  screenDisplacementObject->Set( v8::String::NewFromUtf8( isolate, "x"),v8::Number::New( isolate, panGesture.screenDisplacement.x) );
-  screenDisplacementObject->Set( v8::String::NewFromUtf8( isolate, "y"),v8::Number::New( isolate, panGesture.screenDisplacement.y) );
-  panObject->Set( v8::String::NewFromUtf8( isolate, "screenDisplacement"),  screenDisplacementObject);
-
-  // Set the screen position
-  v8::Local<v8::Object> screenPositionObject = v8::Object::New( isolate );
-  screenPositionObject->Set( v8::String::NewFromUtf8( isolate, "x"),v8::Number::New( isolate, panGesture.screenPosition.x) );
-  screenPositionObject->Set( v8::String::NewFromUtf8( isolate, "y"),v8::Number::New( isolate, panGesture.screenPosition.y) );
-  panObject->Set( v8::String::NewFromUtf8( isolate, "screenPosition"),  screenPositionObject);
-
-  return handleScope.Escape( panObject );
-
-}
-
-
-
-} // V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/events/event-object-generator.h b/plugins/dali-script-v8/src/events/event-object-generator.h
deleted file mode 100644 (file)
index 897a3c2..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-#ifndef DALI_V8PLUGIN_EVENT_OBJECT_GENERATOR_H
-#define DALI_V8PLUGIN_EVENT_OBJECT_GENERATOR_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/events/touch-data.h>
-#include <dali/public-api/events/hover-event.h>
-#include <dali/public-api/events/wheel-event.h>
-#include <dali/public-api/events/key-event.h>
-#include <dali/public-api/events/pan-gesture.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-
-/**
- * Used to convert Dali event objects into pure JavaScript objects.
- * The objects created are not wrappers around a Dali object,
- * however TouchPoint.Actor is a wrapped actor
- */
-namespace EventObjectGenerator
-{
-
-  v8::Handle<v8::Object> CreateTouchData( v8::Isolate* isolate, const TouchData& touch );
-  v8::Handle<v8::Object> CreateHoverEvent( v8::Isolate* isolate, const HoverEvent& hoverEvent);
-  v8::Handle<v8::Object> CreateWheelEvent( v8::Isolate* isolate, const WheelEvent& wheelEvent);
-  v8::Handle<v8::Object> CreateKeyEvent( v8::Isolate* isolate, const KeyEvent& keyEvent);
-  v8::Handle<v8::Object> CreatePanGesture( v8::Isolate* isolate, const PanGesture& panGesture);
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_EVENT_OBJECT_GENERATOR_H
diff --git a/plugins/dali-script-v8/src/events/pan-gesture-detector-api.cpp b/plugins/dali-script-v8/src/events/pan-gesture-detector-api.cpp
deleted file mode 100644 (file)
index 18cb0a8..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "pan-gesture-detector-api.h"
-
-// INTERNAL INCLUDES
-#include <events/pan-gesture-detector-wrapper.h>
-#include <object/property-value-wrapper.h>
-#include <v8-utils.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace // unnamed namespace
-{
-
-PanGestureDetector GetPanGestureDetector( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::HandleScope handleScope( isolate );
-
-  v8::Local<v8::Object> object = args.This();
-  v8::Local<v8::External> field = v8::Local<v8::External>::Cast( object->GetInternalField( 0 ) );
-  void* ptr = field->Value();
-
-  PanGestureDetectorWrapper* wrapper = static_cast<PanGestureDetectorWrapper *>( ptr );
-  return wrapper->GetPanGestureDetector();
-}
-
-} // unnamed namespace
-
-/**
- * Constructor
- *
- * @constructor
- * @for PanGestureDetector
- * @method PanGestureDetector
- */
-PanGestureDetector PanGestureDetectorApi::New( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  return PanGestureDetector::New();
-}
-
-/**
- * Attaches an actor to the pan gesture.
- *
- * The panDetected signal will be dispatched when the pan gesture occurs on
- * the attached actor. You can attach several actors to a pan gesture detector.
- * @method attach
- * @for PanGestureDetector
- * @param {Actor} actor The actor to attach to the pan gesture detector
- * @example
- *        panGestureDetector.attach(actor);
- */
-void PanGestureDetectorApi::Attach( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  bool found( false );
-  //Get actor
-  Dali::Actor actor = V8Utils::GetActorParameter( PARAMETER_0, found, isolate, args );
-  if( found )
-  {
-    PanGestureDetector panGestureDetector = GetPanGestureDetector( isolate, args );
-    panGestureDetector.Attach( actor );
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad parameter" );
-  }
-}
-
-
-/**
- * Detaches the attached actor from the pan gesture detector.
- *
- * The specified actor should have been attached to the pan gesture detector
- * @method detach
- * @for PanGestureDetector
- * @param {Actor} actor The actor to detach from the pan gesture detector
- * @example
- *        panGestureDetector.detach(actor);
- */
-void PanGestureDetectorApi::Detach( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  bool found( false );
-  //Get actor
-  Dali::Actor actor = V8Utils::GetActorParameter( PARAMETER_0, found, isolate, args );
-  if( found )
-  {
-    PanGestureDetector panGestureDetector = GetPanGestureDetector( isolate, args );
-    panGestureDetector.Detach( actor );
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad parameter" );
-  }
-}
-
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/events/pan-gesture-detector-api.h b/plugins/dali-script-v8/src/events/pan-gesture-detector-api.h
deleted file mode 100644 (file)
index 0f6fc54..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-#ifndef DALI_V8PLUGIN_PAN_GESTURE_DETECTOR_API_H
-#define DALI_V8PLUGIN_PAN_GESTURE_DETECTOR_API_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/events/pan-gesture-detector.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace PanGestureDetectorApi
-{
-  /**
-   * Constructor
-   */
-  PanGestureDetector New( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  /**
-   * PanGestureDetector API see gesture-detector.h for a description
-   */
-  void Attach( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void Detach( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-}; // namespace PanGestureDetectorApi
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_PAN_GESTURE_DETECTOR_API_H
diff --git a/plugins/dali-script-v8/src/events/pan-gesture-detector-wrapper.cpp b/plugins/dali-script-v8/src/events/pan-gesture-detector-wrapper.cpp
deleted file mode 100644 (file)
index e6ac829..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "pan-gesture-detector-wrapper.h"
-
-// INTERNAL INCLUDES
-#include <events/pan-gesture-detector-api.h>
-#include <v8-utils.h>
-#include <dali-wrapper.h>
-#include <shared/object-template-helper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace
-{
-
-const ApiFunction PanGestureDetectorFunctions[]=
-{
- { "Attach",  PanGestureDetectorApi::Attach },
- { "Detach",  PanGestureDetectorApi::Detach }
-};
-
-const unsigned int PanGestureDetectorFunctionTableCount = sizeof(PanGestureDetectorFunctions)/sizeof(PanGestureDetectorFunctions[0]);
-} //un-named space
-
-
-PanGestureDetectorWrapper::PanGestureDetectorWrapper( PanGestureDetector panGestureDetector, GarbageCollectorInterface& gc )
-:HandleWrapper( BaseWrappedObject::PAN_GESTURE_DETECTOR, panGestureDetector, gc ),
- mPanGestureDetector( panGestureDetector )
-{
-}
-
-v8::Handle<v8::ObjectTemplate> PanGestureDetectorWrapper::MakePanGestureDetectorTemplate( v8::Isolate* isolate )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  v8::Local<v8::ObjectTemplate> objTemplate = v8::ObjectTemplate::New();
-  objTemplate->SetInternalFieldCount( BaseWrappedObject::FIELD_COUNT );
-
-  // add our function properties
-  ObjectTemplateHelper::InstallFunctions( isolate, objTemplate, PanGestureDetectorFunctions, PanGestureDetectorFunctionTableCount );
-
-  // property handle intercepts property getters and setters and signals
-  HandleWrapper::AddInterceptsToTemplate( isolate, objTemplate );
-
-  return handleScope.Escape( objTemplate );
-}
-
-v8::Handle<v8::Object> PanGestureDetectorWrapper::WrapPanGestureDetector( v8::Isolate* isolate, PanGestureDetector panGestureDetector )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  objectTemplate = MakePanGestureDetectorTemplate( isolate );
-
-  // create an instance of the template
-  v8::Local<v8::Object> localObject = objectTemplate->NewInstance();
-
-  // create the Dali object
-  PanGestureDetectorWrapper* pointer = new PanGestureDetectorWrapper( panGestureDetector, Dali::V8Plugin::DaliWrapper::Get().GetDaliGarbageCollector() );
-
-  // assign the JavaScript object to the wrapper.
-  // This also stores Dali object, in an internal field inside the JavaScript object.
-  pointer->SetJavascriptObject( isolate, localObject );
-
-  return handleScope.Escape( localObject );
-}
-
-PanGestureDetector PanGestureDetectorWrapper::GetPanGestureDetector()
-{
-  return mPanGestureDetector;
-}
-
-/**
- * Create an initialized PanGestureDetector handle.
- * @constructor
- * @for PanGestureDetector
- * @method PanGestureDetector
- */
-void PanGestureDetectorWrapper::NewPanGestureDetector( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  if( !args.IsConstructCall() )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "constructor called without 'new" );
-    return;
-  }
-
-  // Create a new path
-  PanGestureDetector panGestureDetector = PanGestureDetector::New();
-  v8::Local<v8::Object> localObject = WrapPanGestureDetector( isolate, panGestureDetector );
-  args.GetReturnValue().Set( localObject );
-}
-
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/events/pan-gesture-detector-wrapper.h b/plugins/dali-script-v8/src/events/pan-gesture-detector-wrapper.h
deleted file mode 100644 (file)
index 16d28e5..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-#ifndef DALI_V8PLUGIN_PAN_GESTURE_DETECTOR_WRAPPER_H
-#define DALI_V8PLUGIN_PAN_GESTURE_DETECTOR_WRAPPER_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/events/pan-gesture-detector.h>
-
-// INTERNAL INCLUDES
-#include <object/handle-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-/**
- * Wraps a PanGestureDetector.
- */
-class PanGestureDetectorWrapper : public HandleWrapper
-{
-
-public:
-
-  /**
-   * Constructor
-   */
-  PanGestureDetectorWrapper( PanGestureDetector panGestureDetector, GarbageCollectorInterface& gc );
-
-  /**
-   * Virtual destructor
-   */
-  virtual ~PanGestureDetectorWrapper(){};
-
-  /**
-   * Creates a new PanGestureDetector wrapped inside a Javascript Object.
-   * @param[in] args v8 function call arguments interpreted
-   */
-  static void NewPanGestureDetector( const v8::FunctionCallbackInfo< v8::Value >& args);
-
-  /**
-   * Wraps a PanGestureDetector inside a Javascript object
-   */
-  static v8::Handle<v8::Object> WrapPanGestureDetector(v8::Isolate* isolate, PanGestureDetector panGestureDetector );
-
-  /*
-   * Get the wrapped PanGestureDetector
-   */
-  PanGestureDetector GetPanGestureDetector();
-
-private:
-
-  /**
-   * Create a v8 object template for the PanGestureDetector
-   */
-  static v8::Handle<v8::ObjectTemplate> MakePanGestureDetectorTemplate( v8::Isolate* isolate );
-
-  PanGestureDetector mPanGestureDetector;
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_PAN_GESTURE_DETECTOR_WRAPPER_H
diff --git a/plugins/dali-script-v8/src/garbage-collector/garbage-collector.cpp b/plugins/dali-script-v8/src/garbage-collector/garbage-collector.cpp
deleted file mode 100644 (file)
index cc7988d..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (c) 2017 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.
- *
- */
-
-// CLASS HEADER
-#include "garbage-collector.h"
-
-// INTERNAL INCLUDES
-#include <shared/base-wrapped-object.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-GarbageCollector::GarbageCollector()
-{
-
-}
-GarbageCollector::~GarbageCollector()
-{
-  GarbageCollect();
-}
-
-void GarbageCollector::Register( BaseWrappedObject* object )
-{
-  mObjectMap.PushBack( object );
-};
-
-
-void GarbageCollector::UnRegister( BaseWrappedObject* object )
-{
-  for( ObjectMap::Iterator iter = mObjectMap.Begin(); iter != mObjectMap.End(); ++iter )
-  {
-    if( *iter == object )
-    {
-      mObjectMap.Erase( iter );
-      return;
-    }
-  }
-}
-
-
-void GarbageCollector::GarbageCollect()
-{
-  for( ObjectMap::Iterator iter = mObjectMap.Begin(); iter != mObjectMap.End(); ++iter )
-  {
-    BaseWrappedObject* object = *iter;
-    delete object; // object will call GarbageCollector.UnRegister
-  }
-  mObjectMap.Clear();
-}
-
-} // V8Plugin
-
-} // Dali
diff --git a/plugins/dali-script-v8/src/garbage-collector/garbage-collector.h b/plugins/dali-script-v8/src/garbage-collector/garbage-collector.h
deleted file mode 100644 (file)
index dd48698..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-#ifndef DALI_V8PLUGIN_GARBAGE_COLLECTOR_H
-#define DALI_V8PLUGIN_GARBAGE_COLLECTOR_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <dali/public-api/common/dali-vector.h>
-
-// INTERNAL INCLUDES
-#include <interfaces/garbage-collector-interface.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-
-/**
- * @brief concrete interface of Dali's garbage collector interface.
- */
-class GarbageCollector : public GarbageCollectorInterface
-{
-
-public:
-
-  /**
-   * Constructor
-   */
-  GarbageCollector();
-
-  /**
-   * Destructor
-   */
-  ~GarbageCollector();
-
-  /**
-   * @copydoc GarbageCollectorInterface::Register()
-   */
-  virtual void Register( BaseWrappedObject* object );
-
-  /**
-   * @copydoc GarbageCollectorInterface::UnRegister()
-   */
-  virtual void UnRegister( BaseWrappedObject* object );
-
-  /**
-   * @copydoc GarbageCollectorInterface::GarbageCollect()
-   */
-  virtual void GarbageCollect();
-
-private:
-
-  /**
-   * Map between dali wrapped object (void *)
-   */
-  typedef Dali::Vector< BaseWrappedObject* > ObjectMap;
-  ObjectMap mObjectMap;   ///< lookup
-
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_GARBAGE_COLLECTOR_H
diff --git a/plugins/dali-script-v8/src/image/buffer-image-api.cpp b/plugins/dali-script-v8/src/image/buffer-image-api.cpp
deleted file mode 100644 (file)
index 86d6cc1..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "buffer-image-api.h"
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <image/image-wrapper.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-/**
- * ## BufferImage
- * Bitmap represents an image resource as a pixel data buffer.
- * Its pixel buffer data is provided by the application developer.
- *
- * If the pixel format of the pixel buffer contains an alpha channel,
- * then the image is considered to be have transparent pixels without
- * regard for the actual content of the channel, and will be blended.
- * @class BufferImage
- * @extends Image
- */
-BufferImage BufferImageApi::GetBufferImage( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::HandleScope handleScope( isolate );
-
-  v8::Local<v8::Object> object = args.This();
-  v8::Local<v8::External> field = v8::Local<v8::External>::Cast( object->GetInternalField(0) );
-  void* ptr = field->Value();
-
-  ImageWrapper* wrapper = static_cast< ImageWrapper *>(ptr);
-  return BufferImage::DownCast( wrapper->GetImage() );
-}
-
-/**
- * Create a new buffer image object using an external data source.
- *
- * For better performance and portability use power of two dimensions.
- * The maximum size of the image is limited by GL_MAX_TEXTURE_SIZE.
- *
- * Example of creating a buffer image from a pixel buffer
- * ```
- *  var pixelBufferData = [255, 0, 0, 255,   // red
- *                         0, 255, 0, 255,   // green
- *                         0, 0, 255, 255,   // blue
- *                         255, 0, 0, 255];  // red
- *
- *  var pixelBuffer = new Uint8Array(pixelBufferData.length);
- *  pixelBuffer.set(pixelBufferData, 0);
- *
- *  var option = {
- *                 width       : 2,
- *                 height      : 2,
- *                 pixelFormat : dali.PIXEL_FORMAT_RGBA888,  // optional
- *                 stride      : 2                           // optional
- *               }
- *
- *  var bufferImage = new dali.BufferImage(pixelBuffer, option);
- * ```
- * @constructor
- * @method BufferImage
- * @for BufferImage
- * @param {Uint8Array} pixelBuffer Array of RGBA pixel data
- * @param {Object} options
- * @param {Integer} options.width image width
- * @param {Integer} options.height image height
- * @param {Integer} [options.pixelFormat] pixel format (see dali constants, the default value is dali.PIXEL_FORMAT_RGBA8888)
- * @param {Integer} [options.stride] the internal stride of the pixelbuffer in pixels (the default value is the image width)
- * @return {Object} Image
- */
-Image BufferImageApi::New( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  bool found( false );
-
-  PixelBuffer* pixelBuffer = static_cast<PixelBuffer*>(V8Utils::GetArrayBufferViewParameter( PARAMETER_0, found, isolate, args));
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid pixelBuffer parameter" );
-    return BufferImage();
-  }
-
-  v8::Local<v8::Value> options( args[1] );
-  if( !options->IsObject() )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid option parameters" );
-    return BufferImage();
-  }
-
-  v8::Local<v8::Object> obj = options->ToObject();
-
-  v8::Local<v8::Value> widthValue = obj->Get( v8::String::NewFromUtf8( isolate, "width" ) );
-  v8::Local<v8::Value> heightValue= obj->Get( v8::String::NewFromUtf8( isolate, "height" ) );
-
-  unsigned int width = 0;
-  unsigned int height = 0;
-
-  if( widthValue->IsUint32() && heightValue->IsUint32() )
-  {
-    width = widthValue->ToUint32()->Value();
-    height = heightValue->ToUint32()->Value();
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "Missing valid width and height params");
-    return BufferImage();
-  }
-
-  Pixel::Format  pixelFormat = Pixel::RGBA8888;
-  v8::Local<v8::Value> pixelFormatValue = obj->Get( v8::String::NewFromUtf8( isolate, "pixelFormat" ) );
-  if( pixelFormatValue->IsUint32() )
-  {
-     pixelFormat = static_cast<Pixel::Format>( pixelFormatValue->ToUint32()->Value() );
-  }
-
-  unsigned int stride = width;
-  v8::Local<v8::Value> strideValue = obj->Get( v8::String::NewFromUtf8( isolate, "stride" ) );
-  if( strideValue->IsUint32() )
-  {
-    stride = strideValue->ToUint32()->Value();
-  }
-
-  return BufferImage::New( pixelBuffer, width, height, pixelFormat, stride);
-}
-/**
- * Returns the pixel buffer of the Image
- * The application can write to the buffer to modify its contents.
- *
- * @method getBuffer
- * @for BufferImage
- * @return {Object} The pixel buffer
- */
-void BufferImageApi::GetBuffer( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  BufferImage image = GetBufferImage( isolate, args );
-
-  args.GetReturnValue().Set( v8::ArrayBuffer::New( isolate, static_cast<void*>( image.GetBuffer() ), image.GetBufferSize() ) );
-}
-
-/**
- * Returns buffer size in bytes.
- * @method getBufferSize
- * @for BufferImage
- * @return {Integer} buffer size
- */
-void BufferImageApi::GetBufferSize( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  BufferImage image = GetBufferImage( isolate, args );
-
-  args.GetReturnValue().Set( v8::Integer::New( isolate, image.GetBufferSize() ) );
-}
-
-/**
- * Returns buffer stride in bytes.
- * @method getBufferStride
- * @for BufferImage
- * @return {Object}
- */
-void BufferImageApi::GetBufferStride( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  BufferImage image = GetBufferImage( isolate, args );
-
-  args.GetReturnValue().Set( v8::Integer::New( isolate, image.GetBufferStride() ) );
-}
-
-/**
- * Returns pixel format
- * @method getPixelFormat
- * @for BufferImage
- * @return {Integer} pixel format
- */
-void BufferImageApi::GetPixelFormat( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  BufferImage image = GetBufferImage( isolate, args );
-
-  args.GetReturnValue().Set( v8::Integer::New( isolate, image.GetPixelFormat() ) );
-}
-
-/**
- * Inform Dali that the contents of the buffer have changed
- *
- * Example of updating the pixel buffer in the buffer image
- * ```
- *  var newPixelBufferData = [0, 255, 0, 255,   // green
- *                            255, 0, 0, 255,   // red
- *                            255, 0, 0, 255,   // red
- *                            0, 0, 255, 255];  // blue
- *
- *  var pixelBuffer = bufferImage.getBuffer();
- *  var pixelBufferDataArray = new Uint8Array(pixelBuffer);
- *  pixelBufferDataArray.set(newPixelBufferData, 0);
- *
- *  bufferImage.update();
- * ```
- * @method update
- * @for BufferImage
- */
-void BufferImageApi::Update( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  BufferImage image = GetBufferImage( isolate, args );
-
-  image.Update();
-}
-
-/**
- * Return whether BufferImage uses external data source or not.
- * @method isDataExternal
- * @for BufferImage
- * @return {Boolean} true if data is external
- */
-void BufferImageApi::IsDataExternal( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  BufferImage image = GetBufferImage( isolate, args );
-
-  args.GetReturnValue().Set( v8::Boolean::New( isolate, image.IsDataExternal() ) );
-}
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/image/buffer-image-api.h b/plugins/dali-script-v8/src/image/buffer-image-api.h
deleted file mode 100644 (file)
index 667cef3..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef DALI_V8PLUGIN_RESOURCE_BUFFER_IMAGE_API_H
-#define DALI_V8PLUGIN_RESOURCE_BUFFER_IMAGE_API_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/images/buffer-image.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace BufferImageApi
-{
-  /**
-   * Helper to get buffer-image from args.This()
-   */
-  BufferImage GetBufferImage( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args );
-
-
-  /**
-   * Constructor
-   */
-  Image New( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-
-  /**
-   * Buffer Image API see buffer-image.h for a description
-   */
-  void GetBuffer( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetBufferSize( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetBufferStride( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetPixelFormat( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void Update( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void IsDataExternal( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-}; // namespace BufferImageApi
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_RESOURCE_BUFFER_IMAGE_API_H
diff --git a/plugins/dali-script-v8/src/image/frame-buffer-image-api.cpp b/plugins/dali-script-v8/src/image/frame-buffer-image-api.cpp
deleted file mode 100644 (file)
index 49e59f3..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * 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.
- *
- */
-
-// CLASS HEADER
-#include "frame-buffer-image-api.h"
-
-// EXTERNAL INCLUDES
-#include <dali/public-api/images/frame-buffer-image.h>
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <image/image-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace FrameBufferImageApi
-{
-
-/**
- * FrameBufferImage represents a GLES Frame Buffer Object and contains the result
- * of an 'off screen' render pass of a RenderTask.
- * The FrameBufferImage can then be used with a Material (with optional shader
- * effects) and rendered to the screen.
- * @class FrameBufferImage
- * @extends Image
- */
-
-/**
- * @constructor
- * @method FrameBufferImage
- * @for FrameBufferImage
- * @param {Object} options
- * @param {Uint32Array} options.pixelBuffer Array of RGBA pixel data
- * @param {Integer} options.width image width
- * @param {Integer} options.height image height
- * @param {Object } [options.nativeImage] ** currently not supported **
- * @param {Integer} [options.pixelFormat] pixel format ( see dali constants, e.g. dali.PIXEL_FORMAT_RGB8888)
- * @return {Object} Image
- */
-Image New( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  v8::Local<v8::Value> options( args[0] );
-  if( !options->IsObject() )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "Missing param");
-    return FrameBufferImage();
-  }
-
-  v8::Local<v8::Object> obj = options->ToObject();
-
-  v8::Local<v8::Value> widthValue = obj->Get( v8::String::NewFromUtf8( isolate, "width" ) );
-  v8::Local<v8::Value> heightValue= obj->Get( v8::String::NewFromUtf8( isolate, "height" ) );
-
-  unsigned int width = 0;
-  unsigned int height = 0;
-
-  if( widthValue->IsUint32() && heightValue->IsUint32() )
-  {
-    width = widthValue->ToUint32()->Value();
-    height = heightValue->ToUint32()->Value();
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "Missing valid width and height params");
-    return FrameBufferImage();
-  }
-
-  Pixel::Format  pixelFormat = Pixel::RGB8888;
-  v8::Local<v8::Value> pixelFormatValue = obj->Get( v8::String::NewFromUtf8( isolate, "pixelFormat" ) );
-  if( pixelFormatValue->IsUint32() )
-  {
-     pixelFormat = static_cast<Pixel::Format>( pixelFormatValue->ToUint32()->Value() );
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "Pixel format not specified");
-    return FrameBufferImage();
-  }
-
-  return FrameBufferImage::New( width, height, pixelFormat );
-}
-
-} // FrameBufferImageApi
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/image/frame-buffer-image-api.h b/plugins/dali-script-v8/src/image/frame-buffer-image-api.h
deleted file mode 100644 (file)
index 9d2b2cf..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef DALI_V8PLUGIN_FRAME_BUFFER_IMAGE_API_H
-#define DALI_V8PLUGIN_FRAME_BUFFER_IMAGE_API_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/images/image.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace FrameBufferImageApi
-{
-
-  /**
-   * Constructor
-   */
-  Image New( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-
-}; // namespace FrameBufferImageApi
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_FRAME_BUFFER_IMAGE_API_H
diff --git a/plugins/dali-script-v8/src/image/image-api.cpp b/plugins/dali-script-v8/src/image/image-api.cpp
deleted file mode 100644 (file)
index 04b60a0..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "image-api.h"
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <image/image-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-Image ImageApi::GetImage( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::HandleScope handleScope( isolate );
-
-  v8::Local<v8::Object> object = args.This();
-  v8::Local<v8::External> field = v8::Local<v8::External>::Cast( object->GetInternalField(0) );
-  void* ptr = field->Value();
-
-  ImageWrapper* wrapper = static_cast< ImageWrapper *>(ptr);
-  return wrapper->GetImage();
-}
-
-/**
- * @constructor Image
- * @method Image
- * @for Image
- * @return {Object} Image
- */
-Image ImageApi::New( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  DALI_SCRIPT_EXCEPTION( isolate, "Image base class can not be constructed, try new dali.ResourceImage()");
-  return Image();
-}
-
-/**
- * Return the image width in pixels
- * @method getWidth
- * @for Image
- */
-void ImageApi::GetWidth( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Image image = GetImage( isolate, args );
-
-  args.GetReturnValue().Set( v8::Integer::New( isolate, image.GetWidth() ) );
-}
-/**
- * Return the image height in pixels
- * @method getHeight
- * @for Image
- */
-void ImageApi::GetHeight( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Image image = GetImage( isolate, args );
-
-  args.GetReturnValue().Set( v8::Integer::New( isolate, image.GetHeight() ) );
-}
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/image/image-api.h b/plugins/dali-script-v8/src/image/image-api.h
deleted file mode 100644 (file)
index 923fe70..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef DALI_V8PLUGIN_IMAGE_API_H
-#define DALI_V8PLUGIN_IMAGE_API_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/images/image.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace ImageApi
-{
-
-  /**
-   * Helper to get image from args.This()
-   */
-  Image GetImage( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args );
-
-
-  /**
-   * Constructor
-   */
-  Image New( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  /**
-   * Image API see image.h for a description
-   */
-  void GetWidth( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetHeight( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-}; // namespace ImageApi
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_IMAGE_API_H
diff --git a/plugins/dali-script-v8/src/image/image-wrapper.cpp b/plugins/dali-script-v8/src/image/image-wrapper.cpp
deleted file mode 100644 (file)
index 2ada2c7..0000000
+++ /dev/null
@@ -1,306 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "image-wrapper.h"
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <dali-wrapper.h>
-#include <image/image-api.h>
-#include <image/frame-buffer-image-api.h>
-#include <image/resource-image-api.h>
-#include <image/buffer-image-api.h>
-#include <shared/api-function.h>
-#include <shared/object-template-helper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-v8::Persistent<v8::ObjectTemplate> ImageWrapper::mImageTemplate;
-v8::Persistent<v8::ObjectTemplate> ImageWrapper::mResourceImageTemplate;
-v8::Persistent<v8::ObjectTemplate> ImageWrapper::mBufferImageTemplate;
-v8::Persistent<v8::ObjectTemplate> ImageWrapper::mFrameBufferImageTemplate;
-
-/**
- * pointer to a persistent template handle
- */
-struct ImageTemplate
-{
-  v8::Persistent<v8::ObjectTemplate>* imageTemplate;
-};
-
-/**
- * array of templates for each type of image
- */
-const ImageTemplate ImageTemplateLookup[]=
-{
-    { &ImageWrapper::mImageTemplate },              // IMAGE
-    { &ImageWrapper::mResourceImageTemplate },      // RESOURCE_IMAGE
-    { &ImageWrapper::mBufferImageTemplate  },       // BITMAP_IMAGE
-    { &ImageWrapper::mFrameBufferImageTemplate },   // FRAME_BUFFER_IMAGE
-
-};
-
-
-namespace // un-named name space
-{
-
-/**
- * Bitmask of API's that an image can support
- */
-enum ImageApiBitMask
-{
-  IMAGE_API              = 1 << 0,
-  BITMAP_IMAGE_API       = 1 << 1,
-  RESOURCE_IMAGE_API     = 1 << 2,
-  FRAME_BUFFER_IMAGE_API = 1 << 3,
-
-};
-
-/**
- * structure used for the ImageApiLookup.
- */
-struct ImageApiStruct
-{
-  const char* imageName;                  ///< name of the image, used to find out what type of image to construct
-  ImageWrapper::ImageType imageType;      ///< image type
-  Image (*constructor)( const v8::FunctionCallbackInfo< v8::Value >& args); ///< constructor
-  int supportApis;                        ///< supported API's
-};
-
-/**
- * Lookup table to match a image type with a constructor and supported API's.
- */
-const ImageApiStruct ImageApiLookup[]=
-{
-  {"Image",           ImageWrapper::IMAGE,              ImageApi::New,            IMAGE_API },
-  {"ResourceImage",   ImageWrapper::RESOURCE_IMAGE,     ResourceImageApi::New,    IMAGE_API | RESOURCE_IMAGE_API },
-  {"BufferImage",     ImageWrapper::BITMAP_IMAGE,       BufferImageApi::New,      IMAGE_API | BITMAP_IMAGE_API },
-  {"FrameBufferImage",ImageWrapper::FRAME_BUFFER_IMAGE, FrameBufferImageApi::New, IMAGE_API | FRAME_BUFFER_IMAGE_API },
-};
-
-const unsigned int ImageApiLookupCount = sizeof(ImageApiLookup)/sizeof(ImageApiLookup[0]);
-
-
-/**
- * given an image type return what api's it supports
- */
-int GetImageSupportedApis( ImageWrapper::ImageType type )
-{
-  return ImageApiLookup[ type].supportApis;
-}
-
-/**
- * Used for the ImageFunctionTable to map function names to functions
- * with for a specific API
- */
-struct ImageFunctions
-{
-  const char* name;               ///< function name
-  void (*function)( const v8::FunctionCallbackInfo< v8::Value >& args);
-  ImageApiBitMask api;
-};
-
-/**
- * Contains a list of all functions that can be called
- */
-const ImageFunctions ImageFunctionTable[]=
-{
-    /**************************************
-    * Image API (in order of image.h)
-    **************************************/
-    { "GetWidth",                ImageApi::GetWidth , IMAGE_API },
-    { "GetHeight",               ImageApi::GetHeight, IMAGE_API },
-
-    // resource-image API
-    { "GetLoadingState",         ResourceImageApi::GetLoadingState,     RESOURCE_IMAGE_API },
-    { "GetUrl",                  ResourceImageApi::GetUrl,              RESOURCE_IMAGE_API },
-    { "Reload",                  ResourceImageApi::Reload,              RESOURCE_IMAGE_API },
-
-    // buffer image API
-    { "GetBuffer",              BufferImageApi::GetBuffer,           BITMAP_IMAGE_API },
-    { "GetBufferSize",          BufferImageApi::GetBufferSize,       BITMAP_IMAGE_API },
-    { "GetBufferStride",        BufferImageApi::GetBufferStride,     BITMAP_IMAGE_API },
-    { "GetPixelFormat",         BufferImageApi::GetPixelFormat,      BITMAP_IMAGE_API },
-    { "Update",                 BufferImageApi::Update,              BITMAP_IMAGE_API },
-    { "IsDataExternal",         BufferImageApi::IsDataExternal,      BITMAP_IMAGE_API },
-
-    // Frame buffer image has no API
-    // Native image has no API
-
-};
-
-const unsigned int ImageFunctionTableCount = sizeof(ImageFunctionTable)/sizeof(ImageFunctionTable[0]);
-} //un-named space
-
-
-ImageWrapper::ImageWrapper( const Dali::Image& image, GarbageCollectorInterface& gc )
-: BaseWrappedObject( BaseWrappedObject::IMAGE , gc )
-{
-    mImage = image;
-}
-
-v8::Handle<v8::Object> ImageWrapper::WrapImage(v8::Isolate* isolate, const Dali::Image& image )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  v8::Local<v8::Object> object = WrapImage( isolate, image, GetImageType( image.GetTypeName() ) );
-
-  return handleScope.Escape( object );
-}
-v8::Handle<v8::Object> ImageWrapper::WrapImage(v8::Isolate* isolate, const Dali::Image& image, ImageType imageType )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  objectTemplate = GetImageTemplate( isolate, imageType);
-
-  // create an instance of the template
-  v8::Local<v8::Object> localObject = objectTemplate->NewInstance();
-
-  // create the Image wrapper
-  ImageWrapper* pointer =  new ImageWrapper( image, Dali::V8Plugin::DaliWrapper::Get().GetDaliGarbageCollector() );
-
-  // assign the JavaScript object to the wrapper.
-  // This also stores the Image object, in an internal field inside the JavaScript object.
-  pointer->SetJavascriptObject( isolate, localObject );
-
-  return handleScope.Escape( localObject );
-}
-
-v8::Local<v8::ObjectTemplate> ImageWrapper::GetImageTemplate( v8::Isolate* isolate, ImageType imageType )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  if( ImageTemplateLookup[ imageType ].imageTemplate->IsEmpty() )
-  {
-    objectTemplate = MakeImageTemplate( isolate, imageType );
-    ImageTemplateLookup[ imageType ].imageTemplate->Reset( isolate, objectTemplate );
-  }
-  else
-  {
-    // get the object template
-    objectTemplate = v8::Local<v8::ObjectTemplate>::New( isolate, *ImageTemplateLookup[ imageType ].imageTemplate );
-  }
-
-  return handleScope.Escape( objectTemplate );
-}
-
-v8::Handle<v8::ObjectTemplate> ImageWrapper::MakeImageTemplate( v8::Isolate* isolate, ImageType imageType )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  v8::Local<v8::ObjectTemplate> objTemplate = v8::ObjectTemplate::New();
-
-  objTemplate->SetInternalFieldCount( BaseWrappedObject::FIELD_COUNT );
-
-  // add intercepts for Signals on ResourceImage, we can't use HandleWrapper::AddIntercepts because Image doesn't inherit
-  // from Handle ( just baseHandle)
-  if ( imageType == RESOURCE_IMAGE )
-  {
-     ObjectTemplateHelper::AddSignalConnectAndDisconnect( isolate, objTemplate );
-  }
-
-  // find out what API's this image supports
-  int supportApis = GetImageSupportedApis( imageType );
-
-  // add our function properties
-  for( unsigned int i = 0; i < ImageFunctionTableCount; ++i )
-  {
-    const ImageFunctions property =  ImageFunctionTable[i];
-
-    // check to see if the image supports a certain type of API
-    // e.g. Bitmap will support IMAGE_API and BITMAP_IMAGE_API
-    if( supportApis &  property.api )
-    {
-      std::string funcName = V8Utils::GetJavaScriptFunctionName( property.name);
-
-      objTemplate->Set( v8::String::NewFromUtf8(   isolate, funcName.c_str() ),
-                      v8::FunctionTemplate::New( isolate, property.function ) );
-    }
-  }
-
-  return handleScope.Escape( objTemplate );
-}
-
-
-void ImageWrapper::NewImage( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate);
-
-  if(!args.IsConstructCall())
-  {
-      DALI_SCRIPT_EXCEPTION( isolate, "Image constructor called without 'new'");
-      return;
-  }
-
-  // find out the callee function name...e.g. BufferImage, ResourceImage
-  v8::Local<v8::Function> callee = args.Callee();
-  v8::Local<v8::Value> v8String = callee->GetName();
-  std::string typeName = V8Utils::v8StringToStdString( v8String );
-
-  ImageType imageType = GetImageType( typeName );
-
-  if( imageType == UNKNOWN_IMAGE_TYPE )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "unknown image type");
-    return;
-  }
-  Image image = (ImageApiLookup[imageType].constructor)( args );
-
-  if( ! image )
-  {
-    // a v8 exception will have been thrown by the constructor
-    return;
-  }
-
-  v8::Local<v8::Object> localObject = WrapImage( isolate, image, imageType );
-
-  args.GetReturnValue().Set( localObject );
-}
-
-Image ImageWrapper::GetImage()
-{
-  return mImage;
-}
-
-/**
- * given an image type name, e.g. returns the type, e.g. ImageWrapper::BITMAP_IMAGE
- */
-ImageWrapper::ImageType ImageWrapper::GetImageType( const std::string& name )
-{
-  for( unsigned int i = 0 ; i < ImageApiLookupCount ; i++ )
-  {
-    if( strncmp( ImageApiLookup[i].imageName, name.c_str(), name.length() ) == 0 )
-    {
-      return ImageApiLookup[i].imageType;
-    }
-  }
-  return ImageWrapper::UNKNOWN_IMAGE_TYPE;
-}
-
-
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/image/image-wrapper.h b/plugins/dali-script-v8/src/image/image-wrapper.h
deleted file mode 100644 (file)
index 948e706..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-#ifndef DALI_V8PLUGIN_IMAGE_WRAPPER_H
-#define DALI_V8PLUGIN_IMAGE_WRAPPER_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/images/image.h>
-
-// INTERNAL INCLUDES
-#include <shared/base-wrapped-object.h>
-#include <signals/signal-manager.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-
-/**
- * An Image  wrapper.
- * Provides access to Image specific functionality and V8 memory handling.
- */
-class ImageWrapper : public BaseWrappedObject
-{
-
-public:
-
-  /**
-   * Image type used an index,
-   * please update the table in ImageApiLookup if this list changes ( the enum is used as an index)
-   */
-  enum ImageType
-  {
-    UNKNOWN_IMAGE_TYPE = -1,
-    IMAGE               = 0,
-    RESOURCE_IMAGE      = 1,
-    BITMAP_IMAGE        = 2,
-    FRAME_BUFFER_IMAGE  = 3
-   };
-
-  /**
-   * Constructor
-   */
-  ImageWrapper( const Image& image,
-                GarbageCollectorInterface& gc );
-
-  /**
-   * Destructor
-   */
-  virtual ~ImageWrapper()
-  {
-  };
-
-  /**
-   * @brief Creates a new Image wrapped inside a Javascript Object.
-   * @note: the actor type ie 'ImageImage' is expected to be the name of the callee function.
-   * @param[in] args v8 function call arguments interpreted
-   */
-  static void NewImage( const v8::FunctionCallbackInfo< v8::Value >& args);
-
-  /**
-   * Wraps an image of a given type
-   */
-  static v8::Handle<v8::Object> WrapImage(v8::Isolate* isolate, const Dali::Image& image, ImageType imageType );
-
-  /**
-   * Wraps an image, the type is looked up from the image
-   */
-  static v8::Handle<v8::Object> WrapImage(v8::Isolate* isolate, const Dali::Image& image );
-
-  /**
-   * @return Image
-   */
-  Image GetImage();
-
-  /**
-   * @return signal manager pointer
-   */
-  virtual SignalManager* GetSignalManager() { return &mSignalManager;}
-
-  // The Image ObjectTemplate, we cache templates so we don't have
-  // keep generating them everytime we want to create an Image
-  static v8::Persistent<v8::ObjectTemplate> mImageTemplate;
-  static v8::Persistent<v8::ObjectTemplate> mResourceImageTemplate;
-  static v8::Persistent<v8::ObjectTemplate> mBufferImageTemplate;
-  static v8::Persistent<v8::ObjectTemplate> mFrameBufferImageTemplate;
-
-private:
-
-  /**
-   * Helper
-   */
-  static ImageType GetImageType( const std::string& name );
-
-  static v8::Handle<v8::ObjectTemplate> MakeImageTemplate( v8::Isolate* isolate, ImageType imageType );
-  static v8::Local<v8::ObjectTemplate> GetImageTemplate( v8::Isolate* isolate , ImageType imageType );
-
-
-  Image mImage;                     ///< Image handle
-  SignalManager mSignalManager;     ///< Signal Manager
-
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_IMAGE_WRAPPER_H
diff --git a/plugins/dali-script-v8/src/image/resource-image-api.cpp b/plugins/dali-script-v8/src/image/resource-image-api.cpp
deleted file mode 100644 (file)
index c119b53..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "resource-image-api.h"
-
-// EXTERNAL INCLUDES
-#include <dali/public-api/images/image-operations.h>
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <image/image-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-ResourceImage ResourceImageApi::GetResourceImage( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::HandleScope handleScope( isolate );
-
-  v8::Local<v8::Object> object = args.This();
-  v8::Local<v8::External> field = v8::Local<v8::External>::Cast( object->GetInternalField(0) );
-  void* ptr = field->Value();
-
-  ImageWrapper* wrapper = static_cast< ImageWrapper *>(ptr);
-  return ResourceImage::DownCast( wrapper->GetImage() );
-}
-
-/**
- * Create a new resource image object.
- *
- * @constructor
- * @method ResourceImage
- * @for ResourceImage
- * @param {Object} options
- * @param {String} options.url The URL of the image file to use.
- * @param {Float} options.width The width to fit the loaded image to
- * @param {Float} options.height The height to fit the loaded image to
- * @return {Object} Image
- */
-Image ResourceImageApi::New( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  std::string url;
-  ImageDimensions dimensions;
-  v8::Local<v8::Value> options( args[0] );
-
-  if( !options->IsObject() )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "Missing params" );
-    return Image();
-  }
-
-  v8::Local<v8::Object> optionsObject = options->ToObject();
-
-  v8::Local<v8::Value> urlValue = optionsObject->Get( v8::String::NewFromUtf8( isolate, "url" ) );
-  if( urlValue->IsString() )
-  {
-    url = V8Utils::v8StringToStdString( urlValue );
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "Missing url");
-    return Image();
-  }
-
-  v8::Local<v8::Value> widthValue = optionsObject->Get( v8::String::NewFromUtf8( isolate, "width" ) );
-  if( widthValue->IsUint32() )
-  {
-    const uint32_t width = widthValue->ToUint32()->Value();
-    dimensions = ImageDimensions( width, dimensions.GetHeight() );
-  }
-
-  v8::Local<v8::Value> heightValue = optionsObject->Get( v8::String::NewFromUtf8( isolate, "height" ) );
-  if( heightValue->IsUint32() )
-  {
-    const uint32_t height = heightValue->ToUint32()->Value();
-    dimensions = ImageDimensions( dimensions.GetWidth(), height );
-  }
-
-  return ResourceImage::New( url, dimensions );
-}
-
-/**
- * Query whether the image data has loaded.
- *
- * The asynchronous loading begins when the Image object is created.
- * After the Image object is discarded, the image data will be released from memory
- * this will occur when the object is garbage collected.
- * @method getLoadPolicy
- * @for ResourceImage
- * @return {Integer} loading state either dali.RESOURCE_LOADING, dali.RESOURCE_LOADING_SUCCEEDED or dali.RESOUCE_LOADING_FAILED
- */
-void ResourceImageApi::GetLoadingState( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  ResourceImage image = GetResourceImage( isolate, args );
-
-  args.GetReturnValue().Set( v8::Integer::New( isolate, image.GetLoadingState() ) );
-}
-
-/**
- * Return the image url
- *
- * @method getUrl
- * @for ResourceImage
- * @return {String} filename
- */
-void ResourceImageApi::GetUrl( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  ResourceImage image = GetResourceImage( isolate, args );
-
-  v8::Local<v8::String> v8String = v8::String::NewFromUtf8( isolate, image.GetUrl().c_str() );
-  args.GetReturnValue().Set( v8String  );
-}
-
-
-/**
- * Reload the image
- * @note if Image is offstage and OnDemand policy is set, reload request is ignored.
- * @method reload
- * @for ResourceImage
- */
-void ResourceImageApi::Reload( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  ResourceImage image = GetResourceImage( isolate, args );
-  image.Reload();
-}
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/image/resource-image-api.h b/plugins/dali-script-v8/src/image/resource-image-api.h
deleted file mode 100644 (file)
index fb052fb..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef DALI_V8PLUGIN_RESOURCE_IMAGE_API_H
-#define DALI_V8PLUGIN_RESOURCE_IMAGE_API_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/images/resource-image.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace ResourceImageApi
-{
-  /**
-   * Helper
-   */
-  ResourceImage GetResourceImage( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  /**
-   * Constructor
-   */
-  Image New( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-
-  /**
-   * Resource Image API see resource-image.h for a description
-   */
-  void GetLoadingState( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetUrl( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void Reload( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-}; // namespace ResourceImageApi
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_RESOURCE_IMAGE_API_H
diff --git a/plugins/dali-script-v8/src/interfaces/garbage-collector-interface.h b/plugins/dali-script-v8/src/interfaces/garbage-collector-interface.h
deleted file mode 100644 (file)
index 1bf4957..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-#ifndef DALI_V8PLUGIN_GARBAGE_COLLECTOR_INTERFACE_H
-#define DALI_V8PLUGIN_GARBAGE_COLLECTOR_INTERFACE_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-class BaseWrappedObject;
-
-/**
- * @brief Tracks all Dali-wrapped objects that are used by v8.
- * Required to delete any wrapped objects that are not cleaned up after V8 has shut down.
- *
- * Unfortunately the v8 garbage collection may never run while executing a script,
- * and currently doesn't run on shutdown (for performance reasons with Chrome browser).
- *
- * This means we have to manually keep track of all objects, and perform our
- * own garbage collection on shut down.
- *
- * For every object created:
- * - Store a weak handle to it
- * - Register a callback to be informed if v8 garbage collector decides it's no longer required.
- * -- Call back is done using v8 SetWeak(), which states:
- *    "There is no guarantee as to *when* or even *if* the callback is invoked."
- *
- */
-class GarbageCollectorInterface
-{
-
-public:
-
-  /**
-   * Register an object with Dali's garbage collector
-   * @param object a wrapped object
-   */
-  virtual void Register( BaseWrappedObject* object ) = 0;
-
-  /**
-   * Un-register an object with Dali's garbage collector
-   * @param object a wrapped object
-   */
-  virtual void UnRegister( BaseWrappedObject* object )  = 0;
-
-  /**
-   * Delete all
-   */
-  virtual void GarbageCollect() = 0;
-
-protected:
-
-  /**
-   * Constructor
-   */
-  GarbageCollectorInterface()
-  {
-  }
-
-  /**
-   * virtual destructor
-   */
-  virtual ~GarbageCollectorInterface()
-  {
-  }
-
-  // Undefined copy constructor.
-  GarbageCollectorInterface( const GarbageCollectorInterface& );
-
-  // Undefined assignment operator.
-  GarbageCollectorInterface& operator=( const GarbageCollectorInterface& );
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_GARBAGE_COLLECTOR_INTERFACE_H
diff --git a/plugins/dali-script-v8/src/module-loader/module-loader.cpp b/plugins/dali-script-v8/src/module-loader/module-loader.cpp
deleted file mode 100644 (file)
index de6cd01..0000000
+++ /dev/null
@@ -1,438 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "module-loader.h"
-
-// EXTERNAL INCLUDES
-#include <dali/public-api/common/vector-wrapper.h>
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-ModuleLoader::ModuleLoader()
-{
-}
-
-ModuleLoader::~ModuleLoader()
-{
-  VectorBase::SizeType count =  mModules.Count();
-  for( VectorBase::SizeType  i = 0; i < count ; ++i)
-  {
-    Module* module = mModules[i];
-    delete module;
-  }
-  mModules.Clear();
-}
-
-bool ModuleLoader::CompileAndRun(v8::Isolate* isolate,
-    const std::string& sourceCode,
-    const std::string& sourceFileName )
-{
-
-  v8::HandleScope handleScope( isolate );
-  v8::TryCatch tryCatch;
-
-  // convert from string to v8 string
-  v8::Local<v8::String> source = v8::String::NewFromUtf8( isolate, sourceCode.c_str());
-  v8::Local<v8::String> file = v8::String::NewFromUtf8( isolate, sourceFileName.c_str());
-  v8::ScriptOrigin origin(file);
-
-  // Compile the script
-  v8::Local<v8::Script> script = v8::Script::Compile( source, &origin);
-
-  // See if an exception has been thrown
-  if( tryCatch.HasCaught() || script.IsEmpty() )
-  {
-    // Print errors that happened during compilation.
-    V8Utils::ReportException( isolate, &tryCatch );
-    return false;
-  }
-
-  // Run the script
-  v8::Local<v8::Value> result = script->Run();
-
-  // in V8 test code ( they check for an exception and empty return object )
-  if( tryCatch.HasCaught() || result.IsEmpty() )
-  {
-    // Print errors that happened during execution.
-    V8Utils::ReportException( isolate, &tryCatch);
-    return false;
-  }
-
-  return true;
-}
-
-bool ModuleLoader::ExecuteScript( v8::Isolate* isolate,
-                                  const std::string& sourceCode,
-                                  const std::string& sourceFileName )
-{
-  StoreScriptInfo(  sourceFileName );
-
-  return CompileAndRun(isolate, sourceCode, sourceFileName );
-}
-
-bool ModuleLoader::ExecuteScriptFromFile( v8::Isolate* isolate,
-                                          const std::string& fileName  )
-{
-  std::string contents;
-
-  V8Utils::GetFileContents( fileName, contents );
-
-  if( contents.empty() )
-  {
-    return false;
-  }
-
-  return ExecuteScript( isolate, contents, fileName );
-}
-
-/**
- * ### var module = require("moduleName");
- *
- *
- * There is no standard for modules or the 'require' keyword in JavaScript.<br />
- * However CommonJS have this: http://wiki.commonjs.org/wiki/Modules/1.1.1  ( used by Node.js).
- * <br /> <br />
- *
- * The concept behind 'require' keyword is simple, it allows you to include another
- * JavaScript file, which exports an API / function / constructor / singleton.
- *
- *
- *     // example_module.js
- *     exports.hello = function() { return "hello world" }
- *
- * <br />
- *
- *     // main.js
- *     var example = require( "example_module.js");
- *
- *     log( example.hello() );
- *
- *
-
- * ### Module writers guide:
- *
- *
- * #### Exporting as a namespace
- *
- * Example of using a namespace to export functions / objects.
- *
- *     // filesystem-helper.js
- *     exports.version = "FileSystem helper 1.0";
- *     exports.open = function() { }
- *     exports.close = function() { }
- *     exports.read = function() { }
- *     exports.write = function() { ... }
- *     exports.fileSize = function() {...}
- *
- * <br />
- *
- *     // main.js
- *     var fs = require( "filesystem-helper.js");
- *
- *     log( fs.version );
- *
- *     var file = fs.open("myfile.txt");
- *     var data = fs.read( file );
- *
- *
- *
- * #### Exporting as a function
- *
- * In this example we are using module.exports directly to change it
- * from an object literal with name-value pairs (exports object) to a function.
- *
- *     // my_first_module.js
- *     module.exports = function() {  log("helloWorld"); }
- *
- * <br />
- *
- *     // main.js
- *     var func = require("my_first_module.js");
- *     func();      // prints out hello-world
- *
- *
- * #### Exporting as a constructor
- *
- *
- *     // ImageView.js
- *     function ImageView( position, orientation, image, name )
- *     {
- *         this = new dali.Control("ImageView");
- *         this.image = image;
- *         this.position = position;
- *         this.orientation = orientation;
- *         this.name = name;
- *     }
- *     module.exports = ImageView;
- *
- * <br />
- *
- *     // main.js
- *
- *     var ImageView = require(" ImageView.js");
- *
- *     var imageView = new ImageView( position, orientation, image, "my first image view");
- *
- * #### Exporting as a singleton
- *
- * By exporting a singleton you have an object which has shared state between
- * any modules using it.
- *
- * example:
- *
- *     // image-database.js
- *
- *     function ImageDatabase( )
- *     {
- *       this.addImage  = function() {  ... };
- *       this.removeImage = function() { ... };
- *       this.getImage = function()  { ...};
- *       this.getImageCount = function() { ... };
- *     }
- *
- *     module.exports = new ImageDatabase();
- *
- *
- * <br />
- *
- *     // main.js
- *
- *     var database = require('image-database.js');
- *
- *     database.addImage( myImage );
- *
- * <br />
- *
- *     // another-module.js
- *     var database = require('image-database.js');
- *
- *     // gets the same database object as main.js
- *
- *
- * The first call to require('image-database.js') will create the image database.
- * Further calls, will return the same instance, because require caches module.exports.
- * Otherwise it would have to recompile and run the module every time require is called.
- *
- * ## Notes
- *
- * #### Automatic wrapping of a module by DALi:
- *
- * The module is automatically wrapped in a function by DALi before being executed ( similar technique to Node.js). </br>
- * This is to prevent any functions / variables declared by the module entering the global namespace. </br>
- * Currently the module will have access to all DALi global functions, like log, require and the DALi API ( actors / stage etc).</br>
- *
- *
- *     // Parameters passed to the internally generated function
- *     // module = reference to current module
- *     // module.exports = defines what the module exports
- *     // exports = reference to module.exports
- *     // __filename = module filename
- *     // __dirname = module directory
- *
- *     function createModuleXYZ( exports ( === module.exports), module, __filename, __dirname )
- *     {
- *       //
- *       // Module code automatically inserted here.
- *       //
- *       log(" my first module ");
- *       var version = "1.3";      // this won't pollute global namespace
- *       exports.version = version;
- *       exports.logActorPosition = function( actorName )
- *       {
- *         var actor = dali.stage.getRootLayer().findChildByName(actorName );
- *         log( actor.x + "," + actor.y + "," + actor.z );
- *        }
- *       //
- *       // End module code
- *       //
- *
- *       return module.exports;
- *     }
-
- *
- * Initially module.exports is an object literal with name-value pairs ( exports object).
- * However it can be re-assigned to a constructor / function / singleton object as shown
- * in the examples above.
- *
- *
- *  ### Circular dependencies:
- *
- *  DALi JS supports circular dependencies as required by the CommonJS specification.
- *
- *  #### a.js
- *
- *
- *     export.version = "1.3"
- *     export.loaded = false;
- *     var bModule = require('b.js')
- *     export.loaded = true;
- *
- *  #### b.js
- *
- *     var aModule = require('a.js')
- *     log( "aModule version = " + aModule.version + ", aModule loaded = " + aModule.loaded );
- *
- *     //prints  aModule = 1.3, aModule loaded = false
- *
- *  #### main.js
- *
- *      var aModule = require("a.js");
- *
- *
- *  When b.js requires a.js, it is given everything that is exported from a.js, up to the point
- *  b.js is required by a.js.
- *
- * ### 'require' background
- *
- * There is alternative to module spec in CommonJS called RequireJs ( http://requirejs.org/docs/node.html) <br />
- * DALi JS tries to follows the CommonJS  specification (used by Node.js) as it
- * is supposed to be better suited to server side development. <br /><br />
- *
- * @method require
- * @for ModuleLoader
- *
- */
-void ModuleLoader::Require(const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  bool found( false );
-  std::string fileName = V8Utils::GetStringParameter( PARAMETER_0, found, isolate , args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "require missing module name");
-    return;
-  }
-
-  // strip off any path / .js
-  std::string moduleName;
-  V8Utils::GetModuleName( fileName, moduleName );
-
-  // see if the module already exists
-  const Module* existingModule = FindModule( moduleName );
-  if( existingModule )
-  {
-    // printf(" using existing module %s \n",moduleName.c_str() );
-    args.GetReturnValue().Set( existingModule->mExportsObject );
-    return;
-  }
-
-  std::string path = mCurrentScriptPath;  // path of top level script being executed
-  std::string contents;
-  V8Utils::GetFileContents(path + fileName, contents);
-
-  // wrap the module in a function to protect global namespace.
-  // the create function itself is global so we make it unique for each module
-  // For reference nodeJs does this as an anonymous function, but we're calling it from native side
-  // so need to pass parameters  / get a name for it.
-  std::string functionName ="__createModule" +  moduleName;
-  std::string source = "function " + functionName + "( exports, module, __filename, __directory)  { ";
-  source+= contents;
-  source+=" \n };";  // close the function
-
-  CompileAndRun( isolate, source, fileName );
-
-  // We need to create module object, so that the module can read / write properties to it
-
-  v8::Local<v8::Object> moduleObject = v8::Object::New( isolate );
-  v8::Local<v8::Object> exportsObject = v8::Object::New( isolate );
-  moduleObject->Set( v8::String::NewFromUtf8( isolate, "exports"),  exportsObject );
-  moduleObject->Set( v8::String::NewFromUtf8( isolate, "id"), v8::String::NewFromUtf8( isolate ,moduleName.c_str() ) );
-
-  // store the module exports object now, this is to allow for circular dependencies.
-  // If this-module requires another module, which then requires this module ( creating a circle), it will be given an export object
-  // which contains everything exported so far.
-  Module* module = StoreModule( path, fileName, moduleName, isolate, exportsObject );
-
-  v8::Local<v8::Context> currentContext =  isolate->GetCurrentContext();
-
-  // get the CreateModule function
-  v8::Local<v8::Function> createModule = v8::Local<v8::Function>::Cast(currentContext->Global()->Get(v8::String::NewFromUtf8( isolate, functionName.c_str() )));
-
-  // add the arguments
-  std::vector< v8::Local<v8::Value> > arguments;
-  arguments.push_back( exportsObject );
-  arguments.push_back( moduleObject );
-  arguments.push_back( v8::String::NewFromUtf8( isolate, fileName.c_str() ));
-  arguments.push_back( v8::String::NewFromUtf8( isolate, path.c_str() ));
-
-
-  // call the CreateModule function
-  createModule->Call( createModule, arguments.size(), &arguments[0]); //[0]
-
-  // get the module.export object, the module writer may have re-assinged module.exports, so the exports object
-  // no longer references it.
-  v8::Local<v8::Value> moduleExportsValue = moduleObject->Get( v8::String::NewFromUtf8( isolate, "exports"));
-  v8::Local<v8::Object>  moduleExports = moduleExportsValue->ToObject();
-
-  // Re-store the export ( possible nothing happens, because exports hasn't been re-assigned).
-  module->mExportsObject.Reset( isolate, moduleExports);
-
-  args.GetReturnValue().Set( moduleExports );
-
-}
-
-void ModuleLoader::StorePreBuiltModule( v8::Isolate* isolate, v8::Local<v8::Object>& exportObject, const std::string& name )
-{
-  StoreModule( "", name, name, isolate, exportObject );
-}
-
-void ModuleLoader::StoreScriptInfo( const std::string& sourceFileName )
-{
-  V8Utils::GetFileDirectory( sourceFileName, mCurrentScriptPath);
-}
-
-Module* ModuleLoader::StoreModule( const std::string& path,
-                                const std::string& fileName,
-                                const std::string& moduleName,
-
-                                v8::Isolate* isolate,
-                                v8::Local<v8::Object>& moduleExportsObject )
-{
-  Module* module = new Module( path, fileName, moduleName, isolate, moduleExportsObject );
-  mModules.PushBack( module );
-  return module;
-
-}
-
-const Module* ModuleLoader::FindModule( const std::string& moduleName )
-{
-  VectorBase::SizeType count =  mModules.Count();
-  for( VectorBase::SizeType  i = 0; i < count ; ++i)
-  {
-    const Module* module = mModules[i];
-    if (module->mModuleName == moduleName )
-    {
-      return module;
-    }
-  }
-  return NULL;
-}
-
-
-} // V8Plugin
-
-} // Dali
diff --git a/plugins/dali-script-v8/src/module-loader/module-loader.h b/plugins/dali-script-v8/src/module-loader/module-loader.h
deleted file mode 100644 (file)
index 1ef3692..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-#ifndef DALI_V8PLUGIN_MODULE_LOADER_H
-#define DALI_V8PLUGIN_MODULE_LOADER_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <string.h>
-#include <dali/public-api/common/dali-vector.h>
-
-// INTERNAL INCLUDES
-#include <module-loader/module.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-/**
- *
- * Responsible for executing JavaScript source code.
- * This includes loading other JavaScript files that may be referenced
- * inside JavaScript using the 'require' keyword.
- *
- * Notes:
- *
- * A module named with a forward slash is loaded as an absolute path:
- * E.g. require "/usr/apps/scripts/my_module.js"
- *
- * A module pre-fixed with a dot slash ( current directory) then the path is relative
- * to the calling scripts path. E.g.
- *
- * -- my_first.js --
- * require "./circle.js";   // load circle.js from same directory as my_first.js
- *
- * @TODO
- * ----------
- * Without a leading '/' or './' the module is loaded from the DALi modules directory or
- * the applications user defined module directory.
- * E.g. require "dali-spline.js"    // search dali-module directory first, then any user
- * defined module locations.
- * ------------
- *
- *
- */
-class ModuleLoader
-{
-public:
-
-  /**
-   * @brief Constructor
-   * @param[in] isolate v8 isolate
-   * @param[in] daliObject dali exports object, used when developer does require('dali');
-   */
-  ModuleLoader();
-
-  /**
-   * @brief non virtual destructor, not intended as a base class
-   */
-  ~ModuleLoader();
-
-
-  /**
-   * @brief Execute a script from a file
-   * @param[in] isolate v8 isolate
-   * @param[in] fileName file name
-   * @return true on success, false on failure
-   *
-   */
-  bool ExecuteScriptFromFile( v8::Isolate* isolate, const std::string& fileName );
-
-
-  /**
-   * @brief Execute a script
-   * @param[in] isolate v8 isolate
-   * @param[in] sourceCode source code to run
-   * @param[in] sourceFileName source file name
-   * @return true on success, false on failure
-   */
-  bool ExecuteScript( v8::Isolate* isolate,
-                      const std::string& sourceCode,
-                      const std::string& sourceFileName );
-
-
-  /**
-   * @brief Implements JavaScript Require functionality
-   * @param[in] args arguments passed to require. The return value is set using   args.GetReturnValue().Set(
-   */
-  void Require( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  /**
-   * @brief
-   * Stores a pre compiled object as a module.
-   * Currently used for storing the Dali object, so the developer can
-   * perform  var dali = require('dali');
-   * @param[in] isolate v8 isolate
-   * @param[in] exportObject export object
-   * @param[in] name module name, used for the require('name') lookup
-   */
-  void StorePreBuiltModule( v8::Isolate* isolate, v8::Local<v8::Object>& exportObject, const std::string& name );
-
-private:
-
-  /**
-   * Compile and run the JavaScript code
-   * @param[in] sourceCode source code to run
-   * @param[in] sourceFileName source file name
-   */
-  bool CompileAndRun(v8::Isolate* isolate,
-                     const std::string& sourceCode,
-                     const std::string& sourceFileName );
-
-  /**
-   * @brief Store information about the current script
-   * @param[in] sourceFileName source file name
-   */
-  void StoreScriptInfo( const std::string& sourceFileName );
-
-  /**
-   * @brief Store module information
-   * @param[in] sourceFileName source file name
-   * @return module object
-   */
-  Module* StoreModule( const std::string& path,
-                    const std::string& fileName,
-                    const std::string& moduleName,
-                    v8::Isolate* isolate,
-                    v8::Local<v8::Object>& moduleExportsObject );
-
-  /**
-   * @brief Find a module
-   * @param[in] moduleName module name
-   * @return module
-   */
-  const Module* FindModule( const std::string& moduleName );
-
-private:
-
-  Dali::Vector< Module*> mModules; ///< vector of modules
-  std::string mCurrentScriptPath;  ///< path of the current script being executed (via ExecuteScript).
-
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_MODULE_LOADER_H
diff --git a/plugins/dali-script-v8/src/module-loader/module.cpp b/plugins/dali-script-v8/src/module-loader/module.cpp
deleted file mode 100644 (file)
index 1e095ee..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 2015 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 "module.h"
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-Module::Module()
-{
-
-}
-
-Module::Module( const std::string& path,
-              const std::string& fileName,
-              const std::string& moduleName,
-
-              v8::Isolate* isolate,
-              v8::Local<v8::Object>& exportsObject)
-:mFileName( fileName ),
- mPath( path),
- mModuleName(moduleName)
-
-{
-  mExportsObject.Reset( isolate, exportsObject);
-}
-
-Module::~Module()
-{
-
-}
-
-
-
-} // V8Plugin
-
-} // Dali
diff --git a/plugins/dali-script-v8/src/module-loader/module.h b/plugins/dali-script-v8/src/module-loader/module.h
deleted file mode 100644 (file)
index fe92675..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-#ifndef DALI_V8PLUGIN_MODULE_H
-#define DALI_V8PLUGIN_MODULE_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <string>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-/**
- *
- * Module class,
- * contains
- *
- */
-class Module
-{
-public:
-
-    Module(const std::string& path,
-          const std::string& fileName,
-          const std::string& moduleName,
-
-        v8::Isolate* isolate,
-        v8::Local<v8::Object>& exportsObject);
-
-    ~Module();
-
-    std::string mFileName;
-    std::string mPath;
-    std::string mModuleName;
-
-
-    /**
-     *  holds the exports object
-     *  e.g.  exports.hello = function() {" hello world"}
-     */
-    v8::Persistent<v8::Object> mExportsObject;
-
-    /*
-     * Currently we allow the modules context to be released after it has been
-     * compiled and run ( so we don't need to store it).
-     * Data is shared between contexts which suggests
-     * the module exports object can be kept alive if the context it was created in is deleted.
-     * If this is not the case, then start to store the context.
-     */
-    // v8::Persistent<v8::Context> mContext.
-
-private:
-
-    Module();
-
-    Module( const Module& );            ///< undefined copy constructor
-    Module& operator=( const Module& ); ///< undefined assignment operator
-
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_MODULE_H
diff --git a/plugins/dali-script-v8/src/object/handle-wrapper.cpp b/plugins/dali-script-v8/src/object/handle-wrapper.cpp
deleted file mode 100644 (file)
index fed77ce..0000000
+++ /dev/null
@@ -1,332 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "handle-wrapper.h"
-
-// EXTERNAL INCLUDES
-#include <sstream>
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <shared/base-wrapped-object.h>
-#include <shared/object-template-helper.h>
-#include <object/property-value-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace // un-named name space
-{
-
-/**
- * Contains a list of all functions that can be called
- */
-const ApiFunction HandleFunctionTable[]=
-{
-  { "RegisterAnimatableProperty",            HandleWrapper::RegisterAnimatableProperty },
-  { "RegisterCustomProperty",                HandleWrapper::RegisterCustomProperty     },
-};
-
-const unsigned int HandleFunctionTableCount = sizeof(HandleFunctionTable)/sizeof(HandleFunctionTable[0]);
-} //un-named space
-
-/**
- * @class Handle
- */
-
-HandleWrapper::HandleWrapper( BaseWrappedObject::Type type,
-    Handle handle,
-    GarbageCollectorInterface& gc ) :
- BaseWrappedObject( type, gc ),
- mHandle( handle )
-{
-}
-
-HandleWrapper::~HandleWrapper()
-{
-
-}
-HandleWrapper*  HandleWrapper::Unwrap( v8::Isolate* isolate, v8::Handle< v8::Object> obj)
-{
-  v8::HandleScope handleScope( isolate );
-
-  v8::Local<v8::External> field = v8::Local<v8::External>::Cast( obj->GetInternalField(0) );
-  void* ptr = field->Value();
-  return static_cast< HandleWrapper *>(ptr);
-}
-
-// may have to do this IsUpper to intercept function calls or as function?
-void HandleWrapper::PropertyGet( v8::Local<v8::String> propertyName,
-                                        const v8::PropertyCallbackInfo<v8::Value>& info)
-{
-  v8::Isolate* isolate = info.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  // get the property name
-  std::string name = V8Utils::v8StringToStdString( propertyName );
-
-  if( std::isupper( name[0] ))
-  {
-    return;
-  }
-
-  // unwrap the object
-  HandleWrapper* handleWrapper = Unwrap( isolate, info.This() );
-  Handle handle =  handleWrapper->mHandle;
-
-  // get the property index
-  Dali::Property::Index index = handle.GetPropertyIndex( name );
-
-  if(index != Dali::Property::INVALID_INDEX)
-  {
-    Dali::Property::Value value = handle.GetProperty(index);
-
-    // Simple Dali properties (ints, strings, bools etc) are stored as JavaScript primitives (v8::Boolean ...)
-    // more complex properties (Vectors, Rectangles...) are wrapped by a JavaScript object
-    v8::Local<v8::Object> ret = PropertyValueWrapper::WrapDaliProperty( isolate, value );
-
-    info.GetReturnValue().Set( ret );
-  }
-  else
-  {
-    //  std::string error="Invalid property Get for "+name + "\n";
-    // DALI_SCRIPT_EXCEPTION( isolate, error );
-  }
-
-}
-void HandleWrapper::PropertySet( v8::Local<v8::String> propertyName,
-                  v8::Local<v8::Value> javaScriptValue,
-                  const v8::PropertyCallbackInfo<v8::Value>& info)
-{
-
-  v8::Isolate* isolate = info.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  // get the property name
-  std::string name = V8Utils::v8StringToStdString( propertyName );
-
-  // try to filter out function calls before going to the property system
-  // @todo use installed functions to generate a map
-  if( ( name.compare(0,2,"is") == 0 )  ||
-      ( name.compare(0,3,"get") == 0 ) ||
-      ( name.compare(0,3,"add") == 0 ) ||
-      ( name.compare(0,3,"set") == 0 ) ||
-      ( name.compare(0,3,"get") == 0 ) ||
-      ( name.compare(0,4,"find") == 0 ) ||
-      ( name.compare(0,6,"remove") == 0 )
-     )
-  {
-    //
-    return;
-  }
-  // unwrap the object
-  HandleWrapper* handleWrapper = Unwrap( isolate, info.This() );
-  if( !handleWrapper )
-  {
-    // printf("setting property name %s \n", name.c_str());
-    return;
-  }
-
- // DALI_ASSERT_DEBUG( handleWrapper && "not a dali object");
-  Handle handle =  handleWrapper->mHandle;
-
-  Dali::Property::Index index = handle.GetPropertyIndex( name );
-
-  if(index != Dali::Property::INVALID_INDEX)
-  {
-    Dali::Property::Type type = handle.GetPropertyType(index);
-
-    // we know the type we want to set ( int, vector, etc..)
-    // try and convert the javascript value in to the type we want.
-    Dali::Property::Value value = PropertyValueWrapper::ExtractPropertyValue( isolate, javaScriptValue, type);
-
-    if( Dali::Property::NONE == value.GetType() )
-      {
-        std::stringstream msg;
-        msg << "Invalid property Set: '";
-        msg << name;
-        msg << "(Index = ";
-        msg << index;
-        msg << ")";
-        msg << "' Cannot convert value to correct type: (";
-        msg << type;
-        msg << ")";
-        msg << Dali::PropertyTypes::GetName(type);
-        DALI_SCRIPT_EXCEPTION( isolate, msg.str().c_str());
-      }
-      else
-      {
-        handle.SetProperty( index, value );
-      }
-  }
-  else
-  {
-    // Trying to set the value for a property that is not registered yet.
-    std::stringstream msg;
-    msg << "Trying to set the value of an unregistered property: ";
-    msg << name;
-    DALI_SCRIPT_WARNING( msg.str().c_str() );
-
-    // Register the custom property automatically.
-    handle.RegisterProperty( name, PropertyValueWrapper::ExtractPropertyValue( isolate, javaScriptValue), Property::READ_WRITE );
-  }
-}
-
-void HandleWrapper::AddInterceptsToTemplate( v8::Isolate* isolate, v8::Local<v8::ObjectTemplate>& objTemplate )
-{
-  v8::HandleScope handleScope( isolate );
-
-  objTemplate->SetNamedPropertyHandler( HandleWrapper::PropertyGet, HandleWrapper::PropertySet);
-
-  // add function properties
-  ObjectTemplateHelper::InstallFunctions( isolate, objTemplate, HandleFunctionTable, HandleFunctionTableCount );
-
-  ObjectTemplateHelper::AddSignalConnectAndDisconnect( isolate, objTemplate );
-
-}
-
-/**
- * Register a new animatable property.
- *
- * The object should support dynamic properties.
- * Property names are expected to be unique, but this is not enforced.
- * Property indices are unique to each registered custom property in a given object.
- * returns dali.PROPERTY_INVALID_INDEX if registration failed. This can happen if you try
- * to register animatable property on an object that does not have scene graph object.
- *
- * @method registerAnimatableProperty
- * @for Handle
- * @param {string} name The name of the property.
- * @param {Object} propertyValue The new value of the property.
- * @return {integer} The index of the property or dali.PROPERTY_INVALID_INDEX if registration failed
- * @example
- *
- *     var morphPropertyIndex = actor.registerAnimatableProperty("uMorphAmount", 0.0f);
- *     var fadeColorPropertyIndex = handle.registerAnimatableProperty("uFadeColor", [1.0, 0.0, 0.0, 1.0]);
- *
- */
-void HandleWrapper::RegisterAnimatableProperty( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  // unwrap the object
-  HandleWrapper* handleWrapper = Unwrap( isolate, args.This() );
-  if( !handleWrapper )
-  {
-    return;
-  }
-
-  Handle handle =  handleWrapper->mHandle;
-
-  bool found( false );
-  std::string propertyName = V8Utils::GetStringParameter( PARAMETER_0, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad property name parameter" );
-    return;
-  }
-
-  found = false;
-  Dali::Property::Value daliPropertyValue = V8Utils::GetPropertyValueParameter(PARAMETER_1, found, isolate, args );
-  if( !found || Dali::Property::NONE == daliPropertyValue.GetType() )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad property value parameter" );
-    return;
-  }
-  else
-  {
-    args.GetReturnValue().Set( v8::Integer::New( isolate, handle.RegisterProperty(propertyName, daliPropertyValue) ) );
-  }
-}
-
-/**
- * Register a new custom property.
- *
- * The object should support dynamic properties.
- * Property names must be unused.
- * Property indices are unique to each registered custom property in a given object.
- * Properties can be set as non animatable using property attributes.
- * returns dali.PROPERTY_INVALID_INDEX if registration failed.
- *
- * @method registerCustomProperty
- * @for Handle
- * @param {string} name The name of the property.
- * @param {Object} propertyValue The new value of the property.
- * @param {integer} accessMode The property access mode (writable, animatable etc).
- * @return {integer} The index of the property or dali.PROPERTY_INVALID_INDEX if registration failed
- * @example
- *
- *     // access mode is one of the following
- *     dali.PROPERTY_READ_ONLY
- *     dali.PROPERTY_READ_WRITE
- *     dali.PROPERTY_ANIMATABLE
- *
- *     var cellIndexPropertyIndex = actor.registerCustomProperty("cellIndex", 2, dali.PROPERTY_READ_WRITE);
- *     var myCustomPropertyIndex = handle.registerCustomProperty("myCustomProperty", [10.0, 25.0, 0.0], dali.PROPERTY_READ_ONLY);
- *
- */
-void HandleWrapper::RegisterCustomProperty( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  // unwrap the object
-  HandleWrapper* handleWrapper = Unwrap( isolate, args.This() );
-  if( !handleWrapper )
-  {
-    return;
-  }
-
-  Handle handle =  handleWrapper->mHandle;
-
-  bool found( false );
-  std::string propertyName = V8Utils::GetStringParameter( PARAMETER_0, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad property name parameter" );
-    return;
-  }
-
-  found = false;
-  Dali::Property::Value daliPropertyValue = V8Utils::GetPropertyValueParameter(PARAMETER_1, found, isolate, args );
-  if( !found || Dali::Property::NONE == daliPropertyValue.GetType() )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "bad property value parameter" );
-    return;
-  }
-
-  found = false;
-  int accessMode = V8Utils::GetIntegerParameter( PARAMETER_2, found, isolate, args, 0 /* default */);
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid access mode parameter" );
-    return;
-  }
-  else
-  {
-    args.GetReturnValue().Set( v8::Integer::New( isolate, handle.RegisterProperty( propertyName, daliPropertyValue, static_cast<Property::AccessMode>(accessMode) ) ) );
-  }
-}
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/object/handle-wrapper.h b/plugins/dali-script-v8/src/object/handle-wrapper.h
deleted file mode 100644 (file)
index 98f9c22..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-#ifndef DALI_V8PLUGIN_HANDLE_WRAPPER_H
-#define DALI_V8PLUGIN_HANDLE_WRAPPER_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/object/handle.h>
-
-// INTERNAL INCLUDES
-#include <shared/base-wrapped-object.h>
-#include <signals/signal-manager.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-class BaseCallBack;
-
-class HandleWrapper : public BaseWrappedObject
-{
-public:
-  HandleWrapper( BaseWrappedObject::Type type,
-                Handle handle,
-                GarbageCollectorInterface& gc );
-
-  virtual ~HandleWrapper();
-
-  /**
-   * @brief get the value for a property for JavaScript object than contains a Dali Handle.
-   * E.g. Get( "x", JavaScript object that wraps a Dali Handle )
-   * @param[in] propertyName property name
-   * @param[in] info reference to PropertyCallbackInfo structure (contains the Javascript
-   * object and the return value).
-   */
-  static void PropertyGet( v8::Local<v8::String> propertyName,
-                                          const v8::PropertyCallbackInfo<v8::Value>& info);
-
-  /**
-   * @brief Set the value for a property for JavaScript object than contains a Dali Handle.
-   * E.g. Set( "x", 103, JavaScript object that wraps a Dali Handle)
-   * @param[in] propertyName property name
-   * @param[in] javaScriptValue javascript value to set, this is typically a number
-   * @param[in] info reference to PropertyCallbackInfo structure (contains the Javascript
-   * object).
-   */
-  static void PropertySet( v8::Local<v8::String> propertyName,
-                    v8::Local<v8::Value> javaScriptValue,
-                    const v8::PropertyCallbackInfo<v8::Value>& info);
-
-  static HandleWrapper* Unwrap( v8::Isolate* isolate, v8::Handle< v8::Object> obj);
-
-  /**
-   * Should be called by an class that inherits from HandleWrapper to add
-   * property get / set functionality to the javascript object
-   * along with Signal connect / disconnect
-   */
-  static void AddInterceptsToTemplate( v8::Isolate* isolate, v8::Local<v8::ObjectTemplate>& objTemplate );
-
-  /**
-   * @brief Register an animatable property for a JavaScript object that
-   * contains a Dali Handle.
-   * @param[in] args v8 function call arguments interpreted
-   */
-  static void RegisterAnimatableProperty( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  /**
-   * @brief Register a custom property for a JavaScript object that
-   * contains a Dali Handle.
-   * @param[in] args v8 function call arguments interpreted
-   */
-  static void RegisterCustomProperty( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  Handle GetHandle() { return mHandle; }
-  Handle mHandle;
-  ConnectionTracker mConnectionTracker;
-
-
-  virtual SignalManager* GetSignalManager() { return &mSignalManager;}
-
-private:
-
-  SignalManager mSignalManager;
-
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_HANDLE_WRAPPER_H
diff --git a/plugins/dali-script-v8/src/object/property-buffer-api.cpp b/plugins/dali-script-v8/src/object/property-buffer-api.cpp
deleted file mode 100644 (file)
index 46de3b3..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "property-buffer-api.h"
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <object/property-buffer-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace // unnamed namespace
-{
-
-struct PropertyBufferParameters
-{
-  PropertyBufferParameters()
-  {
-  }
-
-  PropertyBuffer NewPropertyBuffer()
-  {
-    return PropertyBuffer::New( mBufferFormat );
-  }
-
-  Property::Map mBufferFormat;
-};
-
-} // unnamed space
-
-/**
- * ## PropertyBuffer API
- *
- * PropertyBuffer is a handle to an object that contains a buffer of structured properties.
- * It can be used to provide data to Geometry objects.
- *
- * ### Simple example
- *
- *```
- *    var vertexFormat ={ "aPosition" : dali.PROPERTY_VECTOR2 };
- *    var vertexData = [    0,     1,
- *                      -0.95,  0.31,
- *                      -0.59, -0.81,
- *                       0.59, -0.81,
- *                       0.95,  0.31];
- *
- *    var vertexDataArray = new Float32Array(vertexData.length);
- *    vertexDataArray.set(vertexData, 0);
- *    var vertices = new dali.PropertyBuffer(vertexFormat, 5);
- *    vertices.setData(vertexDataArray);
- *
- *    var geometry = new dali.Geometry();
- *    geometry.addVertexBuffer( vertices );
- *```
- * @class PropertyBuffer
- */
-
-PropertyBuffer PropertyBufferApi::GetPropertyBuffer( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::HandleScope handleScope( isolate );
-
-  v8::Local<v8::Object> object = args.This();
-  v8::Local<v8::External> field = v8::Local<v8::External>::Cast( object->GetInternalField(0) );
-  void* ptr = field->Value();
-
-  PropertyBufferWrapper* wrapper = static_cast< PropertyBufferWrapper *>(ptr);
-  return wrapper->GetPropertyBuffer();
-}
-
-PropertyBuffer PropertyBufferApi::GetPropertyBufferFromParams( int paramIndex,
-                          bool& found,
-                          v8::Isolate* isolate,
-                          const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  found = false;
-
-  v8::HandleScope handleScope( isolate );
-  BaseWrappedObject* wrappedObject = V8Utils::GetWrappedDaliObjectParameter( paramIndex, BaseWrappedObject::PROPERTY_BUFFER, isolate, args );
-  if( wrappedObject )
-  {
-    found = true;
-    PropertyBufferWrapper* wrapper = static_cast< PropertyBufferWrapper *>(wrappedObject);
-    return wrapper->GetPropertyBuffer();
-  }
-  else
-  {
-    return PropertyBuffer();
-  }
-}
-
-/**
- * Create a new PropertyBuffer
- *
- * PropertyBuffers contains a buffer of structured properties and can be
- * used to provide data to Geometry objects.
- *
- * @constructor
- * @for PropertyBuffer
- * @method PropertyBuffer
- * @param {Object} bufferFormat Map of names and types that describes the components of the buffer
- * @param {integer} size The number of elements in the property buffer
- * @return {Object} PropertyBuffer
- * @example
- *```
- *    var bufferFormat = {
- *                         "aPosition" : dali.PROPERTY_VECTOR2,
- *                         "aTexCoord" : dali.PROPERTY_VECTOR2,
- *                         "aHue"      : dali.PROPERTY_FLOAT,
- *                       };
- *
- *    var buffer = new dali.PropertyBuffer(bufferFormat, 5);
- *```
- */
-PropertyBuffer PropertyBufferApi::New( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::HandleScope handleScope( isolate );
-
-  bool found( false );
-  Dali::Property::Map bufferFormat = V8Utils::GetPropertyMapParameter( PARAMETER_0, found, isolate, args);
-  if( !found || bufferFormat.Empty() )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid property map parameter" );
-    return PropertyBuffer();
-  }
-
-  return PropertyBuffer::New( bufferFormat );
-}
-
-/**
- * Update the whole buffer information
- *
- * This function expects an array of data with the same format that was given
- * in the construction, and the number of elements to be the same as the size
- * of the buffer.
- *
- * @method setData
- * @for PropertyBuffer
- * @param {Float32Array} data The data that will be copied to the buffer.
- * @example
- *```
- *   var vertexData = [    0,     1,
- *                     -0.95,  0.31,
- *                     -0.59, -0.81,
- *                      0.59, -0.81,
- *                      0.95,  0.31];
- *
- *   var vertexDataArray = new Float32Array(vertexData.length);
- *   vertexDataArray.set(vertexData, 0);
- *
- *   propertyBuffer.setData( vertexDataArray, vertexData.length );
- *```
- */
-void PropertyBufferApi::SetData( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  PropertyBuffer buffer = GetPropertyBuffer( isolate, args );
-
-  bool found( false );
-  void* data = V8Utils::GetArrayBufferViewParameter( PARAMETER_0, found, isolate, args);
-
-  if( ! found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid data parameter" );
-  }
-  else
-  {
-    int size = V8Utils::GetIntegerParameter( PARAMETER_1, found, isolate, args, 0);
-    if( !found )
-    {
-      DALI_SCRIPT_EXCEPTION( isolate, "missing buffer size from param 1" );
-    }
-    else
-    {
-      buffer.SetData( data, size );
-    }
-  }
-}
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/object/property-buffer-api.h b/plugins/dali-script-v8/src/object/property-buffer-api.h
deleted file mode 100644 (file)
index c76607c..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-#ifndef DALI_V8PLUGIN_PROPERTY_BUFFER_API_H
-#define DALI_V8PLUGIN_PROPERTY_BUFFER_API_H
-
-/*
- * 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/rendering/property-buffer.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace PropertyBufferApi
-{
-
-  /**
-   * @brief Helper to get property buffer from args.This()
-   * @param[in] isolate v8 isolated instance
-   * @param[in] args v8 function call arguments interpreted
-   */
-  PropertyBuffer GetPropertyBuffer( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  /**
-   * @brief Helper to get property buffer from the JavaScript object held in the given function argument
-   * @param[in] paramIndex Argument index the object is held in
-   * @param[in] found Whether property buffer is found in the given function parameter
-   * @param[in] isolate v8 isolated instance
-   * @param[in] args v8 function call arguments interpreted
-   */
-  PropertyBuffer GetPropertyBufferFromParams( int paramIndex,
-                                                  bool& found,
-                                                  v8::Isolate* isolate,
-                                                  const v8::FunctionCallbackInfo< v8::Value >& args );
-
- /**
-  * Constructor
-  */
-  PropertyBuffer New( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  /**
-   * PropertyBuffer API see property-buffer.h for a description
-   */
-  void SetData( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-} // namespace PropertyBufferApi
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_PROPERTY_BUFFER_API_H
diff --git a/plugins/dali-script-v8/src/object/property-buffer-wrapper.cpp b/plugins/dali-script-v8/src/object/property-buffer-wrapper.cpp
deleted file mode 100644 (file)
index b3a1894..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "property-buffer-wrapper.h"
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <object/property-buffer-api.h>
-#include <shared/api-function.h>
-#include <shared/object-template-helper.h>
-#include <dali-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-v8::Persistent<v8::ObjectTemplate> PropertyBufferWrapper::mPropertyBufferTemplate;
-
-namespace // un-named name space
-{
-
-/**
- * Contains a list of all functions that can be called
- */
-const ApiFunction PropertyBufferFunctionTable[]=
-{
-    /**************************************
-    * PropertyBuffer API (in order of property-buffer.h)
-    **************************************/
-
-   { "SetData"             , PropertyBufferApi::SetData },
-};
-
-const unsigned int PropertyBufferFunctionTableCount = sizeof(PropertyBufferFunctionTable)/sizeof(PropertyBufferFunctionTable[0]);
-} //un-named space
-
-
-PropertyBufferWrapper::PropertyBufferWrapper( const Dali::PropertyBuffer& buffer, GarbageCollectorInterface& gc )
-:  BaseWrappedObject(  BaseWrappedObject::PROPERTY_BUFFER , gc )
-{
-    mPropertyBuffer = buffer;
-}
-
-v8::Handle<v8::Object> PropertyBufferWrapper::WrapPropertyBuffer(v8::Isolate* isolate, const Dali::PropertyBuffer& buffer )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  objectTemplate = GetPropertyBufferTemplate( isolate);
-
-  // create an instance of the template
-  v8::Local<v8::Object> localObject = objectTemplate->NewInstance();
-
-  // create the PropertyBuffer wrapper
-  PropertyBufferWrapper* pointer =  new PropertyBufferWrapper( buffer, Dali::V8Plugin::DaliWrapper::Get().GetDaliGarbageCollector() );
-
-  // assign the JavaScript object to the wrapper.
-  pointer->SetJavascriptObject( isolate, localObject );
-
-  return handleScope.Escape( localObject );
-}
-
-v8::Local<v8::ObjectTemplate> PropertyBufferWrapper::GetPropertyBufferTemplate( v8::Isolate* isolate)
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  if( mPropertyBufferTemplate.IsEmpty() )
-  {
-    objectTemplate = MakePropertyBufferTemplate( isolate );
-    mPropertyBufferTemplate.Reset( isolate, objectTemplate );
-  }
-  else
-  {
-    // get the object template
-    objectTemplate = v8::Local<v8::ObjectTemplate>::New( isolate, mPropertyBufferTemplate );
-  }
-  return handleScope.Escape( objectTemplate );
-}
-
-v8::Handle<v8::ObjectTemplate> PropertyBufferWrapper::MakePropertyBufferTemplate( v8::Isolate* isolate )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  v8::Local<v8::ObjectTemplate> objTemplate = v8::ObjectTemplate::New();
-
-  objTemplate->SetInternalFieldCount( BaseWrappedObject::FIELD_COUNT );
-
-  // add our function properties
-  ObjectTemplateHelper::InstallFunctions( isolate, objTemplate, PropertyBufferFunctionTable, PropertyBufferFunctionTableCount );
-
-  return handleScope.Escape( objTemplate );
-}
-
-void PropertyBufferWrapper::NewPropertyBuffer( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate);
-
-  if(!args.IsConstructCall())
-  {
-      DALI_SCRIPT_EXCEPTION( isolate, "PropertyBuffer constructor called without 'new'");
-      return;
-  }
-  Dali::PropertyBuffer buffer = PropertyBufferApi::New( isolate, args );
-
-  if(buffer)
-  {
-    v8::Local<v8::Object> localObject = WrapPropertyBuffer( isolate, buffer );
-    args.GetReturnValue().Set( localObject );
-  }
-}
-
-
-PropertyBuffer PropertyBufferWrapper::GetPropertyBuffer()
-{
-  return mPropertyBuffer;
-}
-
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/object/property-buffer-wrapper.h b/plugins/dali-script-v8/src/object/property-buffer-wrapper.h
deleted file mode 100644 (file)
index 914b9a9..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-#ifndef DALI_V8PLUGIN_PROPERTY_BUFFER_WRAPPER_H
-#define DALI_V8PLUGIN_PROPERTY_BUFFER_WRAPPER_H
-
-/*
- * 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/rendering/property-buffer.h>
-
-// INTERNAL INCLUDES
-#include <shared/base-wrapped-object.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-
-/**
- * A PropertyBuffer wrapper.
- * Provides access to PropertyBuffer specific functionality and V8 memory handling.
- */
-class PropertyBufferWrapper : public BaseWrappedObject
-{
-
-public:
-
-  /**
-   * @brief Constructor
-   * @param[in] propertyBuffer DALi property buffer
-   * @param[in] gc garbage collection interface
-   */
-  PropertyBufferWrapper( const PropertyBuffer& propertyBuffer,
-                GarbageCollectorInterface& gc );
-
-  /**
-   * @brief Destructor
-   */
-  virtual ~PropertyBufferWrapper()
-  {
-  }
-
-  /**
-   * @brief Creates a new PropertyBuffer wrapped inside a Javascript Object.
-   * @param[in] args v8 function call arguments interpreted
-   */
-  static void NewPropertyBuffer( const v8::FunctionCallbackInfo< v8::Value >& args);
-
-  /**
-   * Wraps a property buffer
-   */
-  static v8::Handle<v8::Object> WrapPropertyBuffer(v8::Isolate* isolate, const Dali::PropertyBuffer& );
-
-
-  // The PropertyBufferAttribute ObjectTemplate, we cache templates so we don't have
-  // keep generating them everytime we want to create a PropertyBuffer
-  static v8::Persistent<v8::ObjectTemplate> mPropertyBufferTemplate;
-
-  /**
-   * @brief Gets the handle of property buffer
-   */
-  PropertyBuffer GetPropertyBuffer();
-
-
-private:
-
-  // PropertyBuffer
-  PropertyBuffer mPropertyBuffer;
-
-  static v8::Handle<v8::ObjectTemplate> MakePropertyBufferTemplate( v8::Isolate* isolate );
-  static v8::Local<v8::ObjectTemplate> GetPropertyBufferTemplate( v8::Isolate* isolate );
-
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_PROPERTY_BUFFER_WRAPPER_H
diff --git a/plugins/dali-script-v8/src/object/property-value-wrapper.cpp b/plugins/dali-script-v8/src/object/property-value-wrapper.cpp
deleted file mode 100644 (file)
index f1fad65..0000000
+++ /dev/null
@@ -1,1036 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-// CLASS HEADER
-#include "property-value-wrapper.h"
-
-// EXTERNAL INCLUDES
-#include <dali/integration-api/debug.h>
-#include <dali/public-api/object/property-array.h>
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <dali-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace
-{
-
-struct WrapTypeInfo
-{
-  Dali::Property::Type propertyType;
-  BaseWrappedObject::Type wrappedType;
-};
-/**
- * lookup table to convert between dali property types and wrapped types
- * Wrapped types includes actors / timers / render tasks, hence we can't just
- * use the dali property types to encode what a wrapped pointer contains
- */
-const WrapTypeInfo WrapTypeInfoLookup[]=
-{
-  { Dali::Property::VECTOR2,    BaseWrappedObject::VECTOR2 },
-  { Dali::Property::VECTOR3,    BaseWrappedObject::VECTOR3 },
-  { Dali::Property::VECTOR4,    BaseWrappedObject::VECTOR4 },
-  { Dali::Property::RECTANGLE,  BaseWrappedObject::RECTANGLE  },
-  { Dali::Property::ROTATION,   BaseWrappedObject::ROTATION   },
-  { Dali::Property::MATRIX,     BaseWrappedObject::MATRIX     },
-  { Dali::Property::MATRIX3,    BaseWrappedObject::MATRIX3    },
-
-
-};
-const unsigned int WrapTypeLookupCount = sizeof( WrapTypeInfoLookup ) / sizeof( WrapTypeInfo );
-
-BaseWrappedObject::Type GetWrappedType( Dali::Property::Type type )
-{
-  for( unsigned int i = 0; i < WrapTypeLookupCount; ++i)
-  {
-    if( WrapTypeInfoLookup[ i ].propertyType == type )
-    {
-      return WrapTypeInfoLookup[ i ].wrappedType;
-    }
-  }
-  DALI_LOG_ERROR("GetWrappedType failed \n");
-  return BaseWrappedObject::UNKNOWN;
-}
-
-// Templates for setting members on propertys, like, x,y,z on a vector
-template <typename T, typename S>
-void SetX( Dali::Property::Value &value, S& v)
-{
-  // to set a property value, we need to read into a temporary
-  // then assign it back.
-  // E.g.   Vector2 temp = value.Get<Vector2>();
-  //        temp.x = 10;
-  //        value = temp;
-  T tmp( value.Get<T>() );
-  tmp.x = v;
-  value = tmp;
-}
-
-template <typename T, typename S>
-void SetY( Dali::Property::Value &value, S& v)
-{
-  T tmp = value.Get<T>();
-  tmp.y = v;
-  value = tmp;
-}
-
-template <typename T, typename S>
-void SetZ( Dali::Property::Value &value, S& v)
-{
-  T tmp = value.Get<T>();
-  tmp.z = v;
-  value = tmp;
-}
-
-template <typename T, typename S>
-void SetW( Dali::Property::Value &value, S& v)
-{
-  T tmp = value.Get<T>();
-  tmp.w = v;
-  value = tmp;
-}
-template <typename T, typename S>
-void SetWidth( Dali::Property::Value &value, S& v)
-{
-  T tmp = value.Get<T>();
-  tmp.width = v;
-  value = tmp;
-}
-
-template <typename T, typename S>
-void SetHeight( Dali::Property::Value &value, S& v)
-{
-  T tmp = value.Get<T>();
-  tmp.height = v;
-  value = tmp;
-}
-
-v8::Handle< v8::Value > GetV8ValueFrom( v8::Isolate* isolate,
-                                        const Dali::Property::Value& value,
-                                        const std::string& field)
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::Value> ret;
-
-  Dali::Property::Type type = value.GetType();
-  std::string objectType="Unknown type";
-
-  // simple property values are handled by the actor wrapper so we just handle property values with sub fields
-  switch(type)
-  {
-    case Dali::Property::VECTOR2:
-    {
-      objectType = "Vector2";
-
-      if( field == "x" || field == "width" )
-      {
-        Dali::Vector2 v2 = value.Get<Dali::Vector2>();
-        ret = v8::Number::New( isolate, v2.x);
-      }
-      else if(field == "y" || field == "height")
-      {
-        Dali::Vector2 v2 = value.Get<Dali::Vector2>();
-        ret = v8::Number::New( isolate, v2.y);
-      }
-
-      break;
-    }
-    case Dali::Property::VECTOR3:
-    {
-      objectType = "Vector3";
-
-      if(field == "x" || field == "width" || field == "r")
-      {
-        Dali::Vector3 v3 = value.Get<Dali::Vector3>();
-        ret = v8::Number::New( isolate, v3.x);
-      }
-      else if(field == "y" || field == "height" || field == "g")
-      {
-        Dali::Vector3 v3 = value.Get<Dali::Vector3>();
-        ret = v8::Number::New( isolate, v3.y);
-      }
-      else if(field == "z" || field == "depth" || field == "b")
-      {
-        Dali::Vector3 v3 = value.Get<Dali::Vector3>();
-        ret = v8::Number::New( isolate, v3.z);
-      }
-      break;
-    }
-    case Dali::Property::VECTOR4:
-    {
-      objectType = "vector4";
-
-      if(field == "x" || field == "s" || field == "r")
-      {
-        Dali::Vector4 v4 = value.Get<Dali::Vector4>();
-        ret = v8::Number::New( isolate, v4.x);
-      }
-      else if(field == "y" || field == "g" || field == "t")
-      {
-        Dali::Vector4 v4 = value.Get<Dali::Vector4>();
-        ret = v8::Number::New( isolate, v4.y);
-      }
-      else if(field == "z" || field == "r" || field == "b")
-      {
-        Dali::Vector4 v4 = value.Get<Dali::Vector4>();
-        ret = v8::Number::New( isolate, v4.z);
-      }
-      else if(field == "w" || field == "a" || field == "q")
-      {
-        Dali::Vector4 v4 = value.Get<Dali::Vector4>();
-        ret = v8::Number::New( isolate, v4.w);
-      }
-
-      break;
-    }
-    case Dali::Property::ROTATION:
-    {
-      objectType = "rotation";
-
-      if(field == "roll")
-      {
-        Dali::Vector4 v4 = value.Get<Dali::Quaternion>().EulerAngles();
-        ret = v8::Number::New( isolate, v4.z);
-      }
-      else if(field == "pitch")
-      {
-        Dali::Vector4 v4 = value.Get<Dali::Quaternion>().EulerAngles();
-        ret = v8::Number::New( isolate, v4.x);
-      }
-      else if(field == "yaw")
-      {
-        Dali::Vector4 v4 = value.Get<Dali::Quaternion>().EulerAngles();
-        ret = v8::Number::New( isolate, v4.y);
-      }
-
-       else if(field == "axis")
-      {
-        Dali::Vector3 axis;
-        Radian angle;
-        value.Get<Dali::Quaternion>().ToAxisAngle(axis, angle);
-        ret = PropertyValueWrapper::WrapDaliProperty( isolate , Dali::Property::Value( axis ) );
-      }
-      else if(field == "angle")
-      {
-        Dali::Vector3 axis;
-        Radian angle;
-        value.Get<Dali::Quaternion>().ToAxisAngle(axis, angle);
-        ret = PropertyValueWrapper::WrapDaliProperty( isolate , Dali::Property::Value( angle ) );
-      }
-      break;
-    }
-    case Dali::Property::RECTANGLE:
-    {
-      objectType = "rectangle";
-
-      if(field == "x")
-      {
-        Dali::Rect<int> r = value.Get<Dali::Rect<int> >();
-        ret = v8::Number::New( isolate, r.x);
-      }
-      else if(field == "y")
-      {
-        Dali::Rect<int> r = value.Get<Dali::Rect<int> >();
-        ret = v8::Number::New( isolate, r.y);
-      }
-      else if(field == "width")
-      {
-        Dali::Rect<int> r = value.Get<Dali::Rect<int> >();
-        ret = v8::Number::New( isolate, r.width);
-      }
-      else if(field == "height")
-      {
-        Dali::Rect<int> r = value.Get<Dali::Rect<int> >();
-        ret = v8::Number::New( isolate, r.height);
-      }
-      break;
-    }
-
-    default:
-    {
-      // will trigger a type error as ret.IsEmpty() == true
-      break;
-    }
-
-  } // switch type
-
-  if ( ret.IsEmpty() )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "Cannot get property with field " + objectType+ ":" + field );
-  }
-  return handleScope.Escape(ret);
-}
-
-
-/*
- * Setting a field on a property,  e.g.  Position.x = 5 or Rect.Width = 100
- * The only property field that supports a struct is  rotation.axis
- */
-void SetFromV8Value(v8::Isolate* isolate,
-                     Dali::Property::Value& value,
-                     const std::string& field,
-                     v8::Local<v8::Value> v8Value )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  Dali::Property::Type type = value.GetType();
-
-  float asFloat = 0.f;
-  int asInt = 0;
-
-  // all are numbers at the moment
-  if( v8Value->IsNumber() )
-  {
-    asFloat = static_cast<float>(v8Value->NumberValue());
-    asInt   = static_cast<int>(asFloat);
-  }
-  else
-  {
-    // if the v8 value isn't a number, then then only Dali object we support is a Vector3 part of a rotation
-    if( ! (type == Dali::Property::ROTATION && field == "axis") )
-    {
-      DALI_SCRIPT_EXCEPTION(isolate,std::string("Cannot set property with field (value is not a number):") + field);
-      return;
-    }
-  }
-
-  // simple property values are handled by the actor wrapper so we just handle property values with sub fields
-  switch(type)
-  {
-    case Dali::Property::VECTOR2:
-    {
-      if(field == "x" || field == "width")
-      {
-        SetX<Dali::Vector2>(value, asFloat);
-      }
-      else if(field == "y" || field == "height")
-      {
-        SetY<Dali::Vector2>(value, asFloat);
-      }
-      else
-      {
-        DALI_SCRIPT_EXCEPTION(isolate, std::string("Cannot set property with field (unknown type):") + field);
-        return;
-      }
-      break;
-    }
-    case Dali::Property::VECTOR3:
-    {
-      if(field == "x" || field == "width" || field == "r")
-      {
-        SetX<Dali::Vector3>(value, asFloat);
-      }
-      else if(field == "y" || field == "height" || field == "g")
-      {
-        SetY<Dali::Vector3>(value, asFloat);
-      }
-      else if(field == "z" || field == "depth" || field == "b")
-      {
-        SetZ<Dali::Vector3>(value, asFloat);
-      }
-      else
-      {
-        DALI_SCRIPT_EXCEPTION(isolate, std::string("Cannot set property with field (unknown type):") + field);
-        return;
-      }
-      break;
-    }
-    case Dali::Property::VECTOR4:
-    {
-      if(field == "x" || field == "s" || field == "r")
-      {
-        SetX<Dali::Vector4>(value, asFloat);
-      }
-      else if(field == "y" || field == "g" || field == "t")
-      {
-        SetY<Dali::Vector4>(value, asFloat);
-      }
-      else if(field == "z" || field == "r" || field == "b")
-      {
-        SetZ<Dali::Vector4>(value, asFloat);
-      }
-      else if(field == "w" || field == "a" || field == "q")
-      {
-        SetW<Dali::Vector4>(value, asFloat);
-      }
-      else
-      {
-        DALI_SCRIPT_EXCEPTION( isolate, std::string("Cannot set property with field (unknown type):") + field);
-        return;
-      }
-      break;
-    }
-    case Dali::Property::ROTATION:
-    {
-      if(field == "roll")
-      {
-        Dali::Vector4 v4 = value.Get<Dali::Quaternion>().EulerAngles();
-        v4.z = asFloat;
-        value = Dali::Quaternion( Radian(Degree(v4.x)), Radian(Degree(v4.y)), Radian(Degree(v4.z)) );
-      }
-      else if(field == "pitch")
-      {
-        Dali::Vector4 v4 = value.Get<Dali::Quaternion>().EulerAngles();
-        v4.x = asFloat;
-        value = Dali::Quaternion( Radian(Degree(v4.x)), Radian(Degree(v4.y)), Radian(Degree(v4.z)) );
-      }
-      else if(field == "yaw")
-      {
-        Dali::Vector4 v4 = value.Get<Dali::Quaternion>().EulerAngles();
-        v4.y = asFloat;
-        value = Dali::Quaternion( Radian(Degree(v4.x)), Radian(Degree(v4.y)), Radian(Degree(v4.z)) );
-      }
-      else if(field == "axis")
-      {
-        Dali::Vector3 axis;
-        Radian angle;
-        value.Get<Dali::Quaternion>().ToAxisAngle(axis, angle);
-
-        if( v8Value->IsObject() )
-        {
-          v8::Local<v8::Object> object = v8::Local<v8::Object>::Cast( v8Value );
-
-          PropertyValueWrapper* wrapper = PropertyValueWrapper::Unwrap( isolate, object );
-          Dali::Property::Value v3 = wrapper->GetValue();
-
-          if(v3.GetType() == Dali::Property::VECTOR3)
-          {
-            value = Dali::Quaternion(angle, v3.Get<Dali::Vector3>());
-          }
-          else
-          {
-            DALI_SCRIPT_EXCEPTION( isolate, "Axis expects a Vector3:");
-            return;
-          }
-
-        }
-      }
-      else if(field == "angle")
-      {
-        Dali::Vector3 axis;
-        Radian angle;
-        value.Get<Dali::Quaternion>().ToAxisAngle( axis, angle );
-        value = Dali::Quaternion( Degree( asFloat ), axis );
-      }
-      else
-      {
-        DALI_SCRIPT_EXCEPTION(  isolate, std::string("Cannot set property with field (unknown type):") + field);
-        return;
-      }
-      break;
-    }
-    case Dali::Property::RECTANGLE:
-    {
-      if(field == "x")
-      {
-        SetX<Dali::Rect<int> >(value, asInt);
-      }
-      else if(field == "y")
-      {
-        SetY<Dali::Rect<int> >(value, asInt);
-      }
-      else if(field == "width")
-      {
-        SetWidth<Dali::Rect<int> >(value, asInt);
-      }
-      else if(field == "height")
-      {
-        SetHeight<Dali::Rect<int> >(value, asInt);
-      }
-      else
-      {
-        DALI_SCRIPT_EXCEPTION( isolate, std::string("Cannot set property with field (unknown type):") + field);
-        return;
-      }
-      break;
-    }
-    default:
-    {
-      DALI_SCRIPT_EXCEPTION( isolate, std::string("Cannot set property with field (unknown type):") + field);
-      return;
-      break;
-    }
-
-  } // switch type
-
-} // SetFromV8Value
-
-
-bool IsPrimitive( const Dali::Property::Value &value )
-{
-  switch( value.GetType() )
-  {
-    case Dali::Property::BOOLEAN:
-    case Dali::Property::INTEGER:
-    case Dali::Property::STRING:
-    case Dali::Property::FLOAT:
-    {
-      return true;
-    }
-    default:
-    {
-      return false;
-    }
-  }
-}
-v8::Local<v8::Object> CreateJavaScriptPrimitive( v8::Isolate* isolate, const Dali::Property::Value &value )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  v8::Local<v8::Value> v8Value;
-
-  switch( value.GetType() )
-   {
-     case Dali::Property::FLOAT:
-     {
-       v8Value = v8::Number::New( isolate, value.Get<float>()  );
-       break;
-     }
-     case Dali::Property::BOOLEAN:
-     {
-       v8Value = v8::Boolean::New(  isolate, value.Get<bool>());
-       break;
-     }
-     case Dali::Property::INTEGER:
-     {
-       v8Value = v8::Integer::New( isolate, value.Get<int>());
-       break;
-     }
-     case Dali::Property::STRING:
-     {
-       std::string string = value.Get< std::string >();
-       v8Value = v8::String::NewFromUtf8( isolate,  string.c_str());
-       break;
-     }
-     default:
-     {
-       DALI_LOG_ERROR("Primitive mismatch \n");
-       break;
-     }
-   }
-
-  v8::Local<v8::Object> ret;
-
-  if( v8Value->IsObject() )
-  {
-    ret = v8Value->ToObject();
-  }
-
-  return handleScope.Escape( ret );
-}
-
-
-} // un-named namespace
-
-
-
-Dali::Property::Value PropertyValueWrapper::VectorOrMatrixFromV8Array( v8::Isolate* isolate, const v8::Local<v8::Value>& v8Value)
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  Dali::Property::Value ret;
-
-  if( !v8Value->IsArray() )
-  {
-    return ret;
-  }
-  v8::Local<v8::Array> array = v8::Local<v8::Array>::Cast( v8Value );//v8::Array::Cast(  *v8Value);
-  uint32_t len = array->Length();
-  float out[16] = {0.f, 0.f, 0.f, 0.f,0.f, 0.f, 0.f, 0.f,0.f, 0.f, 0.f, 0.f,0.f, 0.f, 0.f, 0.f};
-  const unsigned int size = sizeof(out) / sizeof(float);
-  for( uint32_t i=0; i < (len > size? size:len); ++i)
-  {
-    v8::Handle<v8::Value> entry = array->Get( i);// v8::Integer::New( isolate, i));
-    if( V8Utils::IsNumberPrimitiveOrObject( entry ) )
-    {
-      out[i] = V8Utils::GetNumberValue( isolate, entry );
-      //printf("entry is a number %d , entry is a int %f \n",(int)i , out[i]  );
-    }
-  }
-  if(16 == len )
-  {
-    ret = Dali::Matrix( out );
-  }
-  else if ( 9 == len )
-  {
-    ret = Dali::Matrix3( out[0],out[1],out[2],out[3],out[4],out[5],out[6],out[7],out[8] );
-  }
-  else if(4 == len)
-  {
-    ret = Dali::Vector4(out[0], out[1], out[2], out[3]);
-  }
-  else if(3 == len)
-  {
-    ret = Dali::Vector3(out[0], out[1], out[2]);
-  }
-  else if(2 == len)
-  {
-    ret = Dali::Vector2(out[0], out[1]);
-  }
-  else if(1 == len)
-  {
-    ret = out[0];
-  }
-
-  return ret;
-}
-
-Dali::Property::Value PropertyValueWrapper::ArrayFromV8Array( v8::Isolate* isolate, const v8::Local<v8::Value>& v8Value)
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  if( !v8Value->IsArray() )
-  {
-    return Dali::Property::Value();
-  }
-
-  //Cast v8::Value to v8::Array
-  v8::Local<v8::Array> v8Array = v8::Local<v8::Array>::Cast( v8Value );
-  uint32_t elementCount = v8Array->Length();
-  Dali::Property::Array data;
-  data.Reserve( elementCount );
-  bool bFound(false);
-  for( uint32_t i(0); i<elementCount; ++i )
-  {
-    //Get Property::Value for each element in the array
-    data.PushBack( V8Utils::GetPropertyValueFromObject( bFound, isolate, v8Array->Get(i) ) );
-  }
-
-  //return the Property::Value
-  return Dali::Property::Value( data );
-}
-
-v8::Persistent<v8::ObjectTemplate> PropertyValueWrapper::mTemplatePrimitive;
-
-
-PropertyValueWrapper::~PropertyValueWrapper()
-{
-
-}
-
-PropertyValueWrapper::PropertyValueWrapper( const Dali::Property::Value& value, GarbageCollectorInterface& gc )
-  : BaseWrappedObject(  GetWrappedType( value.GetType() ), gc ),
-    mValue(value)
-{
-}
-
-Dali::Property::Value PropertyValueWrapper::ExtractPropertyValue( v8::Isolate* isolate, v8::Local< v8::Value> v8Value, Dali::Property::Type type)
-{
-  v8::HandleScope handleScope( isolate);
-
-  Dali::Property::Value daliPropertyValue;
-
-  // check if it's a dali object (vector, rect etc)
-  if( v8Value->IsObject() )
-  {
-    v8::Local<v8::Object> object = v8::Handle<v8::Object>::Cast(v8Value);
-    if( object->InternalFieldCount() == BaseWrappedObject::FIELD_COUNT )
-    {
-      if( BaseWrappedObject::IsWrappedType( isolate, object, GetWrappedType(type) ) )
-      {
-        PropertyValueWrapper* propertyWrapper = Unwrap( isolate, object );
-        return propertyWrapper->GetValue();
-      }
-    }
-  }
-
-  // check if it's a javascript Array
-  Dali::Property::Value array = VectorOrMatrixFromV8Array( isolate, v8Value );
-
-  switch(type)
-  {
-    case Dali::Property::BOOLEAN:
-    {
-      if( V8Utils::IsBooleanPrimitiveOrObject( v8Value ) )
-      {
-        daliPropertyValue = Dali::Property::Value( V8Utils::GetBooleanValue( isolate, v8Value));
-      }
-      break;
-    }
-    case Dali::Property::FLOAT:
-    {
-      if( V8Utils::IsNumberPrimitiveOrObject( v8Value )  )
-      {
-        daliPropertyValue = Dali::Property::Value( V8Utils::GetNumberValue( isolate, v8Value) );
-      }
-
-      break;
-    }
-    case Dali::Property::INTEGER: // todo is it wise to distinguish int from float in javascript?!
-    {
-      if( v8Value->IsInt32() )
-      {
-        daliPropertyValue = Dali::Property::Value(  v8Value->Int32Value()  ) ;//static_cast<int>( V8Utils::GetNumberValue( isolate, v8Value) ));
-      }
-      else if( V8Utils::IsStringPrimitiveOrObject( v8Value) ) // Take string as value for properties that internally convert the string to an enum
-      {
-        daliPropertyValue = Dali::Property::Value( V8Utils::GetStringValue( isolate, v8Value) );
-      }
-      break;
-    }
-    case Dali::Property::STRING:
-    {
-      if( V8Utils::IsStringPrimitiveOrObject( v8Value) )
-      {
-        daliPropertyValue = Dali::Property::Value( V8Utils::GetStringValue( isolate, v8Value) );
-      }
-
-
-      break;
-    }
-    case Dali::Property::VECTOR2:
-    {
-      if( array.GetType() == Dali::Property::VECTOR2 )
-      {
-          daliPropertyValue = array;
-      }
-      break;
-    }
-    case Dali::Property::VECTOR3:
-    {
-      if( array.GetType() == Dali::Property::VECTOR3)
-      {
-        daliPropertyValue = array;
-      }
-      break;
-    }
-    case Dali::Property::VECTOR4:
-    {
-
-      if( array.GetType() == Dali::Property::VECTOR4)
-      {
-        daliPropertyValue = array;
-      }
-      break;
-    }
-    case Dali::Property::RECTANGLE:
-    {
-      if( array.GetType() == Dali::Property::VECTOR4)
-      {
-        Vector4 vec4( array.Get<Vector4>());
-        daliPropertyValue = Property::Value(Rect<int>( vec4.x,vec4.y, vec4.z, vec4.w ));
-      }
-      break;
-    }
-    case Dali::Property::ROTATION:
-    {
-      if( array.GetType() == Dali::Property::VECTOR4)
-      {
-        // v4 treated as axis angle
-        Dali::Vector4 v = array.Get<Dali::Vector4>();
-        daliPropertyValue = Dali::AngleAxis(Dali::Degree(v[0]), Dali::Vector3(v[1], v[2], v[3]));
-      }
-      else if(array.GetType() == Dali::Property::VECTOR3)
-      {
-        // v3 treated as euler in degrees
-        Dali::Vector3 v = array.Get<Dali::Vector3>();
-        daliPropertyValue = Dali::Quaternion( Radian(Degree(v[0])), Radian(Degree(v[1])), Radian(Degree(v[2])) );
-      }
-      break;
-    }
-    case Dali::Property::MATRIX:
-    {
-      Dali::Matrix mat = array.Get<Dali::Matrix>();
-      daliPropertyValue = mat;
-      break;
-    }
-    case Dali::Property::MATRIX3:
-    {
-      Dali::Matrix3 mat = array.Get<Dali::Matrix3>();
-      daliPropertyValue = mat;
-      break;
-    }
-    case Dali::Property::ARRAY:
-    {
-      daliPropertyValue = ArrayFromV8Array( isolate, v8Value );
-      break;
-    }
-    case Dali::Property::MAP:
-    {
-      if( v8Value->IsObject() )
-      {
-        v8::Local<v8::Object> object = v8::Handle<v8::Object>::Cast(v8Value);
-        Dali::Property::Map propertyMap = V8Utils::GetPropertyMapFromObject(isolate, object);
-        daliPropertyValue = Dali::Property::Value( propertyMap );
-      }
-      else if( V8Utils::IsStringPrimitiveOrObject( v8Value) )
-      {
-        // There are special cases where a property with property map type can accept a string value,
-        // so we do the additional check here.
-        daliPropertyValue = Dali::Property::Value( V8Utils::GetStringValue( isolate, v8Value) );
-      }
-
-      break;
-    }
-    case Dali::Property::NONE:
-    default:
-    {
-      break;
-    }
-  } // switch type
-
-  return daliPropertyValue;
-}
-
-Dali::Property::Value PropertyValueWrapper::ExtractPropertyValue( v8::Isolate* isolate, v8::Local< v8::Value> v8Value)
-{
-  v8::HandleScope handleScope( isolate);
-
-  Dali::Property::Value daliPropertyValue;
-
-  // Check if it's a javascript Array
-  Dali::Property::Value array = VectorOrMatrixFromV8Array( isolate, v8Value );
-
-  if( V8Utils::IsBooleanPrimitiveOrObject( v8Value ) )
-  {
-    daliPropertyValue = Dali::Property::Value( V8Utils::GetBooleanValue( isolate, v8Value));
-  }
-  else if( V8Utils::IsNumberPrimitiveOrObject( v8Value )  )
-  {
-    daliPropertyValue = Dali::Property::Value( V8Utils::GetNumberValue( isolate, v8Value) );
-  }
-  else if( v8Value->IsInt32() )
-  {
-    daliPropertyValue = Dali::Property::Value(  v8Value->Int32Value()  ) ;
-  }
-  else if( V8Utils::IsStringPrimitiveOrObject( v8Value) )
-  {
-    daliPropertyValue = Dali::Property::Value( V8Utils::GetStringValue( isolate, v8Value) );
-  }
-  else if( array.GetType() == Dali::Property::VECTOR2
-         || array.GetType() == Dali::Property::VECTOR3
-         || array.GetType() == Dali::Property::VECTOR4 )
-  {
-    daliPropertyValue = array;
-  }
-  else if( array.GetType() == Dali::Property::MATRIX )
-  {
-    Dali::Matrix mat = array.Get<Dali::Matrix>();
-    daliPropertyValue = mat;
-  }
-  else if( array.GetType() == Dali::Property::MATRIX3 )
-  {
-    Dali::Matrix3 mat = array.Get<Dali::Matrix3>();
-    daliPropertyValue = mat;
-  }
-  else if( array.GetType() == Dali::Property::ARRAY )
-  {
-    daliPropertyValue = ArrayFromV8Array( isolate, v8Value );
-  }
-  else if( v8Value->IsObject() )
-  {
-    // Assume this is a property map
-    v8::Local<v8::Object> object = v8::Handle<v8::Object>::Cast(v8Value);
-    Dali::Property::Map propertyMap = V8Utils::GetPropertyMapFromObject(isolate, object);
-    daliPropertyValue = Dali::Property::Value( propertyMap );
-  }
-
-  return daliPropertyValue;
-}
-
-void PropertyValueWrapper::NewRotation( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate);
-
-  if(!args.IsConstructCall())
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "Rotation constructor called without 'new'");
-    return;
-  }
-  v8::Local<v8::Object > object;
-
-  float v[4] = {0.f,0.f,0.f,0.f};
-
-  bool foundAllArguments(false);
-  V8Utils::ReadFloatArguments( foundAllArguments, v, 4, args, 0.f );
-
-  int length = args.Length();
-
-  // if length = 4 create AngleAxis, else create Quaternion
-
-  if( length > 3 )
-  {
-    const Dali::AngleAxis axis(  Degree( v[0] ), Vector3(v[1], v[2], v[3]) );
-    object = WrapDaliProperty( isolate, Dali::Property::Value( axis ) );
-  }
-  else if( length > 2 )
-  {
-    object = WrapDaliProperty( isolate, Dali::Quaternion( Degree(v[0]), Degree(v[1]), Degree(v[2]) ) );
-  }
-  else
-  {
-    const Dali::Quaternion quaternion( Dali::Quaternion( Dali::ANGLE_0, Dali::Vector3::YAXIS));
-    object = WrapDaliProperty( isolate, quaternion );
-  }
-
-  args.GetReturnValue().Set( object );
-}
-
-//
-void PropertyValueWrapper::NewMatrix( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate);
-
-  if(!args.IsConstructCall())
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "Rotation constructor called without 'new'");
-    return;
-  }
-  v8::Local<v8::Object > object;
-
-  // we're constructing either a 4x4 Dali::Matrix or a 3x3 Dali::Matrix
-  // we're expecting an array of floats
-  // 4x4 = m00, m01, m02, m03,  m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33
-  // 3x3 or m00, m01, m02, m10, m11, m12,m20, m21, m22, m30, m31, m32,
-  bool foundAllArguments( false );
-
-  if( args.Length() == 16 )
-  {
-    float v[16];
-    V8Utils::ReadFloatArguments( foundAllArguments, v, 16, args, 0.f );
-    if(! foundAllArguments )
-    {
-      DALI_SCRIPT_EXCEPTION( isolate, "invalid Matrix parameters");
-      return;
-    }
-    Dali::Matrix matrix( v[0] );
-    object = WrapDaliProperty( isolate ,  Dali::Property::Value( matrix ) );
-  }
-  else if ( args.Length() == 9 )
-  {
-    float v[9];
-    V8Utils::ReadFloatArguments( foundAllArguments, v, 9, args, 0.f );
-    if(! foundAllArguments )
-    {
-      DALI_SCRIPT_EXCEPTION( isolate, "invalid Matrix parameters");
-      return;
-    }
-    Dali::Matrix3 matrix( v[0], v[1],v[2],v[3],v[4],v[5],v[6],v[7],v[8] );
-    object = WrapDaliProperty( isolate ,  Dali::Property::Value( matrix ) );
-  }
-  args.GetReturnValue().Set( object );
-
-
-}
-
-v8::Handle<v8::ObjectTemplate> PropertyValueWrapper::MakeDaliPropertyTemplate( v8::Isolate* isolate )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  v8::Local<v8::ObjectTemplate> objTemplate = v8::ObjectTemplate::New();
-
-  objTemplate->SetInternalFieldCount( BaseWrappedObject::FIELD_COUNT );
-
-  // property handle intercepts property getters and setters
-  objTemplate->SetNamedPropertyHandler( PropertyGet, PropertySet);
-
-  return handleScope.Escape( objTemplate );
-
-}
-
-v8::Handle<v8::Object> PropertyValueWrapper::WrapDaliProperty(v8::Isolate* isolate, const Dali::Property::Value &value)
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  // Simple Dali properties (ints, strings, bools etc) are stored as JavaScript primitives (v8::Boolean ...)
-  // more complex properties (Vectors, Rectangles...) are wrapped by a JavaScript object
-  if( IsPrimitive( value ))
-  {
-    return handleScope.Escape( CreateJavaScriptPrimitive( isolate, value) );
-  }
-
-  // This will wrap a Dali structure (Vector, Rect, Matrix etc) inside a JavaScript object.
-
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  if(PropertyValueWrapper::mTemplatePrimitive.IsEmpty() )
-  {
-    objectTemplate = MakeDaliPropertyTemplate( isolate );
-    PropertyValueWrapper::mTemplatePrimitive.Reset( isolate, objectTemplate);
-  }
-  else
-  {
-    // get the object template
-    objectTemplate = v8::Local<v8::ObjectTemplate>::New( isolate, PropertyValueWrapper::mTemplatePrimitive );
-  }
-
-  v8::Local<v8::Object> localObject = objectTemplate->NewInstance();
-
-  PropertyValueWrapper* pointer =  new PropertyValueWrapper( value, Dali::V8Plugin::DaliWrapper::Get().GetDaliGarbageCollector() );
-
-   // assign the JavaScript object to the wrapper.
-  // This also stores Dali object, in an internal field inside the JavaScript object.
-  pointer->SetJavascriptObject( isolate, localObject );
-
-  return handleScope.Escape( localObject );
-
-}
-
-// Utility function that extracts the C++ map pointer from a wrapper
-// object.
-
-PropertyValueWrapper*  PropertyValueWrapper::Unwrap( v8::Isolate* isolate, v8::Handle< v8::Object> obj)
-{
-  v8::HandleScope handleScope( isolate );
-
-  v8::Local<v8::External> field = v8::Local<v8::External>::Cast( obj->GetInternalField(0) );
-  void* ptr = field->Value();
-  return static_cast< PropertyValueWrapper *>(ptr);
-}
-
-void PropertyValueWrapper::PropertyGet( v8::Local<v8::String> propertyName,
-                                        const v8::PropertyCallbackInfo<v8::Value>& info)
-{
-  v8::Isolate* isolate = info.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  std::string name = V8Utils::v8StringToStdString( propertyName );
-
-  // unwrap the object
-  PropertyValueWrapper* propWrapper = Unwrap( isolate, info.This() );
-
-  v8::Local<v8::Value> value = GetV8ValueFrom( isolate, propWrapper->mValue, name );
-
-  info.GetReturnValue().Set( value );
-}
-
-void PropertyValueWrapper::PropertySet( v8::Local<v8::String> propertyName,
-                  v8::Local<v8::Value> javaScriptValue,
-                  const v8::PropertyCallbackInfo<v8::Value>& info)
-{
-  v8::Isolate* isolate = info.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  std::string name =  V8Utils::v8StringToStdString( propertyName );
-
-  PropertyValueWrapper* propWrapper = Unwrap( isolate, info.This() );
-
-  SetFromV8Value( isolate, propWrapper->mValue, name, javaScriptValue );
-
-}
-
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/object/property-value-wrapper.h b/plugins/dali-script-v8/src/object/property-value-wrapper.h
deleted file mode 100644 (file)
index 6a4bbf6..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-#ifndef DALI_V8PLUGIN_PROPERTYVALUE_WRAPPER_H
-#define DALI_V8PLUGIN_PROPERTYVALUE_WRAPPER_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/object/property-value.h>
-
-// INTERNAL INCLUDES
-#include <shared/base-wrapped-object.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-
-/**
- * An PropertyValue wrapper.
- * Provides access to Property Value specific functionality and V8 memory handling.
- *
- * Only wraps complex types.
- * Native JavaScript Property Value types such as float, bool string etc are handled by the actor wrapper.
- * This supports sub property access for maps and vector.x etc and math functionality not easily mapped
- * to JavaScript objects.
- *
- */
-class PropertyValueWrapper : public BaseWrappedObject
-{
-public:
-
-  /**
-   * @brief Constructor
-   * @param[in] value property value to wrap
-   * @param[in] gc Dali garbage collector interface
-   */
-  explicit PropertyValueWrapper( const Dali::Property::Value& value, GarbageCollectorInterface& gc );
-
-  /**
-   * @brief Destructor
-   */
-  virtual ~PropertyValueWrapper();
-
-  /**
-   * @brief Creates a new Rotation wrapped inside a Javascript Object.
-   * @param[in] args v8 function call arguments interpreted as (x=0,y=0)
-   */
-  static void NewRotation( const v8::FunctionCallbackInfo< v8::Value >& args);
-
-  /**
-   * @brief Creates a new Matrix wrapped inside a Javascript Object.
-   * @param[in] args v8 function call arguments can be a 4 x 4 matrix or a 3 x 3 matrix
-   */
-  static void NewMatrix( const v8::FunctionCallbackInfo< v8::Value >& args);
-
-  /**
-   * @brief Wraps a dali property value inside a JavaScript object
-   * @return JavaScript object
-   */
-  static v8::Handle<v8::Object> WrapDaliProperty(v8::Isolate* isolate, const Dali::Property::Value &value);
-
-  /**
-   * @brief Extract a property value wrapper from a javascript object
-   * @return property value wrapper
-   */
-  static PropertyValueWrapper*  Unwrap( v8::Isolate* isolate, v8::Handle< v8::Object> obj);
-
-  /**
-   * Extract a property value from a javascript object, of a given type
-   * @return property value
-   */
-  static Dali::Property::Value ExtractPropertyValue( v8::Isolate* isolate, v8::Local< v8::Value> v8Value, Dali::Property::Type type);
-
-  /**
-   * Extract a property value from a javascript object
-   * @return property value
-   */
-  static Dali::Property::Value ExtractPropertyValue( v8::Isolate* isolate, v8::Local< v8::Value> v8Value);
-
-  /**
-   * @brief Extract a vector or a matrix from a JavaScript array
-   * @return property value ( vector or matrix)
-   */
-  static Dali::Property::Value VectorOrMatrixFromV8Array( v8::Isolate* isolate, const v8::Local<v8::Value>& v8Value);
-
-  /**
-   * @brief Extract a Dali Property::Array from a JavaScript array
-   * @return array property value ( vector or matrix)
-   */
-  static Dali::Property::Value ArrayFromV8Array( v8::Isolate* isolate, const v8::Local<v8::Value>& v8Value);
-
-  /**
-   * @return property value
-   */
-   Dali::Property::Value GetValue()
-   {
-     return mValue;
-   }
-
-private:
-
-
-   /**
-    * @brief get the value for a property for JavaScript object than contains a Dali object.
-    * E.g. Get( "x", JavaScript object that wraps a Dali Vector2 )
-    * @param[in] propertyName property name
-    * @param[in] info reference to PropertyCallbackInfo structure (contains the Javascript
-    * object and the return value).
-    */
-   static void PropertyGet( v8::Local<v8::String> propertyName,
-                             const v8::PropertyCallbackInfo<v8::Value>& info);
-
-
-   /**
-    * @brief Set the value for a property for JavaScript object than contains a Dali object.
-    * E.g. Set( "x", 103, JavaScript object that wraps a Dali Vector2 )
-    * @param[in] propertyName property name
-    * @param[in] javaScriptValue javascript value to set, this is typically a number
-    * @param[in] info reference to PropertyCallbackInfo structure (contains the Javascript
-    * object).
-    */
-   static void PropertySet( v8::Local<v8::String> propertyName,
-                     v8::Local<v8::Value> javaScriptValue,
-                     const v8::PropertyCallbackInfo<v8::Value>& info);
-
-
-
-
-  // The Property Value ObjectTemplates
-  static v8::Persistent<v8::ObjectTemplate> mTemplatePrimitive;
-
-  /**
-   * @brief used to make Vectors, rotation and rect template
-   * Just produces an object template with 2 internal fields
-   * A type and a pointer to the dali object
-   */
-  static v8::Handle<v8::ObjectTemplate> MakeDaliPropertyTemplate( v8::Isolate* isolate );
-
-private:
-
-  Dali::Property::Value mValue;     ///< property value
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_PROPERTYVALUE_WRAPPER_H
diff --git a/plugins/dali-script-v8/src/render-tasks/render-task-api.cpp b/plugins/dali-script-v8/src/render-tasks/render-task-api.cpp
deleted file mode 100644 (file)
index b87c123..0000000
+++ /dev/null
@@ -1,526 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-
-// CLASS HEADER
-#include "render-task-api.h"
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <render-tasks/render-task-wrapper.h>
-#include <image/image-wrapper.h>
-#include <actors/actor-wrapper.h>
-#include <dali/public-api/render-tasks/render-task.h>
-#include <dali/public-api/actors/camera-actor.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace // un named namespace
-{
-
-
-RenderTask GetRenderTask( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::HandleScope handleScope( isolate );
-
-  v8::Local<v8::Object> object = args.This();
-  v8::Local<v8::External> field = v8::Local<v8::External>::Cast( object->GetInternalField(0) );
-  void* ptr = field->Value();
-
-  RenderTaskWrapper* wrapper = static_cast< RenderTaskWrapper *>(ptr);
-  return wrapper->GetRenderTask();
-}
-
-}
-
-/**
- * Set the actors to be rendered
- * @method setSourceActor
- * @for RenderTask
- * @param {Object} actor This actor and its children will be rendered.
- */
-void RenderTaskApi::SetSourceActor( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  RenderTask renderTask = GetRenderTask( isolate, args );
-  bool found( false );
-  Actor sourceActor = V8Utils::GetActorParameter( PARAMETER_0, found, isolate, args );
-
-  if( found )
-  {
-    renderTask.SetSourceActor( sourceActor );
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "source actor not found" );
-  }
-
-}
-/**
- * Get the actor to be rendered
- * @method getSourceActor
- * @for RenderTask
- * @param {Object} actor source actor
- */
-void RenderTaskApi::GetSourceActor(const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  RenderTask renderTask = GetRenderTask( isolate, args );
-
-  Actor source = renderTask.GetSourceActor();
-
-  v8::Handle < v8::Object > wrappedActor = ActorWrapper::WrapActor( isolate, source );
-  args.GetReturnValue().Set( wrappedActor );
-}
-
-/**
- * Set whether the RenderTask has exclusive access to the source actors; the default is false.
- * @method setExclusive
- * @for RenderTask
- * @param {Boolean} exclusive True if the source actors will only be rendered by this render-task.
- */
-void RenderTaskApi::SetExclusive( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  RenderTask renderTask = GetRenderTask( isolate, args );
-
-  bool found( false );
-  bool exclusive = V8Utils::GetBooleanParameter( PARAMETER_0, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "boolean parameter missing" );
-    return;
-  }
-  renderTask.SetExclusive( exclusive );
-
-}
-
-/**
- * Query whether the RenderTask has exclusive access to the source actors.
- * @method isExclusive
- * @for RenderTask
- * @return {Boolean} exclusive True if the source actors will only be rendered by this render-task.
- */
-void RenderTaskApi::IsExclusive( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  RenderTask renderTask = GetRenderTask( isolate, args );
-
-  args.GetReturnValue().Set( v8::Boolean::New( isolate, renderTask.IsExclusive() ) );
-
-}
-
-/**
- * Set whether the render-task should be considered for input handling; the default is true.
- *
- * The task used for input handling will be last task in the RenderTaskList which has input enabled,
- * and has a valid source & camera actor.
- * A RenderTask targetting a frame-buffer can still be hit-tested, provided that the screen->frame-buffer
- * coordinate conversion is successful; see also SetScreenToFrameBufferFunction().
- * @method setInputEnabled
- * @for RenderTask
- * @param {Boolean} enabled True if the render-task should be considered for input handling.
- */
-void RenderTaskApi::SetInputEnabled( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  RenderTask renderTask = GetRenderTask( isolate, args );
-
-  bool found( false );
-  bool inputEnabled = V8Utils::GetBooleanParameter( PARAMETER_0, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "boolean parameter missing" );
-    return;
-  }
-  renderTask.SetInputEnabled( inputEnabled );
-
-}
-
-/**
- * Query whether the render-task should be considered for input handling.
- * @method getInputEnabled
- * @for RenderTask
- * @return {Boolean} enabled True if the render-task should be considered for input handling.
- */
-void RenderTaskApi::GetInputEnabled( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  RenderTask renderTask = GetRenderTask( isolate, args );
-
-  args.GetReturnValue().Set( v8::Boolean::New( isolate, renderTask.GetInputEnabled() ) );
-
-
-}
-
-/**
- * Set the actor from which the scene is viewed.
- * @method setCameraActor
- * @for RenderTask
- * @param {Object} cameraActor The scene is viewed from the perspective of this actor.
- */
-void RenderTaskApi::SetCameraActor( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  RenderTask renderTask = GetRenderTask( isolate, args );
-  bool found (false );
-  CameraActor cameraActor;
-  Actor actor =  V8Utils::GetActorParameter( PARAMETER_0, found, isolate, args );
-  if( found )
-  {
-    cameraActor = CameraActor::DownCast( actor );
-  }
-
-  if( cameraActor )
-  {
-     renderTask.SetCameraActor( cameraActor );
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "source actor not found" );
-  }
-
-}
-
-/**
- * Retrieve the actor from which the scene is viewed..
- * @method getCameraActor
- * @for RenderTask
- * @return {Object} cameraActor The scene is viewed from the perspective of this actor.
- */
-void RenderTaskApi::GetCameraActor( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  RenderTask renderTask = GetRenderTask( isolate, args );
-
-  Actor cameraActor = renderTask.GetSourceActor();
-
-  v8::Handle < v8::Object > wrappedActor = ActorWrapper::WrapActor( isolate, cameraActor );
-  args.GetReturnValue().Set( wrappedActor );
-
-}
-
-/**
- * Set the frame-buffer used as a render target.
- * @method setTargetFrameBuffer
- * @for RenderTask
- * @param {Object}  frameBuffer A valid frame-buffer handle to enable off-screen rendering, or an uninitialized handle to disable.
- */
-void RenderTaskApi::SetTargetFrameBuffer(const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  RenderTask renderTask = GetRenderTask( isolate, args );
-
-  bool found( false );
-  // @TODO Test this, may need to implement a Framebuffer image.?
-  Image image = V8Utils::GetImageParameter( PARAMETER_0, found, isolate, args );
-  if( !found )
-  {
-     DALI_SCRIPT_EXCEPTION( isolate, "bad parameters" );
-     return;
-  }
-
-  FrameBufferImage frameBufferImage = FrameBufferImage::DownCast(image);
-
-  renderTask.SetTargetFrameBuffer( frameBufferImage );
-
-}
-
-
-/**
- * Get the frame-buffer used as a render target.
- * @method getTargetFrameBuffer
- * @for RenderTask
- * @return {Object}  frameBuffer A valid frame-buffer handle to enable off-screen rendering, or an uninitialized handle to disable.
- */
-void RenderTaskApi::GetTargetFrameBuffer( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  RenderTask renderTask = GetRenderTask( isolate, args );
-
-  // wrap the image
-  // @TODO Test this, may need to implement a Framebuffer image wrapper.?
-  v8::Local<v8::Object> localObject = ImageWrapper::WrapImage( isolate, renderTask.GetTargetFrameBuffer(),ImageWrapper::FRAME_BUFFER_IMAGE );
-  args.GetReturnValue().Set( localObject );
-}
-
-
-/**
- * Set the actor used to convert screen coordinates to frame-buffer coordinates.
- *
- * The local coordinates of the actor are mapped as frame-buffer coordinates.
- * This is useful for hit-testing actors which are rendered off-screen.
- * Note: The mapping actor needs to be rendered by the default render task to make the mapping work properly.
- * @method setScreenToFrameBufferMappingActor
- * @for RenderTask
- * @param {Object}  mappingActor The actor used for conversion.
- */
-void RenderTaskApi::SetScreenToFrameBufferMappingActor( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  RenderTask renderTask = GetRenderTask( isolate, args );
-  bool found( false );
-  Actor sourceActor = V8Utils::GetActorParameter( PARAMETER_0, found, isolate, args );
-
-  if( found )
-  {
-    renderTask.SetScreenToFrameBufferMappingActor( sourceActor );
-  }
-  else
-  {
-      DALI_SCRIPT_EXCEPTION( isolate, "source actor not found" );
-  }
-}
-
-/**
- * Retrieve the actor used to convert screen coordinates to frame-buffer coordinates.
- *
- * @method getScreenToFrameBufferMappingActor
- * @for RenderTask
- * @return {Object} actor used for conversion.
- */
-void RenderTaskApi::GetScreenToFrameBufferMappingActor( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  RenderTask renderTask = GetRenderTask( isolate, args );
-
-  Actor source = renderTask.GetScreenToFrameBufferMappingActor();
-
-  v8::Handle < v8::Object > wrappedActor = ActorWrapper::WrapActor( isolate, source );
-  args.GetReturnValue().Set( wrappedActor );
-}
-
-/**
- * Retrieve the GL viewport used when rendering.
- *
- * @method getViewport
- * @for RenderTask
- * @return {Object} object with the properties { x,y,width,height }
- */
-void RenderTaskApi::GetViewport( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  RenderTask renderTask = GetRenderTask( isolate, args );
-
-  v8::Local<v8::Object> viewportObject = v8::Object::New( isolate );
-
-  Viewport viewPort = renderTask.GetViewport();
-
-  viewportObject->Set( v8::String::NewFromUtf8( isolate, "x"), v8::Number::New( isolate,viewPort.x ));
-  viewportObject->Set( v8::String::NewFromUtf8( isolate, "y"), v8::Number::New( isolate,viewPort.y ));
-  viewportObject->Set( v8::String::NewFromUtf8( isolate, "width"), v8::Number::New( isolate,viewPort.width ));
-  viewportObject->Set( v8::String::NewFromUtf8( isolate, "height"), v8::Number::New( isolate,viewPort.height ));
-
-  args.GetReturnValue().Set( viewportObject );
-
-}
-
-/**
- * Set the GL viewport used when rendering.
- * This specifies the transformation between normalized device coordinates and target window (or frame-buffer) coordinates.
- * By default this will match the target window or frame-buffer size.
- * Unlike the glViewport method, the x & y coordinates refer to the top-left of the viewport rectangle.
- * @method setViewport
- * @for RenderTask
- * @param {Object} object with the properties { x,y,width,height }
- */
-void RenderTaskApi::SetViewport( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  RenderTask renderTask = GetRenderTask( isolate, args );
-
-  if( args.Length() != 1 )
-  {
-     DALI_SCRIPT_EXCEPTION( isolate, "missing / invalid parameters" );
-     return;
-  }
-  v8::Local<v8::Value > viewportValue = args[0];
-  if( !viewportValue->IsObject() )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid parameters" );
-    return;
-  }
-  v8::Local<v8::Object> obj = viewportValue->ToObject();
-  v8::Local<v8::Value> xValue = obj->Get( v8::String::NewFromUtf8( isolate, "x" ) );
-  v8::Local<v8::Value> yValue = obj->Get( v8::String::NewFromUtf8( isolate, "y" ) );
-  v8::Local<v8::Value> widthValue = obj->Get( v8::String::NewFromUtf8( isolate, "width" ) );
-  v8::Local<v8::Value> heightValue = obj->Get( v8::String::NewFromUtf8( isolate, "height" ) );
-
-  if( xValue->IsNumber() &&  yValue->IsNumber() &&   widthValue->IsNumber() &&  heightValue->IsNumber())
-  {
-    Viewport viewPort;
-    viewPort.x= xValue->ToNumber()->Value();
-    viewPort.y = yValue->ToNumber()->Value();
-    viewPort.width = widthValue->ToNumber()->Value();
-    viewPort.height = heightValue->ToNumber()->Value();
-    renderTask.SetViewport( viewPort );
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "missing x,y,width,height property" );
-    return;
-  }
-}
-
-/**
- * Set whether the render-task will clear the results of previous render-tasks.
- *
- * The default is false.
- *
- * The default GL surface is cleared automatically at the
- * beginning of each frame; this setting is only useful when 2+
- * render-tasks are used, and the result of the first task needs to
- * be (partially) cleared before rendering the second. * @method setViewport
- * @for RenderTask
- * @method setClearEnabled
- * @param {Boolean} enabled True if the render-task should clear
- */
-void RenderTaskApi::SetClearEnabled( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  RenderTask renderTask = GetRenderTask( isolate, args );
-
-  bool found( false );
-  bool clearEnabled = V8Utils::GetBooleanParameter( PARAMETER_0, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "boolean parameter missing" );
-    return;
-  }
-  renderTask.SetClearEnabled( clearEnabled );
-
-}
-
-/**
- * Query whether the render-task will clear the results of previous render-tasks.
- *
- * @for RenderTask
- * @method getClearEnabled
- * @return {Boolean} True if the render-task should clear.
- */
-void RenderTaskApi::GetClearEnabled( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  RenderTask renderTask = GetRenderTask( isolate, args );
-
-  args.GetReturnValue().Set( v8::Boolean::New( isolate, renderTask.GetClearEnabled() ) );
-}
-
-/**
- * Set whether the render task will cull the actors to the camera's view frustum.
- * Note that this will only affect image actors that use the default vertex shader.
- * The default mode is to cull actors.
- * @for RenderTask
- * @method setCullMode
- * @param {Boolean}  cullMode True if the renderers should be culled.
- */
-void RenderTaskApi::SetCullMode ( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  RenderTask renderTask = GetRenderTask( isolate, args );
-
-  bool found( false );
-  bool cullMode = V8Utils::GetBooleanParameter( PARAMETER_0, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "boolean parameter missing" );
-    return;
-  }
-  renderTask.SetCullMode( cullMode );
-}
-
-/**
- * Get the cull mode
- * @for RenderTask
- * @method getCullMode
- * @return {Boolean}  cullMode True if the renderers should be culled.
- */
-void RenderTaskApi::GetCullMode( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  RenderTask renderTask = GetRenderTask( isolate, args );
-
-  args.GetReturnValue().Set( v8::Boolean::New( isolate, renderTask.GetCullMode() ) );
-}
-
-/**
- * Set the refresh-rate of the RenderTask.
- *
- * The default is dali.REFRESH_ALWAYS (1), meaning that the RenderTask will be processed every frame.
- * It may be desirable to process less frequently e.g. SetRefreshRate(3) will process once every 3 frames.
- * The dali.REFRESH_ONCE value means that the RenderTask will be processed once only, to take a snap-shot of the scene.
- * Repeatedly calling setRefreshRate(dali.REFRESH_ONCE) will cause more snap-shots to be taken.
- * @method setRefreshRate
- * @param {Integer} refresh rate  (0 =  dali.REFRESH_ONCE, 1= dali.REFRESH_ALWAYS)
- */
-void RenderTaskApi::SetRefreshRate( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  RenderTask renderTask = GetRenderTask( isolate, args );
-
-  bool found( false );
-  int rate = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 );
-  if( !found )
-  {
-     DALI_SCRIPT_EXCEPTION( isolate, "Integer parameter missing" );
-     return;
-  }
-  renderTask.SetRefreshRate( rate );
-}
-
-/**
- *  Query the refresh-rate of the RenderTask.
- * @method getRefreshRate
- * @return {Integer} refresh rate  (0 =  dali.REFRESH_ONCE, 1= dali.REFRESH_ALWAYS)
- */
-void RenderTaskApi::GetRefreshRate( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  RenderTask renderTask = GetRenderTask( isolate, args );
-
-  args.GetReturnValue().Set( v8::Integer::New( isolate, renderTask.GetRefreshRate() ) );
-}
-
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/render-tasks/render-task-api.h b/plugins/dali-script-v8/src/render-tasks/render-task-api.h
deleted file mode 100644 (file)
index 622f9bc..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-#ifndef DALI_V8PLUGIN_RENDER_TASK_API_H
-#define DALI_V8PLUGIN_RENDER_TASK_API_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace RenderTaskApi
-{
-
-
-  /**
-   * RenderTask API see render-task.h for a description
-   */
-  void SetSourceActor( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetSourceActor(const v8::FunctionCallbackInfo< v8::Value >& args );
-  void SetExclusive( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void IsExclusive( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void SetInputEnabled( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetInputEnabled( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void SetCameraActor( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetCameraActor( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void SetTargetFrameBuffer(const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetTargetFrameBuffer( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void SetScreenToFrameBufferMappingActor( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetScreenToFrameBufferMappingActor( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetViewport( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void SetViewport( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void SetClearEnabled( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetClearEnabled( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void SetCullMode ( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetCullMode( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void SetRefreshRate( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetRefreshRate( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-}; // namespace RenderTaskApi
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_RENDER_TASK_API_H
diff --git a/plugins/dali-script-v8/src/render-tasks/render-task-list-api.cpp b/plugins/dali-script-v8/src/render-tasks/render-task-list-api.cpp
deleted file mode 100644 (file)
index 311bedb..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "render-task-list-api.h"
-
-// EXTERNAL INCLUDES
-#include <dali/integration-api/debug.h>
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <render-tasks/render-task-list-wrapper.h>
-#include <render-tasks/render-task-wrapper.h>
-#include <render-tasks/render-task-api.h>
-#include <object/property-value-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace // un named namespace
-{
-
-/**
- *
-## RenderTaskList API
-
-
-An ordered list of Dali::RenderTasks
-
-These tasks describe how the Dali scene should be rendered;
-See {{#crossLink "RenderTask"}}{{/crossLink}}
-
- @class RenderTaskList
-*/
-
-
-RenderTaskList GetRenderTaskList( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::HandleScope handleScope( isolate );
-
-  v8::Local<v8::Object> object = args.This();
-  v8::Local<v8::External> field = v8::Local<v8::External>::Cast( object->GetInternalField( 0 ) );
-  void* ptr = field->Value();
-
-  RenderTaskListWrapper* wrapper = static_cast<RenderTaskListWrapper *>( ptr );
-  return wrapper->GetRenderTaskList();
-}
-
-
-} // un-named namespace
-
-/**
- * Create a new RenderTask.
- * This will be appended to the list of render-tasks.
- * @method createTask
- * @for RenderTaskList
- * @return {Object} RenderTask
- */
-void RenderTaskListApi::CreateTask( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  RenderTaskList taskList = GetRenderTaskList( isolate, args);
-
-  RenderTask renderTask = taskList.CreateTask();
-
-  v8::Handle<v8::Object> wrappedTask = RenderTaskWrapper::WrapRenderTask(isolate, renderTask);
-  args.GetReturnValue().Set( wrappedTask  );
-
-}
-
-/**
- * Remove a RenderTask from the list of render-tasks.
- * @method removeTask
- * @for RenderTaskList
- * @param{Object} RenderTask to remove
- */
-void RenderTaskListApi::RemoveTask( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  RenderTaskList taskList = GetRenderTaskList( isolate, args );
-
-  bool found( false );
-  RenderTask renderTask = V8Utils::GetRenderTaskParameter( PARAMETER_0, found, isolate, args );
-  if(! found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "render-task parameter missing" );
-    return;
-  }
-  taskList.RemoveTask( renderTask );
-}
-/**
- * Query the number of render-tasks in the list.
- * This is ordered i.e. the task with index 0 is the first to be processed each frame.
- * @method getTaskCount
- * @for RenderTaskList
- * @return {Number}  The number of render-tasks.
- */
-void RenderTaskListApi::GetTaskCount( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  RenderTaskList taskList = GetRenderTaskList( isolate, args );
-
-  args.GetReturnValue().Set( v8::Integer::New( isolate, taskList.GetTaskCount() ) );
-
-}
-/**
- * Retrieve a render-task.
- * index should be in range i.e. less than GetTaskCount().
- * @method getTask
- * @for RenderTaskList
- * @param {Number} index The index of the render task to retrieve
- * @return {Object}  The render-task
- */
-void RenderTaskListApi::GetTask( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  RenderTaskList taskList = GetRenderTaskList( isolate, args );
-
-  bool found( false );
-  int index = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 );
-  if( !found )
-  {
-     DALI_SCRIPT_EXCEPTION( isolate, "Integer parameter missing" );
-     return;
-  }
-  RenderTask renderTask = taskList.GetTask( index );
-
-  v8::Handle<v8::Object> wrappedTask = RenderTaskWrapper::WrapRenderTask(isolate, renderTask);
-  args.GetReturnValue().Set( wrappedTask  );
-}
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/render-tasks/render-task-list-api.h b/plugins/dali-script-v8/src/render-tasks/render-task-list-api.h
deleted file mode 100644 (file)
index 1d8a6b6..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef DALI_V8PLUGIN_RENDER_TASK_LIST_API_H
-#define DALI_V8PLUGIN_RENDER_TASK_LIST_API_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/render-tasks/render-task-list.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace RenderTaskListApi
-{
-  /**
-   * Constructor
-   */
-  RenderTaskList New( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-
-  /**
-   * RenderTaskList API see render-task-list.h for a description
-   */
-  void CreateTask( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void RemoveTask( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetTaskCount( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetTask( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-}; // namespace RenderTaskListApi
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_RENDER_TASK_LIST_API_H
diff --git a/plugins/dali-script-v8/src/render-tasks/render-task-list-wrapper.cpp b/plugins/dali-script-v8/src/render-tasks/render-task-list-wrapper.cpp
deleted file mode 100644 (file)
index 03e4dfb..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "render-task-list-wrapper.h"
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <dali-wrapper.h>
-#include <render-tasks/render-task-list-api.h>
-#include <shared/api-function.h>
-#include <shared/object-template-helper.h>
-
-namespace Dali
-{
-namespace V8Plugin
-{
-
-v8::Persistent<v8::ObjectTemplate> RenderTaskListWrapper::mRenderTaskListTemplate;
-
-namespace
-{
-
-/**
- * Contains a list of all functions that can be called
- */
-const ApiFunction RenderTaskListFunctionTable[]=
-{
-    /**************************************
-    * RenderTaskList API (in order of renderTaskList.h)
-    **************************************/
-
-    { "CreateTask"             , RenderTaskListApi::CreateTask     },
-    { "RemoveTask"             , RenderTaskListApi::RemoveTask     },
-    { "GetTaskCount"           , RenderTaskListApi::GetTaskCount   },
-    { "GetTask"                , RenderTaskListApi::GetTask        },
-
-
-};
-
-const unsigned int RenderTaskListFunctionTableCount = sizeof(RenderTaskListFunctionTable)/sizeof(RenderTaskListFunctionTable[0]);
-} //un-named space
-
-
-RenderTaskListWrapper::RenderTaskListWrapper( const Dali::RenderTaskList& renderTaskList, GarbageCollectorInterface& gc )
-: BaseWrappedObject( BaseWrappedObject::RENDER_TASK_LIST , gc )
-{
-    mRenderTaskList = renderTaskList;
-}
-
-RenderTaskListWrapper::~RenderTaskListWrapper()
-{
-
-}
-
-v8::Handle<v8::Object> RenderTaskListWrapper::WrapRenderTaskList(v8::Isolate* isolate, const Dali::RenderTaskList& renderTaskList )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  objectTemplate = GetRenderTaskListTemplate( isolate);
-
-  // create an instance of the template
-  v8::Local<v8::Object> localObject = objectTemplate->NewInstance();
-
-  // create the RenderTaskList wrapper
-  RenderTaskListWrapper* pointer =  new RenderTaskListWrapper( renderTaskList, Dali::V8Plugin::DaliWrapper::Get().GetDaliGarbageCollector() );
-
-  // assign the JavaScript object to the wrapper.
-  pointer->SetJavascriptObject( isolate, localObject );
-
-  return handleScope.Escape( localObject );
-}
-
-v8::Local<v8::ObjectTemplate> RenderTaskListWrapper::GetRenderTaskListTemplate( v8::Isolate* isolate)
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  if( mRenderTaskListTemplate.IsEmpty() )
-  {
-    objectTemplate = MakeRenderTaskListTemplate( isolate );
-    mRenderTaskListTemplate.Reset( isolate, objectTemplate );
-  }
-  else
-  {
-    // get the object template
-    objectTemplate = v8::Local<v8::ObjectTemplate>::New( isolate, mRenderTaskListTemplate );
-  }
-  return handleScope.Escape( objectTemplate );
-}
-
-v8::Handle<v8::ObjectTemplate> RenderTaskListWrapper::MakeRenderTaskListTemplate( v8::Isolate* isolate )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  v8::Local<v8::ObjectTemplate> objTemplate = v8::ObjectTemplate::New();
-
-  // add intercepts for Signals, we can't use HandleWrapper::AddIntercepts because RenderTaskList doesn't inherit
-  // from Handle ( just baseHandle)
-  ObjectTemplateHelper::AddSignalConnectAndDisconnect( isolate, objTemplate );
-
-  objTemplate->SetInternalFieldCount( BaseWrappedObject::FIELD_COUNT );
-
-  // add our function properties
-  ObjectTemplateHelper::InstallFunctions( isolate, objTemplate, RenderTaskListFunctionTable, RenderTaskListFunctionTableCount );
-
-  return handleScope.Escape( objTemplate );
-}
-
-//  v8::Local<v8::Object> localObject = WrapRenderTaskList( isolate, renderTaskList );
- // args.GetReturnValue().Set( localObject );
-
-
-
-RenderTaskList RenderTaskListWrapper::GetRenderTaskList()
-{
-  return mRenderTaskList;
-}
-
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/render-tasks/render-task-list-wrapper.h b/plugins/dali-script-v8/src/render-tasks/render-task-list-wrapper.h
deleted file mode 100644 (file)
index c074007..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-#ifndef DALI_V8PLUGIN_RENDER_TASK_LIST_WRAPPER_H
-#define DALI_V8PLUGIN_RENDER_TASK_LIST_WRAPPER_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/render-tasks/render-task-list.h>
-
-// INTERNAL INCLUDES
-#include <shared/base-wrapped-object.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-/**
- * RenderTaskList  wrapper.
- * Provides access to RenderTaskList specific functionality
- */
-class RenderTaskListWrapper : public BaseWrappedObject
-{
-
-public:
-
-  RenderTaskListWrapper( const RenderTaskList& renderTaskList,
-                GarbageCollectorInterface& gc );
-
-  virtual ~RenderTaskListWrapper();
-
-  /**
-   * Wraps an renderTaskList
-   */
-  static v8::Handle<v8::Object> WrapRenderTaskList(v8::Isolate* isolate, const Dali::RenderTaskList& );
-
-
-  // The RenderTaskListAttribute ObjectTemplate, we cache templates so we don't have
-  // keep generating them everytime we want to create an RenderTaskList
-  static v8::Persistent<v8::ObjectTemplate> mRenderTaskListTemplate;
-
-  RenderTaskList GetRenderTaskList();
-
-
-private:
-
-  RenderTaskList mRenderTaskList;  ///< renderTaskList object
-
-  static v8::Handle<v8::ObjectTemplate> MakeRenderTaskListTemplate( v8::Isolate* isolate );
-  static v8::Local<v8::ObjectTemplate> GetRenderTaskListTemplate( v8::Isolate* isolate );
-
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_RENDER_TASK_LIST_WRAPPER_H
diff --git a/plugins/dali-script-v8/src/render-tasks/render-task-wrapper.cpp b/plugins/dali-script-v8/src/render-tasks/render-task-wrapper.cpp
deleted file mode 100644 (file)
index 6d48d80..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "render-task-wrapper.h"
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <render-tasks/render-task-api.h>
-#include <shared/api-function.h>
-#include <shared/object-template-helper.h>
-#include <signals/signal-manager.h>
-#include <dali-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-v8::Persistent<v8::ObjectTemplate> RenderTaskWrapper::mRenderTaskTemplate;
-
-namespace // un-named name space
-{
-
-/**
- * Contains a list of all functions that can be called
- */
-const ApiFunction RenderTaskFunctionTable[]=
-{
-    /**************************************
-    * RenderTask API (in order of renderTask.h)
-    **************************************/
-
-   { "SetSourceActor"             , RenderTaskApi::SetSourceActor },
-   { "GetSourceActor"             , RenderTaskApi::GetSourceActor },
-   { "SetExclusive"               , RenderTaskApi::SetExclusive },
-   { "IsExclusive"                , RenderTaskApi::IsExclusive },
-   { "SetInputEnabled"            , RenderTaskApi::SetInputEnabled },
-   { "GetInputEnabled"            , RenderTaskApi::GetInputEnabled },
-   { "SetCameraActor"             , RenderTaskApi::SetCameraActor },
-   { "GetCameraActor"             , RenderTaskApi::GetCameraActor },
-   { "SetTargetFrameBuffer"       , RenderTaskApi::SetTargetFrameBuffer },
-   { "GetTargetFrameBuffer"        , RenderTaskApi::GetTargetFrameBuffer },
-   { "SetScreenToFrameBufferMappingActor" , RenderTaskApi::SetScreenToFrameBufferMappingActor },
-   { "GetScreenToFrameBufferMappingActor" , RenderTaskApi::GetScreenToFrameBufferMappingActor },
-
-   // USE viewportPosition property "SetViewportPosition" , RenderTaskApi::SetViewportPosition },
-   // USE viewportPosition property{ "GetCurrentViewportPosition" , RenderTaskApi::GetCurrentViewportPosition },
-   // USE viewportSize property { "SetViewportSize" ,       RenderTaskApi::SetViewportSize },
-   // USE viewportSize property { "SetViewportSize" ,       RenderTaskApi::SetViewportSize },
-
-   { "GetViewport" ,                RenderTaskApi::GetViewport },
-   { "SetViewport" ,                RenderTaskApi::SetViewport },
-
-   // USE clearColor property, { "SetClearColor" ,        RenderTaskApi::SetClearColor },
-   // USE clearColor property, // { "GetClearColor" ,     RenderTaskApi::GetClearColor },
-
-   { "SetClearEnabled" ,            RenderTaskApi::SetClearEnabled },
-   { "GetClearEnabled" ,            RenderTaskApi::GetClearEnabled },
-   { "SetCullMode" ,                RenderTaskApi::SetCullMode },
-   { "GetCullMode" ,                RenderTaskApi::GetCullMode },
-   { "SetRefreshRate" ,             RenderTaskApi::SetRefreshRate },
-   { "GetRefreshRate" ,             RenderTaskApi::GetRefreshRate },
-
-};
-
-const unsigned int RenderTaskFunctionTableCount = sizeof(RenderTaskFunctionTable)/sizeof(RenderTaskFunctionTable[0]);
-} //un-named space
-
-
-RenderTaskWrapper::RenderTaskWrapper( const Dali::RenderTask& renderTask, GarbageCollectorInterface& gc )
-:  HandleWrapper(  BaseWrappedObject::RENDER_TASK , renderTask, gc )
-{
-    mRenderTask = renderTask;
-}
-
-v8::Handle<v8::Object> RenderTaskWrapper::WrapRenderTask(v8::Isolate* isolate, const Dali::RenderTask& renderTask )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  objectTemplate = GetRenderTaskTemplate( isolate);
-
-  // create an instance of the template
-  v8::Local<v8::Object> localObject = objectTemplate->NewInstance();
-
-  // create the RenderTask wrapper
-  RenderTaskWrapper* pointer =  new RenderTaskWrapper( renderTask, Dali::V8Plugin::DaliWrapper::Get().GetDaliGarbageCollector() );
-
-  // assign the JavaScript object to the wrapper.
-  pointer->SetJavascriptObject( isolate, localObject );
-
-  return handleScope.Escape( localObject );
-}
-
-v8::Local<v8::ObjectTemplate> RenderTaskWrapper::GetRenderTaskTemplate( v8::Isolate* isolate)
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  if( mRenderTaskTemplate.IsEmpty() )
-  {
-    objectTemplate = MakeRenderTaskTemplate( isolate );
-    mRenderTaskTemplate.Reset( isolate, objectTemplate );
-  }
-  else
-  {
-    // get the object template
-    objectTemplate = v8::Local<v8::ObjectTemplate>::New( isolate, mRenderTaskTemplate );
-  }
-  return handleScope.Escape( objectTemplate );
-}
-
-v8::Handle<v8::ObjectTemplate> RenderTaskWrapper::MakeRenderTaskTemplate( v8::Isolate* isolate )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  v8::Local<v8::ObjectTemplate> objTemplate = v8::ObjectTemplate::New();
-
-  // property handle intercepts property getters and setters and signals
-  HandleWrapper::AddInterceptsToTemplate( isolate, objTemplate );
-
-  objTemplate->SetInternalFieldCount( BaseWrappedObject::FIELD_COUNT );
-
-  // add our function properties
-  ObjectTemplateHelper::InstallFunctions( isolate, objTemplate, RenderTaskFunctionTable, RenderTaskFunctionTableCount );
-
-  return handleScope.Escape( objTemplate );
-}
-
-
-RenderTask RenderTaskWrapper::GetRenderTask()
-{
-  return mRenderTask;
-}
-
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/render-tasks/render-task-wrapper.h b/plugins/dali-script-v8/src/render-tasks/render-task-wrapper.h
deleted file mode 100644 (file)
index e992e42..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-#ifndef DALI_V8PLUGIN_SHADER_EFFECT_WRAPPER_H
-#define DALI_V8PLUGIN_SHADER_EFFECT_WRAPPER_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/render-tasks/render-task.h>
-
-// INTERNAL INCLUDES
-#include <object/handle-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-
-/**
- * An RenderTask  wrapper.
- * Provides access to RenderTask specific functionality and V8 memory handling.
- */
-class RenderTaskWrapper : public HandleWrapper
-{
-
-public:
-
-  RenderTaskWrapper( const RenderTask& shaderEffect,
-                GarbageCollectorInterface& gc );
-
-  virtual ~RenderTaskWrapper() {}
-
-
-  /**
-   * Wraps a render task
-   */
-  static v8::Handle<v8::Object> WrapRenderTask(v8::Isolate* isolate, const Dali::RenderTask& );
-
-
-  // The RenderTaskAttribute ObjectTemplate, we cache templates so we don't have
-  // keep generating them everytime we want to create an RenderTask
-  static v8::Persistent<v8::ObjectTemplate> mRenderTaskTemplate;
-
-  RenderTask GetRenderTask();
-
-
-private:
-
-  // RenderTask
-  RenderTask mRenderTask;
-
-  static v8::Handle<v8::ObjectTemplate> MakeRenderTaskTemplate( v8::Isolate* isolate );
-  static v8::Local<v8::ObjectTemplate> GetRenderTaskTemplate( v8::Isolate* isolate );
-
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_SHADER_EFFECT_WRAPPER_H
diff --git a/plugins/dali-script-v8/src/rendering/geometry-api.cpp b/plugins/dali-script-v8/src/rendering/geometry-api.cpp
deleted file mode 100644 (file)
index 7011c20..0000000
+++ /dev/null
@@ -1,301 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-
-// CLASS HEADER
-#include "geometry-api.h"
-
-// EXTERNAL INCLUDES
-#include <dali/public-api/object/type-registry.h>
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <rendering/geometry-wrapper.h>
-#include <object/property-buffer-api.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-/**
- * ## Geometry API
- *
- * Geometry is handle to an object that can be used to define a geometric elements.
- *
- * @class Geometry
- * @extends Handle
- */
-
-Geometry GeometryApi::GetGeometry( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::HandleScope handleScope( isolate );
-
-  v8::Local<v8::Object> object = args.This();
-  v8::Local<v8::External> field = v8::Local<v8::External>::Cast( object->GetInternalField(0) );
-  void* ptr = field->Value();
-
-  GeometryWrapper* wrapper = static_cast< GeometryWrapper *>(ptr);
-  return wrapper->GetGeometry();
-}
-
-Geometry GeometryApi::GetGeometryFromParams( int paramIndex,
-                                             bool& found,
-                                             v8::Isolate* isolate,
-                                             const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  found = false;
-
-  v8::HandleScope handleScope( isolate );
-  BaseWrappedObject* wrappedObject = V8Utils::GetWrappedDaliObjectParameter( paramIndex, BaseWrappedObject::GEOMETRY, isolate, args );
-  if( wrappedObject )
-  {
-    found = true;
-    GeometryWrapper* wrapper = static_cast< GeometryWrapper *>(wrappedObject);
-    return wrapper->GetGeometry();
-  }
-  else
-  {
-    return Geometry();
-  }
-}
-
-/**
- * Create a new geometry object.
- *
- * @constructor
- * @method Geometry
- * @for Geometry
- * @return {Object} Geometry
- */
-Geometry GeometryApi::New( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  return Geometry::New();
-}
-
-/**
- * Add a PropertyBuffer to be used as source of geometry vertices
- *
- * @method addVertexBuffer
- * @for Geometry
- * @param {Object} vertexBuffer PropertyBuffer to be used as source of geometry vertices
- * @return {interger} Index of the newly added buffer, can be used with RemoveVertexBuffer
- *                    to remove this buffer if no longer required
- * @example
- *```
- *    var vertexFormat ={ "aPosition" : dali.PROPERTY_VECTOR2 };
- *    var vertexData = [    0,     1,
- *                      -0.95,  0.31,
- *                      -0.59, -0.81,
- *                       0.59, -0.81,
- *                       0.95,  0.31];
- *
- *    var vertexDataArray = new Float32Array(vertexData.length);
- *    vertexDataArray.set(vertexData, 0);
- *    var vertices = new dali.PropertyBuffer(vertexFormat, 5);
- *    vertices.setData(vertexDataArray);
- *
- *    var geometry = new dali.Geometry();
- *    geometry.addVertexBuffer( vertices );
- *```
- */
-void GeometryApi::AddVertexBuffer( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Geometry geometry = GetGeometry( isolate, args );
-
-  bool found( false );
-  PropertyBuffer vertexBuffer = PropertyBufferApi::GetPropertyBufferFromParams( 0, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid property buffer parameter" );
-  }
-  else
-  {
-    args.GetReturnValue().Set( v8::Integer::New( isolate, geometry.AddVertexBuffer(vertexBuffer) ) );
-  }
-}
-
-/**
- * Retrieve the number of vertex buffers that have been added to this geometry
- *
- * @method getNumberOfVertexBuffers
- * @for Geometry
- * @return {integer} Number of vertex buffers that have been added to this geometry
- */
-void GeometryApi::GetNumberOfVertexBuffers( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Geometry geometry = GetGeometry( isolate, args );
-
-  args.GetReturnValue().Set( v8::Integer::New( isolate, geometry.GetNumberOfVertexBuffers() ) );
-}
-
-/**
- * Remove a vertex buffer
- *
- * @method removeVertexBuffer
- * @for Geometry
- * @param {integer} index Index to the vertex buffer to remove,
- *                  which must be between 0 and getNumberOfVertexBuffers()
- */
-void GeometryApi::RemoveVertexBuffer( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Geometry geometry = GetGeometry( isolate, args );
-
-  bool found( false );
-  int index = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 /* default */);
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "missing index from param 0" );
-  }
-  else
-  {
-    geometry.RemoveVertexBuffer(static_cast<std::size_t>(index));
-  }
-}
-
-/**
- * Set a PropertyBuffer to be used as a source of indices for the geometry
- *
- * This buffer is required to have exactly one component and it must be of the
- * type dali.PROPERTY_INTEGER
- *
- * By setting this buffer it will cause the geometry to be rendered using indices.
- * To unset call SetIndexBuffer with an empty handle.
- *
- * @method setIndexBuffer
- * @for Geometry
- * @param {Uint32Array} data The data that will be copied to the buffer
- *
- * @example
- * var indexData = [0, 1, 1, 2, 2, 3, 3, 4, 4, 0];
- * var indexDataArray = new Uint32Array(indexData.length);
- * indexDataArray.set(indexData, 0);
- *
- * geometry.SetIndexBuffer( indexDataArray, indexDataArray.length );
- *```
- */
-void GeometryApi::SetIndexBuffer( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Geometry geometry = GetGeometry( isolate, args );
-
-  bool found( false );
-  void* data = V8Utils::GetArrayBufferViewParameter( PARAMETER_0, found, isolate, args);
-
-  if( ! found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid data parameter" );
-  }
-  else
-  {
-    unsigned int size = V8Utils::GetIntegerParameter( PARAMETER_1, found, isolate, args, 0);
-    if( !found )
-    {
-      DALI_SCRIPT_EXCEPTION( isolate, "missing buffer size from param 1" );
-    }
-    else
-    {
-      Dali::Vector<unsigned short> indices;
-      indices.Resize( size );
-      unsigned int* indexData = static_cast<unsigned int*>(data);
-      for( size_t i(0); i<size; ++i )
-      {
-        indices[i] = indexData[i];
-      }
-      geometry.SetIndexBuffer( &indices[0], size );
-    }
-  }
-}
-
-/**
- * Set the type of primitives this geometry contains
- *
- * @method setType
- * @for Geometry
- * @param {integer} geometryType Type of primitives this geometry contains
- * @example
- *      // geometry type is one of the following
- *      dali.GEOMETRY_POINTS
- *      dali.GEOMETRY_LINES
- *      dali.GEOMETRY_LINE_LOOP
- *      dali.GEOMETRY_LINE_STRIP
- *      dali.GEOMETRY_TRIANGLES
- *      dali.GEOMETRY_TRIANGLE_FAN
- *      dali.GEOMETRY_TRIANGLE_STRIP
- *
- *      geometry.SetType( dali.GEOMETRY_LINES );
- */
-void GeometryApi::SetType( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Geometry geometry = GetGeometry( isolate, args );
-
-  bool found( false );
-  int geometryType = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 /* default */);
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "missing geometryType from param 0" );
-  }
-  else
-  {
-    geometry.SetType(static_cast<Geometry::Type>(geometryType));
-  }
-}
-
-/**
- * Get the type of primitives this geometry contains
- *
- * @method getType
- * @for Geometry
- * @return {integer} Type of primitives this geometry contains
- * @example
- *      // returns one of the following
- *      dali.GEOMETRY_POINTS
- *      dali.GEOMETRY_LINES
- *      dali.GEOMETRY_LINE_LOOP
- *      dali.GEOMETRY_LINE_STRIP
- *      dali.GEOMETRY_TRIANGLES
- *      dali.GEOMETRY_TRIANGLE_FAN
- *      dali.GEOMETRY_TRIANGLE_STRIP
- */
-void GeometryApi::GetType( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Geometry geometry = GetGeometry( isolate, args );
-
-  args.GetReturnValue().Set( v8::Integer::New( isolate, geometry.GetType() ) );
-}
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/rendering/geometry-api.h b/plugins/dali-script-v8/src/rendering/geometry-api.h
deleted file mode 100644 (file)
index a495942..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-#ifndef DALI_V8PLUGIN_GEOMETRY_API_H
-#define DALI_V8PLUGIN_GEOMETRY_API_H
-
-/*
- * 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/rendering/geometry.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace GeometryApi
-{
-
-  /**
-   * Helper to get geometry from args.This()
-   */
-  Geometry GetGeometry( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  /**
-   * @brief Helper to get geometry from the JavaScript object held in the given function argument
-   * @param[in] paramIndex Argument index the object is held in
-   * @param[in] found Whether geometry is found in the given function parameter
-   * @param[in] isolate v8 isolated instance
-   * @param[in] args v8 function call arguments interpreted
-   */
-  Geometry GetGeometryFromParams( int paramIndex,
-                                     bool& found,
-                                     v8::Isolate* isolate,
-                                     const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  /**
-   * Constructor
-   */
-   Geometry New( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-   /**
-    * Geometry API see geometry.h for a description
-    */
-   void AddVertexBuffer( const v8::FunctionCallbackInfo< v8::Value >& args );
-   void GetNumberOfVertexBuffers( const v8::FunctionCallbackInfo< v8::Value >& args );
-   void RemoveVertexBuffer( const v8::FunctionCallbackInfo< v8::Value >& args );
-   void SetIndexBuffer( const v8::FunctionCallbackInfo< v8::Value >& args );
-   void SetType( const v8::FunctionCallbackInfo< v8::Value >& args );
-   void GetType( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-}; // namespace GeometryApi
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_GEOMETRY_API_H
diff --git a/plugins/dali-script-v8/src/rendering/geometry-wrapper.cpp b/plugins/dali-script-v8/src/rendering/geometry-wrapper.cpp
deleted file mode 100644 (file)
index 2a6c67c..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * 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.
- *
- */
-
-// CLASS HEADER
-#include "geometry-wrapper.h"
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <rendering/geometry-api.h>
-#include <shared/api-function.h>
-#include <shared/object-template-helper.h>
-#include <dali-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-v8::Persistent<v8::ObjectTemplate> GeometryWrapper::mGeometryTemplate;
-
-namespace // un-named name space
-{
-
-/**
- * Contains a list of all functions that can be called
- */
-const ApiFunction GeometryFunctionTable[]=
-{
-    /**************************************
-    * Geometry API (in order of Geometry.h)
-    **************************************/
-
-   { "AddVertexBuffer"             , GeometryApi::AddVertexBuffer },
-   { "GetNumberOfVertexBuffers"    , GeometryApi::GetNumberOfVertexBuffers },
-   { "RemoveVertexBuffer"          , GeometryApi::RemoveVertexBuffer },
-   { "SetIndexBuffer"              , GeometryApi::SetIndexBuffer },
-   { "SetType"                     , GeometryApi::SetType },
-   { "GetType"                     , GeometryApi::GetType },
-};
-
-const unsigned int GeometryFunctionTableCount = sizeof(GeometryFunctionTable)/sizeof(GeometryFunctionTable[0]);
-} //un-named space
-
-
-GeometryWrapper::GeometryWrapper( const Dali::Geometry& geometry, GarbageCollectorInterface& gc )
-:  BaseWrappedObject(  BaseWrappedObject::GEOMETRY, gc )
-{
-    mGeometry = geometry;
-}
-
-v8::Handle<v8::Object> GeometryWrapper::WrapGeometry(v8::Isolate* isolate, const Dali::Geometry& geometry )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  objectTemplate = GetGeometryTemplate( isolate);
-
-  // create an instance of the template
-  v8::Local<v8::Object> localObject = objectTemplate->NewInstance();
-
-  // create the Geometry wrapper
-  GeometryWrapper* pointer =  new GeometryWrapper( geometry, Dali::V8Plugin::DaliWrapper::Get().GetDaliGarbageCollector() );
-
-  // assign the JavaScript object to the wrapper.
-  pointer->SetJavascriptObject( isolate, localObject );
-
-  return handleScope.Escape( localObject );
-}
-
-v8::Local<v8::ObjectTemplate> GeometryWrapper::GetGeometryTemplate( v8::Isolate* isolate)
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  if( mGeometryTemplate.IsEmpty() )
-  {
-    objectTemplate = MakeGeometryTemplate( isolate );
-    mGeometryTemplate.Reset( isolate, objectTemplate );
-  }
-  else
-  {
-    // get the object template
-    objectTemplate = v8::Local<v8::ObjectTemplate>::New( isolate, mGeometryTemplate );
-  }
-  return handleScope.Escape( objectTemplate );
-}
-
-v8::Handle<v8::ObjectTemplate> GeometryWrapper::MakeGeometryTemplate( v8::Isolate* isolate )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  v8::Local<v8::ObjectTemplate> objTemplate = v8::ObjectTemplate::New();
-
-  objTemplate->SetInternalFieldCount( BaseWrappedObject::FIELD_COUNT );
-
-  // add our function properties
-  ObjectTemplateHelper::InstallFunctions( isolate, objTemplate, GeometryFunctionTable, GeometryFunctionTableCount );
-
-  return handleScope.Escape( objTemplate );
-}
-
-void GeometryWrapper::NewGeometry( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate);
-
-  if(!args.IsConstructCall())
-  {
-      DALI_SCRIPT_EXCEPTION( isolate, "Geometry constructor called without 'new'");
-      return;
-  }
-  Dali::Geometry geometry = GeometryApi::New( args );
-
-  if(geometry)
-  {
-    v8::Local<v8::Object> localObject = WrapGeometry( isolate, geometry );
-    args.GetReturnValue().Set( localObject );
-  }
-}
-
-
-Geometry GeometryWrapper::GetGeometry()
-{
-  return mGeometry;
-}
-
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/rendering/geometry-wrapper.h b/plugins/dali-script-v8/src/rendering/geometry-wrapper.h
deleted file mode 100644 (file)
index 8608d92..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-#ifndef DALI_V8PLUGIN_GEOMETRY_WRAPPER_H
-#define DALI_V8PLUGIN_GEOMETRY_WRAPPER_H
-
-/*
- * 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/rendering/geometry.h>
-
-// INTERNAL INCLUDES
-#include <object/handle-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-
-/**
- * A Geometry wrapper.
- * Provides access to Geometry specific functionality and V8 memory handling.
- */
-class GeometryWrapper : public BaseWrappedObject
-{
-
-public:
-
-  /**
-   * @brief Constructor
-   * @param[in] propertyBuffer DALi geometry
-   * @param[in] gc garbage collection interface
-   */
-  GeometryWrapper( const Geometry& geometry,
-                GarbageCollectorInterface& gc );
-
-  /**
-   * @brief Destructor
-   */
-  virtual ~GeometryWrapper()
-  {
-  };
-
-  /**
-   * @brief Creates a new Geometry wrapped inside a Javascript Object.
-   * @param[in] args v8 function call arguments interpreted
-   */
-  static void NewGeometry( const v8::FunctionCallbackInfo< v8::Value >& args);
-
-  /**
-   * Wraps a geometry
-   */
-  static v8::Handle<v8::Object> WrapGeometry(v8::Isolate* isolate, const Dali::Geometry& );
-
-
-  // The GeometryAttribute ObjectTemplate, we cache templates so we don't have
-  // keep generating them everytime we want to create a Geometry
-  static v8::Persistent<v8::ObjectTemplate> mGeometryTemplate;
-
-  /**
-   * @brief Gets the handle of geometry
-   * @return the handle of geometry
-   */
-  Geometry GetGeometry();
-
-
-private:
-
-  // Geometry
-  Geometry mGeometry;
-
-  /**
-   * @brief Creates the object template that used to create geometry at runtime
-   * @param[in] isolate v8 isolated instance
-   * @return the object template
-   */
-  static v8::Handle<v8::ObjectTemplate> MakeGeometryTemplate( v8::Isolate* isolate );
-
-  /**
-   * @brief Gets the object template that used to create geometry at runtime
-   * @param[in] isolate v8 isolated instance
-   * @return the object template
-   */
-  static v8::Local<v8::ObjectTemplate> GetGeometryTemplate( v8::Isolate* isolate );
-
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_GEOMETRY_WRAPPER_H
diff --git a/plugins/dali-script-v8/src/rendering/renderer-api.cpp b/plugins/dali-script-v8/src/rendering/renderer-api.cpp
deleted file mode 100644 (file)
index 8834c35..0000000
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-
-// CLASS HEADER
-#include "renderer-api.h"
-
-// EXTERNAL INCLUDES
-#include <dali/public-api/object/type-registry.h>
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <rendering/renderer-wrapper.h>
-#include <rendering/geometry-api.h>
-#include <rendering/geometry-wrapper.h>
-#include <rendering/texture-set-api.h>
-#include <rendering/texture-set-wrapper.h>
-#include <rendering/shader-api.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-/**
- * ## Renderer API
- *
- * Renderer is a handle to an object that can be used to provide an image to a material.
- *
- * @class Renderer
- * @extends Handle
- */
-
-Renderer RendererApi::GetRenderer( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::HandleScope handleScope( isolate );
-
-  v8::Local<v8::Object> object = args.This();
-  v8::Local<v8::External> field = v8::Local<v8::External>::Cast( object->GetInternalField(0) );
-  void* ptr = field->Value();
-
-  RendererWrapper* wrapper = static_cast< RendererWrapper *>(ptr);
-  return wrapper->GetRenderer();
-}
-
-Renderer RendererApi::GetRendererFromParams( int paramIndex,
-                                             bool& found,
-                                             v8::Isolate* isolate,
-                                             const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  found = false;
-
-  v8::HandleScope handleScope( isolate );
-  BaseWrappedObject* wrappedObject = V8Utils::GetWrappedDaliObjectParameter( paramIndex, BaseWrappedObject::RENDERER, isolate, args );
-  if( wrappedObject )
-  {
-    found = true;
-    RendererWrapper* wrapper = static_cast< RendererWrapper *>(wrappedObject);
-    return wrapper->GetRenderer();
-  }
-  else
-  {
-    return Renderer();
-  }
-}
-
-/**
- * Create a new renderer object.
- *
- * @constructor
- * @method Renderer
- * @for Renderer
- * @param {Object} geometry The geometry to be used by this renderer
- * @param {Object} shader The shader to be used by this renderer
- * @return {Object} Renderer
- */
-Renderer RendererApi::New( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  bool found( false );
-  Geometry geometry = GeometryApi::GetGeometryFromParams( 0, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "missing geometry from param 0" );
-    return Renderer();
-  }
-
-  found = false;
-  Shader shader = ShaderApi::GetShaderFromParams( 1, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "missing shader from param 0" );
-    return Renderer();
-  }
-
-  return Renderer::New(geometry, shader);
-}
-
-/**
- * Sets the geometry to be used by this renderer
- *
- * @method setGeometry
- * @for Renderer
- * @param {Object} geometry The geometry to be used by this renderer
- */
-void RendererApi::SetGeometry( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Renderer renderer = GetRenderer( isolate, args );
-
-  bool found( false );
-  Geometry geometry = GeometryApi::GetGeometryFromParams( 0, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "missing geometry from param 0" );
-  }
-  else
-  {
-    renderer.SetGeometry(geometry);
-  }
-}
-
-/**
- * Gets the geometry used by this renderer
- *
- * @method getGeometry
- * @for Renderer
- * @return {Object} The geometry used by this renderer
- */
-void RendererApi::GetGeometry( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Renderer renderer = GetRenderer( isolate, args );
-  Geometry geometry = renderer.GetGeometry();
-
-  // Wrap the geometry
-  v8::Local<v8::Object> localObject = GeometryWrapper::WrapGeometry( isolate, geometry );
-  args.GetReturnValue().Set( localObject );
-}
-
-/**
- * Sets the texture set to be used by this renderer
- *
- * @method setTextures
- * @for Renderer
- * @param {Object} textureSet The TextureSet to be used by this renderer
- */
-void RendererApi::SetTextures( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Renderer renderer = GetRenderer( isolate, args );
-
-  bool found( false );
-  TextureSet textureSet = TextureSetApi::GetTextureSetFromParams( 0, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "missing texture set from param 0" );
-  }
-  else
-  {
-    renderer.SetTextures(textureSet);
-  }
-}
-
-/**
- * Gets the texture set used by this renderer
- *
- * @method getTextures
- * @for Renderer
- * @return {Object} The texture set used by this renderer
- */
-void RendererApi::GetTextures( const v8::FunctionCallbackInfo<v8::Value>& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Renderer renderer = GetRenderer( isolate, args );
-  TextureSet textureSet = renderer.GetTextures();
-
-  // Wrap the textureset
-  v8::Local<v8::Object> localObject = TextureSetWrapper::WrapTextureSet( isolate, textureSet );
-  args.GetReturnValue().Set( localObject );
-}
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/rendering/renderer-api.h b/plugins/dali-script-v8/src/rendering/renderer-api.h
deleted file mode 100644 (file)
index e65d3d8..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-#ifndef DALI_V8PLUGIN_RENDERER_API_H
-#define DALI_V8PLUGIN_RENDERER_API_H
-
-/*
- * 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/rendering/renderer.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace RendererApi
-{
-
-  /**
-   * Helper to get renderer from args.This()
-   */
-  Renderer GetRenderer( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  /**
-   * @brief Helper to get renderer from the JavaScript object held in the given function argument
-   * @param[in] paramIndex Argument index the object is held in
-   * @param[in] found Whether renderer is found in the given function parameter
-   * @param[in] isolate v8 isolated instance
-   * @param[in] args v8 function call arguments interpreted
-   */
-  Renderer GetRendererFromParams( int paramIndex,
-                                     bool& found,
-                                     v8::Isolate* isolate,
-                                     const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  /**
-   * Constructor
-   */
-   Renderer New( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-   /**
-    * Renderer API see renderer.h for a description
-    */
-   void SetGeometry( const v8::FunctionCallbackInfo< v8::Value >& args );
-   void GetGeometry( const v8::FunctionCallbackInfo< v8::Value >& args );
-   void SetTextures( const v8::FunctionCallbackInfo< v8::Value >& args );
-   void GetTextures( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-}; // namespace RendererApi
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_RENDERER_API_H
diff --git a/plugins/dali-script-v8/src/rendering/renderer-wrapper.cpp b/plugins/dali-script-v8/src/rendering/renderer-wrapper.cpp
deleted file mode 100644 (file)
index 1f1ca19..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "renderer-wrapper.h"
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <rendering/renderer-api.h>
-#include <shared/api-function.h>
-#include <shared/object-template-helper.h>
-#include <dali-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-v8::Persistent<v8::ObjectTemplate> RendererWrapper::mRendererTemplate;
-
-namespace // un-named name space
-{
-
-/**
- * Contains a list of all functions that can be called
- */
-const ApiFunction RendererFunctionTable[]=
-{
-    /**************************************
-    * Renderer API (in order of Renderer.h)
-    **************************************/
-
-   { "SetGeometry"             , RendererApi::SetGeometry },
-   { "GetGeometry"             , RendererApi::GetGeometry },
-   { "SetTextures"             , RendererApi::SetTextures },
-   { "GetTextures"             , RendererApi::GetTextures },
-};
-
-const unsigned int RendererFunctionTableCount = sizeof(RendererFunctionTable)/sizeof(RendererFunctionTable[0]);
-} //un-named space
-
-
-RendererWrapper::RendererWrapper( const Dali::Renderer& renderer, GarbageCollectorInterface& gc )
-:  HandleWrapper(  BaseWrappedObject::RENDERER , renderer, gc )
-{
-    mRenderer = renderer;
-}
-
-v8::Handle<v8::Object> RendererWrapper::WrapRenderer(v8::Isolate* isolate, const Dali::Renderer& renderer )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  objectTemplate = GetRendererTemplate( isolate);
-
-  // create an instance of the template
-  v8::Local<v8::Object> localObject = objectTemplate->NewInstance();
-
-  // create the Renderer wrapper
-  RendererWrapper* pointer =  new RendererWrapper( renderer, Dali::V8Plugin::DaliWrapper::Get().GetDaliGarbageCollector() );
-
-  // assign the JavaScript object to the wrapper.
-  pointer->SetJavascriptObject( isolate, localObject );
-
-  return handleScope.Escape( localObject );
-}
-
-v8::Local<v8::ObjectTemplate> RendererWrapper::GetRendererTemplate( v8::Isolate* isolate)
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  if( mRendererTemplate.IsEmpty() )
-  {
-    objectTemplate = MakeRendererTemplate( isolate );
-    mRendererTemplate.Reset( isolate, objectTemplate );
-  }
-  else
-  {
-    // get the object template
-    objectTemplate = v8::Local<v8::ObjectTemplate>::New( isolate, mRendererTemplate );
-  }
-  return handleScope.Escape( objectTemplate );
-}
-
-v8::Handle<v8::ObjectTemplate> RendererWrapper::MakeRendererTemplate( v8::Isolate* isolate )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  v8::Local<v8::ObjectTemplate> objTemplate = v8::ObjectTemplate::New();
-
-  // property handle intercepts property getters and setters and signals
-  HandleWrapper::AddInterceptsToTemplate( isolate, objTemplate );
-
-  objTemplate->SetInternalFieldCount( BaseWrappedObject::FIELD_COUNT );
-
-  // add our function properties
-  ObjectTemplateHelper::InstallFunctions( isolate, objTemplate, RendererFunctionTable, RendererFunctionTableCount );
-
-  return handleScope.Escape( objTemplate );
-}
-
-void RendererWrapper::NewRenderer( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate);
-
-  if(!args.IsConstructCall())
-  {
-      DALI_SCRIPT_EXCEPTION( isolate, "Renderer constructor called without 'new'");
-      return;
-  }
-  Dali::Renderer renderer = RendererApi::New( args );
-
-  if(renderer)
-  {
-    v8::Local<v8::Object> localObject = WrapRenderer( isolate, renderer );
-    args.GetReturnValue().Set( localObject );
-  }
-}
-
-
-Renderer RendererWrapper::GetRenderer()
-{
-  return mRenderer;
-}
-
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/rendering/renderer-wrapper.h b/plugins/dali-script-v8/src/rendering/renderer-wrapper.h
deleted file mode 100644 (file)
index c5e676a..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-#ifndef DALI_V8PLUGIN_RENDERER_WRAPPER_H
-#define DALI_V8PLUGIN_RENDERER_WRAPPER_H
-
-/*
- * 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/rendering/renderer.h>
-
-// INTERNAL INCLUDES
-#include <object/handle-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-
-/**
- * A Renderer wrapper.
- * Provides access to Renderer specific functionality and V8 memory handling.
- */
-class RendererWrapper : public HandleWrapper
-{
-
-public:
-
-  /**
-   * @brief Constructor
-   * @param[in] renderer DALi renderer
-   * @param[in] gc garbage collection interface
-   */
-  RendererWrapper( const Renderer& renderer,
-                GarbageCollectorInterface& gc );
-
-  /**
-   * @brief Destructor
-   */
- virtual ~RendererWrapper()
-  {
-  };
-
-  /**
-   * @brief Creates a new Renderer wrapped inside a Javascript Object.
-   * @param[in] args v8 function call arguments interpreted
-   */
-  static void NewRenderer( const v8::FunctionCallbackInfo< v8::Value >& args);
-
-  /**
-   * Wraps a renderer
-   */
-  static v8::Handle<v8::Object> WrapRenderer(v8::Isolate* isolate, const Dali::Renderer& );
-
-
-  // The RendererAttribute ObjectTemplate, we cache templates so we don't have
-  // keep generating them everytime we want to create a Renderer
-  static v8::Persistent<v8::ObjectTemplate> mRendererTemplate;
-
-  /**
-   * @brief Gets the handle of renderer
-   * @return the handle of renderer
-   */
-  Renderer GetRenderer();
-
-
-private:
-
-  // Renderer
-  Renderer mRenderer;
-
-  /**
-   * @brief Creates the object template that used to create renderer at runtime
-   * @param[in] isolate v8 isolated instance
-   * @return the object template
-   */
-  static v8::Handle<v8::ObjectTemplate> MakeRendererTemplate( v8::Isolate* isolate );
-
-  /**
-   * @brief Gets the object template that used to create renderer at runtime
-   * @param[in] isolate v8 isolated instance
-   * @return the object template
-   */
-  static v8::Local<v8::ObjectTemplate> GetRendererTemplate( v8::Isolate* isolate );
-
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_RENDERER_WRAPPER_H
diff --git a/plugins/dali-script-v8/src/rendering/sampler-api.cpp b/plugins/dali-script-v8/src/rendering/sampler-api.cpp
deleted file mode 100644 (file)
index 2f2edce..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "sampler-api.h"
-
-// EXTERNAL INCLUDES
-#include <dali/public-api/object/type-registry.h>
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <rendering/sampler-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-/**
- * ## Sampler API
- *
- * Sampler is a handle to an object that can be used to provide the sampling parameters to sample textures
- *
- * @class Sampler
- */
-
-Sampler SamplerApi::GetSampler( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::HandleScope handleScope( isolate );
-
-  v8::Local<v8::Object> object = args.This();
-  v8::Local<v8::External> field = v8::Local<v8::External>::Cast( object->GetInternalField(0) );
-  void* ptr = field->Value();
-
-  SamplerWrapper* wrapper = static_cast< SamplerWrapper *>(ptr);
-  return wrapper->GetSampler();
-}
-
-Sampler SamplerApi::GetSamplerFromParams( int paramIndex,
-                                             bool& found,
-                                             v8::Isolate* isolate,
-                                             const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  found = false;
-
-  v8::HandleScope handleScope( isolate );
-  BaseWrappedObject* wrappedObject = V8Utils::GetWrappedDaliObjectParameter( paramIndex, BaseWrappedObject::SAMPLER, isolate, args );
-  if( wrappedObject )
-  {
-    found = true;
-    SamplerWrapper* wrapper = static_cast< SamplerWrapper *>(wrappedObject);
-    return wrapper->GetSampler();
-  }
-  else
-  {
-    return Sampler();
-  }
-}
-
-/**
- * Create a new sampler object.
- *
- * @constructor
- * @method Sampler
- * @for Sampler
- * @return {Object} Sampler
- */
-Sampler SamplerApi::New( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  return Sampler::New();
-}
-
-/**
- * Set the filter modes for this sampler
- * @method setFilterMode
- * @for Sampler
- * @param {integer} minFilter The minification filter that will be used
- * @param {integer} magFilter The magnification filter that will be used
- * @example
- *      // filter mode is one of the following
- *      dali.FILTER_MODE_NONE             // Use GL system defaults (minification NEAREST_MIPMAP_LINEAR, magnification LINEAR)
- *      dali.FILTER_MODE_DEFAULT          // Use dali defaults (minification LINEAR, magnification LINEAR)
- *      dali.FILTER_MODE_NEAREST          // Filter nearest
- *      dali.FILTER_MODE_LINEAR           // Filter linear
- *
- *      sampler.setFilterMode( dali.FILTER_MODE_DEFAULT, dali.FILTER_MODE_LINEAR );
- */
-void SamplerApi::SetFilterMode( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Sampler sampler = GetSampler( isolate, args );
-
-  bool found( false );
-  int minFilter = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 /* default */);
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "missing minification filter from param 0" );
-    return;
-  }
-
-  found = false;
-  int magFilter = V8Utils::GetIntegerParameter( PARAMETER_1, found, isolate, args, 0 /* default */);
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "missing magnification filter from param 1" );
-  }
-  else
-  {
-    sampler.SetFilterMode(static_cast<FilterMode::Type>(minFilter), static_cast<FilterMode::Type>(magFilter));
-  }
-}
-
-/**
- * Set the wrap modes for this sampler
- * @method setWrapMode
- * @for Sampler
- * @param {integer} uWrap Wrap mode for u coordinates
- * @param {integer} vWrap Wrap mode for v coordinates
- * @example
- *      // wrap mode is one of the following
- *      dali.WRAP_MODE_DEFAULT
- *      dali.WRAP_MODE_CLAMP_TO_EDGE
- *      dali.WRAP_MODE_REPEAT
- *      dali.WRAP_MODE_MIRRORED_REPEAT
- *
- *      sampler.setWrapMode( dali.WRAP_MODE_CLAMP_TO_EDGE, dali.WRAP_MODE_REPEAT );
- */
-void SamplerApi::SetWrapMode( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Sampler sampler = GetSampler( isolate, args );
-
-  bool found( false );
-  int uWrap = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 /* default */);
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "missing wrap mode for u coordinates from param 0" );
-    return;
-  }
-
-  found = false;
-  int vWrap = V8Utils::GetIntegerParameter( PARAMETER_1, found, isolate, args, 0 /* default */);
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "missing wrap mode for v coordinates from param 1" );
-  }
-  else
-  {
-    sampler.SetWrapMode(static_cast<WrapMode::Type>(uWrap), static_cast<WrapMode::Type>(vWrap));
-  }
-}
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/rendering/sampler-api.h b/plugins/dali-script-v8/src/rendering/sampler-api.h
deleted file mode 100644 (file)
index 8cb5aa9..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef DALI_V8PLUGIN_SAMPLER_API_H
-#define DALI_V8PLUGIN_SAMPLER_API_H
-
-/*
- * 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/rendering/sampler.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace SamplerApi
-{
-  /**
-   * Helper to get sampler from args.This()
-   */
-  Sampler GetSampler( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  /**
-   * @brief Helper to get sampler from the JavaScript object held in the given function argument
-   * @param[in] paramIndex Argument index the object is held in
-   * @param[in] found Whether sampler is found in the given function parameter
-   * @param[in] isolate v8 isolated instance
-   * @param[in] args v8 function call arguments interpreted
-   */
-  Sampler GetSamplerFromParams( int paramIndex,
-                                   bool& found,
-                                   v8::Isolate* isolate,
-                                   const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  /**
-   * Constructor
-   */
-  Sampler New( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  /**
-   * Sampler API see sampler.h for a description
-   */
-  void SetFilterMode( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void SetWrapMode( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-}; // namespace SamplerApi
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_SAMPLER_API_H
diff --git a/plugins/dali-script-v8/src/rendering/sampler-wrapper.cpp b/plugins/dali-script-v8/src/rendering/sampler-wrapper.cpp
deleted file mode 100644 (file)
index 17b9396..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "sampler-wrapper.h"
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <dali-wrapper.h>
-#include <shared/api-function.h>
-#include <shared/object-template-helper.h>
-#include <rendering/sampler-api.h>
-
-namespace Dali
-{
-namespace V8Plugin
-{
-
-v8::Persistent<v8::ObjectTemplate> SamplerWrapper::mSamplerTemplate;
-
-namespace
-{
-
-/**
- * Contains a list of all functions that can be called
- */
-const ApiFunction SamplerFunctionTable[]=
-{
-    /**************************************
-    * Sampler API (in order of sampler.h)
-    **************************************/
-
-    { "SetFilterMode",           SamplerApi::SetFilterMode },
-    { "SetWrapMode",             SamplerApi::SetWrapMode   },
-};
-
-const unsigned int SamplerFunctionTableCount = sizeof(SamplerFunctionTable)/sizeof(SamplerFunctionTable[0]);
-} //un-named space
-
-
-SamplerWrapper::SamplerWrapper( const Sampler& sampler, GarbageCollectorInterface& gc )
-: BaseWrappedObject( BaseWrappedObject::SAMPLER , gc )
-{
-    mSampler = sampler;
-}
-
-v8::Handle<v8::Object> SamplerWrapper::WrapSampler(v8::Isolate* isolate, const Sampler& sampler )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  objectTemplate = GetSamplerTemplate( isolate);
-
-  // create an instance of the template
-  v8::Local<v8::Object> localObject = objectTemplate->NewInstance();
-
-  // create the Sampler wrapper
-  SamplerWrapper* pointer =  new SamplerWrapper( sampler, Dali::V8Plugin::DaliWrapper::Get().GetDaliGarbageCollector() );
-
-  // assign the JavaScript object to the wrapper.
-  pointer->SetJavascriptObject( isolate, localObject );
-
-  return handleScope.Escape( localObject );
-}
-
-v8::Local<v8::ObjectTemplate> SamplerWrapper::GetSamplerTemplate( v8::Isolate* isolate)
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  if( mSamplerTemplate.IsEmpty() )
-  {
-    objectTemplate = MakeSamplerTemplate( isolate );
-    mSamplerTemplate.Reset( isolate, objectTemplate );
-  }
-  else
-  {
-    // get the object template
-    objectTemplate = v8::Local<v8::ObjectTemplate>::New( isolate, mSamplerTemplate );
-  }
-  return handleScope.Escape( objectTemplate );
-}
-
-v8::Handle<v8::ObjectTemplate> SamplerWrapper::MakeSamplerTemplate( v8::Isolate* isolate )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  v8::Local<v8::ObjectTemplate> objTemplate = v8::ObjectTemplate::New();
-
-  objTemplate->SetInternalFieldCount( BaseWrappedObject::FIELD_COUNT );
-
-  // add our function properties
-  ObjectTemplateHelper::InstallFunctions( isolate, objTemplate, SamplerFunctionTable, SamplerFunctionTableCount );
-
-  return handleScope.Escape( objTemplate );
-}
-
-void SamplerWrapper::NewSampler( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate);
-
-  if(!args.IsConstructCall())
-  {
-      DALI_SCRIPT_EXCEPTION( isolate, "Sampler constructor called without 'new'");
-      return;
-  }
-  Dali::Sampler sampler = SamplerApi::New( args );
-
-  if(sampler)
-  {
-    v8::Local<v8::Object> localObject = WrapSampler( isolate, sampler );
-    args.GetReturnValue().Set( localObject );
-  }
-}
-
-Sampler SamplerWrapper::GetSampler()
-{
-  return mSampler;
-}
-
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/rendering/sampler-wrapper.h b/plugins/dali-script-v8/src/rendering/sampler-wrapper.h
deleted file mode 100644 (file)
index 42c6300..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-#ifndef DALI_V8PLUGIN_SAMPLER_WRAPPER_H
-#define DALI_V8PLUGIN_SAMPLER_WRAPPER_H
-
-/*
- * 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/rendering/sampler.h>
-
-// INTERNAL INCLUDES
-#include <shared/base-wrapped-object.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-/**
- * A Sampler wrapper.
- * Provides access to Sampler specific functionality and V8 memory handling.
- */
-class SamplerWrapper : public BaseWrappedObject
-{
-
-public:
-
-  /**
-   * @brief Constructor
-   * @param[in] sampler DALi sampler
-   * @param[in] gc garbage collection interface
-   */
-  SamplerWrapper( const Sampler& sampler,
-                GarbageCollectorInterface& gc );
-
-  /**
-   * @brief Destructor
-   */
-  virtual ~SamplerWrapper()
-  {
-  };
-
-  /**
-   * @brief Creates a new Sampler wrapped inside a Javascript Object.
-   * @param[in] args v8 function call arguments interpreted
-   */
-  static void NewSampler( const v8::FunctionCallbackInfo< v8::Value >& args);
-
-  /**
-   * Wraps a sampler
-   */
-  static v8::Handle<v8::Object> WrapSampler(v8::Isolate* isolate, const Sampler& );
-
-  // The SamplerAttribute ObjectTemplate, we cache templates so we don't have
-  // keep generating them everytime we want to create a Sampler
-  static v8::Persistent<v8::ObjectTemplate> mSamplerTemplate;
-
-  /**
-   * @brief Gets the handle of sampler
-   * @return the handle of sampler
-   */
-  Sampler GetSampler();
-
-private:
-
-  // Sampler
-  Sampler mSampler;
-
-  /**
-   * @brief Creates the object template that used to create sampler at runtime
-   * @param[in] isolate v8 isolated instance
-   * @return the object template
-   */
-  static v8::Handle<v8::ObjectTemplate> MakeSamplerTemplate( v8::Isolate* isolate );
-
-  /**
-   * @brief Gets the object template that used to create sampler at runtime
-   * @param[in] isolate v8 isolated instance
-   * @return the object template
-   */
-  static v8::Local<v8::ObjectTemplate> GetSamplerTemplate( v8::Isolate* isolate );
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_SAMPLER_WRAPPER_H
diff --git a/plugins/dali-script-v8/src/rendering/shader-api.cpp b/plugins/dali-script-v8/src/rendering/shader-api.cpp
deleted file mode 100644 (file)
index 38ba059..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-
-// CLASS HEADER
-#include "shader-api.h"
-
-// EXTERNAL INCLUDES
-#include <dali/public-api/object/type-registry.h>
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <rendering/shader-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-/**
- * ## Shader API
- *
- * Shaders allows custom vertex and color transformations in the GPU
- *
- * ### Simple example
- *
- *```
- *    // this will match the default shaders for image
- *    var vertexShader = " void main() \
- *    { \
- *      gl_Position = uProjection * uModelView * vec4(aPosition, 1.0); \
- *      vTexCoord = aTexCoord; \
- *    }; "
- *   var fragShader = " void main() \
- *    { \
- *     gl_FragColor = texture2D( sTexture, vTexCoord ) * uColor;\
- *    }; "
- *    var shaderOptions = {
- *          vertexShader: vertexShader,
- *          fragmentShader: fragShader
- *    };
- *
- *    var shader = new dali.Shader(shaderOptions);
- *```
- * @class Shader
- * @extends Handle
- */
-
-namespace // unnamed namespace
-{
-
-typedef  std::vector< std::string > HintsArray;
-
-struct ShaderHintPair
-{
-  const char* name;
-  Shader::Hint::Value hint;
-};
-
-const ShaderHintPair ShaderHintTable[]=
-{
-    {"outputIsTransparent",    Shader::Hint::OUTPUT_IS_TRANSPARENT },
-    {"modifiesGeometry",       Shader::Hint::MODIFIES_GEOMETRY },
-};
-
-const unsigned int ShaderHintTableCount = sizeof(ShaderHintTable)/sizeof(ShaderHintTable[0]);
-
-struct ShaderParameters
-{
-  ShaderParameters()
-      : mHints( Shader::Hint::NONE )
-  {
-  }
-
-  Shader::Hint::Value GetShaderHint( const std::string& hint )
-  {
-    for( unsigned int i = 0 ; i < ShaderHintTableCount; ++i )
-    {
-      if( hint == ShaderHintTable[i].name )
-      {
-        return ShaderHintTable[i].hint;
-      }
-    }
-    return Shader::Hint::NONE;
-  }
-
-  void ProcessHintsArray( const HintsArray& hintsArray )
-  {
-    for( HintsArray::const_iterator iter  = hintsArray.begin(); iter != hintsArray.end() ; ++iter )
-    {
-      mHints= static_cast<Shader::Hint::Value>( mHints | GetShaderHint( *iter ) );
-    }
-  }
-
-  Shader NewShader()
-  {
-    return Shader::New( mVertex,
-                         mFragment,
-                         mHints);
-  }
-
-  std::string mVertex;
-  std::string mFragment;
-  Shader::Hint::Value mHints;
-};
-
-} // unnamed space
-
-/**
- * Create a new Shader
- * @constructor
- * @for Shader
- * @method Shader
- * @param {Object} shaderOptions
- * @param {String} [shaderOptions.vertexShader] VertexShader code for the shader. If not defined, the default version will be used
- * @param {String} [shaderOptions.fragmentShader] FragmentShader code for the shader. If not defined, the default version will be used
- * @param {Array}  [shaderOptions.shaderHints] Hints for rendering/subdividing geometry, e.g.  [ "requiresSelfDepthTest", "outputIsTransparent", "outputIsOpaque","modifiesGeometry" ]
- * @return {Object} Shader
- * @example
-
-      // this will match the default shaders for image
-      var vertexShader = " void main() \
-      { \
-        gl_Position = uProjection * uModelView * vec4(aPosition, 1.0); \
-        vTexCoord = aTexCoord; \
-      }; "
-
-      var fragShader = " void main() \
-      { \
-       gl_FragColor = texture2D( sTexture, vTexCoord ) * uColor;\
-      }; "
-
-      var shaderOptions = {
-            vertexShader: vertexShader,
-            fragmentShader: fragShader
-      };
-
-      var shader = new dali.Shader(shaderOptions);
- *
- */
-Shader ShaderApi::New(  v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::HandleScope handleScope( isolate );
-
-  ShaderParameters shaderParams;
-
-  if( args[0]->IsObject() )
-  {
-    v8::Local<v8::Object > obj = args[0]->ToObject();
-
-    v8::Local<v8::Value> vertexValue = obj->Get(v8::String::NewFromUtf8( isolate, "vertexShader"));
-    if( vertexValue->IsString() )
-    {
-      shaderParams.mVertex = V8Utils::v8StringToStdString( vertexValue );
-    }
-
-    v8::Local<v8::Value> fragmentValue = obj->Get(v8::String::NewFromUtf8( isolate, "fragmentShader"));
-    if( fragmentValue->IsString() )
-    {
-      shaderParams.mFragment = V8Utils::v8StringToStdString( fragmentValue );
-    }
-    // Get any hints
-    v8::Local<v8::Value> hints = obj->Get(v8::String::NewFromUtf8( isolate, "shaderHints"));
-    if( hints->IsArray() )
-    {
-      HintsArray hintsArray;
-      v8::Local<v8::Array> array = v8::Local<v8::Array>::Cast( hints );
-      for( uint32_t i=0; i <  array->Length(); ++i)
-      {
-        v8::Handle<v8::Value> entry = array->Get(  v8::Integer::New( isolate, i) );
-        if( entry->IsString() )
-        {
-          std::string entryString = V8Utils::v8StringToStdString( entry );
-          hintsArray.push_back( entryString );
-        }
-      }
-      shaderParams.ProcessHintsArray( hintsArray );
-    }
-  }
-
-  return shaderParams.NewShader();
-}
-
-Shader ShaderApi::GetShaderFromParams( int paramIndex,
-                          bool& found,
-                          v8::Isolate* isolate,
-                          const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  found = false;
-
-  v8::HandleScope handleScope( isolate );
-  BaseWrappedObject* wrappedObject = V8Utils::GetWrappedDaliObjectParameter( paramIndex, BaseWrappedObject::SHADER, isolate, args );
-  if( wrappedObject )
-  {
-    found = true;
-    ShaderWrapper* wrapper = static_cast< ShaderWrapper *>(wrappedObject);
-    return wrapper->GetShader();
-  }
-  else
-  {
-    return Shader();
-  }
-}
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/rendering/shader-api.h b/plugins/dali-script-v8/src/rendering/shader-api.h
deleted file mode 100644 (file)
index 230e789..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef DALI_V8PLUGIN_SHADER_API_H
-#define DALI_V8PLUGIN_SHADER_API_H
-
-/*
- * 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/rendering/shader.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace ShaderApi
-{
-
-  /**
-   * Constructor
-   */
-   Shader New( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args );
-
-   /**
-    * @brief Helper to get shader from the JavaScript object held in the given function argument
-    * @param[in] paramIndex Argument index the object is held in
-    * @param[in] found Whether shader is found in the given function parameter
-    * @param[in] isolate v8 isolated instance
-    * @param[in] args v8 function call arguments interpreted
-    */
-   Shader GetShaderFromParams( int paramIndex,
-                             bool& found,
-                             v8::Isolate* isolate,
-                             const v8::FunctionCallbackInfo< v8::Value >& args );
-
-}; // namespace ShaderApi
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_SHADER_API_H
diff --git a/plugins/dali-script-v8/src/rendering/shader-wrapper.cpp b/plugins/dali-script-v8/src/rendering/shader-wrapper.cpp
deleted file mode 100644 (file)
index f3aff6c..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "shader-wrapper.h"
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <rendering/shader-api.h>
-#include <shared/api-function.h>
-#include <shared/object-template-helper.h>
-#include <dali-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-v8::Persistent<v8::ObjectTemplate> ShaderWrapper::mShaderTemplate;
-
-ShaderWrapper::ShaderWrapper( const Dali::Shader& shader, GarbageCollectorInterface& gc )
-:  HandleWrapper(  BaseWrappedObject::SHADER , shader, gc )
-{
-    mShader = shader;
-}
-
-v8::Handle<v8::Object> ShaderWrapper::WrapShader(v8::Isolate* isolate, const Dali::Shader& shader )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  objectTemplate = GetShaderTemplate( isolate);
-
-  // create an instance of the template
-  v8::Local<v8::Object> localObject = objectTemplate->NewInstance();
-
-  // create the Shader wrapper
-  ShaderWrapper* pointer =  new ShaderWrapper( shader, Dali::V8Plugin::DaliWrapper::Get().GetDaliGarbageCollector() );
-
-  // assign the JavaScript object to the wrapper.
-  pointer->SetJavascriptObject( isolate, localObject );
-
-  return handleScope.Escape( localObject );
-}
-
-v8::Local<v8::ObjectTemplate> ShaderWrapper::GetShaderTemplate( v8::Isolate* isolate)
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  if( mShaderTemplate.IsEmpty() )
-  {
-    objectTemplate = MakeShaderTemplate( isolate );
-    mShaderTemplate.Reset( isolate, objectTemplate );
-  }
-  else
-  {
-    // get the object template
-    objectTemplate = v8::Local<v8::ObjectTemplate>::New( isolate, mShaderTemplate );
-  }
-  return handleScope.Escape( objectTemplate );
-}
-
-v8::Handle<v8::ObjectTemplate> ShaderWrapper::MakeShaderTemplate( v8::Isolate* isolate )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  v8::Local<v8::ObjectTemplate> objTemplate = v8::ObjectTemplate::New();
-
-  // property handle intercepts property getters and setters and signals
-  HandleWrapper::AddInterceptsToTemplate( isolate, objTemplate );
-
-  objTemplate->SetInternalFieldCount( BaseWrappedObject::FIELD_COUNT );
-
-  return handleScope.Escape( objTemplate );
-}
-
-void ShaderWrapper::NewShader( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate);
-
-  if(!args.IsConstructCall())
-  {
-      DALI_SCRIPT_EXCEPTION( isolate, "Shader constructor called without 'new'");
-      return;
-  }
-  Dali::Shader shader = ShaderApi::New( isolate, args );
-
-  if(shader)
-  {
-    v8::Local<v8::Object> localObject = WrapShader( isolate, shader );
-    args.GetReturnValue().Set( localObject );
-  }
-}
-
-
-Shader ShaderWrapper::GetShader()
-{
-  return mShader;
-}
-
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/rendering/shader-wrapper.h b/plugins/dali-script-v8/src/rendering/shader-wrapper.h
deleted file mode 100644 (file)
index 7840a3d..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-#ifndef DALI_V8PLUGIN_SHADER_WRAPPER_H
-#define DALI_V8PLUGIN_SHADER_WRAPPER_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/rendering/shader.h>
-
-// INTERNAL INCLUDES
-#include <object/handle-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-
-/**
- * A Shader wrapper.
- * Provides access to Shader specific functionality and V8 memory handling.
- */
-class ShaderWrapper : public HandleWrapper
-{
-
-public:
-
-  /**
-   * @brief Constructor
-   * @param[in] shader DALi shader
-   * @param[in] gc garbage collection interface
-   */
-  ShaderWrapper( const Shader& shader,
-                GarbageCollectorInterface& gc );
-
-  /**
-   * @brief Destructor
-   */
-  virtual ~ShaderWrapper()
-  {
-  };
-
-  /**
-   * @brief Creates a new Shader wrapped inside a Javascript Object.
-   * @param[in] args v8 function call arguments interpreted
-   */
-  static void NewShader( const v8::FunctionCallbackInfo< v8::Value >& args);
-
-  /**
-   * Wraps a shader
-   */
-  static v8::Handle<v8::Object> WrapShader(v8::Isolate* isolate, const Dali::Shader& );
-
-
-  // The ShaderAttribute ObjectTemplate, we cache templates so we don't have
-  // keep generating them everytime we want to create a Shader
-  static v8::Persistent<v8::ObjectTemplate> mShaderTemplate;
-
-  /**
-   * @brief Gets the handle of shader
-   * @return the handle of shader
-   */
-  Shader GetShader();
-
-
-private:
-
-  // Shader
-  Shader mShader;
-
-  /**
-   * @brief Creates the object template that used to create shader at runtime
-   * @param[in] isolate v8 isolated instance
-   * @return the object template
-   */
-  static v8::Handle<v8::ObjectTemplate> MakeShaderTemplate( v8::Isolate* isolate );
-
-  /**
-   * @brief Gets the object template that used to create shader at runtime
-   * @param[in] isolate v8 isolated instance
-   * @return the object template
-   */
-  static v8::Local<v8::ObjectTemplate> GetShaderTemplate( v8::Isolate* isolate );
-
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_SHADER_WRAPPER_H
diff --git a/plugins/dali-script-v8/src/rendering/texture-set-api.cpp b/plugins/dali-script-v8/src/rendering/texture-set-api.cpp
deleted file mode 100644 (file)
index d89807f..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * 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.
- *
- */
-
-
-// CLASS HEADER
-#include "texture-set-api.h"
-
-// EXTERNAL INCLUDES
-#include <dali/public-api/object/type-registry.h>
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <rendering/texture-set-wrapper.h>
-#include <rendering/shader-wrapper.h>
-#include <rendering/shader-api.h>
-#include <rendering/sampler-wrapper.h>
-#include <rendering/sampler-api.h>
-#include <image/image-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-/**
- * ## TextureSet API
- *
- * TextureSet is a handle to an object that contains the textures used by a renderer
- *
- * @class TextureSet
- * @extends Handle
- */
-
-TextureSet TextureSetApi::GetTextureSet( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::HandleScope handleScope( isolate );
-
-  v8::Local<v8::Object> object = args.This();
-  v8::Local<v8::External> field = v8::Local<v8::External>::Cast( object->GetInternalField(0) );
-  void* ptr = field->Value();
-
-  TextureSetWrapper* wrapper = static_cast< TextureSetWrapper *>(ptr);
-  return wrapper->GetTextureSet();
-}
-
-TextureSet TextureSetApi::GetTextureSetFromParams( int paramIndex,
-                                               bool& found,
-                                               v8::Isolate* isolate,
-                                               const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  found = false;
-
-  v8::HandleScope handleScope( isolate );
-  BaseWrappedObject* wrappedObject = V8Utils::GetWrappedDaliObjectParameter( paramIndex, BaseWrappedObject::TEXTURE_SET, isolate, args );
-  if( wrappedObject )
-  {
-    found = true;
-    TextureSetWrapper* wrapper = static_cast< TextureSetWrapper *>(wrappedObject);
-    return wrapper->GetTextureSet();
-  }
-  else
-  {
-    return TextureSet();
-  }
-}
-
-/**
- * Create a new texture set object.
- *
- * @constructor
- * @method TextureSet
- * @for TextureSet
- * @return {Object} TextureSet
- */
-TextureSet TextureSetApi::New( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  return TextureSet::New();
-}
-
-/**
- * Set the sampler used by a given texture
- * @method setSampler
- * @for TextureSet
- * @param {integer} index The index of the texture in the array of textures
- * @param {Object} sampler The new sampler
- */
-void TextureSetApi::SetSampler( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  TextureSet textureSet = GetTextureSet( isolate, args );
-
-  bool found( false );
-  int index = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 /* default */);
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid index parameter" );
-    return;
-  }
-
-  found = false;
-  Sampler sampler = SamplerApi::GetSamplerFromParams( PARAMETER_1, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "missing sampler from param 1" );
-  }
-  else
-  {
-    textureSet.SetSampler(index, sampler);
-  }
-}
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/rendering/texture-set-api.h b/plugins/dali-script-v8/src/rendering/texture-set-api.h
deleted file mode 100644 (file)
index a834d86..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-#ifndef DALI_V8PLUGIN_TEXURE_SET_API_H
-#define DALI_V8PLUGIN_TEXURE_SET_API_H
-
-/*
- * 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/rendering/texture-set.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace TextureSetApi
-{
-
-  /**
-   * Helper to get TextureSet from args.This()
-   */
-  TextureSet GetTextureSet( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  /**
-   * @brief Helper to get texture set from the JavaScript object held in the given function argument
-   * @param[in] paramIndex Argument index the object is held in
-   * @param[in] found Whether texture set is found in the given function parameter
-   * @param[in] isolate v8 isolated instance
-   * @param[in] args v8 function call arguments interpreted
-   */
-  TextureSet GetTextureSetFromParams( int paramIndex,
-                                     bool& found,
-                                     v8::Isolate* isolate,
-                                     const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  /**
-   * Constructor
-   */
-  TextureSet New( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-   /**
-    * TextureSet API see texture-set.h for a description
-    */
-   void SetSampler( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-}; // namespace TextureSetApi
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_TEXURE_SET_API_H
diff --git a/plugins/dali-script-v8/src/rendering/texture-set-wrapper.cpp b/plugins/dali-script-v8/src/rendering/texture-set-wrapper.cpp
deleted file mode 100644 (file)
index 5f503ec..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "texture-set-wrapper.h"
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <rendering/texture-set-api.h>
-#include <shared/api-function.h>
-#include <shared/object-template-helper.h>
-#include <dali-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-v8::Persistent<v8::ObjectTemplate> TextureSetWrapper::mTextureSetTemplate;
-
-namespace // un-named name space
-{
-
-/**
- * Contains a list of all functions that can be called
- */
-const ApiFunction TextureSetFunctionTable[]=
-{
-    /**************************************
-    * TextureSet API (in order of texture-set.h)
-    **************************************/
-
-   { "SetSampler"                      , TextureSetApi::SetSampler },
-};
-
-const unsigned int TextureSetFunctionTableCount = sizeof(TextureSetFunctionTable)/sizeof(TextureSetFunctionTable[0]);
-} //un-named space
-
-
-TextureSetWrapper::TextureSetWrapper( const Dali::TextureSet& textureSet, GarbageCollectorInterface& gc )
-:  BaseWrappedObject(  BaseWrappedObject::TEXTURE_SET, gc )
-{
-    mTextureSet = textureSet;
-}
-
-v8::Handle<v8::Object> TextureSetWrapper::WrapTextureSet(v8::Isolate* isolate, const Dali::TextureSet& textureSet )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  objectTemplate = GetTextureSetTemplate( isolate);
-
-  // create an instance of the template
-  v8::Local<v8::Object> localObject = objectTemplate->NewInstance();
-
-  // create the texture set wrapper
-  TextureSetWrapper* pointer =  new TextureSetWrapper( textureSet, Dali::V8Plugin::DaliWrapper::Get().GetDaliGarbageCollector() );
-
-  // assign the JavaScript object to the wrapper.
-  pointer->SetJavascriptObject( isolate, localObject );
-
-  return handleScope.Escape( localObject );
-}
-
-v8::Local<v8::ObjectTemplate> TextureSetWrapper::GetTextureSetTemplate( v8::Isolate* isolate)
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  if( mTextureSetTemplate.IsEmpty() )
-  {
-    objectTemplate = MakeTextureSetTemplate( isolate );
-    mTextureSetTemplate.Reset( isolate, objectTemplate );
-  }
-  else
-  {
-    // get the object template
-    objectTemplate = v8::Local<v8::ObjectTemplate>::New( isolate, mTextureSetTemplate );
-  }
-  return handleScope.Escape( objectTemplate );
-}
-
-v8::Handle<v8::ObjectTemplate> TextureSetWrapper::MakeTextureSetTemplate( v8::Isolate* isolate )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  v8::Local<v8::ObjectTemplate> objTemplate = v8::ObjectTemplate::New();
-
-  objTemplate->SetInternalFieldCount( BaseWrappedObject::FIELD_COUNT );
-
-  // add our function properties
-  ObjectTemplateHelper::InstallFunctions( isolate, objTemplate, TextureSetFunctionTable, TextureSetFunctionTableCount );
-
-  return handleScope.Escape( objTemplate );
-}
-
-void TextureSetWrapper::NewTextureSet( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate);
-
-  if(!args.IsConstructCall())
-  {
-      DALI_SCRIPT_EXCEPTION( isolate, "TextureSet constructor called without 'new'");
-      return;
-  }
-  Dali::TextureSet textureSet = TextureSetApi::New( args );
-
-  if(textureSet)
-  {
-    v8::Local<v8::Object> localObject = WrapTextureSet( isolate, textureSet );
-    args.GetReturnValue().Set( localObject );
-  }
-}
-
-
-TextureSet TextureSetWrapper::GetTextureSet()
-{
-  return mTextureSet;
-}
-
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/rendering/texture-set-wrapper.h b/plugins/dali-script-v8/src/rendering/texture-set-wrapper.h
deleted file mode 100644 (file)
index aaf8ecc..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-#ifndef DALI_V8PLUGIN_TEXTURE_SET_WRAPPER_H
-#define DALI_V8PLUGIN_TEXTURE_SET_WRAPPER_H
-
-/*
- * 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/rendering/texture-set.h>
-
-// INTERNAL INCLUDES
-#include <object/handle-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-
-/**
- * A TextureSet wrapper.
- * Provides access to TextureSet specific functionality and V8 memory handling.
- */
-class TextureSetWrapper : public BaseWrappedObject
-{
-
-public:
-
-  /**
-   * @brief Constructor
-   * @param[in] textureSet DALi TextureSet
-   * @param[in] gc garbage collection interface
-   */
-  TextureSetWrapper( const TextureSet& textureSet,
-                GarbageCollectorInterface& gc );
-
-  /**
-   * @brief Destructor
-   */
-  virtual ~TextureSetWrapper()
-  {
-  };
-
-  /**
-   * @brief Creates a new TextureSet wrapped inside a Javascript Object.
-   * @param[in] args v8 function call arguments interpreted
-   */
-  static void NewTextureSet( const v8::FunctionCallbackInfo< v8::Value >& args);
-
-  /**
-   * Wraps a TextureSet
-   */
-  static v8::Handle<v8::Object> WrapTextureSet(v8::Isolate* isolate, const Dali::TextureSet& );
-
-
-  // The TextureSetAttribute ObjectTemplate, we cache templates so we don't have
-  // keep generating them everytime we want to create a TextureSet
-  static v8::Persistent<v8::ObjectTemplate> mTextureSetTemplate;
-
-  /**
-   * @brief Gets the handle of TextureSet
-   * @return the handle of the TextureSet
-   */
-  TextureSet GetTextureSet();
-
-
-private:
-
-  // TextureSet
-  TextureSet mTextureSet;
-
-  /**
-   * @brief Creates the object template that used to create TextureSets at runtime
-   * @param[in] isolate v8 isolated instance
-   * @return the object template
-   */
-  static v8::Handle<v8::ObjectTemplate> MakeTextureSetTemplate( v8::Isolate* isolate );
-
-  /**
-   * @brief Gets the object template that used to create TextureSets at runtime
-   * @param[in] isolate v8 isolated instance
-   * @return the object template
-   */
-  static v8::Local<v8::ObjectTemplate> GetTextureSetTemplate( v8::Isolate* isolate );
-
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_TEXTURE_SET_WRAPPER_H
diff --git a/plugins/dali-script-v8/src/shared/api-function.h b/plugins/dali-script-v8/src/shared/api-function.h
deleted file mode 100644 (file)
index d57ace3..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef DALI_V8PLUGIN_API_FUNCTION_H
-#define DALI_V8PLUGIN_API_FUNCTION_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-
-/**
- * @brief Used for mapping a string to a static function, for defining functions that are exposed to JavaScript.
- * E.g.
- * @code
- * const ApiFunction AnimationFunctionTable[]=
- * {
- *  { "setDuration"             , AnimationApi::SetDuration  },
- *  { "getDuration"             , AnimationApi::GetDuration  },
- *  { "setLooping"              , AnimationApi::SetLooping   },
- * }
- * @endcode
- */
-struct ApiFunction
-{
-  const char* const name;      ///< function name
-  void (*function)( const v8::FunctionCallbackInfo< v8::Value >& args);
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_API_FUNCTION_H
diff --git a/plugins/dali-script-v8/src/shared/base-wrapped-object.cpp b/plugins/dali-script-v8/src/shared/base-wrapped-object.cpp
deleted file mode 100644 (file)
index 0963ea3..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "base-wrapped-object.h"
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-BaseWrappedObject::BaseWrappedObject( Type type, GarbageCollectorInterface& gc )
-: mWrappedType( type ),
-  mGarbageCollector( gc  )
-{
-  mGarbageCollector.Register( this );
-}
-
-BaseWrappedObject::~BaseWrappedObject()
-{
-  mGarbageCollector.UnRegister( this );
-}
-
-bool BaseWrappedObject::IsReferenced()
-{
-  if( mWeakPersistentHandle.IsEmpty() )
-  {
-    return false;
-  }
-  if( mWeakPersistentHandle.IsNearDeath() )
-  {
-    return false;
-  }
-  return true;
-}
-void BaseWrappedObject::WeakCallback( const v8::WeakCallbackData<v8::Object,BaseWrappedObject >& data)
-{
-  BaseWrappedObject* wrappedObject = data.GetParameter();
-  wrappedObject->mWeakPersistentHandle.Reset();  // moved from destructor due to crash on shutdown
-  delete wrappedObject;
-}
-
-void BaseWrappedObject::SetJavascriptObject( v8::Isolate* isolate, v8::Local<v8::Object>& object )
-{
-  v8::HandleScope handleScope( isolate );
-
-  v8::Handle<v8::External> ptr = v8::External::New( isolate, this );
-  object->SetInternalField( FIELD_POINTER, ptr );
-
-  v8::Local<v8::Value> theType = v8::Integer::New( isolate ,mWrappedType );
-  object->SetInternalField( FIELD_TYPE, theType );
-
-  // reset sets the the handle
-  mWeakPersistentHandle.Reset( isolate, object );
-
-  // set the weak call back which is triggered when nothing else is referencing the object
-  // note, this may never called.
-  mWeakPersistentHandle.SetWeak( this, &WeakCallback );
-}
-
-bool BaseWrappedObject::IsWrappedType(v8::Isolate* isolate, const v8::Local<v8::Object>& object,  BaseWrappedObject::Type type)
-{
-  v8::HandleScope handleScope( isolate );
-
-  // we've been passed a javascript object, it could be anything!
-  // so we safely check the internal field count matches the number of fields
-  // in BaseWrappedObject. Then check if the second field is an integer value
-  // possibly alternative v8 functions we could use
-  // GetConstructorName
-  // GetIdentityHash
-  if( object->InternalFieldCount() == BaseWrappedObject::FIELD_COUNT )
-  {
-    v8::Handle<v8::Value> value = object->GetInternalField(BaseWrappedObject::FIELD_TYPE);
-
-    if( value->IsInt32() )
-    {
-      BaseWrappedObject::Type objectType = static_cast<BaseWrappedObject::Type>( value->ToInt32()->Value());
-      return (type == objectType);
-    }
-  }
-  return false;
-}
-
-bool BaseWrappedObject::IsWrappedTypeAPropertyValue(const v8::Local<v8::Object>& object)
-{
-
-   if( object->InternalFieldCount() == BaseWrappedObject::FIELD_COUNT )
-   {
-     v8::Handle<v8::Value> value = object->GetInternalField(BaseWrappedObject::FIELD_TYPE);
-
-     if( value->IsInt32() )
-     {
-       BaseWrappedObject::Type objectType = static_cast<BaseWrappedObject::Type>( value->ToInt32()->Value());
-       return ( (objectType > PROPERTY_VALUE_START_RANGE) && ( objectType < PROPERTY_VALUE_END_RANGE) );
-     }
-   }
-   return false;
-}
-
-BaseWrappedObject* BaseWrappedObject::UnWrap( v8::Isolate* isolate, const v8::Local<v8::Object>& object)
-{
-  v8::HandleScope handleScope( isolate );
-
-  v8::Local<v8::External> field = v8::Local<v8::External>::Cast( object->GetInternalField(BaseWrappedObject::FIELD_POINTER) );
-  void* ptr = field->Value();
-  return static_cast< BaseWrappedObject *>(ptr);
-}
-
-BaseWrappedObject::Type BaseWrappedObject::GetType()
-{
-  return  mWrappedType;
-}
-
-SignalManager* BaseWrappedObject::GetSignalManager()
-{
-  return NULL;
-}
-} // V8Plugin
-
-} // Dali
-
diff --git a/plugins/dali-script-v8/src/shared/base-wrapped-object.h b/plugins/dali-script-v8/src/shared/base-wrapped-object.h
deleted file mode 100644 (file)
index 4f06f4c..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-#ifndef DALI_V8PLUGIN_BASE_WRAPPED_OBJECT_H
-#define DALI_V8PLUGIN_BASE_WRAPPED_OBJECT_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-
-// INTERNAL INCLUDES
-#include <interfaces/garbage-collector-interface.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-class SignalManager;
-
-/**
- * @brief Used as a base class for all wrapped objects.
- *
- *  Dali JavaScript objects look like this
- *
- * \code
- *  _______________________________________         ________________________________________
- * | JavaScript Object                     |       |  C++ WrappedObject  (e.g. ImageWrapper)|
- * |---------------------------------------|       |----------------------------------------|
- * | Hidden internal fields                |       | Handle to a Dali::Image object         |
- * | *Pointer to a BaseWrappedObject       | ----> |________________________________________|
- * | Type of wrapped object (e.g. Image)   |
- * -----------------------------------------
- *
- * \endcode
- *
- * Whenever we want to access functions / properties of that wrapped object, we unwrap it
- * to get access to the Dali object.
- *
- * Each wrapped object registers with Dali garbage collector so they can be deleted
- * when Dali shuts down
- */
-class BaseWrappedObject
-{
-
-public:
-
-  /*
-   * A type enum for the wrapped object
-   */
-  enum Type
-    {
-      UNKNOWN              = -1,
-      HANDLE               = 0 ,
-      HANDLE_SIGNAL,
-      CONNECTION,
-      ANIMATION,
-      PATH,
-      PATH_CONSTRAINER,
-      LINEAR_CONSTRAINER,
-      BUILDER,
-      STAGE,
-      FONT,
-      IMAGE,
-      IMAGE_ATTRIBUTES,
-      ACTOR,
-      ACTOR_PROPERTY,
-      ITEMVIEW,
-      ITEMFACTORY,
-      SCROLLVIEW,
-      RENDER_TASK,
-      RENDER_TASK_LIST,
-      TIMER,
-      SHADER,
-      SAMPLER,
-      TEXTURE_SET,
-      GEOMETRY,
-      RENDERER,
-      PROPERTY_BUFFER,
-      TAP_GESTURE,
-      SHADER_EFFECT,
-      PAN_GESTURE,
-      LONGPRESS_GESTURE,
-      PINCH_GESTURE,
-      KEYBOARD_FOCUS_MANAGER,
-      PAN_GESTURE_DETECTOR,
-      ////////////////////////////////////////////////////////
-      PROPERTY_VALUE_START_RANGE,  // start of property values
-      VECTOR2,
-      VECTOR3,
-      VECTOR4,
-      MATRIX,
-      MATRIX3,
-      RECTANGLE,
-      ROTATION,
-      PROPERTY_VALUE_END_RANGE,  // end of property values
-      ///////////////////////////////////////////////////////
-    };
-
-  /*
-   * A type enum for the wrapped object internal field
-   */
-  enum Field
-    {
-      FIELD_POINTER   = 0,
-      FIELD_TYPE      = 1,
-      FIELD_COUNT     = 2 // increase if more fields are added
-    };
-
-   /**
-   * @brief virtual destructor
-   */
-  virtual ~BaseWrappedObject();
-
-  /**
-   * @return true if nothing else is referencing this object
-   */
-  bool IsReferenced();
-
-  /**
-   * @brief Called when the v8 garbage collector decides the JavaScript object (which contains the Dali wrapped object)
-   * is no longer used / reachable.
-   */
-  static void WeakCallback( const v8::WeakCallbackData<v8::Object,BaseWrappedObject >& data);
-
-  /**
-   * @brief create and set the internal fields of a JavaScript object.
-   * Currently has 2 internal fields, 1 is a pointer to dali wrapped object, 2nd is the type.
-   */
-  void SetJavascriptObject( v8::Isolate* isolate, v8::Local<v8::Object>& object );
-
-  /**
-   * @return true if the object is of a certain wrapped type (e.g. Animation )
-   */
-  static bool IsWrappedType( v8::Isolate* isolate, const v8::Local<v8::Object>& object,  BaseWrappedObject::Type type);
-
-  /**
-   * @return true if the object is a wrapped property value
-   */
-  static bool IsWrappedTypeAPropertyValue(const v8::Local<v8::Object>& object);
-
-  /**
-   * @brief Extracts the Dali wrapped object from the javascript object
-   */
-  static BaseWrappedObject* UnWrap( v8::Isolate* isolate, const v8::Local<v8::Object>& object);
-
-  /**
-   * @return the wrapped type
-   */
-  Type GetType();
-
-  virtual SignalManager* GetSignalManager();
-
-protected:
-
-  /**
-   * Constructor
-   * @param type wrapped type
-   * @param gc garbage collector interface
-   */
-  BaseWrappedObject( Type type, GarbageCollectorInterface& gc );
-
-private:
-
-  BaseWrappedObject();
-
-  /**
-   * We store a  persistent handle to the JavaScript object and then set it to weak.
-   * This means we be notified when v8 decides it's no longer required and we can delete
-   * the associated Dali object
-   */
-  v8::Persistent<v8::Object > mWeakPersistentHandle;
-  Type mWrappedType;                                    ///< wrapped type
-  GarbageCollectorInterface& mGarbageCollector;         ///< Dali garbage collector
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_BASE_WRAPPED_OBJECT_H
diff --git a/plugins/dali-script-v8/src/shared/object-template-helper.cpp b/plugins/dali-script-v8/src/shared/object-template-helper.cpp
deleted file mode 100644 (file)
index 34a97e4..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// HEADER
-#include "object-template-helper.h"
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <signals/signal-manager.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace ObjectTemplateHelper
-{
-
-void AddSignalConnectAndDisconnect( v8::Isolate* isolate,  v8::Local<v8::ObjectTemplate>& objTemplate )
-{
-  objTemplate->Set( v8::String::NewFromUtf8( isolate, "on"),
-                     v8::FunctionTemplate::New( isolate, SignalManager::SignalConnect) );
-
-
-
-  objTemplate->Set( v8::String::NewFromUtf8( isolate, "off"),
-                     v8::FunctionTemplate::New( isolate, SignalManager::SignalDisconnect) );
-}
-
-
-
-
-void InstallFunctions( v8::Isolate* isolate,
-                              v8::Local<v8::ObjectTemplate>& objTemplate,
-                              const ApiFunction* functionTable,
-                              unsigned int tableCount,
-                              FunctionType type )
-{
-  // add our function properties
-   for( unsigned int i = 0; i < tableCount; ++i )
-   {
-     const ApiFunction property =  functionTable[i];
-
-     std::string funcName;
-
-     if( type == NORMAL_FUNCTIONS )
-     {
-       funcName = V8Utils::GetJavaScriptFunctionName( property.name);
-     }
-     else
-     {
-
-       funcName = property.name;
-     }
-    // printf("Installing function %s \n",      funcName.c_str()     );
-     objTemplate->Set( v8::String::NewFromUtf8(   isolate, funcName.c_str() ),
-                      v8::FunctionTemplate::New( isolate, property.function ) );
-   }
-}
-
-} // ObjectTemplateHelper
-
-} // V8Plugin
-
-} // Dali
diff --git a/plugins/dali-script-v8/src/shared/object-template-helper.h b/plugins/dali-script-v8/src/shared/object-template-helper.h
deleted file mode 100644 (file)
index cbe02c8..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-#ifndef DALI_V8PLUGIN_OBJECT_TEMPLATE_HELPER_H
-#define DALI_V8PLUGIN_OBJECT_TEMPLATE_HELPER_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-
-// INTERNAL INCLUDES
-#include <shared/api-function.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace ObjectTemplateHelper
-{
-
-
-
-/**
- * @brief Used for adding signal connect / disconnect functionality to an object template
- * E.g.
- */
-void AddSignalConnectAndDisconnect( v8::Isolate* isolate,  v8::Local<v8::ObjectTemplate>& objTemplate );
-
-enum FunctionType
-{
-  NORMAL_FUNCTIONS = 0,
-  CONSTRUCTOR_FUNCTIONS = 1
-};
-
-/**
- * Installs a list of functions on to an object template (e.g. actor.add, actor.setDrawMode() )
- */
-void InstallFunctions( v8::Isolate* isolate,
-                              v8::Local<v8::ObjectTemplate>& objTemplate,
-                              const ApiFunction* functionTable,
-                              unsigned int tableCount,
-                              FunctionType type = NORMAL_FUNCTIONS);
-}
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_OBJECT_TEMPLATE_HELPER_H
diff --git a/plugins/dali-script-v8/src/signals/dali-any-javascript-converter.cpp b/plugins/dali-script-v8/src/signals/dali-any-javascript-converter.cpp
deleted file mode 100644 (file)
index b675779..0000000
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "dali-any-javascript-converter.h"
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <object/property-value-wrapper.h>
-#include <actors/actor-wrapper.h>
-#include <events/event-object-generator.h>
-#include <animation/animation-wrapper.h>
-#include <image/image-wrapper.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-v8::Local<v8::Value> DaliAnyConverter::ConvertToJavaScriptObject(v8::Isolate* isolate, Dali::Any& value )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::Value> returnValue;
-
-  const std::type_info& typeInfo( value.GetType());
-
-  // check the type of the Any and convert it to a JavaScript object
-  // if we wanted to speed this up, it would be possible to hash the typeInfo.name() field.
-
-  if( typeInfo == typeid( Dali::Actor ))
-  {
-    Actor actor =  value.Get<Actor>();
-    if( actor )
-    {
-      returnValue = ActorWrapper::WrapActor( isolate, actor );
-    }
-    else
-    {
-      returnValue = v8::Undefined( isolate );
-    }
-  }
-  else if(  typeInfo == typeid( std::string ) )
-  {
-
-    std::string string = value.Get< std::string >();
-    //printf(" converting %s to a javascript object \n", string.c_str());
-    returnValue =  v8::String::NewFromUtf8( isolate, string.c_str());
-  }
-  else if(  typeInfo == typeid( Dali::Vector3 ) )
-  {
-    returnValue = PropertyValueWrapper::WrapDaliProperty( isolate, value.Get<Vector3>() );
-  }
-  else if(  typeInfo == typeid( Dali::TouchData ) )
-  {
-    returnValue = EventObjectGenerator::CreateTouchData( isolate, value.Get<TouchData>() );
-  }
-  else if(  typeInfo == typeid( Dali::HoverEvent ) )
-  {
-    returnValue = EventObjectGenerator::CreateHoverEvent( isolate, value.Get<HoverEvent>() );
-  }
-  else if(  typeInfo == typeid( Dali::WheelEvent ) )
-  {
-    returnValue = EventObjectGenerator::CreateWheelEvent( isolate, value.Get<WheelEvent>() );
-  }
-  else if(  typeInfo == typeid( Dali::KeyEvent ) )
-  {
-    returnValue = EventObjectGenerator::CreateKeyEvent( isolate, value.Get<KeyEvent>() );
-  }
-  else if(  typeInfo == typeid( Dali::PanGesture ) )
-  {
-    returnValue = EventObjectGenerator::CreatePanGesture( isolate, value.Get<PanGesture>() );
-  }
-  else if(  typeInfo == typeid( Dali::Animation ) )
-  {
-    returnValue = AnimationWrapper::WrapAnimation( isolate, value.Get<Animation>() );
-  }
-  else if(  typeInfo == typeid( Dali::Image ) )
-  {
-    returnValue = ImageWrapper::WrapImage( isolate, value.Get<Image>() );
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, " Failed to find Dali::Any to JavaScript converter \n" );
-  }
-
-  return handleScope.Escape( returnValue );
-}
-
-Dali::Any DaliAnyConverter::ConvertToDaliAny( v8::Isolate* isolate, v8::Local<v8::Value> value, const Dali::Any& requestedType)
-{
-  v8::HandleScope handleScope( isolate );
-
-  if( value.IsEmpty() )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "Callback missing a return value \n");
-    return Dali::Any();
-  }
-  // try to match the return value types
-  if( requestedType.GetType() == typeid( bool ))
-  {
-    if( value->IsBoolean() )
-    {
-      return value->ToBoolean()->Value();
-    }
-    else
-    {
-      DALI_SCRIPT_EXCEPTION( isolate, "Invalid return type from callback, wanted a bool \n");
-    }
-  }
-  else if( requestedType.GetType() == typeid( unsigned int ) )
-  {
-    if( value->IsUint32() )
-    {
-      return value->ToUint32()->Value();
-    }
-    else
-    {
-      DALI_SCRIPT_EXCEPTION( isolate, "Invalid return type from callback, wanted an unsigned int\n");
-    }
-  }
-  // allow positive and negative numbers for int,@todo test how v8 behaves with numbers returned
-  else if( requestedType.GetType() == typeid( int ))
-  {
-    if( value->IsInt32() )
-    {
-      return value->ToInt32()->Value();
-    }
-    else if( value->IsUint32() )
-    {
-      return static_cast<int>( value->ToUint32()->Value());
-    }
-    else
-    {
-      DALI_SCRIPT_EXCEPTION(isolate, "Invalid return type from callback, wanted an int\n");
-    }
-  }
-  else if( requestedType.GetType() == typeid( float ))
-  {
-    if( value->IsNumber() )
-    {
-      return value->ToNumber()->Value();
-    }
-    else if( value->IsInt32() )
-    {
-      return static_cast<float>(value->ToInt32()->Value());
-    }
-    else if( value->IsUint32() )
-    {
-      return static_cast<float>( value->ToUint32()->Value() );
-    }
-    else
-    {
-      DALI_SCRIPT_EXCEPTION(isolate, "Invalid return type from callback, wanted a float\n");
-    }
-  }
-  else if( requestedType.GetType() == typeid( Actor ))
-  {
-    if( value->IsObject()  )
-    {
-      HandleWrapper* handleWrapper = HandleWrapper::Unwrap( isolate, value->ToObject() );
-      if( handleWrapper )
-      {
-        return Actor::DownCast( handleWrapper->mHandle );
-      }
-      else
-      {
-        DALI_SCRIPT_EXCEPTION(isolate, "Invalid return type from callback, wanted an Actor \n");
-      }
-    }
-    else
-    {
-      // undefined is used to describe an empty actor handle
-      if (value->IsUndefined())
-      {
-        return Actor();
-      }
-      else
-      {
-        DALI_SCRIPT_EXCEPTION(isolate, "missing return type, wanted an Actor \n");
-      }
-    }
-
-  }
-  return Dali::Any(); // empty any
-}
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/signals/dali-any-javascript-converter.h b/plugins/dali-script-v8/src/signals/dali-any-javascript-converter.h
deleted file mode 100644 (file)
index 3a72d55..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef DALI_V8PLUGIN_DALI_ANY_JAVASCRIPT_CONVERTER_H
-#define DALI_V8PLUGIN_DALI_ANY_JAVASCRIPT_CONVERTER_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/object/any.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace DaliAnyConverter
-{
-
-
-/**
- * Converts a Dali::Any object to a JavaScript object based on it's type
- */
-v8::Local<v8::Value> ConvertToJavaScriptObject( v8::Isolate* isolate, Dali::Any& value );
-
-
-/**
- * Converts from a JavaScript object back into a Dali::Any object
- * Used for return values from JavaScript callbacks
- * E.g. to convert from a JavaScript bool object to a C++ bool
- */
-
-Dali::Any ConvertToDaliAny( v8::Isolate* isolate, v8::Local<v8::Value>, const Dali::Any& requestedType);
-
-}
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_DALI_ANY_JAVASCRIPT_CONVERTER_H
diff --git a/plugins/dali-script-v8/src/signals/emit-notification-interface.h b/plugins/dali-script-v8/src/signals/emit-notification-interface.h
deleted file mode 100644 (file)
index 12b030c..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-#ifndef DALI_V8PLUGIN_EMIT_NOTIFICATION_INTERFACE_H
-#define DALI_V8PLUGIN_EMIT_NOTIFICATION_INTERFACE_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-/**
- * abstract interface to allow the signal manager know if
- * a JavaScript disconnect/ connect has been called, while inside a callback
- */
-class EmitNotificationInterface
-{
-
-  public:
-
-  /**
-   * Constructor
-   */
-  EmitNotificationInterface() {}
-
-  /**
-   * Virtual destructor
-   */
-  virtual ~EmitNotificationInterface() {}
-
-  /**
-   * Call back has been entered.
-   * E.g. Actor on touch has called a JavaScript function
-   */
-   virtual void CallbackEnter() =0 ;
-
-   /**
-    * Call back has been entered.
-    * E.g. Actor on touch has called a JavaScript function
-    */
-   virtual void CallbackExit() =0 ;
-
-};
-
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_EMIT_NOTIFICATION_INTERFACE_H
diff --git a/plugins/dali-script-v8/src/signals/signal-manager.cpp b/plugins/dali-script-v8/src/signals/signal-manager.cpp
deleted file mode 100644 (file)
index 15648b2..0000000
+++ /dev/null
@@ -1,780 +0,0 @@
-/*
- * Copyright (c) 2017 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.
- *
- */
-
-// CLASS HEADER
-#include "signal-manager.h"
-
-// EXTERNAL INCLUDES
-#include <cstring> // for strcmp
-#include <dali/public-api/images/resource-image.h>
-#include <dali/public-api/object/any.h>
-#include <dali/public-api/events/pan-gesture-detector.h>
-#include <dali/public-api/object/any.h>
-#include <dali/public-api/images/image.h>
-#include <dali/public-api/events/touch-data.h>
-#include <dali/public-api/events/hover-event.h>
-#include <dali/public-api/events/wheel-event.h>
-#include <dali/public-api/events/key-event.h>
-#include <dali/public-api/events/pan-gesture.h>
-#include <dali/public-api/object/weak-handle.h>
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <object/handle-wrapper.h>
-#include <object/property-value-wrapper.h>
-#include <actors/actor-wrapper.h>
-#include <image/image-wrapper.h>
-#include <animation/animation-wrapper.h>
-#include <stage/stage-wrapper.h>
-#include <events/pan-gesture-detector-wrapper.h>
-#include <toolkit/focus-manager/keyboard-focus-manager-wrapper.h>
-#include <signals/dali-any-javascript-converter.h>
-
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace // un-named namespace
-{
-const char* const SIGNAL_TOUCH = "touch";
-const char* const SIGNAL_HOVERED = "hovered";
-const char* const SIGNAL_WHEEL_EVENT = "wheelEvent";
-const char* const SIGNAL_ON_STAGE = "onStage";
-const char* const SIGNAL_OFF_STAGE = "offStage";
-const char* const ANIMATION_SIGNAL_FINISHED = "finished";
-const char* const SIGNAL_PAN_DETECTED = "panDetected";
-
-const char* const STAGE_SIGNAL_KEY_EVENT = "keyEvent";
-const char* const STAGE_SIGNAL_EVENT_PROCESSING_FINISHED = "eventProcessingFinished";
-const char* const STAGE_SIGNAL_TOUCH = "touch";
-const char* const SIGNAL_IMAGE_LOADING_FINISHED = "imageLoadingFinished";
-const char* const SIGNAL_IMAGE_UPLOADED = "uploaded";
-
-const char* const KEYBOARD_FOCUS_MANAGER_SIGNAL_PRE_FOCUS_CHANGE = "keyboardPreFocusChange";
-const char* const KEYBOARD_FOCUS_MANAGER_SIGNAL_FOCUS_CHANGED = "keyboardFocusChanged";
-const char* const KEYBOARD_FOCUS_MANAGER_SIGNAL_FOCUS_GROUP_CHANGED = "keyboardFocusGroupChanged";
-const char* const KEYBOARD_FOCUS_MANAGER_SIGNAL_FOCUSED_ACTOR_ENTER_KEY = "keyboardFocusedActorEnterKey";
-const unsigned int MAX_SIGNAL_NAME_LENGTH = 64;
-
-} // un-named name space
-
-class BaseJavaScriptCallback
-{
-public:
-
-  BaseJavaScriptCallback(  v8::Isolate* isolate,  const v8::Local<v8::Function>& callback )
-  :mIsolate( isolate ),mEmitInterface( NULL )
-  {
-    mCallback.Reset( isolate, callback);
-  }
-  ~BaseJavaScriptCallback()
-  {
-    mCallback.Reset();
-  };
-
-  bool IsFunction( const v8::Local<v8::Function>& function)
-  {
-    v8::HandleScope handleScope( mIsolate );
-    v8::Local<v8::Function> localCallback =  v8::Local<v8::Function>::New( mIsolate, mCallback );
-    return ( localCallback == function );
-  }
-
-  void Call( Dali::Any& returnValue, std::vector< Dali::Any >& data )
-  {
-    mEmitInterface->CallbackEnter();
-
-    v8::HandleScope handleScope( mIsolate );
-    v8::TryCatch tryCatch;
-
-    // create a vector of JavaScript arguments to pass to the JavaScript function
-    std::vector< v8::Local<v8::Value> > arguments;
-
-    for( unsigned int i = 0; i < data.size(); ++i )
-    {
-      // convert each Dali::Any object into a JavaScript object based on it's type
-      arguments.push_back( DaliAnyConverter::ConvertToJavaScriptObject( mIsolate, data[i]));
-    }
-
-    // call the javascript function
-    v8::Local<v8::Function> localCallback =  v8::Local<v8::Function>::New( mIsolate, mCallback );
-    v8::Local<v8::Value>  javaScriptReturnVal = v8::Local<v8::Value>::Cast( localCallback->Call( localCallback, arguments.size(), &arguments[0] ));
-
-    // Print errors that happened during execution.
-    if( tryCatch.HasCaught() )
-    {
-      V8Utils::ReportException( mIsolate, &tryCatch);
-      DALI_ASSERT_ALWAYS( 0 && "Script error \n");
-    }
-
-    // convert will log an error, if the return type we want isn't found
-    returnValue = DaliAnyConverter::ConvertToDaliAny( mIsolate,  javaScriptReturnVal, returnValue );
-
-    mEmitInterface->CallbackExit();
-
-  }
-
-  void SetEmitInterface( EmitNotificationInterface* interface)
-  {
-    mEmitInterface = interface;
-  }
-protected:
-  v8::Isolate*                 mIsolate;
-  v8::Persistent<v8::Function> mCallback;
-  EmitNotificationInterface*   mEmitInterface;
-
-};
-/**
- * base class for callback
- */
-class BaseCallBack : public ConnectionTracker
-{
-public:
-    BaseCallBack( v8::Isolate* isolate,  const v8::Local<v8::Function>& callback, const std::string& signalName )
-    :mSignalName( signalName ),
-     mJavaFunctor( isolate, callback)
-    {
-
-    }
-    void CallJavaScript(  Dali::Any& returnValue, std::vector< Dali::Any >& data )
-    {
-      mJavaFunctor.Call( returnValue, data);
-    }
-
-    bool IsFunction( const v8::Local<v8::Function>& function)
-    {
-      return mJavaFunctor.IsFunction(function);
-    }
-
-    void SetEmitInterface( EmitNotificationInterface* interface)
-    {
-      mJavaFunctor.SetEmitInterface( interface );
-    }
-    virtual ~BaseCallBack() {}
-
-    std::string mSignalName;
-    BaseJavaScriptCallback mJavaFunctor;
-};
-
-namespace
-{
-
-class ActorCallback :  public BaseCallBack
-{
-public:
-
-  ActorCallback(v8::Isolate* isolate,  const v8::Local<v8::Function>& callback ,const std::string& signalName, Actor actor )
-  : BaseCallBack( isolate, callback, signalName ),
-    mActor(actor)
-  {
-  }
-  bool OnTouch( Actor actor, const TouchData& touch )
-  {
-    std::vector< Dali::Any > arguments;  // Dali::Vector considers Dali::Any to be a non trivial type so won't compile
-    Dali::Any returnValue(false);
-    arguments.push_back( actor );
-    arguments.push_back( touch );
-    CallJavaScript( returnValue, arguments );
-    bool ret;
-    returnValue.Get(ret);
-    return ret;
-  }
-  bool OnHover( Actor actor, const HoverEvent& event)
-  {
-    std::vector< Dali::Any > arguments;  // Dali::Vector considers Dali::Any to be a non trivial type so won't compile
-    Dali::Any returnValue(false);
-    arguments.push_back( actor );
-    arguments.push_back( event );
-    CallJavaScript( returnValue, arguments );
-    bool ret;
-    returnValue.Get(ret);
-    return ret;
-  }
-  bool OnWheel( Actor actor, const WheelEvent& event)
-  {
-    std::vector< Dali::Any > arguments;
-    Dali::Any returnValue(false);
-    arguments.push_back( actor );
-    arguments.push_back( event );
-    CallJavaScript( returnValue, arguments );
-    bool ret;
-    returnValue.Get(ret);
-    return ret;
-  }
-  void OnStage( Actor actor)
-  {
-    std::vector< Dali::Any > arguments;
-    Dali::Any returnValue;          //no return
-    arguments.push_back( actor );
-    CallJavaScript( returnValue, arguments );
-  }
-  void OffStage( Actor actor)
-  {
-    std::vector< Dali::Any > arguments;
-    Dali::Any returnValue;          //no return
-    arguments.push_back( actor );
-    CallJavaScript( returnValue, arguments );
-  }
-
-  WeakHandle< Actor > mActor;
-
-};
-
-struct ActorGenericCallbackFunctor
-{
-  ActorGenericCallbackFunctor(ActorCallback& callback) : callback(callback) { }
-  void operator()()
-  {
-    std::vector< Dali::Any > arguments;
-    Dali::Any returnValue;          //no return
-    arguments.push_back(callback.mActor.GetHandle()); //pass the actor handle as the parameter
-    callback.CallJavaScript( returnValue, arguments );
-  }
-
-  ActorCallback& callback;
-};
-
-
-class AnimationCallback :  public BaseCallBack
-{
-public:
-
-  AnimationCallback(v8::Isolate* isolate,  const v8::Local<v8::Function>& callback ,const std::string& signalName )
-  : BaseCallBack( isolate, callback, signalName )
-  {
-  }
-  void Finished( Animation& animation)
-  {
-    std::vector< Dali::Any > arguments;  // Dali::Vector considers Dali::Any to be a non trivial type so won't compile
-    Dali::Any returnValue;    //no return
-    arguments.push_back( animation );
-    CallJavaScript( returnValue, arguments );
-  }
-};
-
-
-class ImageCallback :  public BaseCallBack
-{
-public:
-
-  ImageCallback(v8::Isolate* isolate,  const v8::Local<v8::Function>& callback ,const std::string& signalName )
-  : BaseCallBack( isolate, callback, signalName )
-  {
-  }
-  void LoadingFinished( ResourceImage image)
-  {
-    std::vector< Dali::Any > arguments;  // Dali::Vector considers Dali::Any to be a non trivial type so won't compile
-    Dali::Any returnValue;  //no return
-    arguments.push_back( image );
-    CallJavaScript( returnValue, arguments );
-  }
-};
-class StageCallback :  public BaseCallBack
-{
-public:
-
-  StageCallback(v8::Isolate* isolate,  const v8::Local<v8::Function>& callback ,const std::string& signalName )
-  : BaseCallBack( isolate, callback, signalName )
-  {
-  }
-
-  void KeyEventSignal( const KeyEvent& keyEvent )
-  {
-    std::vector< Dali::Any > arguments;
-    Dali::Any returnValue;  //no return
-    arguments.push_back( keyEvent );
-    CallJavaScript( returnValue, arguments );
-  }
-  void EventProcessingFinishedSignal()
-  {
-    std::vector< Dali::Any > arguments;
-    Dali::Any returnValue;  //no return
-    CallJavaScript( returnValue, arguments );
-  }
-  void TouchSignal( const TouchData& touch )
-  {
-    std::vector< Dali::Any > arguments;
-    Dali::Any returnValue;   //no return
-    arguments.push_back( touch );
-    CallJavaScript( returnValue, arguments );
-  }
-};
-
-class KeyboardFocusCallback :  public BaseCallBack
-{
-public:
-
-  KeyboardFocusCallback(v8::Isolate* isolate,  const v8::Local<v8::Function>& callback ,const std::string& signalName )
-  : BaseCallBack( isolate, callback, signalName )
-  {
-  }
-
-  Actor PreFocusChangeSignal(Actor currentFocusedActor,
-                             Actor proposedActorToFocus,
-                             Toolkit::Control::KeyboardFocus::Direction direction  )
-  {
-    std::vector< Dali::Any > arguments;
-    Dali::Any returnValue = Actor();  // we want an actor as a return value
-
-    arguments.push_back( currentFocusedActor );
-    arguments.push_back( proposedActorToFocus );
-
-    std::string name = KeyboardFocusManagerWrapper::GetDirectionName( direction );
-    arguments.push_back( name );
-
-    CallJavaScript( returnValue, arguments );
-
-    Actor ret;
-    returnValue.Get(ret);
-    return ret;
-  }
-  void FocusChangedSignal(Actor originalFocusedActor, Actor currentFocusedActor)
-  {
-    std::vector< Dali::Any > arguments;
-    Dali::Any returnValue;  //no return
-    arguments.push_back( originalFocusedActor );
-    arguments.push_back( currentFocusedActor );
-    CallJavaScript( returnValue, arguments );
-  }
-  void FocusGroupSignal( Actor currentFocusedActor, bool forward )
-  {
-    std::vector< Dali::Any > arguments;
-    Dali::Any returnValue;   //no return
-    arguments.push_back( currentFocusedActor );
-    arguments.push_back( forward );
-    CallJavaScript( returnValue, arguments );
-  }
-  void EnterKeyPressedActorSignal( Actor enterKeyPressedActor )
-  {
-    std::vector< Dali::Any > arguments;
-    Dali::Any returnValue;   //no return
-    arguments.push_back( enterKeyPressedActor );
-    CallJavaScript( returnValue, arguments );
-  }
-};
-
-class PanGestureDetectorCallback :  public BaseCallBack
-{
-public:
-
-  PanGestureDetectorCallback(v8::Isolate* isolate,  const v8::Local<v8::Function>& callback ,const std::string& signalName )
-  : BaseCallBack( isolate, callback, signalName )
-  {
-  }
-  void OnPan( Actor actor, const PanGesture& panGesture)
-  {
-    std::vector< Dali::Any > arguments;
-    Dali::Any returnValue;    //no return
-    arguments.push_back( actor );
-    arguments.push_back( panGesture );
-    CallJavaScript( returnValue, arguments );
-  }
-};
-
-void ActorConnection( v8::Isolate* isolate,
-                                     v8::Local<v8::Function> javaScriptCallback,
-                                     ActorWrapper* actorWrapper,
-                                     const std::string& signalName,
-                                     Actor actor )
-{
-  bool connected(true);
-
-  ActorCallback* callback =new ActorCallback( isolate, javaScriptCallback, signalName, actor );
-
-  if( strcmp( signalName.c_str(), SIGNAL_TOUCH ) == 0 )
-  {
-    actor.TouchSignal().Connect( callback, &ActorCallback::OnTouch );
-  }
-  else if( strcmp( signalName.c_str(), SIGNAL_HOVERED ) == 0 )
-  {
-    actor.HoveredSignal().Connect( callback, &ActorCallback::OnHover );
-  }
-  else if ( strcmp( signalName.c_str(), SIGNAL_WHEEL_EVENT ) == 0 )
-  {
-    actor.WheelEventSignal().Connect( callback, &ActorCallback::OnWheel );
-  }
-  else if ( strcmp( signalName.c_str(), SIGNAL_ON_STAGE ) == 0 )
-  {
-    actor.OnStageSignal().Connect( callback, &ActorCallback::OnStage);
-  }
-  else if ( strcmp( signalName.c_str(), SIGNAL_OFF_STAGE ) == 0 )
-  {
-    actor.OffStageSignal().Connect( callback, &ActorCallback::OffStage);
-  }
-  else
-  {
-    connected = actor.ConnectSignal( callback, signalName, ActorGenericCallbackFunctor(*callback) );
-  }
-
-  if( connected )
-  {
-    actorWrapper->GetSignalManager()->AddCallback( static_cast<BaseCallBack*>(callback) );
-  }
-  else
-  {
-    delete callback;
-    DALI_SCRIPT_EXCEPTION( isolate, "the signal is not available in this object.");
-  }
-}
-
-void AnimationConnection( v8::Isolate* isolate,
-                                     v8::Local<v8::Function> javaScriptCallback,
-                                     AnimationWrapper* animWrapper,
-                                     const std::string& signalName,
-                                     Animation anim )
-{
-  if( signalName ==  ANIMATION_SIGNAL_FINISHED)
-  {
-    AnimationCallback* callback =new AnimationCallback( isolate, javaScriptCallback, signalName );
-    anim.FinishedSignal().Connect( callback, &AnimationCallback::Finished );
-    animWrapper->GetSignalManager()->AddCallback( static_cast<BaseCallBack*>(callback) );
-  }
-}
-
-void ImageConnection( v8::Isolate* isolate,
-                                     v8::Local<v8::Function> javaScriptCallback,
-                                     ImageWrapper* imageWrapper,
-                                     const std::string& signalName,
-                                     Image image)
-{
-  // Nine patch will downcast to ResourceImage
-  ResourceImage resourceImage( ResourceImage::DownCast( image ) );
-  if( !resourceImage )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "can only connect to Resource / NinePatch Images");
-    return;
-  }
-
-  if( strcmp( signalName.c_str(), SIGNAL_IMAGE_LOADING_FINISHED ) == 0 )
-  {
-    ImageCallback* callback =new ImageCallback( isolate, javaScriptCallback, signalName );
-
-    resourceImage.LoadingFinishedSignal().Connect( callback, &ImageCallback::LoadingFinished );
-    imageWrapper->GetSignalManager()->AddCallback( static_cast<BaseCallBack*>(callback) );
-  }
-  else if ( strcmp( signalName.c_str() , SIGNAL_IMAGE_UPLOADED ) == 0 )
-  {
-    ImageCallback* callback =new ImageCallback( isolate, javaScriptCallback, signalName );
-    resourceImage.LoadingFinishedSignal().Connect( callback, &ImageCallback::LoadingFinished );
-    imageWrapper->GetSignalManager()->AddCallback( static_cast<BaseCallBack*>(callback) );
-  }
-}
-
-void StageConnection( v8::Isolate* isolate,
-                                     v8::Local<v8::Function> javaScriptCallback,
-                                     StageWrapper* stageWrapper,
-                                     const std::string& signalName,
-                                     Stage stage)
-{
-  bool connected( true );
-  StageCallback* callback =new StageCallback( isolate, javaScriptCallback, signalName );
-
-  if( strcmp( signalName.c_str() ,STAGE_SIGNAL_KEY_EVENT) == 0 )
-  {
-    stage.KeyEventSignal().Connect( callback, &StageCallback::KeyEventSignal );
-   }
-  else if ( strcmp( signalName.c_str(),  STAGE_SIGNAL_EVENT_PROCESSING_FINISHED ) == 0)
-  {
-    stage.EventProcessingFinishedSignal().Connect( callback, &StageCallback::EventProcessingFinishedSignal );
-  }
-  else if (strcmp( signalName.c_str(), STAGE_SIGNAL_TOUCH ) == 0 )
-  {
-    stage.TouchSignal().Connect( callback, &StageCallback::TouchSignal );
-  }
-  else
-  {
-    connected = false;
-  }
-
-  if( connected )
-  {
-    stageWrapper->GetSignalManager()->AddCallback( static_cast<BaseCallBack*>(callback) );
-  }
-  else
-  {
-    delete  callback;
-  }
-}
-
-void KeyboardFocusManagerConnection( v8::Isolate* isolate,
-      v8::Local<v8::Function> javaScriptCallback,
-      KeyboardFocusManagerWrapper* keyboardFocusWrapper,
-      const std::string& signalName,
-      Toolkit::KeyboardFocusManager keyboardFocusManager)
-{
-  bool connected( true );
-  KeyboardFocusCallback* callback =new KeyboardFocusCallback( isolate, javaScriptCallback, signalName );
-
-  if( strcmp( signalName.c_str(), KEYBOARD_FOCUS_MANAGER_SIGNAL_PRE_FOCUS_CHANGE ) == 0 )
-  {
-    keyboardFocusManager.PreFocusChangeSignal().Connect( callback, &KeyboardFocusCallback::PreFocusChangeSignal );
-  }
-  else if ( strcmp( signalName.c_str(),  KEYBOARD_FOCUS_MANAGER_SIGNAL_FOCUS_CHANGED ) == 0 )
-  {
-    keyboardFocusManager.FocusChangedSignal().Connect( callback, &KeyboardFocusCallback::FocusChangedSignal );
-  }
-  else if ( strcmp( signalName.c_str(), KEYBOARD_FOCUS_MANAGER_SIGNAL_FOCUS_GROUP_CHANGED ) == 0 )
-  {
-    keyboardFocusManager.FocusGroupChangedSignal().Connect( callback, &KeyboardFocusCallback::FocusGroupSignal );
-  }
-  else if ( strcmp( signalName.c_str(), KEYBOARD_FOCUS_MANAGER_SIGNAL_FOCUSED_ACTOR_ENTER_KEY ) == 0 )
-  {
-    keyboardFocusManager.FocusedActorEnterKeySignal().Connect( callback, &KeyboardFocusCallback::EnterKeyPressedActorSignal );
-  }
-  else
-  {
-    connected = false;
-  }
-
-  if( connected )
-  {
-    keyboardFocusWrapper->GetSignalManager()->AddCallback( static_cast<BaseCallBack*>(callback) );
-  }
-  else
-  {
-    delete  callback;
-  }
-}
-
-void PanGestureDetectorConnection( v8::Isolate* isolate,
-                                     v8::Local<v8::Function> javaScriptCallback,
-                                     PanGestureDetectorWrapper* panGestureDetectorWrapper,
-                                     const std::string& signalName,
-                                     PanGestureDetector panGestureDetector )
-{
-  if( strcmp( signalName.c_str() , SIGNAL_PAN_DETECTED ) == 0 )
-  {
-    PanGestureDetectorCallback* callback =new PanGestureDetectorCallback( isolate, javaScriptCallback, signalName );
-    panGestureDetector.DetectedSignal().Connect( callback, &PanGestureDetectorCallback::OnPan );
-    panGestureDetectorWrapper->GetSignalManager()->AddCallback( static_cast<BaseCallBack*>(callback) );
-  }
-}
-
-} // un-named namespace
-
-
-SignalManager::SignalManager()
-:mInsideCallback(false)
-{
-
-}
-SignalManager::~SignalManager()
-{
-  // the object owning the signal manager ( e.g. an actor wrapper ) has been deleted
-  // delete the callbacks objects
-  for( CallBackContainer::Iterator iter = mCallbacks.Begin(); iter != mCallbacks.End(); ++iter )
-  {
-      BaseCallBack* callback = (*iter);
-      delete callback;
-  }
-  for( CallBackContainer::Iterator iter = mDisconnectedCallbacks.Begin(); iter != mDisconnectedCallbacks.End(); ++iter )
-  {
-    BaseCallBack* callback = (*iter);
-    delete callback;
-  }
-}
-
-
-void SignalManager::SignalConnect( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  // format is
-  // first paramter =  signal to connect to
-  // Second parameter = function ( to run )
-  // args.This() = myActor
-  // e.g. myActor.Connect("touch", myJavaScriptActorTouched );
-
-  // Inside Callback on myJavaScriptActorTouched
-  // myActor.Disconnect("touch", myJavaScriptActorTouched );
-
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  if( !args[1]->IsFunction() )
-  {
-    DALI_SCRIPT_EXCEPTION(isolate, "function parameter not found ");
-    return;
-  }
-
-  // get the function
-  v8::Local<v8::Function> func =v8::Handle<v8::Function>::Cast(args[1]);
-
-  // get the handle wrapper
-  BaseWrappedObject* baseObject = BaseWrappedObject::UnWrap( isolate, args.This() );
-
-  // First paramter = signal name as a string
-  bool found( false );
-  std::string signal = V8Utils::GetStringParameter( PARAMETER_0, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION(isolate, "signal name parameter not found ");
-    return;
-  }
-
-  if( signal.empty() || ( signal.length() > MAX_SIGNAL_NAME_LENGTH ) )
-  {
-    DALI_SCRIPT_EXCEPTION(isolate, "signal name length out of range");
-    return;
-  }
-  // We need to determine what type of function needs to be hooked
-  // see if we're connecting to an Actor
-  switch( baseObject->GetType() )
-  {
-    case BaseWrappedObject::ACTOR:
-    {
-      ActorWrapper* actorWrapper = static_cast< ActorWrapper*>( baseObject );
-      ActorConnection( isolate, func, actorWrapper, signal,  actorWrapper->GetActor() );
-      break;
-    }
-    case BaseWrappedObject::ANIMATION:
-    {
-      AnimationWrapper* animWrapper = static_cast< AnimationWrapper*>( baseObject );
-      AnimationConnection( isolate, func, animWrapper, signal, animWrapper->GetAnimation() );
-      break;
-    }
-    case BaseWrappedObject::IMAGE:
-    {
-      ImageWrapper* imageWrapper = static_cast< ImageWrapper*>( baseObject );
-      ImageConnection( isolate, func, imageWrapper, signal, imageWrapper->GetImage() );
-      break;
-    }
-    case BaseWrappedObject::STAGE:
-    {
-      StageWrapper* stageWrapper = static_cast< StageWrapper*>( baseObject );
-      StageConnection( isolate, func, stageWrapper, signal, stageWrapper->GetStage() );
-      break;
-    }
-    case BaseWrappedObject::KEYBOARD_FOCUS_MANAGER:
-    {
-      KeyboardFocusManagerWrapper* keyboardFocusWrapper = static_cast< KeyboardFocusManagerWrapper*>( baseObject );
-      KeyboardFocusManagerConnection( isolate, func, keyboardFocusWrapper, signal, keyboardFocusWrapper->GetKeyboardFocusManager() );
-      break;
-    }
-    case BaseWrappedObject::PAN_GESTURE_DETECTOR:
-    {
-      PanGestureDetectorWrapper* panGestureDetectorWrapper = static_cast< PanGestureDetectorWrapper*>( baseObject );
-      PanGestureDetectorConnection( isolate, func, panGestureDetectorWrapper, signal, panGestureDetectorWrapper->GetPanGestureDetector() );
-      break;
-    }
-    default:
-    {
-      DALI_SCRIPT_EXCEPTION( isolate, "object does not support connections");
-      break;
-    }
-  }
-
-}
-
-void SignalManager::SignalDisconnect( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  // we can get the function name.... use that to disconnect from the object
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  if( !args[1]->IsFunction() )
-  {
-    DALI_SCRIPT_EXCEPTION(isolate, "function parameter not found ");
-    return;
-  }
-
-  // get the function
-  v8::Local<v8::Function> func =v8::Handle<v8::Function>::Cast(args[1]);
-
-  // get the handle wrapper
-  BaseWrappedObject* baseObject = BaseWrappedObject::UnWrap( isolate, args.This() );
-
-  // First parameter = signal name as a string
-  bool found( false );
-  std::string signal = V8Utils::GetStringParameter( PARAMETER_0, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION(isolate, "signal name parameter not found ");
-    return;
-  }
-
-  SignalManager* signalManager = baseObject->GetSignalManager();
-  if(signalManager )
-  {
-    signalManager->RemoveCallback( isolate, signal, func);
-  }
-
-
-}
-void SignalManager::AddCallback( BaseCallBack* callback )
-{
-  // used by the callback to inform signal manager when it is being triggered.
-   callback->SetEmitInterface( this );
-
-   mCallbacks.PushBack( callback );
-}
-void SignalManager::RemoveCallback( v8::Isolate* isolate, const std::string& signalName, const v8::Local<v8::Function>& function )
-{
-  // lets disconnect
-  for( CallBackContainer::Iterator iter = mCallbacks.Begin(); iter != mCallbacks.End(); ++iter )
-  {
-    BaseCallBack* callback = (*iter);
-    if( ( callback->mSignalName == signalName ) &&
-        ( callback->IsFunction(  function  )  )  )
-    {
-      mCallbacks.Erase( iter );
-
-      // if we're inside a callback::Call function, then deleting it will cause a seg fault
-      if( mInsideCallback )
-      {
-        callback->DisconnectAll();
-        mDisconnectedCallbacks.PushBack( callback );
-      }
-      else
-      {
-        delete callback;
-      }
-      return;
-    }
-  }
-}
-
-void SignalManager::CallbackEnter()
-{
-  mInsideCallback = true;
-}
-
-void SignalManager::CallbackExit()
-{
-  // this gets called when we've finished calling into JavaScript, e.g. as a result of animation finishing
-  // which is being listened to by a javascript function.
-
-  // it possible that inside the JavaScript call, it tries to disconnect.
-  // If this happens the callback is added to the mDisconnectedCallbacks list.
-  // We then delay deleting of the callback object until the JavaScript call has finished in this function.
-
-  mInsideCallback = false;
-
-  // lets delete any call backs that were disconnect during the JavaScript call
-  for( CallBackContainer::Iterator iter = mDisconnectedCallbacks.Begin(); iter != mDisconnectedCallbacks.End(); ++iter )
-  {
-    BaseCallBack* callback = (*iter);
-    delete callback;
-  }
-  mDisconnectedCallbacks.Clear();
-
-}
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/signals/signal-manager.h b/plugins/dali-script-v8/src/signals/signal-manager.h
deleted file mode 100644 (file)
index 1fc5e44..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-#ifndef DALI_V8PLUGIN_SIGNAL_MANAGER_H
-#define DALI_V8PLUGIN_SIGNAL_MANAGER_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <string>
-#include <dali/public-api/common/dali-vector.h>
-
-// INTERNAL INCLUDES
-#include <signals/emit-notification-interface.h>
-
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-class BaseCallBack;
-class HandleWrapper;
-
-/**
- * Manages signal connection / disconnection.
- *
- * How it works...
- * 1) SignalConnect, SignalDisconnect is installed on to a dali-wrapped object template. E.g.
- *
- *   objTemplate->Set( v8::String::NewFromUtf8( isolate, "Connect"),
-                     v8::FunctionTemplate::New( isolate, SignalManager::SignalConnect) );
- *
- * 2) When the  actor.Connect(...) is called, v8 runs SignalManager::SignalConnect( args )
- *
- * args.This() == Dali object ( e.g. Actor / Animation / Image ).
- * args[ 0 ] == Signal name, e.g. "touched"
- * args[ 1 ] ==  JavaScript function to run when the signal is fired.
- *
- * 3) SignalManager uses the signal name, to decide what type of Dali Signal is required.
- * It then creates a C++ object which can be connected to the Signal.
- * That object also holds a pointer to the JavaScript callback function
- *
- * 4) When the signal is fired, it triggers the signal in the C++ object, which then fires
- * the JavaScript function. See ActorCallback::OnTouch
- *
- *  When the object that holds SignalManager dies (e.g. an ActorWrapper), the signal manager for that
- *  object is destroyed, which automatically disconnects any signal connections.
- *
- *  @TODO
- *  Currently DALi Core supports 'DoConnectSignal' which passes in no parameters and expects no return value.
- *  If we could extend this, so DoConnect supports a generic function such as
- *  Dali::Any (*CallbackFunction) (Dali::Vector< Dali::Any > parameters );
- *  then we should be able to remove most of the code in this file.
- *  As this is how BaseJavaScriptCallback::Call() in SignalManager.cpp works.
- *
- *
- *
- */
-class SignalManager : public EmitNotificationInterface
-{
-public:
-
-  /**
-   * Constructor
-   */
-  SignalManager();
-
-  /**
-   * Destructor
-   */
-  virtual ~SignalManager();
-
-  /**
-   * signal connect function, installed on dali-wrapped object
-   */
-  static void SignalConnect( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  /**
-   * signal disconnect function, installed on dali-wrapped object
-   */
-  static void SignalDisconnect( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  /**
-   * Add a callback
-   * @param[in] callback
-   */
-  void AddCallback( BaseCallBack* callback );
-
-  /**
-   * Remove a callback
-   * @param[in] signalName name
-   * @param[in] function to remove
-   */
-  void RemoveCallback( v8::Isolate* isolate, const std::string& signalName, const v8::Local<v8::Function>& function );
-
-private:
-
-public:
-
-  /**
-   * @copydoc EmitNotificationInterface::CallbackEnter()
-   */
-  virtual void CallbackEnter();
-
-  /**
-   * @copydoc EmitNotificationInterface::CallbackExit()
-   */
-  virtual void CallbackExit();
-
-
-  // typically an object will only have 1 callback, so a vector is ok, e.g.
-  // there's no point in storing a map of callbacks for an actor that will only have 1 connection
-  // for OnTouch.
-  typedef Dali::Vector< BaseCallBack* > CallBackContainer;
-
-  CallBackContainer mCallbacks;               ///< List of callbacks
-  CallBackContainer mDisconnectedCallbacks;   ///< List of disconnected callbacks
-  bool mInsideCallback;                       ///< To prevent recursive loops
-
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_SIGNAL_MANAGER_H
diff --git a/plugins/dali-script-v8/src/stage/stage-api.cpp b/plugins/dali-script-v8/src/stage/stage-api.cpp
deleted file mode 100644 (file)
index cdeb06b..0000000
+++ /dev/null
@@ -1,266 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "stage-api.h"
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <object/property-value-wrapper.h>
-#include <actors/actor-wrapper.h>
-#include <actors/actor-api.h>
-#include <render-tasks/render-task-list-wrapper.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-
-/***************************************
- * STAGE FUNCTIONS
- *
- ****************************************/
-Dali::Stage StageApi::GetStage(v8::Isolate* isolate, const v8::FunctionCallbackInfo<v8::Value>& args)
-{
-  // the stage object should be in args, but for now just use GetCurrent
-  return Stage::GetCurrent();
-}
-
-/**
- * Adds a child Actor to the Stage.
- * @method add
- * @for Stage
- * @param {Object} Actor
- */
-void StageApi::Add( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Stage stage = GetStage( isolate, args );
-  bool found( false );
-  Actor actor = V8Utils::GetActorParameter( PARAMETER_0, found, isolate, args );
-  if( found )
-  {
-    stage.Add( actor );
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "missing actor parameter");
-  }
-}
-
-/**
- * Removes a child Actor to the Stage.
- * @method remove
- * @for Stage
- * @param {Object} Actor
- */
-void StageApi::Remove( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Stage stage = GetStage( isolate, args );
-  bool found( false );
-
-  Actor actor = V8Utils::GetActorParameter( PARAMETER_0, found, isolate, args );
-  if( found )
-  {
-    stage.Remove( actor );
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "missing actor parameter");
-  }
-}
-/**
- * Get the size of the stage
- * @method getSize
- * @for Stage
- * @return {Object} size with properties { x: , y: }
- */
-void StageApi::GetSize( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Stage stage = GetStage( isolate, args );
-  Vector2 size( stage.GetSize() );
-
-  v8::Local<v8::Object> sizeObject = v8::Object::New( isolate );
-  sizeObject->Set( v8::String::NewFromUtf8( isolate, "x"), v8::Number::New( isolate,size.width ));
-  sizeObject->Set( v8::String::NewFromUtf8( isolate, "y"), v8::Number::New( isolate,size.height ));
-
-  // set return value
-  args.GetReturnValue().Set( sizeObject );
-
-}
-/**
- * Retrieve the list of render-tasks.
- * @method getRenderTaskList
- * @for Stage
- * @return {Object} render task list
- */
-void StageApi::GetRenderTaskList( const v8::FunctionCallbackInfo< v8::Value >& args  )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Stage stage = GetStage( isolate, args );
-
-  RenderTaskList taskList = stage.GetRenderTaskList();
-
-  v8::Local <v8::Object> object = RenderTaskListWrapper::WrapRenderTaskList( isolate, taskList );
-
-  args.GetReturnValue().Set(  object );
-}
-/**
- * Query the number of on-stage layers.
- * Note that a default layer is always provided (count >= 1).
- * @method getLayerCount
- * @for Stage
- * @return {Number} number of layers
- */
-void StageApi::GetLayerCount( const v8::FunctionCallbackInfo<v8::Value>& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Stage stage = GetStage( isolate, args );
-
-  args.GetReturnValue().Set( v8::Integer::New( isolate, stage.GetLayerCount() ) );
-
-}
-/**
- * Retrieve the list of render-tasks.
- * @method getLayer
- * @for Stage
- * @param {Integer} depth
- * @return {Object} layer
- */
-void StageApi::GetLayer( const v8::FunctionCallbackInfo< v8::Value >& args  )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Stage stage = GetStage( isolate, args );
-
-  bool found( false );
-  unsigned int depth = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "Integer parameter missing" );
-    return;
-  }
-  Layer rootLayer = stage.GetLayer( depth );
-
-  v8::Handle < v8::Object > wrappedLayer = ActorWrapper::WrapActor( isolate, rootLayer );
-  args.GetReturnValue().Set( wrappedLayer );
-}
-/**
- * Returns the Stage's Root Layer.
- * @method getRootLayer
- * @for Stage
- * @return {Object} root layer
- */
-void StageApi::GetRootLayer( const v8::FunctionCallbackInfo<v8::Value>& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Stage stage = GetStage( isolate, args );
-
-  Layer rootLayer = stage.GetRootLayer();
-
-  v8::Handle < v8::Object > wrappedLayer = ActorWrapper::WrapActor( isolate, rootLayer );
-  args.GetReturnValue().Set( wrappedLayer );
-}
-
-/**
- * Set the background color of the stage
- * @method setBackgroundColor
- * @for Stage
- * @param {Object} Array of [Red,Green,Blue,Alpha], e.g. dali.COLOR_RED, or [1,0,0,1] (full red and alpha);
- * @example
- *     dali.stage.setBackgroundColor( dali.COLOR_RED );
- *
- *     dali.stage.setBackgroundColor( [0.5,0.5,0.5,1 ] ); // set the background to grey
- */
-void StageApi::SetBackgroundColor( const v8::FunctionCallbackInfo<v8::Value>& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Stage stage = GetStage( isolate, args );
-  bool found( false );
-
-  Vector4 backgroundColor = V8Utils::GetVector4Parameter( PARAMETER_0, found, isolate, args);
-  if (!found)
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "no parameter not found" );
-    return;
-  }
-  stage.SetBackgroundColor( backgroundColor );
-}
-/**
- * Get the background color of the stage
- * @method getBackgroundColor
- * @for Stage
- * @return {Object} object that contains the properties [red:,green:,blue,alpha:]
- */
-void StageApi::GetBackgroundColor( const v8::FunctionCallbackInfo<v8::Value>& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Stage stage = GetStage( isolate, args );
-
-  Vector4 color = stage.GetBackgroundColor();
-
-  v8::Local<v8::Object> colorObject = v8::Object::New( isolate );
-
-  colorObject->Set( v8::String::NewFromUtf8( isolate, "red"),   v8::Number::New( isolate,color.r));
-  colorObject->Set( v8::String::NewFromUtf8( isolate, "green"), v8::Number::New( isolate,color.g));
-  colorObject->Set( v8::String::NewFromUtf8( isolate, "blue"),  v8::Number::New( isolate,color.b));
-  colorObject->Set( v8::String::NewFromUtf8( isolate, "alpha"), v8::Number::New( isolate,color.a));
-
-  // set return value
-  args.GetReturnValue().Set( colorObject );
-
-
-}
-/**
- * Retrieve the DPI of the display device to which the stage is connected.
- * @method getDpi
- * @for Stage
- * @return {Object} object that contains the properties [x:,y:]
- */
-void StageApi::GetDpi( const v8::FunctionCallbackInfo<v8::Value>& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Stage stage = GetStage( isolate, args );
-
-  Vector2 dpi( stage.GetDpi() );
-
-  v8::Local<v8::Object> dpiObject = v8::Object::New( isolate );
-  dpiObject->Set( v8::String::NewFromUtf8( isolate, "x"),   v8::Number::New( isolate,dpi.x));
-  dpiObject->Set( v8::String::NewFromUtf8( isolate, "y"), v8::Number::New( isolate,dpi.y));
-
-
-  args.GetReturnValue().Set(  dpiObject );
-}
-
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/stage/stage-api.h b/plugins/dali-script-v8/src/stage/stage-api.h
deleted file mode 100644 (file)
index 5010209..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-#ifndef DALI_V8PLUGIN_STAGE_API_H
-#define DALI_V8PLUGIN_STAGE_API_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/common/stage.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace StageApi
-{
-
-  /**
-   * helper
-   */
-  Dali::Stage GetStage( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  /**
-   * StageApi API see stage.h for a description
-    */
-  void Add( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void Remove( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetSize( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetRenderTaskList( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetLayer( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetLayerCount( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetRootLayer( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void SetBackgroundColor( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetBackgroundColor( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetDpi( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-}; // namespace StageApi
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_STAGE_API_H
diff --git a/plugins/dali-script-v8/src/stage/stage-wrapper.cpp b/plugins/dali-script-v8/src/stage/stage-wrapper.cpp
deleted file mode 100644 (file)
index b9005c8..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "stage-wrapper.h"
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <dali-wrapper.h>
-#include <stage/stage-api.h>
-#include <shared/api-function.h>
-#include <shared/object-template-helper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace
-{
-
-/**
- * Contains a list of all functions that can be called on the stage
- */
-const ApiFunction StageFunctionTable[]=
-{
-    /**************************************
-    * Stage API (in order of stage.h)
-    * Any properties that have accessor functions are ignored to avoid duplication
-    **************************************/
-    { "Add",                  StageApi::Add       },
-    { "Remove",               StageApi::Remove    },
-    { "GetSize",              StageApi::GetSize   },
-    { "GetRenderTaskList",    StageApi::GetRenderTaskList   },
-    { "GetLayerCount",        StageApi::GetLayerCount   },
-    { "GetLayer",             StageApi::GetLayer        },
-    { "GetRootLayer",         StageApi::GetRootLayer   },
-    { "SetBackgroundColor",   StageApi::SetBackgroundColor   },
-    { "GetBackgroundColor",   StageApi::GetBackgroundColor   },
-    { "GetDpi",               StageApi::GetDpi       },
-};
-
-const unsigned int StageFunctionTableCount = sizeof(StageFunctionTable)/sizeof(StageFunctionTable[0]);
-} //un-named space
-
-
-StageWrapper::StageWrapper( const Dali::Stage& stage, GarbageCollectorInterface& gc )
-: BaseWrappedObject( BaseWrappedObject::STAGE , gc )
-{
-    mStage = stage;
-}
-
-v8::Handle<v8::Object> StageWrapper::WrapStage(v8::Isolate* isolate, const Dali::Stage& stage )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  objectTemplate = GetStageTemplate( isolate);
-
-  // create an instance of the template
-  v8::Local<v8::Object> localObject = objectTemplate->NewInstance();
-
-  // create the Stage wrapper
-  StageWrapper* pointer =  new StageWrapper( stage, Dali::V8Plugin::DaliWrapper::Get().GetDaliGarbageCollector() );
-
-  // assign the JavaScript object to the wrapper.
-  pointer->SetJavascriptObject( isolate, localObject );
-
-  return handleScope.Escape( localObject );
-}
-
-v8::Local<v8::ObjectTemplate> StageWrapper::GetStageTemplate( v8::Isolate* isolate)
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-  objectTemplate = MakeStageTemplate( isolate );
-  return handleScope.Escape( objectTemplate );
-}
-
-v8::Handle<v8::ObjectTemplate> StageWrapper::MakeStageTemplate( v8::Isolate* isolate )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-
-  v8::Local<v8::ObjectTemplate> objTemplate = v8::ObjectTemplate::New();
-
-  // add intercepts for Signals, we can't use HandleWrapper::AddIntercepts because Stage doesn't inherit
-  // from Handle ( just baseHandle)
-  ObjectTemplateHelper::AddSignalConnectAndDisconnect( isolate, objTemplate );
-
-  objTemplate->SetInternalFieldCount( BaseWrappedObject::FIELD_COUNT );
-
-  // add our function properties
-  ObjectTemplateHelper::InstallFunctions( isolate, objTemplate, StageFunctionTable, StageFunctionTableCount );
-
-  return handleScope.Escape( objTemplate );
-}
-
-Stage StageWrapper::GetStage()
-{
-  return mStage;
-}
-
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/stage/stage-wrapper.h b/plugins/dali-script-v8/src/stage/stage-wrapper.h
deleted file mode 100644 (file)
index 2187f36..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-#ifndef DALI_V8PLUGIN_STAGE_WRAPPER_H
-#define DALI_V8PLUGIN_STAGE_WRAPPER_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali/public-api/common/stage.h>
-
-// INTERNAL INCLUDES
-#include <shared/base-wrapped-object.h>
-#include <signals/signal-manager.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-
-/**
- * An Stage  wrapper.
- * Provides access to Stage specific functionality and V8 memory handling.
- */
-class DALI_INTERNAL StageWrapper : public BaseWrappedObject
-{
-
-public:
-
-  StageWrapper( const Stage& stage,
-                GarbageCollectorInterface& gc );
-
-  virtual ~StageWrapper() {};
-
-  /**
-   * Wraps a stage
-   */
-  static v8::Handle<v8::Object> WrapStage(v8::Isolate* isolate, const Dali::Stage& );
-
-  Stage GetStage();
-
-  virtual SignalManager* GetSignalManager() { return &mSignalManager;}
-
-
-private:
-
-  // Stage
-  Stage mStage;
-  SignalManager mSignalManager;
-
-  static v8::Handle<v8::ObjectTemplate> MakeStageTemplate( v8::Isolate* isolate );
-  static v8::Local<v8::ObjectTemplate> GetStageTemplate( v8::Isolate* isolate );
-
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_STAGE_WRAPPER_H
diff --git a/plugins/dali-script-v8/src/toolkit/builder/builder-api.cpp b/plugins/dali-script-v8/src/toolkit/builder/builder-api.cpp
deleted file mode 100644 (file)
index c5154ba..0000000
+++ /dev/null
@@ -1,447 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "builder-api.h"
-
-// EXTERNAL INCLUDES
-#include <dali/integration-api/debug.h>
-#include <string>
-#include <fstream>
-#include <streambuf>
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <object/property-value-wrapper.h>
-#include <object/handle-wrapper.h>
-#include <toolkit/builder/builder-wrapper.h>
-#include <actors/actor-wrapper.h>
-#include <image/image-wrapper.h>
-#include <animation/animation-wrapper.h>
-#include <rendering/shader-wrapper.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace // un named namespace
-{
-
-
-Dali::Toolkit::Builder GetBuilder( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::HandleScope handleScope( isolate );
-
-  v8::Local<v8::Object> object = args.This();
-  v8::Local<v8::External> field = v8::Local<v8::External>::Cast( object->GetInternalField( 0 ) );
-  void* ptr = field->Value();
-
-  BuilderWrapper* wrapper = static_cast<BuilderWrapper *>( ptr );
-  return wrapper->GetBuilder();
-}
-
-
-void GetMapAndString( v8::Isolate* isolate,
-                      std::string stringKey,
-                      std::string& stringValue,
-                      std::string mapKey,
-                      Dali::Property::Map& map,
-                      v8::Local<v8::Object> object)
-{
-    v8::Local<v8::Value> stringNameValue = object->Get( v8::String::NewFromUtf8( isolate, stringKey.c_str() ) );
-    if( !stringNameValue->IsString() )
-    {
-      std::string message = "missing field :"+stringKey;
-      DALI_SCRIPT_EXCEPTION( isolate,  message);
-      return;
-    }
-    stringValue = V8Utils::v8StringToStdString( stringNameValue );
-
-    // constants is optional
-
-    v8::Local<v8::Value> constants = object->Get( v8::String::NewFromUtf8( isolate, mapKey.c_str() ) );
-    if( constants->IsObject() )
-    {
-      map = V8Utils::GetPropertyMapFromObject( isolate, constants->ToObject() );
-    }
-}
-
-
-} // un-named namespace
-
-
-Dali::Toolkit::Builder BuilderApi::New( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  return Dali::Toolkit::Builder::New();
-}
-
-void BuilderApi::LoadFromString( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Dali::Toolkit::Builder builder = GetBuilder( isolate, args );
-
-  bool found(false);
-  std::string str = V8Utils::GetStringParameter( 0, found, isolate, args );
-  if( found )
-  {
-    builder.LoadFromString( str );
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate,  "missing string parameter");
-  }
-}
-
-void BuilderApi::LoadFromFile( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Dali::Toolkit::Builder builder = GetBuilder( isolate, args );
-
-  bool found(false);
-  std::string fileName= V8Utils::GetStringParameter( 0, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate,  "missing string parameter");
-    return;
-  }
-
-  std::ifstream fileStream( fileName.c_str() );
-  if( !fileStream.is_open() )
-  {
-    std::string message = "failed to open JSON file" + fileName;
-    DALI_SCRIPT_EXCEPTION( isolate,  message );
-    return;
-  }
-
-  //single-pass input iterator that reads successive characters from the input stream
-  std::string json = std::string( (std::istreambuf_iterator< char >( fileStream )), std::istreambuf_iterator< char >() );
-
-  builder.LoadFromString( json );
-
-}
-
-void BuilderApi::AddConstants( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Dali::Toolkit::Builder builder = GetBuilder( isolate, args );
-
-  bool found(false);
-  Dali::Property::Map map = V8Utils::GetPropertyMapParameter( 0,found, isolate, args );
-
-  if( found )
-  {
-    builder.AddConstants( map );
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate,  "no constants found" );
-  }
-
-}
-
-void BuilderApi::GetConstants( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Dali::Toolkit::Builder builder = GetBuilder( isolate, args );
-
-  const Dali::Property::Map& map  = builder.GetConstants();
-
-  v8::Local<v8::Object> object = v8::Object::New( isolate );
-
-  V8Utils::CreatePropertyMap( isolate, map, object );
-
-  args.GetReturnValue().Set( object );
-
-}
-void BuilderApi::CreateAnimation( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  // options =
-  // {
-  //    animation: ..
-  //    constants:
-  //    actor:
-  // }
-  //
-
-  Dali::Toolkit::Builder builder = GetBuilder( isolate, args );
-
-  if( !args[0]->IsObject() )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate,  "invalid property map, expecting { animation: x, constants: y, actor: z}" );
-    return;
-  }
-  v8::Local<v8::Object> object = args[0]->ToObject();
-
-  std::string animationName;
-  Dali::Property::Map map;
-
-  //  get the animation name and constant map
-
-  GetMapAndString( isolate,
-                   "animation",
-                   animationName,
-                   "constants",
-                   map,
-                   object );
-
-  // actor is optional
-  Actor actor;
-  v8::Local<v8::Value> actorValue = object->Get( v8::String::NewFromUtf8( isolate, "actor" ) );
-  if( actorValue->IsObject() )
-  {
-    HandleWrapper* handleWrapper = HandleWrapper::Unwrap( isolate, actorValue->ToObject() );
-    if( handleWrapper )
-    {
-      actor = Actor::DownCast( handleWrapper->mHandle );
-    }
-  }
-  Animation anim;
-  if( actor )
-  {
-    //  Animation CreateAnimation( const std::string& animationName, const Dali::Property::Map& map, Dali::Actor sourceActor );
-    anim = builder.CreateAnimation( animationName, map, actor );
-  }
-  else
-  {
-    anim = builder.CreateAnimation( animationName, map);
-  }
-  v8::Local<v8::Object> localObject = AnimationWrapper::WrapAnimation( isolate, anim );
-  args.GetReturnValue().Set( localObject );
-}
-
-void BuilderApi::Create( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  Dali::Toolkit::Builder builder = GetBuilder( isolate, args );
-
-  if( !args[0]->IsObject() )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate,  "invalid param");
-    return;
-  }
-  v8::Local<v8::Object> object = args[0]->ToObject();
-
-  // options =
-  // {
-  //    template: "myTemplate",
-  //    constants: {  IMAGE_DIR: "/usr/apps" ,  SHADER_DIR: "/usr/apps/.."}
-  // }
-  //
-  std::string templateName;
-  Dali::Property::Map map;
-
-  GetMapAndString( isolate,
-                   "template",
-                   templateName,
-                   "constants",
-                   map,
-                   object );
-
-  BaseHandle handle = builder.Create( templateName, map );
-  std::string typeName = handle.GetTypeName();
-  ActorWrapper::ActorType actorType = ActorWrapper::GetActorType( typeName );
-
-  if( actorType != ActorWrapper::UNKNOWN_ACTOR )
-  {
-    v8::Local<v8::Object> actorObject =  ActorWrapper::WrapActor(isolate, Actor::DownCast(handle),actorType);
-    args.GetReturnValue().Set( actorObject );
-    return;
-  }
-
-  if( typeName == "Animation")
-  {
-    v8::Local<v8::Object> animation = AnimationWrapper::WrapAnimation(isolate, Animation::DownCast(handle) );
-    args.GetReturnValue().Set( animation );
-  }
-
-  if( typeName == "Image")
-  {
-    v8::Local<v8::Object> image = ImageWrapper::WrapImage(isolate, Image::DownCast(handle) );
-    args.GetReturnValue().Set( image );
-  }
-  if( typeName == "Shader")
-  {
-    v8::Local<v8::Object> shader = ShaderWrapper::WrapShader(isolate, Shader::DownCast( handle ));
-    args.GetReturnValue().Set( shader );
-  }
-}
-void BuilderApi::ApplyStyle( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Dali::Toolkit::Builder builder = GetBuilder( isolate, args );
-
-  // bool ApplyStyle( const std::string& styleName, Handle& handle );
-
-  bool found(false);
-  std::string styleName = V8Utils::GetStringParameter( PARAMETER_0, found, isolate, args);
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate,  "missing style name" );
-    return;
-  }
-
-  Dali::Handle handle = V8Utils::GetHandleParameter( PARAMETER_1, found, isolate, args  );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate,  "missing handle parameter" );
-    return;
-  }
-
-  builder.ApplyStyle( styleName, handle );
-
-}
-
-void BuilderApi::ApplyFromJson( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Dali::Toolkit::Builder builder = GetBuilder( isolate, args );
-
-  bool found;
-
-  Dali::Handle handle = V8Utils::GetHandleParameter( PARAMETER_0, found, isolate, args  );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate,  "missing handle parameter" );
-    return;
-  }
-  std::string jsonString = V8Utils::GetStringParameter( PARAMETER_1, found, isolate, args);
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate,  "missing JSON string" );
-    return;
-  }
-  builder.ApplyFromJson( handle, jsonString );
-}
-
-void BuilderApi::AddActors( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Dali::Toolkit::Builder builder = GetBuilder( isolate, args );
-
-  //{
-  //  actor:actor
-  //  section: name
-  //}
-
-  Actor actor;
-
-  if( !args[0]->IsObject() )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate,  "invalid param");
-    return;
-  }
-  v8::Local<v8::Object> object = args[0]->ToObject();
-
-  v8::Local<v8::Value> actorValue = object->Get( v8::String::NewFromUtf8( isolate, "actor" ) );
-  if( actorValue->IsObject() )
-  {
-    HandleWrapper* handleWrapper = HandleWrapper::Unwrap( isolate, actorValue->ToObject() );
-    if( handleWrapper )
-    {
-      actor = Actor::DownCast( handleWrapper->mHandle );
-    }
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION( isolate,  "actor field not found in param");
-    return;
-  }
-
-  v8::Local<v8::Value> stringNameValue = object->Get( v8::String::NewFromUtf8( isolate, "section" ) );
-  if( !stringNameValue->IsString() )
-  {
-    std::string message = "missing field: section";
-    DALI_SCRIPT_EXCEPTION( isolate,  message);
-    return;
-  }
-  std::string sectionName = V8Utils::v8StringToStdString( stringNameValue );
-  if( !sectionName.empty() )
-  {
-    builder.AddActors( sectionName, actor );
-  }
-  else
-  {
-    builder.AddActors(  actor );
-  }
-
-}
-
-void BuilderApi::CreateRenderTask( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  Dali::Toolkit::Builder builder = GetBuilder( isolate, args );
-  bool found(false);
-  std::string str = V8Utils::GetStringParameter( 0, found, isolate, args );
-
-  if( found )
-  {
-    builder.CreateRenderTask( str );
-  }
-  else
-  {
-     DALI_SCRIPT_EXCEPTION( isolate, "render task name");
-  }
-}
-
-void BuilderApi::GetFrameBufferImage( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-   v8::HandleScope handleScope( isolate );
-   Dali::Toolkit::Builder builder = GetBuilder( isolate, args );
-
-   bool found(false);
-   std::string str = V8Utils::GetStringParameter( 0, found, isolate, args );
-   if( found )
-   {
-     // wrap the image
-     // @TODO Test this, may need to implement a Framebuffer image wrapper.?
-     v8::Local<v8::Object> localObject = ImageWrapper::WrapImage( isolate, builder.GetFrameBufferImage(str)  );
-     args.GetReturnValue().Set( localObject );
-   }
-   else
-   {
-     DALI_SCRIPT_EXCEPTION( isolate,  "frame buffer name");
-   }
-
-}
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/toolkit/builder/builder-api.h b/plugins/dali-script-v8/src/toolkit/builder/builder-api.h
deleted file mode 100644 (file)
index 5c5f7e8..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef DALI_V8PLUGIN_BUILDER_API_H
-#define DALI_V8PLUGIN_BUILDER_API_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali-toolkit/devel-api/builder/builder.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace BuilderApi
-{
-  /**
-   * Constructor
-   */
-  Dali::Toolkit::Builder New( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  /**
-   * Builder API see animation.h for a description
-   */
-  void SetDuration( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void LoadFromString( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void LoadFromFile( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void AddConstants( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetConstants( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void CreateAnimation( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  void Create( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void ApplyStyle( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void ApplyFromJson(const v8::FunctionCallbackInfo< v8::Value >& args);
-  void AddActors( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void CreateRenderTask( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetFrameBufferImage( const v8::FunctionCallbackInfo< v8::Value >& args );
-}; // namespace BuilderApi
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_BUILDER_API_H
diff --git a/plugins/dali-script-v8/src/toolkit/builder/builder-wrapper.cpp b/plugins/dali-script-v8/src/toolkit/builder/builder-wrapper.cpp
deleted file mode 100644 (file)
index d8c0f7f..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "builder-wrapper.h"
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <dali-wrapper.h>
-#include <toolkit/builder/builder-api.h>
-#include <shared/api-function.h>
-#include <shared/object-template-helper.h>
-
-namespace Dali
-{
-namespace V8Plugin
-{
-namespace
-{
-
-/**
- * Contains a list of all functions that can be called
- */
-const ApiFunction BuilderFunctionTable[]=
-{
-    /**************************************
-    * Builder API (in order of builder.h)
-    **************************************/
-
-    { "LoadFromString"          , BuilderApi::LoadFromString           },
-    { "LoadFromFile"            , BuilderApi::LoadFromFile             },
-    { "AddConstants"            , BuilderApi::AddConstants             },
-    { "GetConstants"            , BuilderApi::GetConstants             },
-    { "CreateAnimation"         , BuilderApi::CreateAnimation          },
-    { "Create"                  , BuilderApi::Create                   },
-    { "ApplyStyle"              , BuilderApi::ApplyStyle               },
-    { "ApplyFromJson"           , BuilderApi::ApplyFromJson            },
-    { "AddActors"               , BuilderApi::AddActors                },
-    { "CreateRenderTask"        , BuilderApi::CreateRenderTask         },
-    { "GetFrameBufferImage"     , BuilderApi::GetFrameBufferImage      }
-};
-
-const unsigned int BuilderFunctionTableCount = sizeof(BuilderFunctionTable)/sizeof(BuilderFunctionTable[0]);
-} //un-named space
-
-
-BuilderWrapper::BuilderWrapper( const Dali::Toolkit::Builder& builder, GarbageCollectorInterface& gc )
-: BaseWrappedObject( BaseWrappedObject::BUILDER , gc )
-{
-    mBuilder = builder;
-}
-
-BuilderWrapper::~BuilderWrapper()
-{
-
-}
-
-v8::Handle<v8::Object> BuilderWrapper::WrapBuilder(v8::Isolate* isolate, const Dali::Toolkit::Builder& builder )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  objectTemplate = GetBuilderTemplate( isolate);
-
-  // create an instance of the template
-  v8::Local<v8::Object> localObject = objectTemplate->NewInstance();
-
-  // create the Builder wrapper
-  BuilderWrapper* pointer =  new BuilderWrapper( builder, Dali::V8Plugin::DaliWrapper::Get().GetDaliGarbageCollector() );
-
-  // assign the JavaScript object to the wrapper.
-  pointer->SetJavascriptObject( isolate, localObject );
-
-  return handleScope.Escape( localObject );
-}
-
-v8::Local<v8::ObjectTemplate> BuilderWrapper::GetBuilderTemplate( v8::Isolate* isolate)
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  v8::Local<v8::ObjectTemplate> objTemplate = v8::ObjectTemplate::New();
-
-  objTemplate->SetInternalFieldCount( BaseWrappedObject::FIELD_COUNT );
-
-  // add our function properties
-  ObjectTemplateHelper::InstallFunctions( isolate, objTemplate, BuilderFunctionTable, BuilderFunctionTableCount );
-
-  return handleScope.Escape( objTemplate );
-
-}
-
-void BuilderWrapper::NewBuilder( const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate);
-
-  if( !args.IsConstructCall() )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "Builder constructor called without 'new'" );
-    return;
-  }
-
-  Dali::Toolkit::Builder builder = BuilderApi::New( args );
-  v8::Local<v8::Object> localObject = WrapBuilder( isolate, builder );
-  args.GetReturnValue().Set( localObject );
-}
-
-
-Dali::Toolkit::Builder BuilderWrapper::GetBuilder()
-{
-  return mBuilder;
-}
-
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/toolkit/builder/builder-wrapper.h b/plugins/dali-script-v8/src/toolkit/builder/builder-wrapper.h
deleted file mode 100644 (file)
index 5046b76..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-#ifndef DALI_V8PLUGIN_BUILDER_WRAPPER_H
-#define DALI_V8PLUGIN_BUILDER_WRAPPER_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali-toolkit/devel-api/builder/builder.h>
-
-// INTERNAL INCLUDES
-#include <shared/base-wrapped-object.h>
-
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-/**
- * Builder  wrapper.
- * Provides access to Builder specific functionality
- */
-class BuilderWrapper : public BaseWrappedObject
-{
-
-public:
-
-  BuilderWrapper( const Dali::Toolkit::Builder& builder,
-                GarbageCollectorInterface& gc );
-
-  virtual ~BuilderWrapper();
-
-  /**
-   * @brief Creates a new Builder wrapped inside a Javascript Object.
-   * @param[in] args v8 function call arguments interpreted
-   */
-  static void NewBuilder( const v8::FunctionCallbackInfo< v8::Value >& args);
-
-  /**
-   * Wraps a builder
-   */
-  static v8::Handle<v8::Object> WrapBuilder(v8::Isolate* isolate, const Dali::Toolkit::Builder& );
-
-
-  Dali::Toolkit::Builder GetBuilder();
-
-
-private:
-
-  static v8::Local<v8::ObjectTemplate> GetBuilderTemplate( v8::Isolate* isolate );
-  Dali::Toolkit::Builder mBuilder;
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_BUILDER_WRAPPER_H
diff --git a/plugins/dali-script-v8/src/toolkit/focus-manager/keyboard-focus-manager-api.cpp b/plugins/dali-script-v8/src/toolkit/focus-manager/keyboard-focus-manager-api.cpp
deleted file mode 100644 (file)
index b43e703..0000000
+++ /dev/null
@@ -1,305 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "keyboard-focus-manager-api.h"
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <dali/integration-api/debug.h>
-#include <dali-toolkit/dali-toolkit.h>
-#include <actors/actor-wrapper.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace // un named namespace
-{
-
-
-Toolkit::Control::KeyboardFocus::Direction  GetDirection( std::string name,  v8::Isolate* isolate )
-{
-  if( name == "left")
-  {
-    return Dali::Toolkit::Control::KeyboardFocus::LEFT;
-  }
-  if( name == "right")
-  {
-    return  Dali::Toolkit::Control::KeyboardFocus::RIGHT;
-  }
-  if( name == "up")
-  {
-    return  Dali::Toolkit::Control::KeyboardFocus::UP;
-  }
-  if( name == "down")
-  {
-    return  Dali::Toolkit::Control::KeyboardFocus::DOWN;
-  }
-
-  DALI_SCRIPT_EXCEPTION( isolate,  "direction not found ( wanted left,right,up,down)" );
-
-
-  return Dali::Toolkit::Control::KeyboardFocus::UP;
-
-}
-}; //un-named namespace
-
-/**
- * Move the keyboard focus to the given actor.
- * Only one actor can be focused at the same time.  The actor must
- * be in the stage already and be keyboard focusable.
- *
- * @method setCurrentFocusActor
- * @for KeyboardFocusManager
- * @param {Object} Actor
- */
-void KeyboardFocusManagerApi::SetCurrentFocusActor( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  bool found( false );
-  Actor actor = V8Utils::GetActorParameter( PARAMETER_0, found, isolate, args );
-  if( ! found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate,  "no actor found" );
-    return;
-  }
-
-  Toolkit::KeyboardFocusManager::Get().SetCurrentFocusActor( actor );
-}
-
-/**
- * Get the current focused actor.
- *
- * @method getCurrentFocusActor
- * @for KeyboardFocusManager
- * @return {Object} Actor
- */
-void KeyboardFocusManagerApi::GetCurrentFocusActor( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  v8::Handle < v8::Object > wrappedActor = ActorWrapper::WrapActor( isolate, Toolkit::KeyboardFocusManager::Get().GetCurrentFocusActor() );
-  args.GetReturnValue().Set( wrappedActor );
-}
-
-/**
- * Move the focus to the next focusable actor in the focus
- * chain in the given direction (according to the focus traversal
- * order).
- *
- * @method moveFocus
- * @for KeyboardFocusManager
- * @param {String} direction The direction of focus movement ( left, right, up, down)
- */
-void KeyboardFocusManagerApi::MoveFocus( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  bool found(false);
-  std::string direction = V8Utils::GetStringParameter( PARAMETER_0, found,isolate, args);
-
-  if( ! found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate,  "no direction found" );
-    return;
-  }
-
-  Toolkit::Control::KeyboardFocus::Direction dir = GetDirection( direction, isolate );
-
-  Toolkit::KeyboardFocusManager::Get().MoveFocus( dir );
-}
-/**
- * Clear the focus from the current focused actor if any, so
- * that no actor is focused in the focus chain.
- * It will emit focus changed signal without current focused actor
- * @method clearFocus
- * @for KeyboardFocusManager
- */
-void KeyboardFocusManagerApi::ClearFocus( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  Toolkit::KeyboardFocusManager::Get().ClearFocus();
-}
-
-/**
- * Set whether an actor is a focus group that can limit the
- * scope of focus movement to its child actors in the focus chain.
- *
- * @method setAsFocusGroup
- * @param {Boolean} enabled Whether the focus movement should be looped
- * @for KeyboardFocusManager
- */
-void KeyboardFocusManagerApi::SetAsFocusGroup( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  //  void SetAsFocusGroup(Actor actor, bool isFocusGroup);
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  bool found( false );
-
-  Actor actor = V8Utils::GetActorParameter( PARAMETER_0, found, isolate, args );
-
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate,  "missing actor param" );
-    return;
-  }
-
-  bool isFocusGroup = V8Utils::GetBooleanParameter( PARAMETER_1, found,isolate, args);
-  if( ! found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate,  "boolean param missing" );
-    return;
-  }
-
-  Toolkit::KeyboardFocusManager::Get().SetAsFocusGroup( actor,isFocusGroup );
-
-}
-/**
- * Check whether the actor is set as a focus group or not.
- * @method isFocusGroup
- * @param {Object} Actor  The actor to be checked.
- * @for KeyboardFocusManager
- */
-void KeyboardFocusManagerApi::IsFocusGroup( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  bool found( false );
-  Actor actor = V8Utils::GetActorParameter( PARAMETER_0, found, isolate, args );
-
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "Missing actor parameter");
-    return;
-  }
-  args.GetReturnValue().Set( v8::Boolean::New( isolate,   Toolkit::KeyboardFocusManager::Get().IsFocusGroup(actor) ) );
-}
-
-/**
- * Returns the closest ancestor of the given actor that is a focus group.
- * @method getFocusGroup
- * @param {Object} Actor  The actor to be checked.
- * @for KeyboardFocusManager
- */
-void KeyboardFocusManagerApi::GetFocusGroup( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  bool found( false );
-
-  Actor actor = V8Utils::GetActorParameter( PARAMETER_0, found, isolate, args );
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "Missing actor parameter");
-    return;
-  }
-  Actor retActor  = Toolkit::KeyboardFocusManager::Get().GetFocusGroup( actor );
-  v8::Handle < v8::Object > wrappedActor = ActorWrapper::WrapActor( isolate, retActor );
-  args.GetReturnValue().Set( wrappedActor );
-
-}
-
-/**
- * Get whether the focus movement should be looped within the same focus group.
- * @method setFocusGroupLoop
- * @param {Object} Actor  he actor to be set as a focus group.
- * @param {Boolean} isFocusGroup  Whether to set the actor as a focus group or not.
- * @for KeyboardFocusManager
- */
-void KeyboardFocusManagerApi::SetFocusGroupLoop( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  bool found(false);
-  bool enable = V8Utils::GetBooleanParameter( PARAMETER_0, found,isolate, args);
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate,  "boolean param missing" );
-    return;
-  }
-  Toolkit::KeyboardFocusManager::Get().SetFocusGroupLoop( enable );
-}
-
-/**
- * Get whether the focus movement should be looped within the same focus group.
- * @method getFocusGroupLoop
- * @return  {Boolean} Whether the focus movement should be looped
- * @for KeyboardFocusManager
- */
-void KeyboardFocusManagerApi::GetFocusGroupLoop( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  args.GetReturnValue().Set( v8::Boolean::New( isolate,   Toolkit::KeyboardFocusManager::Get().GetFocusGroupLoop()) );
-}
-
-/**
- * Set the focus indicator actor.
- *
- * This will replace the default focus indicator actor in
- * KeyboardFocusManager and will be added to the focused actor as a
- * highlight.
- * @method setFocusIndicatorActor
- * @param {Object} Actor The indicator actor to be added
- * @for KeyboardFocusManager
- */
-void KeyboardFocusManagerApi::SetFocusIndicatorActor( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-  bool found(false);
-
-  Actor actor = V8Utils::GetActorParameter( PARAMETER_0, found, isolate, args );
-
-  if( !found )
-  {
-    DALI_SCRIPT_EXCEPTION( isolate, "Missing actor parameter");
-    return;
-  }
-
-  // the actor may be an empty handle
-  Toolkit::KeyboardFocusManager::Get().SetFocusIndicatorActor( actor );
-}
-
-
-/**
- *  Get the focus indicator actor.
- *
- * @method getFocusIndicatorActor
- * @param {Object} Actor The indicator actor to be added
- * @for KeyboardFocusManager
- */
-void KeyboardFocusManagerApi::GetFocusIndicatorActor( const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::Isolate* isolate = args.GetIsolate();
-  v8::HandleScope handleScope( isolate );
-
-  v8::Handle < v8::Object > wrappedActor = ActorWrapper::WrapActor( isolate, Toolkit::KeyboardFocusManager::Get().GetFocusIndicatorActor() );
-  args.GetReturnValue().Set( wrappedActor );
-
-}
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/toolkit/focus-manager/keyboard-focus-manager-api.h b/plugins/dali-script-v8/src/toolkit/focus-manager/keyboard-focus-manager-api.h
deleted file mode 100644 (file)
index 57ba93c..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef DALI_V8PLUGIN_KEYBOARD_FOCUS_MANAGER_API_H
-#define DALI_V8PLUGIN_KEYBOARD_FOCUS_MANAGER_API_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali-toolkit/public-api/focus-manager/keyboard-focus-manager.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace KeyboardFocusManagerApi
-{
-  /**
-   * Constructor
-   */
-  Dali::Toolkit::KeyboardFocusManager New( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  /**
-   * KeyboardFocusManager API see keyboard-focus-manager.h for a description
-   */
-  void SetCurrentFocusActor( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetCurrentFocusActor( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void MoveFocus( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void ClearFocus( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  void SetAsFocusGroup( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void IsFocusGroup( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetFocusGroup( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  void SetFocusGroupLoop( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetFocusGroupLoop( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-  void SetFocusIndicatorActor( const v8::FunctionCallbackInfo< v8::Value >& args );
-  void GetFocusIndicatorActor( const v8::FunctionCallbackInfo< v8::Value >& args );
-
-}; // namespace KeyboardFocusManagerApi
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_KEYBOARD_FOCUS_MANAGER_API_H
diff --git a/plugins/dali-script-v8/src/toolkit/focus-manager/keyboard-focus-manager-wrapper.cpp b/plugins/dali-script-v8/src/toolkit/focus-manager/keyboard-focus-manager-wrapper.cpp
deleted file mode 100644 (file)
index 7d9695f..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// CLASS HEADER
-#include "keyboard-focus-manager-wrapper.h"
-
-// INTERNAL INCLUDES
-#include <v8-utils.h>
-#include <dali-wrapper.h>
-#include <shared/api-function.h>
-#include <shared/object-template-helper.h>
-#include <toolkit/focus-manager/keyboard-focus-manager-api.h>
-
-namespace Dali
-{
-namespace V8Plugin
-{
-namespace
-{
-
-/**
- * Contains a list of all functions that can be called
- */
-const ApiFunction KeyboardFocusManagerFunctionTable[]=
-{
-    /**************************************
-    * KeyboardFocusManager API (in order of keyboard-focus-manager.h)
-    **************************************/
-
-    { "SetCurrentFocusActor"    , KeyboardFocusManagerApi::SetCurrentFocusActor   },
-    { "GetCurrentFocusActor"    , KeyboardFocusManagerApi::GetCurrentFocusActor   },
-    { "MoveFocus"               , KeyboardFocusManagerApi::MoveFocus              },
-    { "ClearFocus"              , KeyboardFocusManagerApi::ClearFocus             },
-    { "SetAsFocusGroup"         , KeyboardFocusManagerApi::SetAsFocusGroup        },
-    { "IsFocusGroup"            , KeyboardFocusManagerApi::IsFocusGroup           },
-    { "GetFocusGroup"           , KeyboardFocusManagerApi::GetFocusGroup          },
-    { "SetFocusGroupLoop"       , KeyboardFocusManagerApi::SetFocusGroupLoop      },
-    { "GetFocusGroupLoop"       , KeyboardFocusManagerApi::GetFocusGroupLoop      },
-    { "SetFocusIndicatorActor"  , KeyboardFocusManagerApi::SetFocusIndicatorActor },
-    { "GetFocusIndicatorActor"  , KeyboardFocusManagerApi::GetFocusIndicatorActor },
-};
-
-const unsigned int KeyboardFocusManagerFunctionTableCount = sizeof(KeyboardFocusManagerFunctionTable)/sizeof(KeyboardFocusManagerFunctionTable[0]);
-} //un-named space
-
-
-KeyboardFocusManagerWrapper::KeyboardFocusManagerWrapper( const Dali::Toolkit::KeyboardFocusManager& keyboardFocusManager, GarbageCollectorInterface& gc )
-: BaseWrappedObject( BaseWrappedObject::KEYBOARD_FOCUS_MANAGER , gc )
-{
-    mKeyboardFocusManager = keyboardFocusManager;
-}
-
-KeyboardFocusManagerWrapper::~KeyboardFocusManagerWrapper()
-{
-
-}
-
-v8::Handle<v8::Object> KeyboardFocusManagerWrapper::WrapKeyboardFocusManager(v8::Isolate* isolate, const Dali::Toolkit::KeyboardFocusManager& keyboardFocusManager )
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  objectTemplate = GetKeyboardFocusManagerTemplate( isolate);
-
-  // create an instance of the template
-  v8::Local<v8::Object> localObject = objectTemplate->NewInstance();
-
-  // create the KeyboardFocusManager wrapper
-  KeyboardFocusManagerWrapper* pointer =  new KeyboardFocusManagerWrapper( keyboardFocusManager, Dali::V8Plugin::DaliWrapper::Get().GetDaliGarbageCollector() );
-
-  // assign the JavaScript object to the wrapper.
-  pointer->SetJavascriptObject( isolate, localObject );
-
-  return handleScope.Escape( localObject );
-}
-
-v8::Local<v8::ObjectTemplate> KeyboardFocusManagerWrapper::GetKeyboardFocusManagerTemplate( v8::Isolate* isolate)
-{
-  v8::EscapableHandleScope handleScope( isolate );
-  v8::Local<v8::ObjectTemplate> objectTemplate;
-
-  v8::Local<v8::ObjectTemplate> objTemplate = v8::ObjectTemplate::New();
-
-  objTemplate->SetInternalFieldCount( BaseWrappedObject::FIELD_COUNT );
-
-  // add intercepts for Signals, we can't use HandleWrapper::AddIntercepts because KeyboardFocusManager doesn't inherit
-  // from Handle ( just baseHandle)
-  ObjectTemplateHelper::AddSignalConnectAndDisconnect( isolate, objTemplate );
-
-  // add our function properties
-  ObjectTemplateHelper::InstallFunctions( isolate, objTemplate, KeyboardFocusManagerFunctionTable, KeyboardFocusManagerFunctionTableCount );
-
-  return handleScope.Escape( objTemplate );
-
-}
-
-
-std::string KeyboardFocusManagerWrapper::GetDirectionName(  Toolkit::Control::KeyboardFocus::Direction dir )
-{
-  switch( dir )
-  {
-    case Dali::Toolkit::Control::KeyboardFocus::LEFT:
-    {
-      return "left";
-      break;
-    }
-    case Dali::Toolkit::Control::KeyboardFocus::RIGHT:
-    {
-      return "right";
-      break;
-    }
-    case Dali::Toolkit::Control::KeyboardFocus::UP:
-    {
-      return "up";
-      break;
-    }
-    case Dali::Toolkit::Control::KeyboardFocus::DOWN:
-    {
-      return "down";
-      break;
-    }
-    case Dali::Toolkit::Control::KeyboardFocus::PAGE_UP:
-    {
-      return "pageUp";
-      break;
-    }
-    case Dali::Toolkit::Control::KeyboardFocus::PAGE_DOWN:
-    {
-      return "pageDown";
-      break;
-    }
-  }
-  return "unknown direction";
-}
-
-
-Dali::Toolkit::KeyboardFocusManager KeyboardFocusManagerWrapper::GetKeyboardFocusManager()
-{
-  return mKeyboardFocusManager;
-}
-
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/toolkit/focus-manager/keyboard-focus-manager-wrapper.h b/plugins/dali-script-v8/src/toolkit/focus-manager/keyboard-focus-manager-wrapper.h
deleted file mode 100644 (file)
index 679f802..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-#ifndef DALI_V8PLUGIN_KEYBOARD_FOCUS_MANAGER_WRAPPER_H
-#define DALI_V8PLUGIN_KEYBOARD_FOCUS_MANAGER_WRAPPER_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-
-// EXTERNAL INCLUDES
-#include <v8.h>
-#include <dali-toolkit/public-api/focus-manager/keyboard-focus-manager.h>
-
-// INTERNAL INCLUDES
-#include <shared/base-wrapped-object.h>
-#include <signals/signal-manager.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-/**
- * KeyboardFocusManager  wrapper.
- * Provides access to KeyboardFocusManager specific functionality
- */
-class KeyboardFocusManagerWrapper : public BaseWrappedObject
-{
-
-public:
-
-  KeyboardFocusManagerWrapper( const Dali::Toolkit::KeyboardFocusManager& keyboardFocusManager,
-                GarbageCollectorInterface& gc );
-
-  virtual ~KeyboardFocusManagerWrapper();
-
-/*
-  *
-   * @brief Creates a new KeyboardFocusManager wrapped inside a Javascript Object.
-   * @param[in] args v8 function call arguments interpreted
-
-  static void NewKeyboardFocusManager( const v8::FunctionCallbackInfo< v8::Value >& args);
-*/
-
-  /**
-   * Wraps a keyboardFocusManager
-   */
-  static v8::Handle<v8::Object> WrapKeyboardFocusManager(v8::Isolate* isolate, const Dali::Toolkit::KeyboardFocusManager& );
-
-
-  Dali::Toolkit::KeyboardFocusManager GetKeyboardFocusManager();
-
-
-  virtual SignalManager* GetSignalManager() { return &mSignalManager;}
-
-  static std::string GetDirectionName(  Toolkit::Control::KeyboardFocus::Direction dir );
-
-private:
-
-
-  static v8::Local<v8::ObjectTemplate> GetKeyboardFocusManagerTemplate( v8::Isolate* isolate );
-  Dali::Toolkit::KeyboardFocusManager mKeyboardFocusManager;
-  SignalManager mSignalManager;
-};
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-#endif // DALI_V8PLUGIN_KEYBOARD_FOCUS_MANAGER_WRAPPER_H
diff --git a/plugins/dali-script-v8/src/utils/v8-utils.cpp b/plugins/dali-script-v8/src/utils/v8-utils.cpp
deleted file mode 100644 (file)
index ce656c0..0000000
+++ /dev/null
@@ -1,1144 +0,0 @@
-/*
- * Copyright (c) 2015 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.
- *
- */
-
-// HEADER
-#include "v8-utils.h"
-
-// EXTERNAL INCLUDES
-#include <iostream>
-#include <fstream>
-#include <sstream>
-#include <dali/integration-api/debug.h>
-
-// INTERNAL INCLUDES
-#include <object/property-value-wrapper.h>
-#include <actors/actor-wrapper.h>
-#include <object/handle-wrapper.h>
-#include <image/image-wrapper.h>
-#include <render-tasks/render-task-wrapper.h>
-#include <object/property-value-wrapper.h>
-
-
-/**
- * Similar to DALI_LOG_ERROR except the PRETTY_FUNCTION
- * is removed because it makes no sense for scripting errors.
- */
-#define DALI_LOG_SCRIPT_ERROR(format, args...) Dali::Integration::Log::LogMessage(Dali::Integration::Log::DebugError, format, ## args)
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-namespace V8Utils
-{
-
-void Log(const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::HandleScope handleScope( args.GetIsolate());
-
-  bool first = true;
-  for (int i = 0; i < args.Length(); i++)
-  {
-    if (first)
-    {
-      first = false;
-    }
-    else
-    {
-      std::cout << " ";
-    }
-    v8::String::Utf8Value utf8_value( args[i] );
-    std::cout << *utf8_value << "\n";
-  }
-}
-
-void LogError(const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::HandleScope handleScope( args.GetIsolate());
-  std::string output;
-  bool first = true;
-  for (int i = 0; i < args.Length(); i++)
-  {
-    if (first)
-    {
-      first = false;
-    }
-    else
-    {
-      output +=" ";
-    }
-    v8::String::Utf8Value utf8_value( args[i] );
-    output += *utf8_value;
-    output +="\n";
-  }
-  DALI_LOG_ERROR_NOFN( "JavaScript: %s\n",output.c_str() );
-}
-
-void GetFileContents(const std::string &fileName, std::string& contents)
-{
-   std::ifstream t(fileName.c_str());
-   contents = std::string((std::istreambuf_iterator<char>(t)), std::istreambuf_iterator<char>());
-};
-
-void GetFileDirectory( const std::string& fileName, std::string& directory )
-{
-  directory = "";
-
-  // get the position of the last slash
-  size_t pos = fileName.find_last_of("\\/");
-
-  // if it doesn't exist, return nothing
-  if( (std::string::npos == pos ) )
-  {
-    return;
-  }
-  else
-  {
-    // check an edge case where the string ends in a forward slash "mydir/"
-    if( (pos+1) < fileName.length() )
-    {
-      directory = fileName.substr(0, pos+1);
-      return;
-    }
-  }
-}
-
-void GetFileName( const std::string& fullPathName, std::string& fileName )
-{
-  // look for last slash
-  size_t pos = fullPathName.find_last_of("\\/");
-
-  if( std::string::npos == pos )
-  {
-    fileName = fullPathName;
-  }
-  else
-  {
-    fileName = fullPathName.substr(pos,fileName.length());
-  }
-}
-
-void GetModuleName( const std::string& fileName, std::string& moduleName )
-{
-  std::string fileNameNoPath;
-   GetFileName( fileName , fileNameNoPath );
-  size_t pos = fileNameNoPath.find_last_of(".");
-  if( std::string::npos == pos )
-  {
-    moduleName = fileNameNoPath;
-  }
-  else
-  {
-    moduleName = fileName.substr(0, pos );
-  }
-}
-
-bool IsPropertyMapIdentical(Property::Map map1, Property::Map map2)
-{
-  bool dirty = false;
-
-  // Compare number of properties
-  if ( map1.Count() != map2.Count() )
-  {
-    dirty = true;
-  }
-  else
-  {
-    for ( unsigned int i = 0, count = map1.Count(); i < count; ++i )
-    {
-      // Compare the key first
-      if(map1.GetKey(i) != map2.GetKey(i))
-      {
-        dirty = true;
-      }
-      else
-      {
-        Property::Value& value = map1.GetValue(i);
-        Property::Value& newValue = map2.GetValue(i);
-
-        // Compare the value type
-        if(value.GetType() != newValue.GetType())
-        {
-          dirty = true;
-        }
-        else
-        {
-          // Compare the value
-          switch( value.GetType() )
-          {
-            case Property::BOOLEAN:
-            {
-              dirty = ( value.Get<bool>() != newValue.Get<bool>() );
-              break;
-            }
-            case Property::FLOAT:
-            {
-              dirty = ( value.Get<float>() != newValue.Get<float>() );
-              break;
-            }
-            case Property::INTEGER:
-            {
-              dirty = ( value.Get<int>() != newValue.Get<int>() );
-              break;
-            }
-            case Property::RECTANGLE:
-            {
-              dirty = ( value.Get< Rect<int> >() != newValue.Get< Rect<int> >() );
-              break;
-            }
-            case Property::VECTOR2:
-            {
-              dirty = ( value.Get<Vector2>() != newValue.Get<Vector2>() );
-              break;
-            }
-            case Property::VECTOR3:
-            {
-              dirty = ( value.Get<Vector3>() != newValue.Get<Vector3>() );
-              break;
-            }
-            case Property::VECTOR4:
-            {
-              dirty = ( value.Get<Vector4>() != newValue.Get<Vector4>() );
-              break;
-            }
-            case Property::MATRIX3:
-            {
-              dirty = ( value.Get<Matrix3>() != newValue.Get<Matrix3>() );
-              break;
-            }
-            case Property::MATRIX:
-            {
-              dirty = ( value.Get<Matrix>() != newValue.Get<Matrix>() );
-              break;
-            }
-            case Property::ROTATION:
-            {
-              dirty = ( value.Get<Quaternion>() != newValue.Get<Quaternion>() );
-              break;
-            }
-            case Property::STRING:
-            {
-              dirty = ( value.Get<std::string>() != newValue.Get<std::string>() );
-              break;
-            }
-            case Property::MAP:
-            {
-              dirty = ( !IsPropertyMapIdentical( value.Get<Property::Map>(), newValue.Get<Property::Map>() ) );
-              break;
-            }
-            default:
-            {
-              break;
-            }
-          }
-        }
-      }
-
-      if(dirty)
-      {
-        // Different already, no need any further comparison
-        break;
-      }
-    }
-  }
-
-  return !dirty;
-}
-
-void ReportException(  v8::Isolate* isolate, v8::TryCatch* tryCatch)
-{
-  v8::HandleScope handleScope( isolate );
-
-  v8::String::Utf8Value exception(tryCatch->Exception());
-  v8::Handle<v8::Message> message   = tryCatch->Message();
-
-  if (message.IsEmpty())
-  {
-    // V8 didn't provide any extra information about this error; just
-    // print the exception.
-    DALI_LOG_SCRIPT_ERROR("%s\n", *exception);
-  }
-  else
-  {
-
-    // Print (filename):(line number): (message).
-    v8::String::Utf8Value filename(message->GetScriptResourceName());
-
-    DALI_LOG_SCRIPT_ERROR("\n\n====== Error found in JavaScript: ========= \n");
-
-
-    int linenum = message->GetLineNumber();
-    DALI_LOG_SCRIPT_ERROR("File: %s\n", *filename, linenum, *exception);
-
-     DALI_LOG_SCRIPT_ERROR("Error: :%s\n", *exception );
-     DALI_LOG_SCRIPT_ERROR("Line: :%i\n",  linenum );
-
-    // Print line of source code.
-    v8::String::Utf8Value sourceline(message->GetSourceLine());
-
-    DALI_LOG_SCRIPT_ERROR("Source: %s\n", *sourceline);
-
-    // Print wavy underline (GetUnderline is deprecated).
-
-    std::stringstream msg;
-
-    int start = message->GetStartColumn();
-    for (int i = 0; i < start; i++)
-    {
-      msg << " ";
-    }
-    int end = message->GetEndColumn();
-    for (int i = start; i < end; i++)
-    {
-      msg << "↑";
-    }
-
-    DALI_LOG_SCRIPT_ERROR("        %s\n", msg.str().c_str());
-
-    v8::String::Utf8Value stack_trace(tryCatch->StackTrace());
-    if (stack_trace.length() > 0)
-    {
-      DALI_LOG_SCRIPT_ERROR("%s\n", *stack_trace);
-    }
-    DALI_LOG_SCRIPT_ERROR("\n=========================================== \n");
-
-  }
-}
-
-std::string GetJavaScriptFunctionName( const char* functionName  )
-{
-  // @todo if we are 100% decided on lower case, go through
-  // every api and manually change the function names to lower case first character
-  std::string name( functionName );
-  name[0]=tolower( functionName[0] );
-  return name;
-}
-
-void Version(const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::HandleScope handleScope( args.GetIsolate());
-
-  v8::Handle<v8::String>  ver = v8::String::NewFromUtf8(args.GetIsolate(), v8::V8::GetVersion());
-
-  args.GetReturnValue().Set(ver);
-}
-
-
-std::string v8StringToStdString( const v8::Handle<v8::Value>& value )
-{
-  v8::String::Utf8Value utf8(value);
-  return std::string(*utf8);
-}
-
-
-std::string PropertyNameToJavaScriptName(const std::string& hyphenatedName)
-{
-  std::string ret;
-
-  ret.reserve(hyphenatedName.size());
-
-  bool capitlizeNext = false ;
-  for(unsigned int i = 0; i < hyphenatedName.size(); ++i)
-  {
-    char c = hyphenatedName[i];
-    if(c == '-')
-    {
-      capitlizeNext = true;
-    }
-    else
-    {
-      if(capitlizeNext)
-      {
-        ret.push_back(std::toupper(c));
-        capitlizeNext = false;
-      }
-      else
-      {
-        ret.push_back(c);
-      }
-    }
-  }
-
-  return ret;
-}
-
-void ScriptError( const char* function, v8::Isolate* isolate, std::string errorString )
-{
-  v8::EscapableHandleScope scope( isolate);
-  std::string errorMsg = std::string(function) + std::string("(), ") + errorString;
-
-  // log out to DALI_LOG_ERROR first, so we know something has gone wrong
-  DALI_LOG_ERROR("%s \n", errorMsg.c_str() );
-
-  // throw a V8 exception, DALi will keep running but we will get a print out
-  // of where the error occured in the JavaScript source
-  isolate->ThrowException( v8::String::NewFromUtf8( isolate, errorMsg.c_str()) );
-}
-
-void ScriptWarning( const char* function, std::string warningString )
-{
-  std::string warningMsg = std::string(function) + std::string("(), ") + warningString;
-  DALI_LOG_WARNING("%s \n", warningMsg.c_str() );
-}
-
-bool IsBooleanPrimitiveOrObject( const v8::Local<v8::Value>& value )
-{
-  return ( value->IsBoolean() || value->IsBooleanObject());
-}
-
-bool GetBooleanValue( v8::Isolate* isolate, const v8::Local<v8::Value>& value )
-{
-  v8::EscapableHandleScope scope( isolate); // may not be required.
-
-  if( value->IsBoolean() )
-  {
-    return value->ToBoolean()->Value();
-  }
-  else if (value->IsBooleanObject() )
-  {
-    const v8::Local<v8::BooleanObject> object = v8::Local<v8::BooleanObject>::Cast(value);
-    return object->BooleanValue();
-  }
-  DALI_SCRIPT_EXCEPTION(isolate, "no bool found");
-  return false;
-}
-
-bool IsNumberPrimitiveOrObject( const v8::Local<v8::Value>& value )
-{
-  return ( value->IsNumber() || value->IsNumberObject());
-}
-
-float GetNumberValue( v8::Isolate* isolate, const v8::Local<v8::Value>& value )
-{
-  v8::EscapableHandleScope scope( isolate); // may not be required.
-
-  if( value->IsNumber() )
-  {
-    return value->ToNumber()->Value();
-  }
-  else if (value->IsNumberObject() )
-  {
-    const v8::Local<v8::NumberObject> object = v8::Local<v8::NumberObject>::Cast(value);
-    return object->ValueOf();
-  }
-
-  DALI_SCRIPT_EXCEPTION(isolate, "no number found?");
-  return 0.f;
-}
-
-bool IsStringPrimitiveOrObject( const v8::Local<v8::Value>& value )
-{
-  return ( value->IsString() || value->IsStringObject());
-}
-
-std::string GetStringValue( v8::Isolate* isolate, const v8::Local<v8::Value>& value )
-{
-  v8::EscapableHandleScope scope( isolate); // may not be required.
-
-  if( value->IsString() )
-  {
-    return V8Utils::v8StringToStdString(value);
-  }
-  else if (value->IsStringObject() )
-  {
-    const v8::Local<v8::StringObject> object = v8::Local<v8::StringObject>::Cast(value);
-    return V8Utils::v8StringToStdString( object->ValueOf() );
-  }
-
-  DALI_SCRIPT_EXCEPTION(isolate, "no string found?");
-  return "";
-}
-
-
-Property::Value GetPropertyValueFromObject( bool& found, v8::Isolate* isolate, const   v8::Local<v8::Value >& value  )
-{
-  v8::HandleScope handleScope( isolate);
-
-  Property::Value  daliPropertyValue;// creates a property with Property::NONE
-
-  found = false;
-
-  if( value->IsObject() )
-  {
-    v8::Local<v8::Object> object = v8::Handle<v8::Object>::Cast( value );
-
-    if( BaseWrappedObject::IsWrappedTypeAPropertyValue( object ) )
-    {
-      found = true;
-      PropertyValueWrapper* propertyWrapper = PropertyValueWrapper::Unwrap( isolate, object );
-      return propertyWrapper->GetValue();
-    }
-    else if( value->IsArray() )
-    {
-      found = true;
-      return PropertyValueWrapper::VectorOrMatrixFromV8Array( isolate, object);//todo check for V8 array / map?
-    }
-  }
-  else if( value->IsBoolean() )
-  {
-    found = true;
-    v8::Local<v8::Boolean> v = value->ToBoolean();
-    return Dali::Property::Value(v->Value());
-  }
-  else if( value->IsNumber() )
-  {
-    found = true;
-    v8::Local<v8::Number> v = value->ToNumber();
-    return Dali::Property::Value(static_cast<float>(v->Value()));
-  }
-  else if( value->IsInt32() || value->IsUint32() )
-  {
-    found = true;
-    v8::Local<v8::Int32> v = value->ToInt32();
-    return Dali::Property::Value(static_cast<int>(v->Value()));
-  }
-  else if( value->IsString() )
-  {
-    found = true;
-    std::string valueString = V8Utils::v8StringToStdString( value );
-    return Dali::Property::Value(valueString);
-  }
-
-  return daliPropertyValue;
-
-}
-
-Property::Map GetPropertyMapFromObject( v8::Isolate* isolate, const v8::Local<v8::Object>& object)
-{
-  v8::Local<v8::Array> properties = object->GetPropertyNames();
-  Property::Map propertyMap;    // empty map
-
-  for(  unsigned int i = 0; i <  properties->Length(); ++i)
-  {
-    // Get the key
-    v8::Local<v8::Value> key = properties->Get( i );
-    std::string keyString = v8StringToStdString( key );
-
-    // Get the value
-    v8::Local<v8::Value> value = object->Get( key );
-
-    if( value->IsBoolean() )
-    {
-      v8::Local<v8::Boolean> v = value->ToBoolean();
-      propertyMap[ keyString ] = v->Value();
-    }
-    else if( value->IsNumber() )
-    {
-      v8::Local<v8::Number> v = value->ToNumber();
-      propertyMap[ keyString ] = static_cast<float>(v->Value());
-    }
-    else if( value->IsInt32() || value->IsUint32() )
-    {
-      v8::Local<v8::Int32> v = value->ToInt32();
-      propertyMap[ keyString ] = static_cast<int>(v->Value());
-    }
-    else if( value->IsString() )
-    {
-      std::string valueString = V8Utils::v8StringToStdString( value );
-      propertyMap[ keyString ] = valueString.c_str();
-    }
-    else if( value->IsArray() )
-    {
-      propertyMap[ keyString ] = PropertyValueWrapper::VectorOrMatrixFromV8Array( isolate, value);
-    }
-    else if( value->IsObject() )
-    {
-      Dali::Property::Map map = V8Utils::GetPropertyMapFromObject(isolate, value->ToObject());
-      if( !map.Empty() )
-      {
-        propertyMap[ keyString ] = Dali::Property::Value( map );
-      }
-    }
-  }
-
-  return propertyMap;
-}
-
-Actor GetActorFromObject( v8::Isolate* isolate, bool& found, v8::Local<v8::Object>& object)
-{
-  v8::HandleScope handleScope( isolate);
-  found = false;
-
-  if( BaseWrappedObject::IsWrappedType ( isolate, object, BaseWrappedObject::ACTOR ))
-  {
-    HandleWrapper* handleWrapper = HandleWrapper::Unwrap( isolate, object );
-    return Actor::DownCast( handleWrapper->mHandle );
-  }
-  return Actor();
-}
-
-
-int GetIntegerParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args, int defaultValue  )
-{
-  found = false;
-  unsigned int length = args.Length();
-  if( index >= length )
-  {
-    return defaultValue;
-  }
-  if( args[ index ]->IsInt32() )
-  {
-    found = true;
-    return args[ index ]->Int32Value();
-  }
-  else
-  {
-    return defaultValue;
-  }
-}
-
-float GetFloatParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args, float defaultValue  )
-{
-  found = false;
-  unsigned int length = args.Length();
-  if( index >= length )
-  {
-    return defaultValue;
-  }
-  if( args[ index ]->IsNumber() )
-  {
-    found = true;
-    return args[ index ]->NumberValue();
-  }
-  else
-  {
-    return defaultValue;
-  }
-}
-
-std::string GetStringParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  found = false;
-  unsigned int length = args.Length();
-
-  if( index >= length )
-  {
-    return std::string();
-  }
-  if( args[ index ]->IsString() )
-  {
-    found = true;
-    return v8StringToStdString( args[ index ]);
-  }
-  else
-  {
-    return std::string();
-  }
-}
-
-bool GetBooleanParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::HandleScope handleScope( isolate);
-
-  found = false;
-  unsigned int length = args.Length();
-  if( index >= length )
-  {
-    return false;
-  }
-  if( args[ index ]->IsBoolean() )
-  {
-    found = true;
-    v8::Local<v8::Boolean> v = args[ index ]->ToBoolean();
-    return v->Value();
-  }
-  else
-  {
-    return false;
-  }
-}
-
-void* GetArrayBufferViewParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args  )
-{
-  found = false;
-  unsigned int length = args.Length();
-  if( index < length && args[index]->IsArrayBufferView() )
-  {
-    found = true;
-    v8::ArrayBufferView* bufferView = v8::ArrayBufferView::Cast(*(args[index]));
-    v8::Handle<v8::ArrayBuffer> buffer = bufferView->Buffer();
-    v8::ArrayBuffer::Contents contents = buffer->Externalize();
-    return contents.Data();
-  }
-  else
-  {
-    return NULL;
-  }
-}
-
-Handle GetHandleParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::HandleScope handleScope( isolate);
-
-  found = false;
-  unsigned int length = args.Length();
-  if( index >= length )
-  {
-    return Handle();
-  }
-
-  if( args[ index ]->IsObject() )
-  {
-    v8::Local<v8::Object> object = args[ index ]->ToObject();
-    v8::Local<v8::External> field = v8::Local<v8::External>::Cast( object->GetInternalField(0) );
-    void* ptr = field->Value();
-    if( ptr )
-    {
-        found = true;
-        HandleWrapper* wrapper = static_cast< HandleWrapper *>(ptr);
-        return wrapper->GetHandle();
-    }
-  }
-  return Handle();
-}
-
-Vector2 GetVector2Parameter( unsigned int index,  bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::HandleScope handleScope( isolate);
-  unsigned int length =  args.Length();
-  Vector2 ret;
-  found = false;
-
-  if( index < length )
-  {
-    if( args[ index ]->IsObject() )
-    {
-      Dali::Property::Value value;
-      value = PropertyValueWrapper::ExtractPropertyValue( isolate, args[index], Dali::Property::VECTOR2 );
-      if( value.GetType() == Dali::Property::VECTOR2)
-      {
-        found = true;
-        value.Get(ret);
-      }
-      else
-      {
-        DALI_SCRIPT_EXCEPTION(isolate, "Missing Vector2 parameter");
-      }
-    }
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION(isolate, "Missing Vector2 parameter");
-  }
-
-  return ret;
-}
-
-Vector2 GetVector2ParameterFrom2Float( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  Vector2 ret(0.0f,0.0f);
-  bool bFound(false);
-  unsigned int argCount( args.Length() );
-
-  if( index+2 >= argCount )
-  {
-    DALI_SCRIPT_EXCEPTION(isolate, "Missing parameter");
-  }
-
-  found = true;
-  ret.x = V8Utils::GetFloatParameter( index, bFound, isolate, args, 0.0f );
-  found = found && bFound;
-  ret.y = V8Utils::GetFloatParameter( index+1, bFound, isolate, args, 0.0f );
-  found = found && bFound;
-
-  return ret;
-}
-
-Vector3 GetVector3Parameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::HandleScope handleScope( isolate);
-  unsigned int argCount( args.Length() );
-  Vector3 ret;
-  found = false;
-  if( index < argCount )
-  {
-    if( args[ index ]->IsObject() )
-    {
-      Dali::Property::Value value;
-      value = PropertyValueWrapper::ExtractPropertyValue( isolate, args[index], Dali::Property::VECTOR3 );
-      if( value.GetType() == Dali::Property::VECTOR3)
-      {
-        found = true;
-        value.Get(ret);
-      }
-      else
-      {
-        DALI_SCRIPT_EXCEPTION(isolate, "Missing Vector3 parameter");
-      }
-    }
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION(isolate, "Missing Vector3 parameter");
-
-  }
-
-  return ret;
-}
-
-Vector4 GetVector4Parameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args)
-{
-  v8::HandleScope handleScope( isolate);
-  unsigned int argCount( args.Length() );
-  Vector4 ret;
-  found = false;
-
-  if( index < argCount )
-  {
-    if( args[ index ]->IsObject() )
-    {
-      Dali::Property::Value value;
-      value = PropertyValueWrapper::ExtractPropertyValue( isolate, args[index], Dali::Property::VECTOR4 );
-      if( value.GetType() == Dali::Property::VECTOR4)
-      {
-        found = true;
-        value.Get(ret);
-      }
-      else
-      {
-        DALI_SCRIPT_EXCEPTION(isolate, "Missing Vector4 parameter");
-      }
-    }
-  }
-  else
-  {
-    DALI_SCRIPT_EXCEPTION(isolate, "Missing Vector4 parameter");
-  }
-
-  return ret;
-}
-
-
-Rect<int> GetRectIntParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::HandleScope handleScope( isolate);
-
-   found = false;
-   int length = args.Length() - index;
-
-   // if it's an array read the 2 numbers into a vector2
-   if( length == 4 )
-   {
-     if( args[ 0 + index ]->IsInt32() &&
-         args[ 1 + index ]->IsInt32() &&
-         args[ 2 + index ]->IsInt32() &&
-         args[ 3 + index ]->IsInt32() )
-     {
-       found = true;
-       Rect<int> rect( args[ 0 + index ]->Int32Value(),
-                       args[ 1 + index ]->Int32Value(),
-                       args[ 2 + index ]->Int32Value(),
-                       args[ 3 + index ]->Int32Value() );
-       return rect;
-     }
-   }
-   // this will extract a Vector4, if it is a Vector4 or a Javascript array object
-   if( args[ index ]->IsObject() )
-   {
-     Dali::Property::Value value;
-     value = PropertyValueWrapper::ExtractPropertyValue( isolate, args[index], Dali::Property::RECTANGLE );
-     if( value.GetType() == Dali::Property::RECTANGLE)
-     {
-       found = true;
-       Rect<int> rect;
-       value.Get(rect);
-       return rect;
-     }
-
-     // @todo support vector4 as well?
-   }
-   return Rect<int>();
-}
-
-Actor GetActorParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  BaseWrappedObject* wrapper = GetWrappedDaliObjectParameter( index, BaseWrappedObject::ACTOR, isolate, args);
-  ActorWrapper* actorWrapper = static_cast< ActorWrapper*>( wrapper );
-  if( actorWrapper )
-  {
-    found = true;
-    return actorWrapper->GetActor();
-  }
-  else
-  {
-    return Actor();
-  }
-}
-
-Layer GetLayerParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  Actor actor = GetActorParameter( index, found, isolate, args );
-  return Layer::DownCast( actor );
-}
-
-Image GetImageParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  BaseWrappedObject* wrappedObject = V8Utils::GetWrappedDaliObjectParameter( index, BaseWrappedObject::IMAGE, isolate, args );
-  if( wrappedObject )
-  {
-    found = true;
-    ImageWrapper* wrapper = static_cast< ImageWrapper *>(wrappedObject);
-    return wrapper->GetImage();
-  }
-  else
-  {
-    return Image();
-  }
-
-}
-
-RenderTask GetRenderTaskParameter( unsigned int paramIndex, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  found = false;
-  BaseWrappedObject* wrappedObject = V8Utils::GetWrappedDaliObjectParameter( paramIndex, BaseWrappedObject::RENDER_TASK, isolate, args );
-  if( wrappedObject )
-  {
-    found = true;
-    RenderTaskWrapper* wrapper = static_cast< RenderTaskWrapper *>(wrappedObject);
-    return wrapper->GetRenderTask();
-  }
-  else
-  {
-    return RenderTask(); // empty handle
-  }
-}
-
-BaseWrappedObject* GetWrappedDaliObjectParameter( unsigned int index,  BaseWrappedObject::Type type,  v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::HandleScope handleScope( isolate);
-  unsigned int length = args.Length();
-
-  if( index >= length )
-  {
-    return NULL;
-  }
-
-  if( !args[ index ]->IsObject() )
-  {
-    return NULL;
-  }
-
-  v8::Local<v8::Object> object = args[ index ]->ToObject();
-
-  if( BaseWrappedObject::IsWrappedType ( isolate, object, type ))
-  {
-    v8::Local<v8::External> field = v8::Local<v8::External>::Cast( object->GetInternalField(0) );
-    void* ptr = field->Value();
-    BaseWrappedObject* wrapper = static_cast< BaseWrappedObject *>(ptr);
-    return wrapper;
-  }
-  return NULL;
-}
-
-
-Property::Value GetPropertyValueParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::HandleScope handleScope( isolate);
-
-  Property::Value  daliPropertyValue;// creates a property with Property::INVALID
-
-  found = false;
-  unsigned int length = args.Length();
-
-  if( index >= length )
-  {
-    return daliPropertyValue;
-  }
-  v8::Local<v8::Value > value = args[ index ];
-
-  return GetPropertyValueFromObject( found, isolate, value);
-}
-
-Property::Map GetPropertyMapParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args )
-{
-  v8::HandleScope handleScope( isolate);
-
-  Property::Map propertyMap;    // empty map
-
-  found = false;
-  unsigned int length = args.Length();
-
-  if( index >= length )
-  {
-    return propertyMap;
-  }
-
-  if( !args[ index ]->IsObject() )
-  {
-    return propertyMap;
-  }
-  found = true;
-
-  // go through each key value pair
-  v8::Local<v8::Object> obj = args[ index ]->ToObject();
-
-  return GetPropertyMapFromObject( isolate, obj );
-
-}
-
-void CreatePropertyMap( v8::Isolate* isolate, const Property::Map& map, v8::Local<v8::Object>& object )
-{
-  v8::HandleScope handleScope( isolate);
-
-  // we're converting a dali property map in to a JavaScript property map
-  if( map.Count() == 0 )
-  {
-    return;
-  }
-
-  for( unsigned int index = 0; index < map.Count(); ++index )
-  {
-    const std::string& key = map.GetKey( index );
-    Property::Value& value = map.GetValue( index );
-    v8::Local<v8::Value> v8Value;
-
-    switch( value.GetType() )
-    {
-      case Dali::Property::FLOAT:
-      {
-        v8Value = v8::Number::New( isolate, value.Get<float>()  );
-        break;
-      }
-      case Dali::Property::BOOLEAN:
-      {
-        v8Value = v8::Boolean::New(  isolate, value.Get<bool>());
-        break;
-      }
-      case Dali::Property::INTEGER:
-      {
-        v8Value = v8::Integer::New( isolate, value.Get<int>());
-        break;
-      }
-      case Dali::Property::STRING:
-      {
-        std::string string = value.Get< std::string >();
-        v8Value = v8::String::NewFromUtf8( isolate,  string.c_str());
-        break;
-      }
-      case Dali::Property::VECTOR2:
-      {
-        // create a vector2
-        Vector2 vec = value.Get<Vector2>();
-        v8::Local<v8::Array> array= v8::Array::New( isolate, 2 );
-        array->Set( 0 , v8::Number::New(isolate, vec.x));
-        array->Set( 1 , v8::Number::New(isolate, vec.y));
-        v8Value = array;
-        break;
-      }
-      case Dali::Property::VECTOR3:
-      {
-        // create a vector 3
-        Vector3 vec = value.Get<Vector3>();
-        v8::Local<v8::Array> array= v8::Array::New( isolate, 3 );
-        array->Set( 0 , v8::Number::New(isolate, vec.x));
-        array->Set( 1 , v8::Number::New(isolate, vec.y));
-        array->Set( 2 , v8::Number::New(isolate, vec.z));
-        v8Value = array;
-        break;
-      }
-      case Dali::Property::VECTOR4:
-      {
-        // create a vector 4
-        Vector4 vec = value.Get<Vector4>();
-        v8::Local<v8::Array> array= v8::Array::New( isolate, 4 );
-        array->Set( 0 , v8::Number::New(isolate, vec.x));
-        array->Set( 1 , v8::Number::New(isolate, vec.y));
-        array->Set( 2 , v8::Number::New(isolate, vec.z));
-        array->Set( 3 , v8::Number::New(isolate, vec.w));
-        v8Value = array;
-        break;
-      }
-
-      default:
-      {
-        DALI_SCRIPT_EXCEPTION( isolate, "Primitive mismatch \n");
-        return;
-      }
-    }
-    object->Set( v8::String::NewFromUtf8( isolate, key.c_str() ), v8Value );
-  }
-}
-
-void ReadFloatArguments( bool& foundAllArguments, float* data, unsigned int dataSize, const v8::FunctionCallbackInfo< v8::Value >& args, float defaultValue )
-{
-  foundAllArguments = true;
-  unsigned int length = args.Length();
-
-  if( length < dataSize )
-  {
-    foundAllArguments = false;
-  }
-
-  for( unsigned int i = 0; i< dataSize ;i++ )
-  {
-    if( i < length )
-    {
-      if( args[ i ]->IsNumber()  )
-      {
-        data[i] = args[i]->NumberValue();
-      }
-      else
-      {
-        data[i] = defaultValue;
-        foundAllArguments = false;   // bad argument
-      }
-    }
-    else
-    {
-      data[i] = defaultValue; // not enough arguments
-    }
-  }
-
-}
-
-void ReadIntegerArguments( bool& foundAllArguments, int* data, int dataSize, const v8::FunctionCallbackInfo< v8::Value >& args, int defaultValue )
-{
-  foundAllArguments = true;
-  int length = args.Length();
-  if( length < dataSize )
-  {
-    foundAllArguments = false;
-  }
-
-  for( int i = 0; i< dataSize ;i++ )
-  {
-    if( i < length )
-    {
-      if( args[ i ]->IsInt32()  )
-      {
-        data[i] = args[i]->Int32Value();
-      }
-      else
-      {
-        data[i] = defaultValue;
-        foundAllArguments = false;   // bad argument
-      }
-    }
-    else
-    {
-      data[i] = defaultValue; // not enough arguments
-    }
-  }
-
-}
-} // namespace V8Utils
-
-} // namespace V8Plugin
-
-} // namespace Dali
diff --git a/plugins/dali-script-v8/src/utils/v8-utils.h b/plugins/dali-script-v8/src/utils/v8-utils.h
deleted file mode 100644 (file)
index 177360f..0000000
+++ /dev/null
@@ -1,387 +0,0 @@
-#ifndef DALI_V8PLUGIN_V8_UTILS_H
-#define DALI_V8PLUGIN_V8_UTILS_H
-
-/*
- * Copyright (c) 2019 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.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <string>
-#include <v8.h>
-#include <dali/public-api/math/vector2.h>
-#include <dali/public-api/math/vector3.h>
-#include <dali/public-api/math/vector4.h>
-#include <dali/public-api/math/rect.h>
-#include <dali/public-api/actors/actor.h>
-#include <dali/public-api/actors/layer.h>
-#include <dali/public-api/render-tasks/render-task.h>
-#include <dali/public-api/object/property-value.h>
-#include <dali/public-api/object/property-map.h>
-
-// INTERNAL INCLUDES
-#include <shared/base-wrapped-object.h>
-
-namespace Dali
-{
-
-namespace V8Plugin
-{
-
-enum
-{
-  PARAMETER_0 = 0,   ///< first parameter of a function call
-  PARAMETER_1 = 1,   ///< second parameter of a function call
-  PARAMETER_2 = 2,   ///< third parameter of a function call
-  PARAMETER_3 = 3,   ///< forth parameter of a function call
-  PARAMETER_4 = 4,   ///< fifth parameter of a function call
-};
-
-#define DALI_SCRIPT_EXCEPTION( isolate, message ) V8Utils::ScriptError( __FUNCTION__ , isolate, message );
-#define DALI_SCRIPT_WARNING( message ) V8Utils::ScriptWarning( __FUNCTION__ , message );
-
-namespace V8Utils
-{
-/**
- * Print the list of arguments to std out
- * @param[in] args v8 function args interpreted as (string, string,...)
- */
-void Log(const v8::FunctionCallbackInfo< v8::Value >& args) ;
-
-/**
- * Print out using DALI_LOG_ERROR
- * @param[in] args v8 function args interpreted as (string, string,...)
- */
-void LogError(const v8::FunctionCallbackInfo< v8::Value >& args) ;
-
-/**
- * Read a files contents
- *
- * @param[in] filename The filename
- * @param[out] contents string contents of the file
- */
-void GetFileContents( const std::string &filename, std::string& contents );
-
-/**
- * Extract the directory path from a full path filename
- * @param fileName file name
- * @param directory directory name
- */
-void GetFileDirectory( const std::string& fileName, std::string& directory );
-
-/**
- * Extract file name from a full path + file name
- * @param[in] fullPathName full path + file name
- * @param[out] fileName file name
- */
-void GetFileName( const std::string& fullPathName, std::string& fileName);
-
-/**
- * Return the module name, e.g. if the module is
- * my_module.js it will get 'my_module'
- * @param[in] fileName full path module name
- * @param[out] moduleName module name
- */
-void GetModuleName( const std::string& fileName, std::string& moduleName );
-
-/**
- * Compare whether two DALi property maps are identical
- * @param[in] map1 The first property map to be compared
- * @param[in] map2 The second property map to be compared
- * @return true if the two specified property maps are identical or false if not.
- */
-bool IsPropertyMapIdentical(Property::Map map1, Property::Map map2);
-
-/**
- * Report an exception by writing as a warning to the Dali Log
- *
- * @param[in] try_catch The v8 TryCatch exception object
- */
-void ReportException(  v8::Isolate* isolate, v8::TryCatch* try_catch) ;
-
-/**
- * Depending on what coding standard used this can
- * convert the first character to lower case,
- * E.g.  GetId becomes getId
- */
-std::string GetJavaScriptFunctionName(  const char* functionName );
-
- /**
-  * Get V8 Version
-  *
-  * @param[in] args v8 function args ignored
-  * @return a version string
-  */
- void Version(const v8::FunctionCallbackInfo< v8::Value >& args) ;
-
-/**
- * Convert v8 string as a std::string
- * @param[in] value v8 function args interpreted as (v8_string)
- * @return std string
- */
- std::string v8StringToStdString( const v8::Handle<v8::Value>& value) ;
-
-/**
- * Convert hyphenated to camelCase (Dali property to wrapper property name)
- *
- * @param[in] hyphenatedName a hyphenated std::string to convert
- * @return a camelCase'd std::string
- */
- std::string PropertyNameToJavaScriptName(const std::string& hyphenatedName);
-
-/**
- * Script error, throws an exception
- */
-void ScriptError( const char* function, v8::Isolate* isolate, std::string errorString );
-
-/**
- * Script warning
- */
-void ScriptWarning( const char* function, std::string warningString );
-
-/**
- * @return in the value is a boolean primitive or a boolean object
- */
-bool IsBooleanPrimitiveOrObject( const v8::Local<v8::Value>& value );
-
-/**
- * @return the value of boolean primitive or boolean object value
- */
-bool GetBooleanValue( v8::Isolate* isolate, const v8::Local<v8::Value>& value );
-
-/**
- * @return true if the value is a number or a number object
- */
-bool IsNumberPrimitiveOrObject( const v8::Local<v8::Value>& value );
-
-/**
- * @return the number of a number primitive or number object value
- */
-float GetNumberValue( v8::Isolate* isolate, const v8::Local<v8::Value>& value );
-
-/**
- * @return if the value is a string primitve or a string object
- */
-bool IsStringPrimitiveOrObject( const v8::Local<v8::Value>& value );
-
-/**
- * @return true if the value is a string or a string object
- */
-bool IsStringPrimitiveOrObject( const v8::Local<v8::Value>& value );
-
-/**
- * @return the string from a string value or a string object
- */
-std::string GetStringValue( v8::Isolate* isolate, const v8::Local<v8::Value>& value );
-
-/******************************************
- *  Helper functions for extracting a DALi object from a JavaScript object
- *******************************************/
-
-/**
- * Given a JavaScript object, either extract the embedded DALi property value or
- * convert it to a property value
- * @param[out] found whether the property was found
- * @return property value
- */
-Property::Value GetPropertyValueFromObject( bool& found, v8::Isolate* isolate, const v8::Local<v8::Value >& value );
-
-/**
- * Given a JavaScript object with
- * @param [in] object JavaScrript object
- * @return DALi ProperyMap from the JavaScript object
- */
-Property::Map GetPropertyMapFromObject( v8::Isolate* isolate, const v8::Local<v8::Object>& object);
-
-/**
- * Extract a DALi wrapped object, from a JavaScript object held in a function argument
- * @param[in] index argument index the object is held in
- * @param[in] type type of wrapped object to extract
- */
-
-Actor GetActorFromObject( v8::Isolate* isolate, bool& found, v8::Local<v8::Object>& object);
-
-
-/******************************************
- *  Helper functions to extract a C++ native type (int,float,string) or a DALi object
- *  ( handle, vector, actor, layer, property value, property map ) from a
- *  JavaScript function argument.
- *  E.g.
- *  // JavaScript code
- *     myJavaScriptFunction( 23, 345, myActor );
- *
- *  // C++ code
- * bool found;
- *
- * Actor myActor = v8Utils::GetActorParameter( PARAMETER_2, found, JavaScript Args );
- ******************************************/
-/**
- * @param [in] index parameter index, e.g. callMyFunc( index0, index1, index2).
- * @param[out] found whether the parameter was found
- * @return integer value from the JavaScript function arguments
- */
-int GetIntegerParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args, int defaultValue  );
-
-/**
- * @param [in] index parameter index, e.g. callMyFunc( index0, index1, index2).
- * @param[out] found whether the parameter was found
- * @return float value from the JavaScript function arguments
- */
-float GetFloatParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args, float defaultValue  );
-
-/**
- * @param [in] index parameter index, e.g. callMyFunc( index0, index1, index2).
- * @param[out] found whether the parameter was found
- * @return string value from the JavaScript function arguments
- */
-std::string GetStringParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args );
-
-/**
- * @param [in] index parameter index, e.g. callMyFunc( index0, index1, index2).
- * @param[out] found whether the parameter was found
- * @return boolean value from the JavaScript function arguments
- */
-bool GetBooleanParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args );
-
-/**
- * @param [in] index parameter index, e.g. callMyFunc( index0, index1, index2).
- * @param[out] found whether the parameter was found
- * @return ArrayBufferView from the JavaScript function arguments
- */
-void* GetArrayBufferViewParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args  );
-
-/**
- * @param [in] index parameter index, e.g. callMyFunc( index0, index1, index2).
- * @param[out] found whether the parameter was found
- * @return DALi Handle value from the JavaScript function arguments
- */
-Handle GetHandleParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args  );
-
-/**
- * @param [in] index parameter index, e.g. callMyFunc( index0, index1, index2).
- * @param[out] found whether the parameter was found
- * @return Vector2 from the JavaScript function arguments
- */
-Vector2 GetVector2Parameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args );
-
-/**
- * @param [in] index parameter index, e.g. callMyFunc( index0, index1, index2).
- * @param[out] found whether the parameter was found
- * @return Vector3 from the JavaScript function arguments
- */
-Vector3 GetVector3Parameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args);
-
-/**
- * @param [in] index parameter index, e.g. callMyFunc( index0, index1, index2).
- * @param[out] found whether the parameter was found
- * @return Vector4 from the JavaScript function arguments
- */
-Vector4 GetVector4Parameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args);
-
-/**
- * @param [in] index parameter index, e.g. callMyFunc( index0, index1, index2).
- * @param[out] found whether the parameter was found
- * @return Rect<int> from the JavaScript function arguments
- */
-Rect<int> GetRectIntParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args );
-
-/**
- * @param [in] index parameter index, e.g. callMyFunc( index0, index1, index2).
- * @param[out] found whether the parameter was found
- * @return Actor from the JavaScript function arguments
- */
-Actor GetActorParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args );
-
-/**
- * @param [in] index parameter index, e.g. callMyFunc( index0, index1, index2).
- * @param[out] found whether the parameter was found
- * @return Layer from the JavaScript function arguments
- */
-Layer GetLayerParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args );
-
-/**
- * @param [in] index parameter index, e.g. callMyFunc( index0, index1, index2).
- * @param[out] found whether the parameter was found
- * @return Image from the JavaScript function arguments
- */
-Image GetImageParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args );
-
-/**
- * @param [in] index parameter index, e.g. callMyFunc( index0, index1, index2).
- * @param[out] found whether the parameter was found
- * @return RenderTask from the JavaScript function arguments
- */
-RenderTask GetRenderTaskParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args );
-
-/**
- * Extract a DALi wrapped object, from a JavaScript object held in a function argument
- * @param[in] index argument index the object is held in
- * @param[in] type type of wrapped object to extract
- */
-BaseWrappedObject* GetWrappedDaliObjectParameter( unsigned int index, BaseWrappedObject::Type type, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args );
-
-/**
- * @param [in] index parameter index, e.g. callMyFunc( index0, index1, index2).
- * @param[out] found whether the parameter was found
- * @return ProperyValue from the  JavaScript function arguments
- */
-Property::Value GetPropertyValueParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args );
-
-/**
- * @param [in] index parameter index, e.g. callMyFunc( index0, index1, index2).
- * @param[out] found whether the parameter was found
- * @return ProperyMap from the  JavaScript function arguments
- */
-Property::Map GetPropertyMapParameter( unsigned int index, bool& found, v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args );
-
-/**
- * Generate a JavaScript property map, from a DALi property map
- * @param [in] DALi map property map
- * @param [in] JavaScript property map
- */
-void CreatePropertyMap( v8::Isolate* isolate, const Property::Map& map, v8::Local<v8::Object>& object );
-
-
-/**
- * Read multiple float arguments from v8 args object
- * e.g. myJavaFunc( 3.4, 7.6, 8.5 );
- *
- * @param[out] foundAllArguments flag to say all arguments are found
- * @param[out] data pointer to a pre-allocated array of floats
- * @param[in] dataSize the nunber of floats in the data parameter
- * @param[in] defaultValue default value assigned to floats that don't exist in the arguments
- */
-void ReadFloatArguments( bool& foundAllArguments, float* data, unsigned int dataSize, const v8::FunctionCallbackInfo< v8::Value >& args, float defaultValue );
-
-/**
- * Read multiple integer arguments from v8 args object
- * e.g. myJavaFunc( 3, 7, 8 );
- *
- * @param[out] foundAllArguments flag to say all arguments are found
- * @param[out] data pointer to a pre-allocated array of integers
- * @param[in] dataSize the nunber of integers in the data parameter
- * @param[in] defaultValue default value assigned to integers that don't exist in the arguments
- */
-void ReadIntegerArguments( bool& foundAllArguments, int* data, int dataSize, const v8::FunctionCallbackInfo< v8::Value >& args, int defaultValue );
-
-} // namespace V8Utils
-
-} // namespace V8Plugin
-
-} // namespace Dali
-
-
-#endif // DALI_V8PLUGIN_V8_UTILS_H
-