Merge "Fix KeyboardFocusManager ClearFocus bug" into devel/master
authorAdeel Kazmi <adeel.kazmi@samsung.com>
Fri, 5 Oct 2018 11:49:24 +0000 (11:49 +0000)
committerGerrit Code Review <gerrit@review.ap-northeast-2.compute.internal>
Fri, 5 Oct 2018 11:49:24 +0000 (11:49 +0000)
19 files changed:
CMakeLists.txt [new file with mode: 0755]
automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp
dali-toolkit/devel-api/layouting/grid.h
dali-toolkit/devel-api/layouting/layout-controller.h [changed mode: 0644->0755]
dali-toolkit/devel-api/layouting/layout-group.h [changed mode: 0644->0755]
dali-toolkit/devel-api/layouting/layout-item.h [changed mode: 0644->0755]
dali-toolkit/devel-api/layouting/measure-spec.h [changed mode: 0644->0755]
dali-toolkit/devel-api/layouting/measured-size.h [changed mode: 0644->0755]
dali-toolkit/internal/builder/builder-impl.h
dali-toolkit/internal/builder/builder-signals.cpp [changed mode: 0644->0755]
dali-toolkit/internal/controls/image-view/image-view-impl.cpp
dali-toolkit/internal/controls/image-view/image-view-impl.h
dali-toolkit/internal/controls/scrollable/item-view/item-view-impl.h
dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-impl.cpp [changed mode: 0644->0755]
dali-toolkit/internal/visuals/animated-image/animated-image-visual.h [changed mode: 0644->0755]
dali-toolkit/internal/visuals/texture-manager-impl.h [changed mode: 0644->0755]
dali-toolkit/public-api/dali-toolkit-common.h
dali-toolkit/public-api/dali-toolkit-version.cpp
packaging/dali-toolkit.spec

diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..931b3e6
--- /dev/null
@@ -0,0 +1,325 @@
+cmake_minimum_required(VERSION 3.11)\r
+\r
+PROJECT (dali-toolkit)\r
+\r
+ADD_DEFINITIONS(\r
+-DDALI_ENV="../../dali-env"\r
+-DDALI_DATA_READ_ONLY_DIR=DALI_ENV"/opt/share/dali"\r
+-DDALI_IMAGE_DIR=DALI_ENV"/opt/share/dali/toolkit/images/"\r
+-DDALI_STYLE_DIR=DALI_ENV"/opt/share/dali/toolkit/styles/"\r
+-DDALI_SOUND_DIR=DALI_ENV"/opt/share/dali/toolkit/sounds/"\r
+-DDALI_STYLE_IMAGE_DIR=DALI_ENV"/opt/share/dali/toolkit/styles/images/"\r
+-DCURL_STATICLIB=0\r
+/DBUILDING_DALI_TOOLKIT\r
+/vmg\r
+/NODEFAULTLIB:"libcmt.lib"\r
+/FI"../windows-dependencies/ExInclude/PreprocessorDefinitions.h"\r
+/FI"../windows-dependencies/ExInclude/ToolKitPreDefine.h"\r
+/MP\r
+/Gz\r
+)\r
+\r
+#head file path\r
+INCLUDE_DIRECTORIES(  \r
+./\r
+../dali-core\r
+../dali-adaptor\r
+../windows-dependencies/ExInclude\r
+../dali-env/opt/include\r
+)\r
+\r
+#devel-api\r
+SET( devel_api_src_dir dali-toolkit/devel-api )\r
+\r
+SET ( SOURCES ${SOURCES}\r
+  ${devel_api_src_dir}/builder/builder.cpp\r
+  ${devel_api_src_dir}/builder/json-parser.cpp\r
+  ${devel_api_src_dir}/builder/tree-node.cpp\r
+  ${devel_api_src_dir}/controls/control-devel.cpp\r
+  ${devel_api_src_dir}/controls/control-wrapper.cpp\r
+  ${devel_api_src_dir}/controls/control-wrapper-impl.cpp\r
+  ${devel_api_src_dir}/controls/bloom-view/bloom-view.cpp\r
+  ${devel_api_src_dir}/controls/bubble-effect/bubble-emitter.cpp\r
+  ${devel_api_src_dir}/controls/buttons/toggle-button.cpp\r
+  ${devel_api_src_dir}/controls/effects-view/effects-view.cpp\r
+  ${devel_api_src_dir}/controls/magnifier/magnifier.cpp\r
+  ${devel_api_src_dir}/controls/navigation-view/navigation-view.cpp\r
+  ${devel_api_src_dir}/controls/page-turn-view/page-turn-landscape-view.cpp\r
+  ${devel_api_src_dir}/controls/page-turn-view/page-turn-portrait-view.cpp\r
+  ${devel_api_src_dir}/controls/page-turn-view/page-turn-view.cpp\r
+  ${devel_api_src_dir}/controls/popup/confirmation-popup.cpp\r
+  ${devel_api_src_dir}/controls/popup/popup.cpp\r
+  ${devel_api_src_dir}/controls/shadow-view/shadow-view.cpp\r
+  ${devel_api_src_dir}/controls/super-blur-view/super-blur-view.cpp\r
+  ${devel_api_src_dir}/controls/text-controls/text-editor-devel.cpp\r
+  ${devel_api_src_dir}/controls/text-controls/text-field-devel.cpp\r
+  ${devel_api_src_dir}/controls/text-controls/text-selection-popup.cpp\r
+  ${devel_api_src_dir}/controls/text-controls/text-selection-toolbar.cpp\r
+  ${devel_api_src_dir}/controls/tool-bar/tool-bar.cpp\r
+  ${devel_api_src_dir}/focus-manager/keyinput-focus-manager.cpp\r
+  ${devel_api_src_dir}/focus-manager/keyboard-focus-manager-devel.cpp\r
+  ${devel_api_src_dir}/image-loader/async-image-loader-devel.cpp\r
+  ${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}/layouting/absolute-layout.cpp\r
+  ${devel_api_src_dir}/layouting/grid.cpp\r
+  ${devel_api_src_dir}/layouting/linear-layout.cpp\r
+  ${devel_api_src_dir}/layouting/layout-item-impl.cpp\r
+  ${devel_api_src_dir}/layouting/layout-item.cpp\r
+  ${devel_api_src_dir}/layouting/layout-group-impl.cpp\r
+  ${devel_api_src_dir}/layouting/layout-group.cpp\r
+  ${devel_api_src_dir}/layouting/layout-controller.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
+  ${devel_api_src_dir}/transition-effects/cube-transition-fold-effect.cpp\r
+  ${devel_api_src_dir}/transition-effects/cube-transition-wave-effect.cpp\r
+  ${devel_api_src_dir}/visual-factory/transition-data.cpp\r
+  ${devel_api_src_dir}/visual-factory/visual-factory.cpp\r
+  ${devel_api_src_dir}/visual-factory/visual-base.cpp\r
+  ${devel_api_src_dir}/controls/gaussian-blur-view/gaussian-blur-view.cpp\r
+)\r
+\r
+#internal\r
+SET(internal_src_dir dali-toolkit/internal )\r
+\r
+SET( SOURCES ${SOURCES}\r
+   ${internal_src_dir}/builder/builder-animations.cpp\r
+   ${internal_src_dir}/builder/builder-impl.cpp\r
+   ${internal_src_dir}/builder/builder-impl-debug.cpp\r
+   ${internal_src_dir}/builder/builder-set-property.cpp\r
+   ${internal_src_dir}/builder/builder-signals.cpp\r
+   ${internal_src_dir}/builder/json-parser-state.cpp\r
+   ${internal_src_dir}/builder/json-parser-impl.cpp\r
+   ${internal_src_dir}/builder/style.cpp\r
+   ${internal_src_dir}/builder/tree-node-manipulator.cpp\r
+   ${internal_src_dir}/builder/replacement.cpp\r
+   ${internal_src_dir}/layouting/absolute-layout-impl.cpp\r
+   ${internal_src_dir}/layouting/grid-impl.cpp\r
+   ${internal_src_dir}/layouting/grid-locations.cpp\r
+   ${internal_src_dir}/layouting/linear-layout-impl.cpp\r
+   ${internal_src_dir}/layouting/layout-item-data-impl.cpp\r
+   ${internal_src_dir}/layouting/layout-group-data-impl.cpp\r
+   ${internal_src_dir}/layouting/layout-controller-impl.cpp\r
+   ${internal_src_dir}/layouting/layout-controller-debug.cpp\r
+   ${internal_src_dir}/visuals/animated-image/animated-image-visual.cpp\r
+   ${internal_src_dir}/visuals/animated-image/image-cache.cpp\r
+   ${internal_src_dir}/visuals/animated-image/fixed-image-cache.cpp\r
+   ${internal_src_dir}/visuals/animated-image/rolling-image-cache.cpp\r
+   ${internal_src_dir}/visuals/animated-image/rolling-gif-image-cache.cpp\r
+   ${internal_src_dir}/visuals/border/border-visual.cpp\r
+   ${internal_src_dir}/visuals/color/color-visual.cpp\r
+   ${internal_src_dir}/visuals/gradient/gradient-visual.cpp\r
+   ${internal_src_dir}/visuals/gradient/gradient.cpp\r
+   ${internal_src_dir}/visuals/gradient/linear-gradient.cpp\r
+   ${internal_src_dir}/visuals/gradient/radial-gradient.cpp\r
+   ${internal_src_dir}/visuals/animated-gradient/animated-gradient-visual.cpp\r
+   ${internal_src_dir}/visuals/image-atlas-manager.cpp\r
+   ${internal_src_dir}/visuals/image/image-visual.cpp\r
+   ${internal_src_dir}/visuals/mesh/mesh-visual.cpp\r
+   ${internal_src_dir}/visuals/npatch-loader.cpp\r
+   ${internal_src_dir}/visuals/npatch/npatch-visual.cpp\r
+   ${internal_src_dir}/visuals/primitive/primitive-visual.cpp\r
+   ${internal_src_dir}/visuals/svg/svg-rasterize-thread.cpp\r
+   ${internal_src_dir}/visuals/svg/svg-visual.cpp\r
+   ${internal_src_dir}/visuals/text/text-visual.cpp\r
+   ${internal_src_dir}/visuals/transition-data-impl.cpp\r
+   ${internal_src_dir}/visuals/texture-manager-impl.cpp\r
+   ${internal_src_dir}/visuals/texture-upload-observer.cpp\r
+   ${internal_src_dir}/visuals/image-visual-shader-factory.cpp\r
+   ${internal_src_dir}/visuals/visual-base-data-impl.cpp\r
+   ${internal_src_dir}/visuals/visual-base-impl.cpp\r
+   ${internal_src_dir}/visuals/visual-factory-cache.cpp\r
+   ${internal_src_dir}/visuals/visual-factory-impl.cpp\r
+   ${internal_src_dir}/visuals/visual-string-constants.cpp\r
+   ${internal_src_dir}/visuals/visual-url.cpp\r
+   ${internal_src_dir}/visuals/wireframe/wireframe-visual.cpp\r
+   ${internal_src_dir}/controls/alignment/alignment-impl.cpp\r
+   ${internal_src_dir}/controls/bloom-view/bloom-view-impl.cpp\r
+   ${internal_src_dir}/controls/bubble-effect/bubble-emitter-impl.cpp\r
+   ${internal_src_dir}/controls/bubble-effect/bubble-renderer.cpp\r
+   ${internal_src_dir}/controls/buttons/button-impl.cpp\r
+   ${internal_src_dir}/controls/buttons/check-box-button-impl.cpp\r
+   ${internal_src_dir}/controls/buttons/push-button-impl.cpp\r
+   ${internal_src_dir}/controls/buttons/radio-button-impl.cpp\r
+   ${internal_src_dir}/controls/buttons/toggle-button-impl.cpp\r
+   ${internal_src_dir}/controls/control/control-data-impl.cpp\r
+   ${internal_src_dir}/controls/control/control-debug.cpp\r
+   ${internal_src_dir}/controls/effects-view/effects-view-impl.cpp\r
+   ${internal_src_dir}/controls/flex-container/flex-container-impl.cpp\r
+   ${internal_src_dir}/controls/gaussian-blur-view/gaussian-blur-view-impl.cpp\r
+   ${internal_src_dir}/controls/image-view/image-view-impl.cpp\r
+   ${internal_src_dir}/controls/magnifier/magnifier-impl.cpp\r
+   ${internal_src_dir}/controls/navigation-view/navigation-view-impl.cpp\r
+   ${internal_src_dir}/controls/popup/confirmation-popup-impl.cpp\r
+   ${internal_src_dir}/controls/model3d-view/model3d-view-impl.cpp\r
+   ${internal_src_dir}/controls/model3d-view/obj-loader.cpp\r
+   ${internal_src_dir}/controls/popup/popup-impl.cpp\r
+   ${internal_src_dir}/controls/page-turn-view/page-turn-portrait-view-impl.cpp\r
+   ${internal_src_dir}/controls/page-turn-view/page-turn-effect.cpp\r
+   ${internal_src_dir}/controls/page-turn-view/page-turn-landscape-view-impl.cpp\r
+   ${internal_src_dir}/controls/page-turn-view/page-turn-view-impl.cpp\r
+   ${internal_src_dir}/controls/progress-bar/progress-bar-impl.cpp\r
+   ${internal_src_dir}/controls/scroll-bar/scroll-bar-impl.cpp\r
+   ${internal_src_dir}/controls/scrollable/bouncing-effect-actor.cpp\r
+   ${internal_src_dir}/controls/scrollable/item-view/depth-layout.cpp\r
+   ${internal_src_dir}/controls/scrollable/item-view/grid-layout.cpp\r
+   ${internal_src_dir}/controls/scrollable/item-view/item-view-impl.cpp\r
+   ${internal_src_dir}/controls/scrollable/item-view/spiral-layout.cpp\r
+   ${internal_src_dir}/controls/scrollable/scrollable-impl.cpp\r
+   ${internal_src_dir}/controls/scrollable/scroll-view/scroll-base-impl.cpp\r
+   ${internal_src_dir}/controls/scrollable/scroll-view/scroll-overshoot-indicator-impl.cpp\r
+   ${internal_src_dir}/controls/scrollable/scroll-view/scroll-view-effect-impl.cpp\r
+   ${internal_src_dir}/controls/scrollable/scroll-view/scroll-view-impl.cpp\r
+   ${internal_src_dir}/controls/scrollable/scroll-view/scroll-view-page-path-effect-impl.cpp\r
+   ${internal_src_dir}/controls/shadow-view/shadow-view-impl.cpp\r
+   ${internal_src_dir}/controls/slider/slider-impl.cpp\r
+   ${internal_src_dir}/controls/super-blur-view/super-blur-view-impl.cpp\r
+   ${internal_src_dir}/controls/table-view/table-view-impl.cpp\r
+   ${internal_src_dir}/controls/text-controls/text-editor-impl.cpp\r
+   ${internal_src_dir}/controls/text-controls/text-field-impl.cpp\r
+   ${internal_src_dir}/controls/text-controls/text-label-impl.cpp\r
+   ${internal_src_dir}/controls/text-controls/text-selection-popup-impl.cpp\r
+   ${internal_src_dir}/controls/text-controls/text-selection-toolbar-impl.cpp\r
+   ${internal_src_dir}/controls/tool-bar/tool-bar-impl.cpp\r
+   ${internal_src_dir}/controls/tooltip/tooltip.cpp\r
+   ${internal_src_dir}/controls/video-view/video-view-impl.cpp\r
+   ${internal_src_dir}/accessibility-manager/accessibility-manager-impl.cpp\r
+   ${internal_src_dir}/feedback/feedback-style.cpp\r
+   ${internal_src_dir}/focus-manager/keyboard-focus-manager-impl.cpp\r
+   ${internal_src_dir}/focus-manager/keyinput-focus-manager-impl.cpp\r
+   ${internal_src_dir}/helpers/color-conversion.cpp\r
+   ${internal_src_dir}/helpers/property-helper.cpp\r
+   ${internal_src_dir}/filters/blur-two-pass-filter.cpp\r
+   ${internal_src_dir}/filters/emboss-filter.cpp\r
+   ${internal_src_dir}/filters/image-filter.cpp\r
+   ${internal_src_dir}/filters/spread-filter.cpp\r
+   ${internal_src_dir}/image-loader/async-image-loader-impl.cpp\r
+   ${internal_src_dir}/image-loader/atlas-packer.cpp\r
+   ${internal_src_dir}/image-loader/image-atlas-impl.cpp\r
+   ${internal_src_dir}/image-loader/image-load-thread.cpp\r
+   ${internal_src_dir}/styling/style-manager-impl.cpp\r
+   ${internal_src_dir}/text/bidirectional-support.cpp\r
+   ${internal_src_dir}/text/character-set-conversion.cpp\r
+   ${internal_src_dir}/text/color-segmentation.cpp\r
+   ${internal_src_dir}/text/cursor-helper-functions.cpp\r
+   ${internal_src_dir}/text/glyph-metrics-helper.cpp\r
+   ${internal_src_dir}/text/logical-model-impl.cpp\r
+   ${internal_src_dir}/text/markup-processor.cpp\r
+   ${internal_src_dir}/text/markup-processor-color.cpp\r
+   ${internal_src_dir}/text/markup-processor-font.cpp\r
+   ${internal_src_dir}/text/markup-processor-helper-functions.cpp\r
+   ${internal_src_dir}/text/multi-language-support.cpp\r
+   ${internal_src_dir}/text/hidden-text.cpp\r
+   ${internal_src_dir}/text/property-string-parser.cpp\r
+   ${internal_src_dir}/text/segmentation.cpp\r
+   ${internal_src_dir}/text/shaper.cpp\r
+   ${internal_src_dir}/text/text-enumerations-impl.cpp\r
+   ${internal_src_dir}/text/text-controller.cpp\r
+   ${internal_src_dir}/text/text-controller-impl.cpp\r
+   ${internal_src_dir}/text/text-effects-style.cpp\r
+   ${internal_src_dir}/text/text-font-style.cpp\r
+   ${internal_src_dir}/text/text-io.cpp\r
+   ${internal_src_dir}/text/text-model.cpp\r
+   ${internal_src_dir}/text/text-scroller.cpp\r
+   ${internal_src_dir}/text/text-vertical-scroller.cpp\r
+   ${internal_src_dir}/text/text-view.cpp\r
+   ${internal_src_dir}/text/text-view-interface.cpp\r
+   ${internal_src_dir}/text/visual-model-impl.cpp\r
+   ${internal_src_dir}/text/decorator/text-decorator.cpp\r
+   ${internal_src_dir}/text/layouts/layout-engine.cpp\r
+   ${internal_src_dir}/text/multi-language-helper-functions.cpp\r
+   ${internal_src_dir}/text/multi-language-support-impl.cpp\r
+   ${internal_src_dir}/text/rendering/text-backend.cpp\r
+   ${internal_src_dir}/text/rendering/text-renderer.cpp\r
+   ${internal_src_dir}/text/rendering/atlas/text-atlas-renderer.cpp\r
+   ${internal_src_dir}/text/rendering/atlas/atlas-glyph-manager.cpp\r
+   ${internal_src_dir}/text/rendering/atlas/atlas-glyph-manager-impl.cpp\r
+   ${internal_src_dir}/text/rendering/atlas/atlas-manager.cpp\r
+   ${internal_src_dir}/text/rendering/atlas/atlas-manager-impl.cpp\r
+   ${internal_src_dir}/text/rendering/atlas/atlas-mesh-factory.cpp\r
+   ${internal_src_dir}/text/rendering/text-backend-impl.cpp\r
+   ${internal_src_dir}/text/rendering/text-typesetter.cpp\r
+   ${internal_src_dir}/text/rendering/view-model.cpp\r
+   ${internal_src_dir}/transition-effects/cube-transition-effect-impl.cpp\r
+   ${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
+#public-api\r
+SET( public_api_src_dir dali-toolkit/public-api )\r
+\r
+SET( SOURCES ${SOURCES}\r
+  ${public_api_src_dir}/controls/control-impl.cpp\r
+  ${public_api_src_dir}/controls/control.cpp\r
+  ${public_api_src_dir}/controls/alignment/alignment.cpp\r
+  ${public_api_src_dir}/controls/buttons/button.cpp\r
+  ${public_api_src_dir}/controls/buttons/check-box-button.cpp\r
+  ${public_api_src_dir}/controls/buttons/push-button.cpp\r
+  ${public_api_src_dir}/controls/buttons/radio-button.cpp\r
+  ${public_api_src_dir}/controls/flex-container/flex-container.cpp\r
+  ${public_api_src_dir}/controls/image-view/image-view.cpp\r
+  ${public_api_src_dir}/controls/model3d-view/model3d-view.cpp\r
+  ${public_api_src_dir}/controls/progress-bar/progress-bar.cpp\r
+  ${public_api_src_dir}/controls/scroll-bar/scroll-bar.cpp\r
+  ${public_api_src_dir}/controls/scrollable/item-view/default-item-layout.cpp\r
+  ${public_api_src_dir}/controls/scrollable/item-view/item-layout.cpp\r
+  ${public_api_src_dir}/controls/scrollable/item-view/item-view.cpp\r
+  ${public_api_src_dir}/controls/scrollable/scroll-view/scroll-view-constraints.cpp\r
+  ${public_api_src_dir}/controls/scrollable/scroll-view/scroll-view-effect.cpp\r
+  ${public_api_src_dir}/controls/scrollable/scroll-view/scroll-view-page-path-effect.cpp\r
+  ${public_api_src_dir}/controls/scrollable/scroll-view/scroll-view.cpp\r
+  ${public_api_src_dir}/controls/scrollable/scrollable.cpp\r
+  ${public_api_src_dir}/controls/slider/slider.cpp\r
+  ${public_api_src_dir}/controls/table-view/table-view.cpp\r
+  ${public_api_src_dir}/controls/text-controls/text-editor.cpp\r
+  ${public_api_src_dir}/controls/text-controls/text-label.cpp\r
+  ${public_api_src_dir}/controls/text-controls/text-field.cpp\r
+  ${public_api_src_dir}/controls/video-view/video-view.cpp\r
+  ${public_api_src_dir}/image-loader/async-image-loader.cpp\r
+  ${public_api_src_dir}/image-loader/sync-image-loader.cpp\r
+  ${public_api_src_dir}/styling/style-manager.cpp\r
+  ${public_api_src_dir}/accessibility-manager/accessibility-manager.cpp\r
+  ${public_api_src_dir}/focus-manager/keyboard-focus-manager.cpp\r
+  ${public_api_src_dir}/dali-toolkit-version.cpp\r
+  ${public_api_src_dir}/enums.cpp\r
+)\r
+\r
+link_directories(\r
+../windows-dependencies/ExLib\r
+../bin\r
+)\r
+\r
+SET( SOURCES ${SOURCES}\r
+  dali-toolkit/third-party/nanosvg/nanosvg.cc\r
+  dali-toolkit/third-party/nanosvg/nanosvgrast.cc\r
+  dali-toolkit/third-party/yoga/Yoga.cpp\r
+  dali-toolkit/third-party/yoga/YGStyle.cpp\r
+  dali-toolkit/third-party/yoga/YGNodePrint.cpp\r
+  dali-toolkit/third-party/yoga/YGNode.cpp\r
+  dali-toolkit/third-party/yoga/YGLayout.cpp\r
+  dali-toolkit/third-party/yoga/YGFloatOptional.cpp\r
+  dali-toolkit/third-party/yoga/YGEnums.cpp\r
+  dali-toolkit/third-party/yoga/YGConfig.cpp\r
+  dali-toolkit/third-party/yoga/Utils.cpp\r
+)\r
+set(LIBRARY_OUTPUT_PATH ../../../bin)\r
+\r
+ADD_LIBRARY(dali-toolkit SHARED ${SOURCES})\r
+\r
+target_link_libraries(dali-toolkit dali-core.lib)\r
+target_link_libraries(dali-toolkit dali-adaptor.lib)\r
+target_link_libraries(dali-toolkit dlfcn.lib)\r
+target_link_libraries(dali-toolkit WindowsPlatform.lib)\r
+\r
+add_dependencies(dali-toolkit dali-core)\r
+add_dependencies(dali-toolkit dali-adaptor)\r
+\r
+#add link library  \r
+#TARGET_LINK_LIBRARIES(${FS_BUILD_BINARY_PREFIX}sqrt ${LIBRARIES})\r
index 77121d5..98ff461 100644 (file)
@@ -1775,3 +1775,185 @@ int UtcDaliImageViewFillMode(void)
 
   END_TEST;
 }
+
+int UtcDaliImageViewCustomShader(void)
+{
+  ToolkitTestApplication application;
+
+  // Set a custom shader with an image url
+  {
+    Property::Map properties;
+    Property::Map shader;
+    const std::string vertexShader = "Foobar";
+    const std::string fragmentShader = "Foobar";
+    shader[Visual::Shader::Property::FRAGMENT_SHADER] = fragmentShader;
+    shader[Visual::Shader::Property::VERTEX_SHADER] = vertexShader;
+
+    properties[Visual::Property::TYPE] = Visual::IMAGE;
+    properties[Visual::Property::SHADER] = shader;
+    properties[ImageVisual::Property::URL] = TEST_IMAGE_FILE_NAME;
+
+    ImageView imageView = ImageView::New();
+    imageView.SetProperty( ImageView::Property::IMAGE, properties );
+
+    Stage::GetCurrent().Add( imageView );
+
+    application.SendNotification();
+    application.Render();
+
+    DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger( 1 ), true, TEST_LOCATION );
+
+    Renderer renderer = imageView.GetRendererAt( 0 );
+    Shader shader2 = renderer.GetShader();
+    Property::Value value = shader2.GetProperty( Shader::Property::PROGRAM );
+    Property::Map* map = value.GetMap();
+    DALI_TEST_CHECK( map );
+
+    Property::Value* fragment = map->Find( "fragment" ); // fragment key name from shader-impl.cpp
+    DALI_TEST_EQUALS( fragmentShader, fragment->Get< std::string >(), TEST_LOCATION );
+
+    Property::Value* vertex = map->Find( "vertex" ); // vertex key name from shader-impl.cpp
+    DALI_TEST_EQUALS( vertexShader, vertex->Get< std::string >(), TEST_LOCATION );
+  }
+
+  // Set a custom shader after setting an image url
+  {
+    Property::Map properties;
+    Property::Map shader;
+    const std::string vertexShader = "Foobar";
+    const std::string fragmentShader = "Foobar";
+    shader[Visual::Shader::Property::FRAGMENT_SHADER] = fragmentShader;
+    shader[Visual::Shader::Property::VERTEX_SHADER] = vertexShader;
+
+    properties[Visual::Property::SHADER] = shader;
+
+    ImageView imageView = ImageView::New( TEST_IMAGE_FILE_NAME );
+    imageView.SetProperty( ImageView::Property::IMAGE, properties );
+
+    Stage::GetCurrent().Add( imageView );
+
+    application.SendNotification();
+    application.Render();
+
+    Renderer renderer = imageView.GetRendererAt( 0 );
+    Shader shader2 = renderer.GetShader();
+    Property::Value value = shader2.GetProperty( Shader::Property::PROGRAM );
+    Property::Map* map = value.GetMap();
+    DALI_TEST_CHECK( map );
+
+    Property::Value* fragment = map->Find( "fragment" ); // fragment key name from shader-impl.cpp
+    DALI_TEST_EQUALS( fragmentShader, fragment->Get< std::string >(), TEST_LOCATION );
+
+    Property::Value* vertex = map->Find( "vertex" ); // vertex key name from shader-impl.cpp
+    DALI_TEST_EQUALS( vertexShader, vertex->Get< std::string >(), TEST_LOCATION );
+  }
+
+  // Set a custom shader before setting an image url
+  {
+    Property::Map properties;
+    Property::Map shader;
+    const std::string vertexShader = "Foobar";
+    const std::string fragmentShader = "Foobar";
+    shader[Visual::Shader::Property::FRAGMENT_SHADER] = fragmentShader;
+    shader[Visual::Shader::Property::VERTEX_SHADER] = vertexShader;
+
+    properties[Visual::Property::SHADER] = shader;
+
+    ImageView imageView = ImageView::New();
+    imageView.SetProperty( ImageView::Property::IMAGE, properties );
+    imageView.SetProperty( ImageView::Property::IMAGE, TEST_IMAGE_FILE_NAME );
+
+    Stage::GetCurrent().Add( imageView );
+
+    application.SendNotification();
+    application.Render();
+
+    Renderer renderer = imageView.GetRendererAt( 0 );
+    Shader shader2 = renderer.GetShader();
+    Property::Value value = shader2.GetProperty( Shader::Property::PROGRAM );
+    Property::Map* map = value.GetMap();
+    DALI_TEST_CHECK( map );
+
+    Property::Value* fragment = map->Find( "fragment" ); // fragment key name from shader-impl.cpp
+    DALI_TEST_EQUALS( fragmentShader, fragment->Get< std::string >(), TEST_LOCATION );
+
+    Property::Value* vertex = map->Find( "vertex" ); // vertex key name from shader-impl.cpp
+    DALI_TEST_EQUALS( vertexShader, vertex->Get< std::string >(), TEST_LOCATION );
+  }
+
+  // Set a custom shader after setting a property map
+  {
+    Property::Map properties;
+    Property::Map shader;
+    const std::string vertexShader = "Foobar";
+    const std::string fragmentShader = "Foobar";
+    shader[Visual::Shader::Property::FRAGMENT_SHADER] = fragmentShader;
+    shader[Visual::Shader::Property::VERTEX_SHADER] = vertexShader;
+
+    properties[Visual::Property::SHADER] = shader;
+
+    Property::Map properties1;
+    properties1[Visual::Property::TYPE] = Visual::IMAGE;
+    properties1[ImageVisual::Property::URL] = TEST_IMAGE_FILE_NAME;
+
+    ImageView imageView = ImageView::New();
+    imageView.SetProperty( ImageView::Property::IMAGE, properties1 );
+    imageView.SetProperty( ImageView::Property::IMAGE, properties );
+
+    Stage::GetCurrent().Add( imageView );
+
+    application.SendNotification();
+    application.Render();
+
+    Renderer renderer = imageView.GetRendererAt( 0 );
+    Shader shader2 = renderer.GetShader();
+    Property::Value value = shader2.GetProperty( Shader::Property::PROGRAM );
+    Property::Map* map = value.GetMap();
+    DALI_TEST_CHECK( map );
+
+    Property::Value* fragment = map->Find( "fragment" ); // fragment key name from shader-impl.cpp
+    DALI_TEST_EQUALS( fragmentShader, fragment->Get< std::string >(), TEST_LOCATION );
+
+    Property::Value* vertex = map->Find( "vertex" ); // vertex key name from shader-impl.cpp
+    DALI_TEST_EQUALS( vertexShader, vertex->Get< std::string >(), TEST_LOCATION );
+  }
+
+  // Set a custom shader before setting a property map
+  {
+    Property::Map properties;
+    Property::Map shader;
+    const std::string vertexShader = "Foobar";
+    const std::string fragmentShader = "Foobar";
+    shader[Visual::Shader::Property::FRAGMENT_SHADER] = fragmentShader;
+    shader[Visual::Shader::Property::VERTEX_SHADER] = vertexShader;
+
+    properties[Visual::Property::SHADER] = shader;
+
+    Property::Map properties1;
+    properties1[Visual::Property::TYPE] = Visual::IMAGE;
+    properties1[ImageVisual::Property::URL] = TEST_IMAGE_FILE_NAME;
+
+    ImageView imageView = ImageView::New();
+    imageView.SetProperty( ImageView::Property::IMAGE, properties );
+    imageView.SetProperty( ImageView::Property::IMAGE, properties1 );
+
+    Stage::GetCurrent().Add( imageView );
+
+    application.SendNotification();
+    application.Render();
+
+    Renderer renderer = imageView.GetRendererAt( 0 );
+    Shader shader2 = renderer.GetShader();
+    Property::Value value = shader2.GetProperty( Shader::Property::PROGRAM );
+    Property::Map* map = value.GetMap();
+    DALI_TEST_CHECK( map );
+
+    Property::Value* fragment = map->Find( "fragment" ); // fragment key name from shader-impl.cpp
+    DALI_TEST_EQUALS( fragmentShader, fragment->Get< std::string >(), TEST_LOCATION );
+
+    Property::Value* vertex = map->Find( "vertex" ); // vertex key name from shader-impl.cpp
+    DALI_TEST_EQUALS( vertexShader, vertex->Get< std::string >(), TEST_LOCATION );
+  }
+
+  END_TEST;
+}
index e26b93f..16c6c34 100644 (file)
@@ -17,8 +17,8 @@
  * limitations under the License.
  */
 
-#include <dali/public-api/common/dali-common.h>
 #include <dali/public-api/object/base-handle.h>
+#include <dali-toolkit/public-api/dali-toolkit-common.h>
 #include <dali-toolkit/devel-api/layouting/layout-group.h>
 #include <dali-toolkit/devel-api/layouting/layout-size.h>
 #include <dali-toolkit/public-api/toolkit-property-index-ranges.h>
old mode 100644 (file)
new mode 100755 (executable)
index fe955a4..2741829
@@ -17,7 +17,7 @@
  */
 
 #include <dali/public-api/object/base-handle.h>
-#include <dali/public-api/common/dali-common.h>
+#include <dali-toolkit/public-api/dali-toolkit-common.h>
 #include <dali-toolkit/public-api/controls/control.h>
 #include <dali-toolkit/devel-api/layouting/layout-item.h>
 #include <dali-toolkit/devel-api/layouting/layout-group.h>
old mode 100644 (file)
new mode 100755 (executable)
index 9d0e684..4962032
@@ -17,7 +17,6 @@
  */
 
 #include <memory>
-#include <dali/public-api/common/dali-common.h>
 #include <dali/public-api/actors/actor-enumerations.h>
 #include <dali-toolkit/devel-api/toolkit-property-index-ranges.h>
 #include <dali-toolkit/devel-api/layouting/layout-item.h>
old mode 100644 (file)
new mode 100755 (executable)
index 5b042c6..fc69e6d
@@ -18,7 +18,7 @@
 
 #include <memory>
 #include <cstdint>
-#include <dali/public-api/common/dali-common.h>
+#include <dali-toolkit/public-api/dali-toolkit-common.h>
 #include <dali/public-api/actors/actor-enumerations.h>
 #include <dali/public-api/object/base-handle.h>
 #include <dali/public-api/object/property-index-ranges.h>
old mode 100644 (file)
new mode 100755 (executable)
index 378464a..ccc23ed
@@ -19,6 +19,7 @@
 
 // EXTERNAL INCLUDES
 #include <sstream>
+#include <dali-toolkit/public-api/dali-toolkit-common.h>
 #include <dali/public-api/common/dali-common.h>
 
 // INTERNAL INCLUDES
old mode 100644 (file)
new mode 100755 (executable)
index f04be0a..5be02ac
@@ -17,7 +17,7 @@
  * limitations under the License.
  */
 
-#include <dali/public-api/common/dali-common.h>
+#include <dali-toolkit/public-api/dali-toolkit-common.h>
 #include <dali-toolkit/devel-api/layouting/layout-length.h>
 #include <dali-toolkit/public-api/dali-toolkit-common.h>
 
index 692e0d8..f2bc15a 100755 (executable)
 #include <dali-toolkit/internal/builder/style.h>
 
 // Warning messages usually displayed
-#define DALI_SCRIPT_WARNING(format, args...) \
-  DALI_LOG_WARNING("Script:" format, ## args)
+#define DALI_SCRIPT_WARNING(format, ...) \
+  DALI_LOG_WARNING("Script:" format, ## __VA_ARGS__)
 
 // Info messages are usually debug build
-#define DALI_SCRIPT_INFO(format, args...) \
-  DALI_LOG_INFO(Dali::Toolkit::Internal::gFilterScript, Debug::General, "Script:" format, ## args)
+#define DALI_SCRIPT_INFO(format, ...) \
+  DALI_LOG_INFO(Dali::Toolkit::Internal::gFilterScript, Debug::General, "Script:" format, ## __VA_ARGS__)
 
 // Info Verbose need to be swiched on in gFilterScript filter constructor (by default set to General)
-#define DALI_SCRIPT_VERBOSE(format, args...) \
-  DALI_LOG_INFO(Dali::Toolkit::Internal::gFilterScript, Debug::Verbose, "Script:" format, ## args)
+#define DALI_SCRIPT_VERBOSE(format, ...) \
+  DALI_LOG_INFO(Dali::Toolkit::Internal::gFilterScript, Debug::Verbose, "Script:" format, ## __VA_ARGS__)
 
 namespace Dali
 {
old mode 100644 (file)
new mode 100755 (executable)
index 55809bd..9138e9b
@@ -35,7 +35,7 @@ namespace Toolkit
 namespace Internal
 {
 extern Animation CreateAnimation( const TreeNode& child, Dali::Toolkit::Internal::Builder* const builder  );
-extern bool DeterminePropertyFromNode( const TreeNode& node, Property::Value& value );
+extern void DeterminePropertyFromNode( const TreeNode& node, Property::Value& value );
 }
 }
 }
index 6725bfb..5e520d8 100755 (executable)
@@ -64,7 +64,8 @@ DALI_TYPE_REGISTRATION_END()
 using namespace Dali;
 
 ImageView::ImageView()
-: Control( ControlBehaviour( CONTROL_BEHAVIOUR_DEFAULT ) )
+: Control( ControlBehaviour( CONTROL_BEHAVIOUR_DEFAULT ) ),
+  mImageSize()
 {
 }
 
@@ -109,7 +110,13 @@ void ImageView::SetImage( Image image )
       mVisual = visual;
     }
 
-    DevelControl::RegisterVisual( *this, Toolkit::ImageView::Property::IMAGE, visual  );
+    if( !mShaderMap.Empty() )
+    {
+      Internal::Visual::Base& visualImpl = Toolkit::GetImplementation( visual );
+      visualImpl.SetCustomShader( mShaderMap );
+    }
+
+    DevelControl::RegisterVisual( *this, Toolkit::ImageView::Property::IMAGE, visual );
   }
   else
   {
@@ -139,6 +146,12 @@ void ImageView::SetImage( const Property::Map& map )
       mVisual = visual;
     }
 
+    if( !mShaderMap.Empty() )
+    {
+      Internal::Visual::Base& visualImpl = Toolkit::GetImplementation( visual );
+      visualImpl.SetCustomShader( mShaderMap );
+    }
+
     DevelControl::RegisterVisual( *this, Toolkit::ImageView::Property::IMAGE, visual  );
   }
   else
@@ -157,6 +170,7 @@ void ImageView::SetImage( const std::string& url, ImageDimensions size )
 {
   // Don't bother comparing if we had a visual previously, just drop old visual and create new one
   mUrl = url;
+  mImageSize = size;
   mImage.Reset();
   mPropertyMap.Clear();
 
@@ -169,6 +183,12 @@ void ImageView::SetImage( const std::string& url, ImageDimensions size )
       mVisual = visual;
     }
 
+    if( !mShaderMap.Empty() )
+    {
+      Internal::Visual::Base& visualImpl = Toolkit::GetImplementation( visual );
+      visualImpl.SetCustomShader( mShaderMap );
+    }
+
     DevelControl::RegisterVisual( *this, Toolkit::ImageView::Property::IMAGE, visual );
   }
   else
@@ -372,19 +392,21 @@ void ImageView::SetProperty( BaseObject* object, Property::Index index, const Pr
               impl.SetImage( *map );
             }
             // the property map contains only the custom shader
-            else if( ( impl.mVisual )&&( map->Count() == 1u )&&( shaderValue ) )
+            else if( ( map->Count() == 1u )&&( shaderValue ) )
             {
-              Property::Map* shaderMap = shaderValue->GetMap();
-              if( shaderMap )
+              impl.mShaderMap = *( shaderValue->GetMap() );
+
+              if( !impl.mUrl.empty() )
+              {
+                impl.SetImage( impl.mUrl, impl.mImageSize );
+              }
+              else if( impl.mImage )
+              {
+                impl.SetImage( impl.mImage );
+              }
+              else if( !impl.mPropertyMap.Empty() )
               {
-                Internal::Visual::Base& visual = Toolkit::GetImplementation( impl.mVisual );
-                visual.SetCustomShader( *shaderMap );
-                if( imageView.OnStage() )
-                {
-                  // force to create new core renderer to use the newly set shader
-                  visual.SetOffStage( imageView );
-                  visual.SetOnStage( imageView );
-                }
+                impl.SetImage( impl.mPropertyMap );
               }
             }
           }
index 32867bf..4f05648 100644 (file)
@@ -166,6 +166,8 @@ private:
   std::string      mUrl;          ///< the url for the image if the image came from a URL, empty otherwise
   Image            mImage;        ///< the Image if the image came from a Image, null otherwise
   Property::Map    mPropertyMap;  ///< the Property::Map if the image came from a Property::Map, empty otherwise
+  Property::Map    mShaderMap;    ///< the Property::Map if the custom shader is set, empty otherwise
+  ImageDimensions  mImageSize;    ///< the image size
 };
 
 } // namespace Internal
index 1bb4d2a..3f8444f 100755 (executable)
@@ -634,7 +634,7 @@ private:
   float mScrollSpeed;
   float mScrollOvershoot;
 
-  Dali::Gesture::State mGestureState    : 3;
+  Dali::Gesture::State mGestureState    : 4;
   bool mAnimatingOvershootOn            : 1;        ///< Whether we are currently animating overshoot to 1.0f/-1.0f (on) or to 0.0f (off)
   bool mAnimateOvershootOff             : 1;        ///< Whether we are currently animating overshoot to 1.0f/-1.0f (on) or to 0.0f (off)
   bool mAnchoringEnabled                : 1;
old mode 100644 (file)
new mode 100755 (executable)
index 163c248..bb83e7d
@@ -41,9 +41,9 @@
 //#define ENABLED_SCROLL_STATE_LOGGING
 
 #ifdef ENABLED_SCROLL_STATE_LOGGING
-#define DALI_LOG_SCROLL_STATE(format, args...) Dali::Integration::Log::LogMessage(Dali::Integration::Log::DebugInfo, "%s:%d " format "\n", __PRETTY_FUNCTION__, __LINE__, ## args)
+#define DALI_LOG_SCROLL_STATE(format, ...) Dali::Integration::Log::LogMessage(Dali::Integration::Log::DebugInfo, "%s:%d " format "\n", __PRETTY_FUNCTION__, __LINE__, ## __VA_ARGS__)
 #else
-#define DALI_LOG_SCROLL_STATE(format, args...)
+#define DALI_LOG_SCROLL_STATE(format, ...)
 #endif
 
 // TODO: Change to two class system:
old mode 100644 (file)
new mode 100755 (executable)
index b5fbb2e..dcd48ce
@@ -264,7 +264,7 @@ private:
 
   Dali::WrapMode::Type mWrapModeU:3;
   Dali::WrapMode::Type mWrapModeV:3;
-  DevelAnimatedImageVisual::Action::Type mActionStatus:2;
+  DevelAnimatedImageVisual::Action::Type mActionStatus:3;
   bool mStartFirstFrame:1;
 };
 
old mode 100644 (file)
new mode 100755 (executable)
index 59d191e..6df17c6
@@ -482,12 +482,12 @@ private:
     TextureManager::TextureHash hash; ///< The hash used to cache this Texture
     float scaleFactor;             ///< The scale factor to apply to the Texture when masking
     int16_t referenceCount;        ///< The reference count of clients using this Texture
-    LoadState loadState:3;         ///< The load state showing the load progress of the Texture
+    LoadState loadState:4;         ///< The load state showing the load progress of the Texture
     FittingMode::Type fittingMode:2; ///< The requested FittingMode
     Dali::SamplingMode::Type samplingMode:3; ///< The requested SamplingMode
-    StorageType storageType:1;     ///< CPU storage / GPU upload;
+    StorageType storageType:2;     ///< CPU storage / GPU upload;
     bool loadSynchronously:1;      ///< True if synchronous loading was requested
-    UseAtlas useAtlas:1;           ///< USE_ATLAS if an atlas was requested.
+    UseAtlas useAtlas:2;           ///< USE_ATLAS if an atlas was requested.
                                    ///< This is updated to false if atlas is not used
     bool cropToMask:1;             ///< true if the image should be cropped to the mask size.
     bool orientationCorrection:1;  ///< true if the image should be rotated to match exif orientation data
index 56f3927..d16ef81 100755 (executable)
 #    define DALI_TOOLKIT_API __attribute__ ((visibility ("default")))
 #  endif
 #else
+#ifdef WIN32
+#ifdef BUILDING_DALI_TOOLKIT
+/** Visibility attribute to hide declarations */
+#  define DALI_TOOLKIT_API __declspec(dllexport)
+#else
+/** Visibility attribute to hide declarations */
+#  define DALI_TOOLKIT_API __declspec(dllimport)
+#endif
+#else
 /** Visibility attribute to show declarations */
 #  define DALI_TOOLKIT_API
 #endif
+#endif
 
 #endif // DALI_TOOLKIT_COMMON_H
index f497b96..ba215d8 100644 (file)
@@ -31,7 +31,7 @@ namespace Toolkit
 
 const unsigned int TOOLKIT_MAJOR_VERSION = 1;
 const unsigned int TOOLKIT_MINOR_VERSION = 3;
-const unsigned int TOOLKIT_MICRO_VERSION = 42;
+const unsigned int TOOLKIT_MICRO_VERSION = 44;
 const char * const TOOLKIT_BUILD_DATE    = __DATE__ " " __TIME__;
 
 #ifdef DEBUG_ENABLED
index e515a73..b94511e 100644 (file)
@@ -1,6 +1,6 @@
 Name:       dali-toolkit
 Summary:    Dali 3D engine Toolkit
-Version:    1.3.42
+Version:    1.3.44
 Release:    1
 Group:      System/Libraries
 License:    Apache-2.0 and BSD-3-Clause and MIT