From 9761eb9aa92da3580f0560bada61a168214a7642 Mon Sep 17 00:00:00 2001 From: taeyoon Date: Mon, 22 Aug 2016 16:05:55 +0900 Subject: [PATCH] [3.0] Version downgrade (1.2.0 to 1.1.45) Final integration work for tizen 3.0 merged 1.2.0 in tizen branch. 1.2.0 already includes new features (Public-APIs) for next tizen release. For tizen 3.0, we downgrade tizen branch to 1.1.45. This reverts commit 3daf6de364bc2f66277f6a0fb7eab33973368a13. Revert "Updated demos to remove indicator where appropriate" This reverts commit 68084ad1ce68796f9ae1db1cd6692ffaa5d5e3c9. Revert "Moved po directory to resources folder & added missing language strings" This reverts commit c83f64b6a2d71d988d4a3299507d2d1277166d8c. Revert "Batching clean-up" This reverts commit 799c9609fbd3526e10f180537d35c9391163ff04. Revert "Updated internationalized strings" This reverts commit a209b08efcae2a931cf49df65b44577bcff04872. Revert "Geometry Batching" This reverts commit 28854be72245e7687daa98e0e2e117d2f669154e. Revert "Stencil Renderer demo: Toolbar removed" This reverts commit 58d399c7397a4574dfbfd74793c27ae0ffc1fb65. Revert "TextEditor - Update the decoration box's size." This reverts commit a9263c8380f4df40f72d4a084da6b54d676ad5bd. Revert "Mesh demo improvements for lighting." This reverts commit 19369b28e77acb7d31e72bae8a35a6a1d8456729. Change-Id: Idbfcf27432b2e9d9f1e6a1472c649575740508fe --- build/tizen/.gitignore | 1 - build/tizen/CMakeLists.txt | 36 +- build/tizen/demo/CMakeLists.txt | 23 + demo/file.list | 25 + demo/po/as.po | 50 ++ demo/po/de.po | 50 ++ demo/po/en.po | 50 ++ demo/po/en_GB.po | 50 ++ demo/po/en_US.po | 50 ++ demo/po/es.po | 50 ++ demo/po/ko.po | 50 ++ demo/po/ml.po | 50 ++ demo/po/ur.po | 50 ++ demo/po/zn_CH.po | 50 ++ examples/blocks/blocks-example.cpp | 3 - .../homescreen-benchmark/homescreen-benchmark.cpp | 602 +++++++++++++++------ .../image-scaling-and-filtering-example.cpp | 3 - examples/image-view-svg/image-view-svg-example.cpp | 3 - examples/mesh-visual/mesh-visual-example.cpp | 260 +++------ .../native-image-source-example.cpp | 4 - examples/page-turn-view/page-turn-view-example.cpp | 3 - .../primitive-shapes/primitive-shapes-example.cpp | 3 - .../renderer-stencil/renderer-stencil-example.cpp | 30 +- examples/text-editor/text-editor-example.cpp | 7 - examples/text-field/text-field-example.cpp | 3 - examples/tilt/tilt-example.cpp | 18 - packaging/com.samsung.dali-demo.spec | 6 +- resources/images/light-icon.png | Bin 117572 -> 0 bytes resources/po/as.po | 131 ----- resources/po/de.po | 131 ----- resources/po/en.po | 1 - resources/po/en_GB.po | 131 ----- resources/po/en_US.po | 131 ----- resources/po/es.po | 131 ----- resources/po/ko.po | 131 ----- resources/po/ml.po | 131 ----- resources/po/ur.po | 131 ----- resources/po/zn_CH.po | 131 ----- shared/dali-demo-strings.h | 167 +++--- shared/view.h | 3 - 40 files changed, 1150 insertions(+), 1730 deletions(-) create mode 100644 demo/file.list create mode 100755 demo/po/as.po create mode 100755 demo/po/de.po create mode 100755 demo/po/en.po create mode 100755 demo/po/en_GB.po create mode 100755 demo/po/en_US.po create mode 100644 demo/po/es.po create mode 100755 demo/po/ko.po create mode 100755 demo/po/ml.po create mode 100644 demo/po/ur.po create mode 100755 demo/po/zn_CH.po delete mode 100644 resources/images/light-icon.png delete mode 100755 resources/po/as.po delete mode 100755 resources/po/de.po delete mode 120000 resources/po/en.po delete mode 100755 resources/po/en_GB.po delete mode 100755 resources/po/en_US.po delete mode 100755 resources/po/es.po delete mode 100755 resources/po/ko.po delete mode 100755 resources/po/ml.po delete mode 100755 resources/po/ur.po delete mode 100755 resources/po/zn_CH.po diff --git a/build/tizen/.gitignore b/build/tizen/.gitignore index 9425618..bc56788 100644 --- a/build/tizen/.gitignore +++ b/build/tizen/.gitignore @@ -10,4 +10,3 @@ install_manifest.txt /docs/dali.doxy /builder/dali-builder /examples/*.demo -/mo diff --git a/build/tizen/CMakeLists.txt b/build/tizen/CMakeLists.txt index 75b8a55..11b2fec 100644 --- a/build/tizen/CMakeLists.txt +++ b/build/tizen/CMakeLists.txt @@ -101,45 +101,11 @@ ENDFOREACH(flag) SET(DALI_DEMO_CFLAGS "-DDEMO_IMAGE_DIR=${DEMO_IMAGE_DIR} -DDEMO_VIDEO_DIR=${DEMO_VIDEO_DIR} -DDEMO_MODEL_DIR=${DEMO_MODEL_DIR} -DDEMO_SCRIPT_DIR=${DEMO_SCRIPT_DIR} -DDEMO_THEME_PATH=${DEMO_THEME_PATH} -DDEMO_EXAMPLE_BIN=${DEMO_EXAMPLE_BIN} -DDEMO_LOCALE_DIR=${DEMO_LOCALE_DIR} -fvisibility=hidden -DHIDE_DALI_INTERNALS -DDEMO_LANG=${DEMO_LANG}") -########################################################################### -# Internationalization - -SET(PO_DIR ${RESOURCE_DIR}/po) - -FILE(GLOB PO_FILES RELATIVE "${PO_DIR}" "${PO_DIR}/*.po") - -SET(MSGFMT "/usr/bin/msgfmt") -SET(MO_FILES_DIR ${CMAKE_BINARY_DIR}/mo) -FILE(MAKE_DIRECTORY ${MO_FILES_DIR}) - -FOREACH(PO_FILE ${PO_FILES}) - SET(PO_FILE ${PO_DIR}/${PO_FILE}) - MESSAGE("PO: ${PO_FILE}") - GET_FILENAME_COMPONENT(ABS_PO_FILE ${PO_FILE} ABSOLUTE) - GET_FILENAME_COMPONENT(lang ${ABS_PO_FILE} NAME_WE) - SET(MO_FILE ${MO_FILES_DIR}/${lang}.mo) - ADD_CUSTOM_COMMAND(OUTPUT ${MO_FILE} - COMMAND ${MSGFMT} -o ${MO_FILE} ${ABS_PO_FILE} - DEPENDS ${ABS_PO_FILE}) - INSTALL(FILES ${MO_FILE} DESTINATION ${LOCALE_DIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo) - SET(MO_FILES ${MO_FILES} ${MO_FILE}) -ENDFOREACH(PO_FILE) - -MESSAGE(".mo files: ${MO_FILES}") -ADD_CUSTOM_TARGET(po ALL DEPENDS ${MO_FILES}) - -OPTION(INTERNATIONALIZATION "Internationalization demo string names" ON) -IF (INTERNATIONALIZATION) - SET(DALI_DEMO_CFLAGS "${DALI_DEMO_CFLAGS} -DINTERNATIONALIZATION_ENABLED") -ENDIF(INTERNATIONALIZATION) - -########################################################################### - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${REQUIRED_CFLAGS} ${DALI_DEMO_CFLAGS} -Werror -Wall -fPIE") SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}") INCLUDE_DIRECTORIES(${ROOT_SRC_DIR}) -#INCLUDE_DIRECTORIES(${DEMO_SRC_DIR}) +INCLUDE_DIRECTORIES(${DEMO_SRC_DIR}) ADD_SUBDIRECTORY(demo) ADD_SUBDIRECTORY(examples) diff --git a/build/tizen/demo/CMakeLists.txt b/build/tizen/demo/CMakeLists.txt index affd620..227bc50 100644 --- a/build/tizen/demo/CMakeLists.txt +++ b/build/tizen/demo/CMakeLists.txt @@ -7,3 +7,26 @@ TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${REQUIRED_PKGS_LDFLAGS} -pie) INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR}) +# Internationalization + +SET(PO_DIR ${DEMO_SRC_DIR}/po) + +FILE(GLOB PO_FILES RELATIVE "${PO_DIR}" "${PO_DIR}/*.po") + +SET(MSGFMT "/usr/bin/msgfmt") + +FOREACH(PO_FILE ${PO_FILES}) + SET(PO_FILE ${PO_DIR}/${PO_FILE}) + MESSAGE("PO: ${PO_FILE}") + GET_FILENAME_COMPONENT(ABS_PO_FILE ${PO_FILE} ABSOLUTE) + GET_FILENAME_COMPONENT(lang ${ABS_PO_FILE} NAME_WE) + SET(MO_FILE ${PO_DIR}/${lang}.mo) + ADD_CUSTOM_COMMAND(OUTPUT ${MO_FILE} + COMMAND ${MSGFMT} -o ${MO_FILE} ${ABS_PO_FILE} + DEPENDS ${ABS_PO_FILE}) + INSTALL(FILES ${MO_FILE} DESTINATION ${LOCALE_DIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo) + SET(MO_FILES ${MO_FILES} ${MO_FILE}) +ENDFOREACH(PO_FILE) + +MESSAGE(".mo files: ${MO_FILES}") +ADD_CUSTOM_TARGET(po ALL DEPENDS ${MO_FILES}) diff --git a/demo/file.list b/demo/file.list new file mode 100644 index 0000000..c64143a --- /dev/null +++ b/demo/file.list @@ -0,0 +1,25 @@ +# Add files to build with demo here + +common_src_files = \ + $(demo_src_dir)/dali-table-view.cpp + +demo_src_files = \ + $(common_src_files) \ + $(demo_src_dir)/dali-demo.cpp + +# Add files to install here + +demo_image_files = \ + $(demo_src_dir)/images/*.png \ + $(demo_src_dir)/images/*.jpg \ + $(demo_src_dir)/images/*.gif \ + $(demo_src_dir)/images/*.bmp \ + $(demo_src_dir)/images/*.ico \ + $(demo_src_dir)/images/*.wbmp \ + $(demo_src_dir)/images/*.svg + +demo_model_files = \ + $(demo_src_dir)/models/* + +demo_script_files = \ + $(demo_src_dir)/scripts/* diff --git a/demo/po/as.po b/demo/po/as.po new file mode 100755 index 0000000..8dfe3d0 --- /dev/null +++ b/demo/po/as.po @@ -0,0 +1,50 @@ +msgid "DALI_DEMO_STR_TITLE_BUBBLES" +msgstr "বেলুন" + +msgid "DALI_DEMO_STR_TITLE_BLOCKS" +msgstr "অৱৰুদ্ধ কৰক" + +msgid "DALI_DEMO_STR_TITLE_CLUSTER" +msgstr "থুপ" + +msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION" +msgstr "ঘনক পৰিৱৰ্তনীয় প্ৰভাৱ" + +msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION" +msgstr "পৰিৱৰ্তনীয় প্ৰভাৱ" + +msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW" +msgstr "আইটেম দর্শন" + +msgid "DALI_DEMO_STR_TITLE_MAGNIFIER" +msgstr "পৰিবৰ্দ্ধক" + +msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR" +msgstr "অস্পষ্ট" + +msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH" +msgstr "বিস্তাৰ" + +msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW" +msgstr "পৃষ্ঠা লেআউট" + +msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU" +msgstr "ৰেডিয়েল নক্সা" + +msgid "DALI_DEMO_STR_TITLE_REFRACTION" +msgstr "প্ৰতিফলিত কৰক" + +msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW" +msgstr "স্ক্ৰ'ল কৰক" + +msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS" +msgstr "ছাঁয়া" + +msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI" +msgstr "লিপি" + +msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING" +msgstr "প্ৰতিচ্ছবি স্কেল কৰক" + +msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL" +msgstr "লেৱেল কৰক" diff --git a/demo/po/de.po b/demo/po/de.po new file mode 100755 index 0000000..e75f9de --- /dev/null +++ b/demo/po/de.po @@ -0,0 +1,50 @@ +msgid "DALI_DEMO_STR_TITLE_BUBBLES" +msgstr "Schaumbildung" + +msgid "DALI_DEMO_STR_TITLE_BLOCKS" +msgstr "Blöcke" + +msgid "DALI_DEMO_STR_TITLE_CLUSTER" +msgstr "Cluster" + +msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION" +msgstr "Würfel Übergangseffekt" + +msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION" +msgstr "Auflösen Übergangseffekt" + +msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW" +msgstr "Item-Ansicht" + +msgid "DALI_DEMO_STR_TITLE_MAGNIFIER" +msgstr "Bildschirmlupe" + +msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR" +msgstr "Bewegungsunschärfe" + +msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH" +msgstr "Bewegung Strecke" + +msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW" +msgstr "Seite wechseln" + +msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU" +msgstr "Radialmenü" + +msgid "DALI_DEMO_STR_TITLE_REFRACTION" +msgstr "Brechung" + +msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW" +msgstr "Scroll-Ansicht" + +msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS" +msgstr "Licht und Schatten" + +msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI" +msgstr "Scripting" + +msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING" +msgstr "Bildskalierung" + +msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL" +msgstr "Beschriftung" diff --git a/demo/po/en.po b/demo/po/en.po new file mode 100755 index 0000000..a2ec3fa --- /dev/null +++ b/demo/po/en.po @@ -0,0 +1,50 @@ +msgid "DALI_DEMO_STR_TITLE_BUBBLES" +msgstr "Bubbles" + +msgid "DALI_DEMO_STR_TITLE_BLOCKS" +msgstr "Blocks" + +msgid "DALI_DEMO_STR_TITLE_CLUSTER" +msgstr "Cluster" + +msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION" +msgstr "Cube Transition" + +msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION" +msgstr "Dissolve Transition" + +msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW" +msgstr "Item View" + +msgid "DALI_DEMO_STR_TITLE_MAGNIFIER" +msgstr "Magnifier" + +msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR" +msgstr "Motion Blur" + +msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH" +msgstr "Motion Stretch" + +msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW" +msgstr "Page Turn View" + +msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU" +msgstr "Radial Menu" + +msgid "DALI_DEMO_STR_TITLE_REFRACTION" +msgstr "Refraction" + +msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW" +msgstr "Scroll View" + +msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS" +msgstr "Lights and shadows" + +msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI" +msgstr "Script Based UI" + +msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING" +msgstr "Image Scaling Modes" + +msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL" +msgstr "Text Label" diff --git a/demo/po/en_GB.po b/demo/po/en_GB.po new file mode 100755 index 0000000..a2ec3fa --- /dev/null +++ b/demo/po/en_GB.po @@ -0,0 +1,50 @@ +msgid "DALI_DEMO_STR_TITLE_BUBBLES" +msgstr "Bubbles" + +msgid "DALI_DEMO_STR_TITLE_BLOCKS" +msgstr "Blocks" + +msgid "DALI_DEMO_STR_TITLE_CLUSTER" +msgstr "Cluster" + +msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION" +msgstr "Cube Transition" + +msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION" +msgstr "Dissolve Transition" + +msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW" +msgstr "Item View" + +msgid "DALI_DEMO_STR_TITLE_MAGNIFIER" +msgstr "Magnifier" + +msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR" +msgstr "Motion Blur" + +msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH" +msgstr "Motion Stretch" + +msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW" +msgstr "Page Turn View" + +msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU" +msgstr "Radial Menu" + +msgid "DALI_DEMO_STR_TITLE_REFRACTION" +msgstr "Refraction" + +msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW" +msgstr "Scroll View" + +msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS" +msgstr "Lights and shadows" + +msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI" +msgstr "Script Based UI" + +msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING" +msgstr "Image Scaling Modes" + +msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL" +msgstr "Text Label" diff --git a/demo/po/en_US.po b/demo/po/en_US.po new file mode 100755 index 0000000..a2ec3fa --- /dev/null +++ b/demo/po/en_US.po @@ -0,0 +1,50 @@ +msgid "DALI_DEMO_STR_TITLE_BUBBLES" +msgstr "Bubbles" + +msgid "DALI_DEMO_STR_TITLE_BLOCKS" +msgstr "Blocks" + +msgid "DALI_DEMO_STR_TITLE_CLUSTER" +msgstr "Cluster" + +msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION" +msgstr "Cube Transition" + +msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION" +msgstr "Dissolve Transition" + +msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW" +msgstr "Item View" + +msgid "DALI_DEMO_STR_TITLE_MAGNIFIER" +msgstr "Magnifier" + +msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR" +msgstr "Motion Blur" + +msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH" +msgstr "Motion Stretch" + +msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW" +msgstr "Page Turn View" + +msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU" +msgstr "Radial Menu" + +msgid "DALI_DEMO_STR_TITLE_REFRACTION" +msgstr "Refraction" + +msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW" +msgstr "Scroll View" + +msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS" +msgstr "Lights and shadows" + +msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI" +msgstr "Script Based UI" + +msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING" +msgstr "Image Scaling Modes" + +msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL" +msgstr "Text Label" diff --git a/demo/po/es.po b/demo/po/es.po new file mode 100644 index 0000000..179a69e --- /dev/null +++ b/demo/po/es.po @@ -0,0 +1,50 @@ +msgid "DALI_DEMO_STR_TITLE_BUBBLES" +msgstr "Burbujas" + +msgid "DALI_DEMO_STR_TITLE_BLOCKS" +msgstr "Bloques" + +msgid "DALI_DEMO_STR_TITLE_CLUSTER" +msgstr "Agrupación" + +msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION" +msgstr "Transición cubos" + +msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION" +msgstr "Transición disolver" + +msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW" +msgstr "Vista de elementos" + +msgid "DALI_DEMO_STR_TITLE_MAGNIFIER" +msgstr "Lupa" + +msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR" +msgstr "Desenfoque de movimiento" + +msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH" +msgstr "Movimiento con deformación" + +msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW" +msgstr "Vista de páginas" + +msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU" +msgstr "Menú radial" + +msgid "DALI_DEMO_STR_TITLE_REFRACTION" +msgstr "Refracción" + +msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW" +msgstr "Vista de desplazamiento" + +msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS" +msgstr "Luces y sombras" + +msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI" +msgstr "Interfaz definida por Script" + +msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING" +msgstr "Modos de escalado de imagen" + +msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL" +msgstr "Etiqueta de texto" diff --git a/demo/po/ko.po b/demo/po/ko.po new file mode 100755 index 0000000..78f5987 --- /dev/null +++ b/demo/po/ko.po @@ -0,0 +1,50 @@ +msgid "DALI_DEMO_STR_TITLE_BUBBLES" +msgstr "방울" + +msgid "DALI_DEMO_STR_TITLE_BLOCKS" +msgstr "블록" + +msgid "DALI_DEMO_STR_TITLE_CLUSTER" +msgstr "클러스터" + +msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION" +msgstr "입방체 전환" + +msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION" +msgstr "디졸브 전환" + +msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW" +msgstr "아이템 뷰" + +msgid "DALI_DEMO_STR_TITLE_MAGNIFIER" +msgstr "돋보기" + +msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR" +msgstr "모션 블러" + +msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH" +msgstr "늘이기" + +msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW" +msgstr "책장 넘기기" + +msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU" +msgstr "레이디 얼 메뉴" + +msgid "DALI_DEMO_STR_TITLE_REFRACTION" +msgstr "굴절 효과" + +msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW" +msgstr "스크롤 뷰" + +msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS" +msgstr "빛과 그림자" + +msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI" +msgstr "스크립팅" + +msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING" +msgstr "이미지 확대" + +msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL" +msgstr "텍스트 라벨" diff --git a/demo/po/ml.po b/demo/po/ml.po new file mode 100755 index 0000000..90049da --- /dev/null +++ b/demo/po/ml.po @@ -0,0 +1,50 @@ +msgid "DALI_DEMO_STR_TITLE_BUBBLES" +msgstr "കുമിള" + +msgid "DALI_DEMO_STR_TITLE_BLOCKS" +msgstr "തടയപ്പെട്ട" + +msgid "DALI_DEMO_STR_TITLE_CLUSTER" +msgstr "ക്ലസ്റ്റര്" + +msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION" +msgstr "സമചതുരക്കട്ട സംക്രമണ ഇഫക്ട്" + +msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION" +msgstr "സ്ഥാനാന്തരം സംക്രമണ ഇഫക്ട്" + +msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW" +msgstr "ഇനം കാഴ്ച" + +msgid "DALI_DEMO_STR_TITLE_MAGNIFIER" +msgstr "ഭൂതക്കണ്ണാടി" + +msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR" +msgstr "അവ്യക്തമാക്കല്" + +msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH" +msgstr "സ്ട്രെച്ച്" + +msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW" +msgstr "പേജ് ലേഔട്ട്" + +msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU" +msgstr "റേഡിയല് രേഖാചിത്രം" + +msgid "DALI_DEMO_STR_TITLE_REFRACTION" +msgstr "പ്രതിഫലിക്കുക" + +msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW" +msgstr "സ്ക്രോള്ചെയ്യുക കാഴ്ച" + +msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS" +msgstr "നിഴല്" + +msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI" +msgstr "സ്ക്രിപ്റ്റ്" + +msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING" +msgstr "ഇമേജിംഗ്" + +msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL" +msgstr "ലേബലുചെയ്യുക" diff --git a/demo/po/ur.po b/demo/po/ur.po new file mode 100644 index 0000000..b2c3302 --- /dev/null +++ b/demo/po/ur.po @@ -0,0 +1,50 @@ +msgid "DALI_DEMO_STR_TITLE_BUBBLES" +msgstr "بلبلے" + +msgid "DALI_DEMO_STR_TITLE_BLOCKS" +msgstr "اینٹیں" + +msgid "DALI_DEMO_STR_TITLE_CLUSTER" +msgstr "کلسٹر" + +msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION" +msgstr "کیوب منتقلی" + +msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION" +msgstr "حل منتقلی" + +msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW" +msgstr "چیزوں کی فہرست" + +msgid "DALI_DEMO_STR_TITLE_MAGNIFIER" +msgstr "مکبر" + +msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR" +msgstr "دھندلانے کی حرکت" + +msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH" +msgstr "کھینچھنے کی حرکت" + +msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW" +msgstr "کتاب" + +msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU" +msgstr "ریڈیل مینو" + +msgid "DALI_DEMO_STR_TITLE_REFRACTION" +msgstr "رفراکشن" + +msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW" +msgstr "سکرول ویو" + +msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS" +msgstr "روشنی اور سائے" + +msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI" +msgstr "سکرپٹ" + +msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING" +msgstr "تصویر پیمائی" + +msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL" +msgstr "لیبل" diff --git a/demo/po/zn_CH.po b/demo/po/zn_CH.po new file mode 100755 index 0000000..f136c4b --- /dev/null +++ b/demo/po/zn_CH.po @@ -0,0 +1,50 @@ +msgid "DALI_DEMO_STR_TITLE_BUBBLES" +msgstr "气泡" + +msgid "DALI_DEMO_STR_TITLE_BLOCKS" +msgstr "块体" + +msgid "DALI_DEMO_STR_TITLE_CLUSTER" +msgstr "叢集" + +msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION" +msgstr "方块 切换效果" + +msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION" +msgstr "冰消瓦解 切换效果" + +msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW" +msgstr "項目 檢視" + +msgid "DALI_DEMO_STR_TITLE_MAGNIFIER" +msgstr "放大鏡" + +msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR" +msgstr "动作 模糊" + +msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH" +msgstr "动作 拉伸" + +msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW" +msgstr "页面" + +msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU" +msgstr "射线图" + +msgid "DALI_DEMO_STR_TITLE_REFRACTION" +msgstr "折光" + +msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW" +msgstr "捲動" + +msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS" +msgstr "阴影" + +msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI" +msgstr "指令檔" + +msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING" +msgstr "图像 制定級數" + +msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL" +msgstr "标签" diff --git a/examples/blocks/blocks-example.cpp b/examples/blocks/blocks-example.cpp index 03a99e6..28eb286 100644 --- a/examples/blocks/blocks-example.cpp +++ b/examples/blocks/blocks-example.cpp @@ -228,9 +228,6 @@ public: { Stage::GetCurrent().KeyEventSignal().Connect(this, &ExampleController::OnKeyEvent); - // Hide the indicator bar - application.GetWindow().ShowIndicator( Dali::Window::INVISIBLE ); - // Creates a default view with a default tool bar. // The view is added to the stage. Toolkit::ToolBar toolBar; diff --git a/examples/homescreen-benchmark/homescreen-benchmark.cpp b/examples/homescreen-benchmark/homescreen-benchmark.cpp index 8e04e44..da33200 100644 --- a/examples/homescreen-benchmark/homescreen-benchmark.cpp +++ b/examples/homescreen-benchmark/homescreen-benchmark.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. + * 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. @@ -15,9 +15,8 @@ * */ -// EXTERNAL INCLUDES #include -#include + #include using namespace Dali; @@ -25,54 +24,319 @@ using Dali::Toolkit::TextLabel; namespace { - -const char* IMAGE_PATH_PREFIX ( DEMO_IMAGE_DIR "application-icon-" ); -const char* IMAGE_PATH_POSTFIX ( ".png" ); -const int TOTAL_ICON_DEFINITIONS ( 147 ); - -const char* BACKGROUND_IMAGE ( DEMO_IMAGE_DIR "background-3.jpg" ); -const float PAGE_SCALE_FACTOR_X ( 0.95f ); -const float PAGE_SCALE_FACTOR_Y ( 0.95f ); -const float PAGE_DURATION_SCALE_FACTOR ( 10.0f ); ///< Time-scale factor, larger = animation is slower - -const float DEFAULT_OPT_ROW_COUNT ( 5 ); -const float DEFAULT_OPT_COL_COUNT ( 4 ); -const float DEFAULT_OPT_PAGE_COUNT ( 10 ); -const bool DEFAULT_OPT_USE_TABLEVIEW ( true ); -const bool DEFAULT_OPT_BATCHING_ENABLED ( true ); -const bool DEFAULT_OPT_ICON_LABELS ( true ); - -// The image/label area tries to make sure the positioning will be relative to previous sibling -const float IMAGE_AREA ( 0.60f ); -const float LABEL_AREA ( 0.50f ); +const char* IMAGE_PATH[] = { + DEMO_IMAGE_DIR "application-icon-0.png", + DEMO_IMAGE_DIR "application-icon-100.png", + DEMO_IMAGE_DIR "application-icon-101.png", + DEMO_IMAGE_DIR "application-icon-102.png", + DEMO_IMAGE_DIR "application-icon-103.png", + DEMO_IMAGE_DIR "application-icon-104.png", + DEMO_IMAGE_DIR "application-icon-105.png", + DEMO_IMAGE_DIR "application-icon-106.png", + DEMO_IMAGE_DIR "application-icon-107.png", + DEMO_IMAGE_DIR "application-icon-108.png", + DEMO_IMAGE_DIR "application-icon-109.png", + DEMO_IMAGE_DIR "application-icon-10.png", + DEMO_IMAGE_DIR "application-icon-110.png", + DEMO_IMAGE_DIR "application-icon-111.png", + DEMO_IMAGE_DIR "application-icon-112.png", + DEMO_IMAGE_DIR "application-icon-113.png", + DEMO_IMAGE_DIR "application-icon-114.png", + DEMO_IMAGE_DIR "application-icon-115.png", + DEMO_IMAGE_DIR "application-icon-116.png", + DEMO_IMAGE_DIR "application-icon-117.png", + DEMO_IMAGE_DIR "application-icon-118.png", + DEMO_IMAGE_DIR "application-icon-119.png", + DEMO_IMAGE_DIR "application-icon-11.png", + DEMO_IMAGE_DIR "application-icon-120.png", + DEMO_IMAGE_DIR "application-icon-121.png", + DEMO_IMAGE_DIR "application-icon-122.png", + DEMO_IMAGE_DIR "application-icon-123.png", + DEMO_IMAGE_DIR "application-icon-124.png", + DEMO_IMAGE_DIR "application-icon-125.png", + DEMO_IMAGE_DIR "application-icon-126.png", + DEMO_IMAGE_DIR "application-icon-127.png", + DEMO_IMAGE_DIR "application-icon-128.png", + DEMO_IMAGE_DIR "application-icon-129.png", + DEMO_IMAGE_DIR "application-icon-12.png", + DEMO_IMAGE_DIR "application-icon-130.png", + DEMO_IMAGE_DIR "application-icon-131.png", + DEMO_IMAGE_DIR "application-icon-132.png", + DEMO_IMAGE_DIR "application-icon-133.png", + DEMO_IMAGE_DIR "application-icon-134.png", + DEMO_IMAGE_DIR "application-icon-135.png", + DEMO_IMAGE_DIR "application-icon-136.png", + DEMO_IMAGE_DIR "application-icon-137.png", + DEMO_IMAGE_DIR "application-icon-138.png", + DEMO_IMAGE_DIR "application-icon-139.png", + DEMO_IMAGE_DIR "application-icon-13.png", + DEMO_IMAGE_DIR "application-icon-140.png", + DEMO_IMAGE_DIR "application-icon-141.png", + DEMO_IMAGE_DIR "application-icon-142.png", + DEMO_IMAGE_DIR "application-icon-143.png", + DEMO_IMAGE_DIR "application-icon-144.png", + DEMO_IMAGE_DIR "application-icon-145.png", + DEMO_IMAGE_DIR "application-icon-146.png", + DEMO_IMAGE_DIR "application-icon-147.png", + DEMO_IMAGE_DIR "application-icon-14.png", + DEMO_IMAGE_DIR "application-icon-15.png", + DEMO_IMAGE_DIR "application-icon-16.png", + DEMO_IMAGE_DIR "application-icon-17.png", + DEMO_IMAGE_DIR "application-icon-18.png", + DEMO_IMAGE_DIR "application-icon-19.png", + DEMO_IMAGE_DIR "application-icon-1.png", + DEMO_IMAGE_DIR "application-icon-20.png", + DEMO_IMAGE_DIR "application-icon-21.png", + DEMO_IMAGE_DIR "application-icon-22.png", + DEMO_IMAGE_DIR "application-icon-23.png", + DEMO_IMAGE_DIR "application-icon-24.png", + DEMO_IMAGE_DIR "application-icon-25.png", + DEMO_IMAGE_DIR "application-icon-26.png", + DEMO_IMAGE_DIR "application-icon-27.png", + DEMO_IMAGE_DIR "application-icon-28.png", + DEMO_IMAGE_DIR "application-icon-29.png", + DEMO_IMAGE_DIR "application-icon-2.png", + DEMO_IMAGE_DIR "application-icon-30.png", + DEMO_IMAGE_DIR "application-icon-31.png", + DEMO_IMAGE_DIR "application-icon-32.png", + DEMO_IMAGE_DIR "application-icon-33.png", + DEMO_IMAGE_DIR "application-icon-34.png", + DEMO_IMAGE_DIR "application-icon-35.png", + DEMO_IMAGE_DIR "application-icon-36.png", + DEMO_IMAGE_DIR "application-icon-37.png", + DEMO_IMAGE_DIR "application-icon-38.png", + DEMO_IMAGE_DIR "application-icon-39.png", + DEMO_IMAGE_DIR "application-icon-3.png", + DEMO_IMAGE_DIR "application-icon-40.png", + DEMO_IMAGE_DIR "application-icon-41.png", + DEMO_IMAGE_DIR "application-icon-42.png", + DEMO_IMAGE_DIR "application-icon-43.png", + DEMO_IMAGE_DIR "application-icon-44.png", + DEMO_IMAGE_DIR "application-icon-45.png", + DEMO_IMAGE_DIR "application-icon-46.png", + DEMO_IMAGE_DIR "application-icon-47.png", + DEMO_IMAGE_DIR "application-icon-48.png", + DEMO_IMAGE_DIR "application-icon-49.png", + DEMO_IMAGE_DIR "application-icon-4.png", + DEMO_IMAGE_DIR "application-icon-50.png", + DEMO_IMAGE_DIR "application-icon-51.png", + DEMO_IMAGE_DIR "application-icon-52.png", + DEMO_IMAGE_DIR "application-icon-53.png", + DEMO_IMAGE_DIR "application-icon-54.png", + DEMO_IMAGE_DIR "application-icon-55.png", + DEMO_IMAGE_DIR "application-icon-56.png", + DEMO_IMAGE_DIR "application-icon-57.png", + DEMO_IMAGE_DIR "application-icon-58.png", + DEMO_IMAGE_DIR "application-icon-59.png", + DEMO_IMAGE_DIR "application-icon-5.png", + DEMO_IMAGE_DIR "application-icon-60.png", + DEMO_IMAGE_DIR "application-icon-61.png", + DEMO_IMAGE_DIR "application-icon-62.png", + DEMO_IMAGE_DIR "application-icon-63.png", + DEMO_IMAGE_DIR "application-icon-64.png", + DEMO_IMAGE_DIR "application-icon-65.png", + DEMO_IMAGE_DIR "application-icon-66.png", + DEMO_IMAGE_DIR "application-icon-67.png", + DEMO_IMAGE_DIR "application-icon-68.png", + DEMO_IMAGE_DIR "application-icon-69.png", + DEMO_IMAGE_DIR "application-icon-6.png", + DEMO_IMAGE_DIR "application-icon-70.png", + DEMO_IMAGE_DIR "application-icon-71.png", + DEMO_IMAGE_DIR "application-icon-72.png", + DEMO_IMAGE_DIR "application-icon-73.png", + DEMO_IMAGE_DIR "application-icon-74.png", + DEMO_IMAGE_DIR "application-icon-75.png", + DEMO_IMAGE_DIR "application-icon-76.png", + DEMO_IMAGE_DIR "application-icon-77.png", + DEMO_IMAGE_DIR "application-icon-78.png", + DEMO_IMAGE_DIR "application-icon-79.png", + DEMO_IMAGE_DIR "application-icon-7.png", + DEMO_IMAGE_DIR "application-icon-80.png", + DEMO_IMAGE_DIR "application-icon-81.png", + DEMO_IMAGE_DIR "application-icon-82.png", + DEMO_IMAGE_DIR "application-icon-83.png", + DEMO_IMAGE_DIR "application-icon-84.png", + DEMO_IMAGE_DIR "application-icon-85.png", + DEMO_IMAGE_DIR "application-icon-86.png", + DEMO_IMAGE_DIR "application-icon-87.png", + DEMO_IMAGE_DIR "application-icon-88.png", + DEMO_IMAGE_DIR "application-icon-89.png", + DEMO_IMAGE_DIR "application-icon-8.png", + DEMO_IMAGE_DIR "application-icon-90.png", + DEMO_IMAGE_DIR "application-icon-91.png", + DEMO_IMAGE_DIR "application-icon-92.png", + DEMO_IMAGE_DIR "application-icon-93.png", + DEMO_IMAGE_DIR "application-icon-94.png", + DEMO_IMAGE_DIR "application-icon-95.png", + DEMO_IMAGE_DIR "application-icon-96.png", + DEMO_IMAGE_DIR "application-icon-97.png", + DEMO_IMAGE_DIR "application-icon-98.png", + DEMO_IMAGE_DIR "application-icon-99.png", + DEMO_IMAGE_DIR "application-icon-9.png", + NULL +}; /** - * Random words used as unique application names. - * The number matches the value of TOTAL_ICON_DEFINITIONS. + * Random words used as unique application names */ const char* DEMO_APPS_NAMES[] = { - "Achdyer", "Aughm", "Cerl", "Daril", "Emgha", "Ghatan", "Issum", "Lertan", "Mosorrad", - "Achtortor", "Aughtheryer", "Certin", "Darpban", "Emiton", "Gibanis", "Itenthbel", "Liadem", "Mosraye", - "Ackirlor", "Awitad", "Checerper", "Dasrad", "Emworeng", "Hatdyn", "K'ackves", "Liathar", "Mosth", - "Ackptin", "Banengon", "Chegit", "Deeqskel", "Endnys", "Heesban", "Kagdra", "Liephden", "Neabar", - "Aighte", "Banhinat", "Cheirat", "Delurnther", "Enessray", "Hesub", "Kalbankim", "Likellor", "Neerdem", - "Akala", "Belrisash", "Che'rak", "Denalda", "Engyer", "Hinkelenth", "Kal'enda", "Loightmos", "Nichqua", - "Alealdny", "Bilorm", "Cheves", "Derynkel", "En'rady", "Hirryer", "Kimest", "Loromum", "Nudraough", - "Angash", "Bleustcer", "Chiperath", "Deurnos", "Enthount", "Ideinta", "Kimundeng", "Lorr", "Nuyim", - "Anglor", "Bliagelor", "Chralerack", "Doyaryke", "Enundem", "Im'eld", "Koachlor", "Lortas", "Nycha", - "Anveraugh", "Blorynton", "Chram", "Draithon", "Essina", "Ina'ir", "Kuren", "Lyerr", "Nyia", - "Ardangas", "Booten", "Clyimen", "Drantess", "Faughald", "Ing'moro", "Kygver", "Maustbur", "Nyjac", - "Ardug", "Bripolqua", "Coqueang", "Druardny", "Fiummos", "Ingormess", "Kyning", "Menvor", "Nystondar", - "Ardworu", "Bryray", "Craennther", "Dynsaytor", "Garash", "Ingshy", "Laiyach", "Meusten", "Okine", - "Ascerald", "Burust", "Cykage", "Dytinris", "Garight", "Issath", "Lasuzu", "Mirodskel", "Oldit", - "Ash'ach", "Cataikel", "Dalek", "Eeni", "Garrynath", "Issendris", "Lekew", "Morhatrod", "Om'mose", - "Athiund", "Cerilwar", "Darhkel", "Elmryn", "Ghalora", "Issey", "Lerengom", "Moserbel", "Onye", - "Ososrak", "Pecertin", "Perrd" + "Achdyer", + "Achtortor", + "Ackirlor", + "Ackptin", + "Aighte", + "Akala", + "Alealdny", + "Angash", + "Anglor", + "Anveraugh", + "Ardangas", + "Ardug", + "Ardworu", + "Ascerald", + "Ash'ach", + "Athiund", + "Aughm", + "Aughtheryer", + "Awitad", + "Banengon", + "Banhinat", + "Belrisash", + "Bilorm", + "Bleustcer", + "Bliagelor", + "Blorynton", + "Booten", + "Bripolqua", + "Bryray", + "Burust", + "Cataikel", + "Cerilwar", + "Cerl", + "Certin", + "Checerper", + "Chegit", + "Cheirat", + "Che'rak", + "Cheves", + "Chiperath", + "Chralerack", + "Chram", + "Clyimen", + "Coqueang", + "Craennther", + "Cykage", + "Dalek", + "Darhkel", + "Daril", + "Darpban", + "Dasrad", + "Deeqskel", + "Delurnther", + "Denalda", + "Derynkel", + "Deurnos", + "Doyaryke", + "Draithon", + "Drantess", + "Druardny", + "Dynsaytor", + "Dytinris", + "Eeni", + "Elmryn", + "Emgha", + "Emiton", + "Emworeng", + "Endnys", + "Enessray", + "Engyer", + "En'rady", + "Enthount", + "Enundem", + "Essina", + "Faughald", + "Fiummos", + "Garash", + "Garight", + "Garrynath", + "Ghalora", + "Ghatan", + "Gibanis", + "Hatdyn", + "Heesban", + "Hesub", + "Hinkelenth", + "Hirryer", + "Ideinta", + "Im'eld", + "Ina'ir", + "Ing'moro", + "Ingormess", + "Ingshy", + "Issath", + "Issendris", + "Issey", + "Issum", + "Itenthbel", + "K'ackves", + "Kagdra", + "Kalbankim", + "Kal'enda", + "Kimest", + "Kimundeng", + "Koachlor", + "Kuren", + "Kygver", + "Kyning", + "Laiyach", + "Lasuzu", + "Lekew", + "Lerengom", + "Lertan", + "Liadem", + "Liathar", + "Liephden", + "Likellor", + "Loightmos", + "Loromum", + "Lorr", + "Lortas", + "Lyerr", + "Maustbur", + "Menvor", + "Meusten", + "Mirodskel", + "Morhatrod", + "Moserbel", + "Mosorrad", + "Mosraye", + "Mosth", + "Neabar", + "Neerdem", + "Nichqua", + "Nudraough", + "Nuyim", + "Nycha", + "Nyia", + "Nyjac", + "Nystondar", + "Okine", + "Oldit", + "Om'mose", + "Onye", + "Ososrak", + "Pecertin", + "Perrd", + "Phutorny", + "Puizlye", + "Quirantai", + NULL }; -// This code comes from command-line-options.cpp. the reason it's here is to -// keep consistent the extra-help formatting when '--help' used. +// this code comes from command-line-options.cpp. the reason it's here is to +// keep consistent the extra-help formatting when '--help' used + void PrintHelp( const char * const opt, const char * const optDescription) { const std::ios_base::fmtflags flags = std::cout.flags(); @@ -84,70 +348,74 @@ void PrintHelp( const char * const opt, const char * const optDescription) std::cout.flags( flags ); } +const float PAGE_SCALE_FACTOR_X ( 0.95f ); +const float PAGE_SCALE_FACTOR_Y ( 0.95f ); +const float PAGE_DURATION_SCALE_FACTOR ( 2.0f ); // time-scale factor, larger = animation is slower + +const float DEFAULT_OPT_ROW_COUNT ( 5 ); +const float DEFAULT_OPT_COL_COUNT ( 4 ); +const float DEFAULT_OPT_PAGE_COUNT ( 10 ); +const bool DEFAULT_OPT_USETABLEVIEW ( false ); + } -/** - * @brief This example is a benchmark that mimics the paged applications list of the homescreen application. - */ +// This example is a benchmark that mimics the paged applications list of the homescreen app +// class HomescreenBenchmark : public ConnectionTracker { public: // Config structure passed to the constructor. It makes easier to increase number - // of setup parameters if needed. + // of setup parameters if needed struct Config { Config() : mRows( DEFAULT_OPT_ROW_COUNT ), mCols( DEFAULT_OPT_COL_COUNT ), mPageCount( DEFAULT_OPT_PAGE_COUNT ), - mTableViewEnabled( DEFAULT_OPT_USE_TABLEVIEW ), - mBatchingEnabled( DEFAULT_OPT_BATCHING_ENABLED ), - mIconLabelsEnabled( DEFAULT_OPT_ICON_LABELS ) + mUseTableView( DEFAULT_OPT_USETABLEVIEW ) { } - int mRows; - int mCols; - int mPageCount; - bool mTableViewEnabled; - bool mBatchingEnabled; - bool mIconLabelsEnabled; + int mRows; + int mCols; + int mPageCount; + bool mUseTableView; }; // animation script data struct ScriptData { ScriptData( int pages, float duration, bool flick ) - : mPages( pages ), - mDuration( duration ), - mFlick( flick ) { + mPages = pages; + mDuration = duration; + mFlick = flick; } - int mPages; ///< Number of pages to scroll - float mDuration; ///< Duration - bool mFlick; ///< Use flick or 'one-by-one' scroll + int mPages; // number of pages to scroll + float mDuration; // duration + bool mFlick; // use flick or 'one-by-one' scroll }; HomescreenBenchmark( Application& application, const Config& config ) : mApplication( application ), mConfig( config ), - mScriptFrame( 0 ), mCurrentPage( 0 ) { - // Connect to the Application's Init signal. + // Connect to the Application's Init signal mApplication.InitSignal().Connect( this, &HomescreenBenchmark::Create ); } ~HomescreenBenchmark() { + // Nothing to do here; } - // The Init signal is received once (only) during the Application lifetime. + // The Init signal is received once (only) during the Application lifetime void Create( Application& application ) { - // Create benchmark script + // create benchmark script CreateScript(); // Get a handle to the stage @@ -159,37 +427,35 @@ public: mScrollParent.SetParentOrigin( ParentOrigin::CENTER ); // create background - Toolkit::ImageView background = Toolkit::ImageView::New( BACKGROUND_IMAGE ); - Stage::GetCurrent().Add( background ); + Toolkit::ImageView background = Toolkit::ImageView::New( DEMO_IMAGE_DIR "background-3.jpg"); + Stage::GetCurrent().Add(background); background.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); background.SetAnchorPoint( AnchorPoint::CENTER ); background.SetParentOrigin( ParentOrigin::CENTER ); PopulatePages(); - stage.Add( mScrollParent ); + stage.Add(mScrollParent); - // Respond to a click anywhere on the stage. + // Respond to a click anywhere on the stage stage.GetRootLayer().TouchSignal().Connect( this, &HomescreenBenchmark::OnTouch ); } bool OnTouch( Actor actor, const TouchData& touch ) { - // Quit the application. + // quit the application mApplication.Quit(); return true; } Actor AddPage() { - // Create root page actor. + // create root page actor Actor pageActor; - if( mConfig.mTableViewEnabled ) + if( mConfig.mUseTableView ) { Toolkit::TableView tableView = Toolkit::TableView::New( mConfig.mRows, mConfig.mCols ); - - // Create geometry batcher for table view. tableView.SetBackgroundColor( Vector4( 0.0f, 0.0f, 0.0f, 0.5f ) ); pageActor = tableView; } @@ -202,33 +468,38 @@ public: pageActor.SetParentOrigin( ParentOrigin::CENTER ); pageActor.SetAnchorPoint( AnchorPoint::CENTER ); pageActor.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS ); - pageActor.SetSizeModeFactor( Vector3( PAGE_SCALE_FACTOR_X, PAGE_SCALE_FACTOR_Y, 1.0f ) ); + pageActor.SetSizeModeFactor(Vector3( PAGE_SCALE_FACTOR_X, PAGE_SCALE_FACTOR_Y, 1.0f ) ); return pageActor; } - void AddIconsToPage( Actor page ) + void AddIconsToPage(Actor page) { Size stageSize( Stage::GetCurrent().GetSize() ); const float scaledHeight = stageSize.y * PAGE_SCALE_FACTOR_Y; const float scaledWidth = stageSize.x * PAGE_SCALE_FACTOR_X; + const float PADDING = stageSize.y / 64.0f; - const float ROW_HEIGHT = ( scaledHeight - (PADDING*2.0f) ) / static_cast( mConfig.mRows ); - const float COL_WIDTH = ( scaledWidth - (PADDING*2.0f) ) / static_cast( mConfig.mCols ); + const float ROW_HEIGHT = ( scaledHeight - (PADDING*2.0f) ) / (float)mConfig.mRows; + const float COL_WIDTH = ( scaledWidth - (PADDING*2.0f) ) / (float)mConfig.mCols; - Vector2 dpi = Stage::GetCurrent().GetDpi(); + // the image/label area tries to make sure the positioning will be relative to previous sibling + const float IMAGE_AREA = 0.60f; + const float LABEL_AREA = 0.50f; static int currentIconIndex = 0; + Vector2 dpi = Stage::GetCurrent().GetDpi(); + for( int y = 0; y < mConfig.mRows; ++y ) { for( int x = 0; x < mConfig.mCols; ++x ) { - // Create parent icon view + // create parent icon view Toolkit::Control iconView = Toolkit::Control::New(); iconView.SetAnchorPoint( AnchorPoint::TOP_LEFT ); iconView.SetParentOrigin( ParentOrigin::TOP_LEFT ); - if( !mConfig.mTableViewEnabled ) + if( !mConfig.mUseTableView ) { float rowX = x * COL_WIDTH + PADDING; float rowY = y * ROW_HEIGHT + PADDING; @@ -241,45 +512,31 @@ public: iconView.SetSizeScalePolicy( SizeScalePolicy::FIT_WITH_ASPECT_RATIO ); } - // Create empty image to avoid early renderer creation - Toolkit::ImageView imageView = Toolkit::ImageView::New(); - - // Auto-generate the Icons image URL. - Property::Map map; - std::stringstream imagePath; - imagePath << IMAGE_PATH_PREFIX << currentIconIndex << IMAGE_PATH_POSTFIX; - map[ Dali::Toolkit::ImageVisual::Property::URL ] = imagePath.str(); - - // Enable/disable batching - map[ Toolkit::ImageVisual::Property::BATCHING_ENABLED ] = mConfig.mBatchingEnabled; - - imageView.SetProperty( Toolkit::ImageView::Property::IMAGE, map ); + // create image view + Toolkit::ImageView imageView = Toolkit::ImageView::New( IMAGE_PATH[currentIconIndex] ); imageView.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS ); imageView.SetSizeScalePolicy( SizeScalePolicy::FIT_WITH_ASPECT_RATIO ); imageView.SetAnchorPoint( AnchorPoint::CENTER ); imageView.SetParentOrigin( ParentOrigin::CENTER ); - imageView.SetSizeModeFactor( Vector3( IMAGE_AREA, IMAGE_AREA, 1.0f ) ); + imageView.SetSizeModeFactor( Vector3(IMAGE_AREA, IMAGE_AREA, 1.0f) ); - if( mConfig.mIconLabelsEnabled ) - { - // create label - Toolkit::TextLabel textLabel = Toolkit::TextLabel::New( DEMO_APPS_NAMES[currentIconIndex] ); - textLabel.SetAnchorPoint( AnchorPoint::TOP_CENTER ); - textLabel.SetParentOrigin( ParentOrigin::BOTTOM_CENTER ); - textLabel.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS ); - textLabel.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Vector4( 1.0f, 1.0f, 1.0f, 1.0f ) ); // White. - textLabel.SetProperty( Toolkit::TextLabel::Property::POINT_SIZE, ( ( static_cast( ROW_HEIGHT * LABEL_AREA ) * 72.0f ) / dpi.y ) * 0.25f ); - textLabel.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" ); - textLabel.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "TOP" ); - imageView.Add( textLabel ); - } + // create label + Toolkit::TextLabel textLabel = Toolkit::TextLabel::New( DEMO_APPS_NAMES[currentIconIndex] ); + textLabel.SetAnchorPoint( AnchorPoint::TOP_CENTER ); + textLabel.SetParentOrigin( ParentOrigin::BOTTOM_CENTER ); + + textLabel.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS ); + textLabel.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, Vector4( 1.0f, 1.0f, 1.0f, 1.0f ) ); + textLabel.SetProperty( Toolkit::TextLabel::Property::POINT_SIZE, (((float)( ROW_HEIGHT * LABEL_AREA ) * 72.0f) / (dpi.y))*0.25f ); + textLabel.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" ); + textLabel.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "TOP" ); iconView.Add( imageView ); - page.Add( iconView ); + imageView.Add( textLabel ); - // We only have images and names for a certain number of icons. - // Wrap around if we have used them all. - if( ++currentIconIndex == TOTAL_ICON_DEFINITIONS ) + page.Add(iconView); + + if( !IMAGE_PATH[ ++currentIconIndex ] ) { currentIconIndex = 0; } @@ -289,62 +546,58 @@ public: void CreateScript() { - const int lastPage = mConfig.mPageCount - 1; - const int halfA = lastPage / 2; - const int halfB = lastPage / 2 + lastPage % 2; - mScriptFrameData.push_back( ScriptData( lastPage, 1.5f, true ) ); - mScriptFrameData.push_back( ScriptData( -lastPage, 1.5f, true ) ); - mScriptFrameData.push_back( ScriptData( halfA, 1.0f, true ) ); - mScriptFrameData.push_back( ScriptData( halfB, 1.0f, true ) ); - mScriptFrameData.push_back( ScriptData( -lastPage, 0.5f, false ) ); - mScriptFrameData.push_back( ScriptData( halfA, 0.5f, false ) ); - mScriptFrameData.push_back( ScriptData( halfB, 1.0f, true ) ); - mScriptFrameData.push_back( ScriptData( -halfA, 1.0f, true ) ); - mScriptFrameData.push_back( ScriptData( 1, 0.1f, true ) ); - mScriptFrameData.push_back( ScriptData( -1, 0.1f, true ) ); - mScriptFrameData.push_back( ScriptData( 1, 0.1f, true ) ); - mScriptFrameData.push_back( ScriptData( -1, 0.1f, true ) ); - mScriptFrameData.push_back( ScriptData( 1, 0.1f, true ) ); - mScriptFrameData.push_back( ScriptData( -1, 0.1f, true ) ); - mScriptFrameData.push_back( ScriptData( halfA, 1.0f, true ) ); + const int lastPage = mConfig.mPageCount-1; + const int halfA = lastPage/2; + const int halfB = lastPage/2 + lastPage%2; + mScriptFrameData.push_back( ScriptData( lastPage, 1.5f, true)); + mScriptFrameData.push_back( ScriptData( -lastPage, 1.5f, true )); + mScriptFrameData.push_back( ScriptData( halfA, 1.0f, true )); + mScriptFrameData.push_back( ScriptData( halfB, 1.0f, true )); + mScriptFrameData.push_back( ScriptData( -lastPage, 0.5f, false )); + mScriptFrameData.push_back( ScriptData( halfA, 0.5f, false )); + mScriptFrameData.push_back( ScriptData( halfB, 1.0f, true )); + mScriptFrameData.push_back( ScriptData( -halfA, 1.0f, true )); + mScriptFrameData.push_back( ScriptData( 1, 0.1f, true )); + mScriptFrameData.push_back( ScriptData( -1, 0.1f, true )); + mScriptFrameData.push_back( ScriptData( 1, 0.1f, true )); + mScriptFrameData.push_back( ScriptData( -1, 0.1f, true )); + mScriptFrameData.push_back( ScriptData( 1, 0.1f, true )); + mScriptFrameData.push_back( ScriptData( -1, 0.1f, true )); + mScriptFrameData.push_back( ScriptData( halfA, 1.0f, true )); } void PopulatePages() { Vector3 stageSize( Stage::GetCurrent().GetSize() ); + const float SCALED_HEIGHT = stageSize.y * PAGE_SCALE_FACTOR_Y; for( int i = 0; i < mConfig.mPageCount; ++i ) { - // Create page. + // create page Actor page = AddPage(); - // Populate icons. - AddIconsToPage( page ); + // populate icons + AddIconsToPage(page); - // Move page 'a little bit up'. + // move page 'a little bit up' page.SetParentOrigin( ParentOrigin::CENTER ); page.SetAnchorPoint( AnchorPoint::CENTER ); - page.SetPosition( Vector3( stageSize.x * i, 0.0f, 0.0f ) ); + page.SetPosition( Vector3(stageSize.x*i, -0.30f*( stageSize.y-SCALED_HEIGHT ), 0.0f) ); mScrollParent.Add( page ); - - if( mConfig.mTableViewEnabled && mConfig.mBatchingEnabled ) - { - page.SetProperty( Actor::Property::BATCH_PARENT, true ); - } } - mScrollParent.SetOpacity( 1.0f ); - mScrollParent.SetScale( Vector3::ONE ); + mScrollParent.SetOpacity( 0.0f ); + mScrollParent.SetScale( Vector3(0.0f, 0.0f, 0.0f) ); - // Fade in. + // fade in ShowAnimation(); } void ShowAnimation() { - mShowAnimation = Animation::New( 1.0f ); - mShowAnimation.AnimateTo( Property( mScrollParent, Actor::Property::COLOR_ALPHA ), 1.0f, AlphaFunction::EASE_IN_OUT ); - mShowAnimation.AnimateTo( Property( mScrollParent, Actor::Property::SCALE ), Vector3::ONE, AlphaFunction::EASE_IN_OUT ); + mShowAnimation = Animation::New(1.0f); + mShowAnimation.AnimateTo( Property(mScrollParent, Actor::Property::COLOR_ALPHA), 1.0f, AlphaFunction::EASE_IN_OUT ); + mShowAnimation.AnimateTo( Property(mScrollParent, Actor::Property::SCALE), Vector3(1.0f, 1.0f, 1.0f), AlphaFunction::EASE_IN_OUT ); mShowAnimation.FinishedSignal().Connect( this, &HomescreenBenchmark::OnAnimationEnd ); mShowAnimation.Play(); } @@ -353,17 +606,16 @@ public: { duration *= PAGE_DURATION_SCALE_FACTOR; Vector3 stageSize( Stage::GetCurrent().GetSize() ); - mScrollAnimation = Animation::New( duration ); + mScrollAnimation = Animation::New(duration); if( flick ) { - mScrollAnimation.AnimateBy( Property( mScrollParent, Actor::Property::POSITION ), Vector3( -stageSize.x * pages, 0.0f, 0.0f ), AlphaFunction::EASE_IN_OUT ); + mScrollAnimation.AnimateBy( Property(mScrollParent, Actor::Property::POSITION), Vector3(-stageSize.x*pages, 0.0f, 0.0f), AlphaFunction::EASE_IN_OUT ); } else { - int totalPages = abs( pages ); - for( int i = 0; i < totalPages; ++i ) + for( int i = 0; i < abs(pages); ++i ) { - mScrollAnimation.AnimateBy( Property( mScrollParent, Actor::Property::POSITION ), Vector3( pages < 0 ? stageSize.x : -stageSize.x, 0.0f, 0.0f ), AlphaFunction::EASE_IN_OUT, TimePeriod( duration * i, duration ) ); + mScrollAnimation.AnimateBy( Property(mScrollParent, Actor::Property::POSITION), Vector3(pages < 0 ? stageSize.x : -stageSize.x, 0.0f, 0.0f), AlphaFunction::EASE_IN_OUT, TimePeriod(duration*i, duration) ); } } mScrollAnimation.FinishedSignal().Connect( this, &HomescreenBenchmark::OnAnimationEnd ); @@ -373,7 +625,13 @@ public: void OnAnimationEnd( Animation& source ) { - if( mScriptFrame < mScriptFrameData.size() ) + if( source == mShowAnimation ) + { + ScriptData& frame = mScriptFrameData[0]; + ScrollPages( frame.mPages, frame.mDuration, frame.mFlick ); + mScriptFrame = 1; + } + else if( mScriptFrame < mScriptFrameData.size() && source == mScrollAnimation ) { ScriptData& frame = mScriptFrameData[mScriptFrame]; ScrollPages( frame.mPages, frame.mDuration, frame.mFlick ); @@ -386,14 +644,18 @@ public: } private: - Application& mApplication; + Actor mScrollParent; + Animation mShowAnimation; Animation mScrollAnimation; + Config mConfig; + std::vector mScriptFrameData; size_t mScriptFrame; + int mCurrentPage; }; @@ -403,27 +665,26 @@ void RunTest( Application& application, const HomescreenBenchmark::Config& confi if( printHelpAndExit ) { - PrintHelp( "c", " Number of columns" ); - PrintHelp( "r", " Number of rows" ); - PrintHelp( "p", " Number of pages ( must be greater than 1 )" ); - PrintHelp( "-disable-tableview", " Disables the use of TableView for layouting (must be enabled for batching)" ); - PrintHelp( "-disable-batching", " Disables geometry batching" ); - PrintHelp( "-disable-icon-labels", " Disables labels for each icon" ); + PrintHelp( "c", " Number of columns"); + PrintHelp( "r", " Number of rows"); + PrintHelp( "p", " Number of pages ( must be greater than 1 )"); + PrintHelp( "-use-tableview", " Uses TableView for layouting"); return; } application.MainLoop(); } -// Entry point for Linux & Tizen applications. +// Entry point for Linux & Tizen applications +// int DALI_EXPORT_API main( int argc, char **argv ) { - // Default settings. + // default settings HomescreenBenchmark::Config config; bool printHelpAndExit = false; - for( int i = 1 ; i < argc; ++i ) + for( int i(1) ; i < argc; ++i ) { std::string arg( argv[i] ); if( arg.compare( 0, 2, "-r" ) == 0 ) @@ -438,22 +699,15 @@ int DALI_EXPORT_API main( int argc, char **argv ) { config.mPageCount = atoi( arg.substr( 2 ).c_str() ); } - else if( arg.compare( "--disable-tableview" ) == 0 ) - { - config.mTableViewEnabled = false; - } - else if( arg.compare( "--disable-batching" ) == 0 ) + else if( arg.compare( "--use-tableview" ) == 0 ) { - config.mBatchingEnabled = false; - } - else if( arg.compare( "--disable-icon-labels" ) == 0 ) - { - config.mIconLabelsEnabled = false; + config.mUseTableView = true; } else if( arg.compare( "--help" ) == 0 ) { printHelpAndExit = true; } + } Application application = Application::New( &argc, &argv ); diff --git a/examples/image-scaling-and-filtering/image-scaling-and-filtering-example.cpp b/examples/image-scaling-and-filtering/image-scaling-and-filtering-example.cpp index 7cdc4a6..3af560d 100644 --- a/examples/image-scaling-and-filtering/image-scaling-and-filtering-example.cpp +++ b/examples/image-scaling-and-filtering/image-scaling-and-filtering-example.cpp @@ -175,9 +175,6 @@ public: // Get a handle to the stage Stage stage = Stage::GetCurrent(); - // Hide the indicator bar - application.GetWindow().ShowIndicator( Dali::Window::INVISIBLE ); - // Background image: Dali::Property::Map backgroundImage; backgroundImage.Insert( Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE ); diff --git a/examples/image-view-svg/image-view-svg-example.cpp b/examples/image-view-svg/image-view-svg-example.cpp index 12180f2..7c08b44 100644 --- a/examples/image-view-svg/image-view-svg-example.cpp +++ b/examples/image-view-svg/image-view-svg-example.cpp @@ -66,9 +66,6 @@ public: Vector2 stageSize = stage.GetSize(); mActorSize = stageSize/2.f; - // Hide the indicator bar - application.GetWindow().ShowIndicator( Dali::Window::INVISIBLE ); - stage.KeyEventSignal().Connect(this, &ImageSvgController::OnKeyEvent); // Background, for receiving gestures diff --git a/examples/mesh-visual/mesh-visual-example.cpp b/examples/mesh-visual/mesh-visual-example.cpp index 3340838..b157f63 100644 --- a/examples/mesh-visual/mesh-visual-example.cpp +++ b/examples/mesh-visual/mesh-visual-example.cpp @@ -15,14 +15,14 @@ namespace }; //Files for meshes - const char * const MODEL_FILE_TABLE[] = + const char * const MODEL_FILE[] = { DEMO_MODEL_DIR "Dino.obj", DEMO_MODEL_DIR "ToyRobot-Metal.obj", DEMO_MODEL_DIR "Toyrobot-Plastic.obj" }; - const char * const MATERIAL_FILE_TABLE[] = + const char * const MATERIAL_FILE[] = { DEMO_MODEL_DIR "Dino.mtl", DEMO_MODEL_DIR "ToyRobot-Metal.mtl", @@ -39,12 +39,13 @@ namespace MeshVisual::ShadingMode::TEXTURELESS_WITH_DIFFUSE_LIGHTING }; + //Files for background and toolbar + const char * const BACKGROUND_IMAGE( DEMO_IMAGE_DIR "background-1.jpg"); + const float X_ROTATION_DISPLACEMENT_FACTOR = 60.0f; const float Y_ROTATION_DISPLACEMENT_FACTOR = 60.0f; - const float MODEL_SCALE = 0.75f; - const float LIGHT_SCALE = 0.15f; - const float BUTTONS_OFFSET_BOTTOM = 0.9f; - const int NUM_MESHES = 2; + const float MODEL_SCALE = 0.75f; + const int NUM_MESHES = 3; //Used to identify actors. const int MODEL_TAG = 0; @@ -63,8 +64,7 @@ public: mShadingModeIndex( 0 ), //Start with textured with detailed specular lighting. mTag( -1 ), //Non-valid default, which will get set to a correct value when used. mSelectedModelIndex( -1 ), //Non-valid default, which will get set to a correct value when used. - mPaused( false ), //Animations play by default. - mLightFixed( true ) //The light is fixed by default. + mPaused( false ) //Animations play by default. { // Connect to the Application's Init signal mApplication.InitSignal().Connect( this, &MeshVisualController::Create ); @@ -79,7 +79,23 @@ public: { // Get a handle to the stage Stage stage = Stage::GetCurrent(); - stage.SetBackgroundColor( Vector4( 0.0, 0.5, 1.0, 1.0 ) ); + + //Add background + ImageView backView = ImageView::New( BACKGROUND_IMAGE ); + backView.SetAnchorPoint( AnchorPoint::TOP_LEFT ); + stage.Add( backView ); + + //Setup and load the 3D models and buttons + LoadScene(); + + //Allow for exiting of the application via key presses. + stage.KeyEventSignal().Connect( this, &MeshVisualController::OnKeyEvent ); + } + + //Sets up the on-screen elements. + void LoadScene() + { + Stage stage = Stage::GetCurrent(); //Set up layer to place objects on. Layer baseLayer = Layer::New(); @@ -92,44 +108,40 @@ public: baseLayer.TouchedSignal().Connect( this, &MeshVisualController::OnTouch ); stage.Add( baseLayer ); - //Place models on the scene. - SetupModels( baseLayer ); - - //Place buttons on the scene. - SetupButtons( baseLayer ); - - //Add a light to the scene. - SetupLight( baseLayer ); - - //Allow for exiting of the application via key presses. - stage.KeyEventSignal().Connect( this, &MeshVisualController::OnKeyEvent ); - } - - //Loads and adds the models to the scene, inside containers for hit detection. - void SetupModels( Layer layer ) - { - //Add containers to house each renderer-holding-actor. + //Add containers to house each visual-holding-actor. for( int i = 0; i < NUM_MESHES; i++ ) { mContainers[i] = Actor::New(); mContainers[i].SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS ); mContainers[i].RegisterProperty( "Tag", MODEL_TAG ); //Used to differentiate between different kinds of actor. mContainers[i].RegisterProperty( "Model", Property::Value( i ) ); //Used to index into the model. - mContainers[i].TouchedSignal().Connect( this, &MeshVisualController::OnTouch ); - layer.Add( mContainers[i] ); - } - - //Position each container individually on screen - //Main, central model - mContainers[0].SetSizeModeFactor( Vector3( MODEL_SCALE, MODEL_SCALE, 0.0f ) ); - mContainers[0].SetParentOrigin( ParentOrigin::CENTER ); - mContainers[0].SetAnchorPoint( AnchorPoint::CENTER ); + //Position each container on screen + if( i == 0 ) + { + //Main, central model + mContainers[i].SetSizeModeFactor( Vector3( MODEL_SCALE, MODEL_SCALE, 0.0f ) ); + mContainers[i].SetParentOrigin( ParentOrigin::CENTER ); + mContainers[i].SetAnchorPoint( AnchorPoint::CENTER ); + } + else if( i == 1 ) + { + //Top left model + mContainers[i].SetSizeModeFactor( Vector3( MODEL_SCALE / 3.0f, MODEL_SCALE / 3.0f, 0.0f ) ); + mContainers[i].SetParentOrigin( Vector3( 0.05, 0.03, 0.5 ) ); //Offset from top left + mContainers[i].SetAnchorPoint( AnchorPoint::TOP_LEFT ); + } + else if( i == 2 ) + { + //Top right model + mContainers[i].SetSizeModeFactor( Vector3( MODEL_SCALE / 3.0f, MODEL_SCALE / 3.0f, 0.0f ) ); + mContainers[i].SetParentOrigin( Vector3( 0.95, 0.03, 0.5 ) ); //Offset from top right + mContainers[i].SetAnchorPoint( AnchorPoint::TOP_RIGHT ); + } - //Top left model - mContainers[1].SetSizeModeFactor( Vector3( MODEL_SCALE / 3.0f, MODEL_SCALE / 3.0f, 0.0f ) ); - mContainers[1].SetParentOrigin( Vector3( 0.05, 0.03, 0.5 ) ); //Offset from top left - mContainers[1].SetAnchorPoint( AnchorPoint::TOP_LEFT ); + mContainers[i].TouchedSignal().Connect( this, &MeshVisualController::OnTouch ); + baseLayer.Add( mContainers[i] ); + } //Set up models for( int i = 0; i < NUM_MESHES; i++ ) @@ -158,120 +170,70 @@ public: //Calling this sets the model in the controls. ReloadModel(); - } - - //Place the various buttons on the bottom of the screen, with title labels where necessary. - void SetupButtons( Layer layer ) - { - //Text label title for changing model or shader. - TextLabel changeTitleLabel = TextLabel::New( "Switch" ); - changeTitleLabel.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS ); - changeTitleLabel.SetProperty( TextLabel::Property::UNDERLINE, "{\"thickness\":\"2.0\"}" ); - changeTitleLabel.SetParentOrigin( Vector3( 0.2, BUTTONS_OFFSET_BOTTOM, 0.5 ) ); - changeTitleLabel.SetAnchorPoint( AnchorPoint::BOTTOM_CENTER ); - layer.Add( changeTitleLabel ); //Create button for model changing - PushButton modelButton = Toolkit::PushButton::New(); + Toolkit::PushButton modelButton = Toolkit::PushButton::New(); modelButton.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS ); modelButton.ClickedSignal().Connect( this, &MeshVisualController::OnChangeModelClicked ); - modelButton.SetParentOrigin( ParentOrigin::BOTTOM_CENTER ); - modelButton.SetAnchorPoint( AnchorPoint::TOP_RIGHT ); - modelButton.SetLabelText( "Model" ); - changeTitleLabel.Add( modelButton ); + modelButton.SetParentOrigin( Vector3( 0.05, 0.95, 0.5 ) ); //Offset from bottom left + modelButton.SetAnchorPoint( AnchorPoint::BOTTOM_LEFT ); + modelButton.SetLabelText( "Change Model" ); + baseLayer.Add( modelButton ); //Create button for shader changing - PushButton shaderButton = Toolkit::PushButton::New(); + Toolkit::PushButton shaderButton = Toolkit::PushButton::New(); shaderButton.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS ); shaderButton.ClickedSignal().Connect( this, &MeshVisualController::OnChangeShaderClicked ); - shaderButton.SetParentOrigin( ParentOrigin::BOTTOM_CENTER ); - shaderButton.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - shaderButton.SetLabelText( "Shader" ); - changeTitleLabel.Add( shaderButton ); + shaderButton.SetParentOrigin( Vector3( 0.95, 0.95, 0.5 ) ); //Offset from bottom right + shaderButton.SetAnchorPoint( AnchorPoint::BOTTOM_RIGHT ); + shaderButton.SetLabelText( "Change Shader" ); + baseLayer.Add( shaderButton ); //Create button for pausing animations - PushButton pauseButton = Toolkit::PushButton::New(); + Toolkit::PushButton pauseButton = Toolkit::PushButton::New(); pauseButton.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS ); pauseButton.ClickedSignal().Connect( this, &MeshVisualController::OnPauseClicked ); - pauseButton.SetParentOrigin( Vector3( 0.5, BUTTONS_OFFSET_BOTTOM, 0.5 ) ); - pauseButton.SetAnchorPoint( AnchorPoint::TOP_CENTER ); + pauseButton.SetParentOrigin( Vector3( 0.5, 0.95, 0.5 ) ); //Offset from bottom center + pauseButton.SetAnchorPoint( AnchorPoint::BOTTOM_CENTER ); pauseButton.SetLabelText( " || " ); - layer.Add( pauseButton ); - - //Text label title for light position mode. - TextLabel lightTitleLabel = TextLabel::New( "Light Position" ); - lightTitleLabel.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS ); - lightTitleLabel.SetProperty( TextLabel::Property::UNDERLINE, "{\"thickness\":\"2.0\"}" ); - lightTitleLabel.SetParentOrigin( Vector3( 0.8, BUTTONS_OFFSET_BOTTOM, 0.5 ) ); - lightTitleLabel.SetAnchorPoint( AnchorPoint::BOTTOM_CENTER ); - layer.Add( lightTitleLabel ); - - //Create button for switching between manual and fixed light position. - PushButton lightButton = Toolkit::PushButton::New(); - lightButton.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS ); - lightButton.ClickedSignal().Connect( this, &MeshVisualController::OnChangeLightModeClicked ); - lightButton.SetParentOrigin( ParentOrigin::BOTTOM_CENTER ); - lightButton.SetAnchorPoint( AnchorPoint::TOP_CENTER ); - lightButton.SetLabelText( "FIXED" ); - lightTitleLabel.Add( lightButton ); - } + baseLayer.Add( pauseButton ); - //Add a point light source the the scene, on a layer above the first. - void SetupLight( Layer baseLayer ) - { //Create control to act as light source of scene. mLightSource = Control::New(); + mLightSource.SetResizePolicy( ResizePolicy::FIT_TO_CHILDREN, Dimension::WIDTH ); + mLightSource.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT ); mLightSource.RegisterProperty( "Tag", LIGHT_TAG ); - //Set size of control based on screen dimensions. - Stage stage = Stage::GetCurrent(); - if( stage.GetSize().width < stage.GetSize().height ) - { - //Scale to width. - mLightSource.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::WIDTH ); - mLightSource.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT ); - mLightSource.SetSizeModeFactor( Vector3( LIGHT_SCALE, 0.0f, 0.0f ) ); - } - else - { - //Scale to height. - mLightSource.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::HEIGHT ); - mLightSource.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::WIDTH ); - mLightSource.SetSizeModeFactor( Vector3( 0.0f, LIGHT_SCALE, 0.0f ) ); - } - //Set position relative to top left, as the light source property is also relative to the top left. mLightSource.SetParentOrigin( ParentOrigin::TOP_LEFT ); mLightSource.SetAnchorPoint( AnchorPoint::CENTER ); - mLightSource.SetPosition( Stage::GetCurrent().GetSize().x * 0.85f, Stage::GetCurrent().GetSize().y * 0.125 ); + mLightSource.SetPosition( Stage::GetCurrent().GetSize().x * 0.5f, Stage::GetCurrent().GetSize().y * 0.1f ); - //Supply an image to represent the light. + //Make white background. Property::Map lightMap; - lightMap.Insert( Visual::Property::TYPE, Visual::IMAGE ); - lightMap.Insert( ImageVisual::Property::URL, DEMO_IMAGE_DIR "light-icon.png" ); + lightMap.Insert( Visual::Property::TYPE, Visual::COLOR ); + lightMap.Insert( ColorVisual::Property::MIX_COLOR, Color::WHITE ); mLightSource.SetProperty( Control::Property::BACKGROUND, Property::Value( lightMap ) ); + //Label to show what this actor is for the user. + TextLabel lightLabel = TextLabel::New( "Light" ); + lightLabel.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS ); + lightLabel.SetParentOrigin( ParentOrigin::CENTER ); + lightLabel.SetAnchorPoint( AnchorPoint::CENTER ); + float padding = 5.0f; + lightLabel.SetPadding( Padding( padding, padding, padding, padding ) ); + mLightSource.Add( lightLabel ); + //Connect to touch signal for dragging. mLightSource.TouchedSignal().Connect( this, &MeshVisualController::OnTouch ); //Place the light source on a layer above the base, so that it is rendered above everything else. Layer upperLayer = Layer::New(); - upperLayer.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); - upperLayer.SetParentOrigin( ParentOrigin::CENTER ); - upperLayer.SetAnchorPoint( AnchorPoint::CENTER ); - baseLayer.Add( upperLayer ); upperLayer.Add( mLightSource ); - //Decide which light to use to begin with. - if( mLightFixed ) - { - UseFixedLight(); - } - else - { - UseManualLight(); - } + //Calling this sets the light position of each model to that of the light source control. + UpdateLight(); } //Updates the displayed models to account for parameter changes. @@ -280,10 +242,11 @@ public: //Create mesh property map Property::Map map; map.Insert( Visual::Property::TYPE, Visual::MESH ); - map.Insert( MeshVisual::Property::OBJECT_URL, MODEL_FILE_TABLE[mModelIndex] ); - map.Insert( MeshVisual::Property::MATERIAL_URL, MATERIAL_FILE_TABLE[mModelIndex] ); + map.Insert( MeshVisual::Property::OBJECT_URL, MODEL_FILE[mModelIndex] ); + map.Insert( MeshVisual::Property::MATERIAL_URL, MATERIAL_FILE[mModelIndex] ); map.Insert( MeshVisual::Property::TEXTURES_PATH, TEXTURES_PATH ); map.Insert( MeshVisual::Property::SHADING_MODE, SHADING_MODE_TABLE[mShadingModeIndex] ); + map.Insert( MeshVisual::Property::USE_SOFT_NORMALS, false ); //Set the two controls to use the mesh for( int i = 0; i < NUM_MESHES; i++ ) @@ -292,39 +255,12 @@ public: } } - void UseFixedLight() - { - //Hide draggable source - mLightSource.SetVisible( false ); - - //Use stage dimensions to place light at center, offset outwards in z axis. - Stage stage = Stage::GetCurrent(); - float width = stage.GetSize().width; - float height = stage.GetSize().height; - Vector3 lightPosition = Vector3( width / 2.0f, height / 2.0f, std::max( width, height ) * 5.0f ); - - //Set global light position - for( int i = 0; i < NUM_MESHES; ++i ) - { - mModels[i].control.RegisterProperty( "lightPosition", lightPosition, Property::ANIMATABLE ); - } - } - - void UseManualLight() - { - //Show draggable source - mLightSource.SetVisible( true ); - - //Update to switch light position to that off the source. - UpdateLight(); - } - //Updates the light position for each model to account for changes in the source on screen. void UpdateLight() { //Set light position to the x and y of the light control, offset out of the screen. Vector3 controlPosition = mLightSource.GetCurrentPosition(); - Vector3 lightPosition = Vector3( controlPosition.x, controlPosition.y, Stage::GetCurrent().GetSize().x / 2.0f ); + Vector3 lightPosition = Vector3( controlPosition.x, controlPosition.y, Stage::GetCurrent().GetSize().x * 2.0f ); for( int i = 0; i < NUM_MESHES; ++i ) { @@ -466,29 +402,6 @@ public: return true; } - - //Switch between a fixed light source in front of the screen, and a light source the user can drag around. - bool OnChangeLightModeClicked( Toolkit::Button button ) - { - //Toggle state. - mLightFixed = !mLightFixed; - - if( mLightFixed ) - { - UseFixedLight(); - - button.SetLabelText( "FIXED" ); - } - else - { - UseManualLight(); - - button.SetLabelText( "MANUAL" ); - } - - return true; - } - //If escape or the back button is pressed, quit the application (and return to the launcher) void OnKeyEvent( const KeyEvent& event ) { @@ -520,7 +433,6 @@ private: int mTag; //Identifies what kind of actor has been selected in OnTouch. int mSelectedModelIndex; //Index of model selected on screen. bool mPaused; //If true, all animations are paused and should stay so. - bool mLightFixed; //If false, the light is in manual. }; // Entry point for Linux & Tizen applications diff --git a/examples/native-image-source/native-image-source-example.cpp b/examples/native-image-source/native-image-source-example.cpp index cf9304b..fe676dc 100644 --- a/examples/native-image-source/native-image-source-example.cpp +++ b/examples/native-image-source/native-image-source-example.cpp @@ -146,10 +146,6 @@ public: // Get a handle to the stage Stage stage = Stage::GetCurrent(); stage.SetBackgroundColor( Color::WHITE ); - - // Hide the indicator bar - application.GetWindow().ShowIndicator( Dali::Window::INVISIBLE ); - stage.KeyEventSignal().Connect(this, &NativeImageSourceController::OnKeyEvent); mButtonRefreshAlways = PushButton::New(); diff --git a/examples/page-turn-view/page-turn-view-example.cpp b/examples/page-turn-view/page-turn-view-example.cpp index 3d037eb..b1b71ab 100644 --- a/examples/page-turn-view/page-turn-view-example.cpp +++ b/examples/page-turn-view/page-turn-view-example.cpp @@ -242,9 +242,6 @@ void PageTurnController::OnInit( Application& app ) Stage::GetCurrent().KeyEventSignal().Connect(this, &PageTurnController::OnKeyEvent); - // Hide the indicator bar - app.GetWindow().ShowIndicator( Dali::Window::INVISIBLE ); - Stage stage = Stage::GetCurrent(); Vector2 stageSize = stage.GetSize(); diff --git a/examples/primitive-shapes/primitive-shapes-example.cpp b/examples/primitive-shapes/primitive-shapes-example.cpp index 9329371..bf8478d 100644 --- a/examples/primitive-shapes/primitive-shapes-example.cpp +++ b/examples/primitive-shapes/primitive-shapes-example.cpp @@ -68,9 +68,6 @@ public: Stage stage = Stage::GetCurrent(); stage.SetBackgroundColor( Color::WHITE ); - // Hide the indicator bar - application.GetWindow().ShowIndicator( Dali::Window::INVISIBLE ); - //Set up layer to place UI on. Layer layer = Layer::New(); layer.SetParentOrigin( ParentOrigin::CENTER ); diff --git a/examples/renderer-stencil/renderer-stencil-example.cpp b/examples/renderer-stencil/renderer-stencil-example.cpp index 27385f0..994f551 100644 --- a/examples/renderer-stencil/renderer-stencil-example.cpp +++ b/examples/renderer-stencil/renderer-stencil-example.cpp @@ -33,6 +33,7 @@ namespace // Application constants: const char * const APPLICATION_TITLE( "Renderer Stencil API Demo" ); +const char * const TOOLBAR_IMAGE( DEMO_IMAGE_DIR "top-bar.png" ); const char * const BACKGROUND_IMAGE( DEMO_IMAGE_DIR "background-gradient.jpg" ); // Texture filenames: @@ -51,7 +52,6 @@ const float ANIMATION_BOUNCE_DEFORMATION_PERCENT( 20.0f ); ///< Percentage (of t const float ANIMATION_BOUNCE_HEIGHT_PERCENT( 40.0f ); ///< Percentage (of the cube's size) to bounce up in to the air by. // Base colors for the objects: -const Vector4 TEXT_COLOR( 1.0f, 1.0f, 1.0f, 1.0f ); ///< White. const Vector4 CUBE_COLOR( 1.0f, 1.0f, 1.0f, 1.0f ); ///< White. const Vector4 FLOOR_COLOR( 1.0f, 1.0f, 1.0f, 1.0f ); ///< White. const Vector4 REFLECTION_COLOR( 0.6f, 0.6f, 0.6f, 0.6f ); ///< Note that alpha is not 1.0f, to make the blend more photo-realistic. @@ -116,29 +116,11 @@ private: { Stage stage = Stage::GetCurrent(); - // Hide the indicator bar - application.GetWindow().ShowIndicator( Dali::Window::INVISIBLE ); - - // Creates the background image. - Toolkit::Control background = Dali::Toolkit::Control::New(); - background.SetAnchorPoint( Dali::AnchorPoint::CENTER ); - background.SetParentOrigin( Dali::ParentOrigin::CENTER ); - background.SetResizePolicy( Dali::ResizePolicy::FILL_TO_PARENT, Dali::Dimension::ALL_DIMENSIONS ); - Dali::Property::Map map; - map["rendererType"] = "IMAGE"; - map["url"] = BACKGROUND_IMAGE; - background.SetProperty( Dali::Toolkit::Control::Property::BACKGROUND, map ); - stage.Add( background ); - - // Create a TextLabel for the application title. - Toolkit::TextLabel label = Toolkit::TextLabel::New( APPLICATION_TITLE ); - label.SetAnchorPoint( AnchorPoint::TOP_CENTER ); - // Set the parent origin to a small percentage below the top (so the demo will scale for different resolutions). - label.SetParentOrigin( Vector3( 0.5f, 0.03f, 0.5f ) ); - label.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" ); - label.SetProperty( Toolkit::TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" ); - label.SetProperty( Toolkit::TextLabel::Property::TEXT_COLOR, TEXT_COLOR ); - stage.Add( label ); + // Creates a default view with a default tool-bar. + // The view is added to the stage. + Toolkit::ToolBar toolBar; + Layer toolBarLayer = DemoHelper::CreateView( application, mView, toolBar, BACKGROUND_IMAGE, TOOLBAR_IMAGE, APPLICATION_TITLE ); + stage.Add( toolBarLayer ); // Layer to hold the 3D scene. Layer layer = Layer::New(); diff --git a/examples/text-editor/text-editor-example.cpp b/examples/text-editor/text-editor-example.cpp index eb83eec..5ec61b7 100644 --- a/examples/text-editor/text-editor-example.cpp +++ b/examples/text-editor/text-editor-example.cpp @@ -131,13 +131,6 @@ public: mEditor.SetBackgroundColor( TEXT_EDITOR_BACKGROUND_COLOR ); - const Size boundingBoxSize( stageSize * TEXT_EDITOR_RELATIVE_SIZE.GetVectorXY() ); - Rect boundingBox( 0, - static_cast( toolBarHeight ), - static_cast( boundingBoxSize.width ), - static_cast( boundingBoxSize.height - toolBarHeight ) ); - - mEditor.SetProperty( TextEditor::Property::DECORATION_BOUNDING_BOX, boundingBox ); mEditor.SetProperty( TextEditor::Property::TEXT_COLOR, Color::BLACK ); mEditor.SetProperty( TextEditor::Property::TEXT, "Lorem ipsum dolor sit amet, aeque definiebas ea mei, posse iracundia ne cum.\n" diff --git a/examples/text-field/text-field-example.cpp b/examples/text-field/text-field-example.cpp index 1b21b48..6d357eb 100644 --- a/examples/text-field/text-field-example.cpp +++ b/examples/text-field/text-field-example.cpp @@ -75,9 +75,6 @@ public: stage.SetBackgroundColor( Vector4( 0.04f, 0.345f, 0.392f, 1.0f ) ); stage.KeyEventSignal().Connect(this, &TextFieldExample::OnKeyEvent); - // Hide the indicator bar - application.GetWindow().ShowIndicator( Dali::Window::INVISIBLE ); - mButton = CreateFolderButton(); mButton.ClickedSignal().Connect( this, &TextFieldExample::OnButtonClicked ); stage.Add( mButton ); diff --git a/examples/tilt/tilt-example.cpp b/examples/tilt/tilt-example.cpp index 230704a..0adc72e 100644 --- a/examples/tilt/tilt-example.cpp +++ b/examples/tilt/tilt-example.cpp @@ -59,9 +59,6 @@ public: stage.GetRootLayer().TouchSignal().Connect( this, &TiltController::OnTouch ); CreateSensor(); - - // Connect signals to allow Back and Escape to exit. - stage.KeyEventSignal().Connect( this, &TiltController::OnKeyEvent ); } void CreateSensor() @@ -91,21 +88,6 @@ public: mTextLabel.RotateBy(pitchRot);; } - /** - * @brief OnKeyEvent signal handler. - * @param[in] event The key event information - */ - void OnKeyEvent( const KeyEvent& event ) - { - if( event.state == KeyEvent::Down ) - { - if ( IsKey( event, Dali::DALI_KEY_ESCAPE ) || IsKey( event, Dali::DALI_KEY_BACK ) ) - { - mApplication.Quit(); - } - } - } - private: Application& mApplication; TiltSensor mTiltSensor; diff --git a/packaging/com.samsung.dali-demo.spec b/packaging/com.samsung.dali-demo.spec index 7e5beb9..4f312c2 100755 --- a/packaging/com.samsung.dali-demo.spec +++ b/packaging/com.samsung.dali-demo.spec @@ -2,7 +2,7 @@ Name: com.samsung.dali-demo Summary: The OpenGLES Canvas Core Demo -Version: 1.2.0 +Version: 1.1.45 Release: 1 Group: System/Libraries License: Apache-2.0 @@ -76,9 +76,7 @@ cmake -DDALI_APP_DIR=%{dali_app_ro_dir} \ %if 0%{?enable_debug} -DCMAKE_BUILD_TYPE=Debug \ %endif - -DLOCAL_STYLE_DIR=%{local_style_dir} \ - -DINTERNATIONALIZATION:BOOL=OFF \ - . + -DLOCAL_STYLE_DIR=%{local_style_dir} . make %{?jobs:-j%jobs} diff --git a/resources/images/light-icon.png b/resources/images/light-icon.png deleted file mode 100644 index ff9fcf743e35359ea88c4af9f83365e981ac5f39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 117572 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 diff --git a/resources/po/as.po b/resources/po/as.po deleted file mode 100755 index 3d30f88..0000000 --- a/resources/po/as.po +++ /dev/null @@ -1,131 +0,0 @@ -msgid "DALI_DEMO_STR_TITLE_BLOCKS" -msgstr "অৱৰুদ্ধ কৰক" - -msgid "DALI_DEMO_STR_TITLE_BUBBLES" -msgstr "বেলুন" - -msgid "DALI_DEMO_STR_TITLE_BUTTONS" -msgstr "ক্লিক্" - -msgid "DALI_DEMO_STR_TITLE_COLOR_GRADIENT" -msgstr "ঝুৰ্" - -msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION" -msgstr "ঘনক পৰিৱৰ্তনীয় প্ৰভাৱ" - -msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION" -msgstr "পৰিৱৰ্তনীয় প্ৰভাৱ" - -msgid "DALI_DEMO_STR_TITLE_EFFECTS_VIEW" -msgstr "অকৃতকাৰ্য্য হ" - -msgid "DALI_DEMO_STR_TITLE_EMOJI_TEXT" -msgstr "Emoji" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_FITTING_SAMPLING" -msgstr "অনুবিম্ব ইজাৰ" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING" -msgstr "প্ৰতিচ্ছবি স্কেল কৰক" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW" -msgstr "অনুবিম্ব" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW_ALPHA_BLENDING" -msgstr "অনুবিম্ব অনুৰেখ পত্ৰ" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW_PIXEL_AREA" -msgstr "অনুবিম্ব Pixel Area" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW_SVG" -msgstr "অনুবিম্ব SVG" - -msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW" -msgstr "আইটেম দর্শন" - -msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS" -msgstr "ছাঁয়া" - -msgid "DALI_DEMO_STR_TITLE_LINE_MESH" -msgstr "অঁকোৱা-পকোৱা" - -msgid "DALI_DEMO_STR_TITLE_LOGGING" -msgstr "Logging" - -msgid "DALI_DEMO_STR_TITLE_MAGNIFIER" -msgstr "পৰিবৰ্দ্ধক" - -msgid "DALI_DEMO_STR_TITLE_MESH_MORPH" -msgstr "মেশ অঙ্কুৰিত" - -msgid "DALI_DEMO_STR_TITLE_MESH_SORTING" -msgstr "মেশ অসংযোগ" - -msgid "DALI_DEMO_STR_TITLE_MESH_VISUAL" -msgstr "3D অনুগামী" - -msgid "DALI_DEMO_STR_TITLE_METABALL_EXPLOSION" -msgstr "মেটাবল মহা-বিস্ফোৰণবাদ" - -msgid "DALI_DEMO_STR_TITLE_METABALL_REFRAC" -msgstr "মেটাবল প্ৰতিসৰিত" - -msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR" -msgstr "অস্পষ্ট" - -msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH" -msgstr "বিস্তাৰ" - -msgid "DALI_DEMO_STR_TITLE_NATIVE_IMAGE_SOURCE" -msgstr "অইন অনুবিম্ব" - -msgid "DALI_DEMO_STR_TITLE_NEGOTIATE_SIZE" -msgstr "অকণমান আপোচ কৰ্" - -msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW" -msgstr "পৃষ্ঠা লেআউট" - -msgid "DALI_DEMO_STR_TITLE_POPUP" -msgstr "পোপা মেনু" - -msgid "DALI_DEMO_STR_TITLE_PRIMITIVE_SHAPES" -msgstr "অংশ্যমান অৰ্কিড" - -msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU" -msgstr "ৰেডিয়েল নক্সা" - -msgid "DALI_DEMO_STR_TITLE_REFRACTION" -msgstr "প্ৰতিফলিত কৰক" - -msgid "DALI_DEMO_STR_TITLE_RENDERER_STENCIL" -msgstr "চক্ৰলেখন" - -msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI" -msgstr "লিপি" - -msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW" -msgstr "স্ক্ৰ'ল কৰক" - -msgid "DALI_DEMO_STR_TITLE_SUPER_BLUR_BLOOM" -msgstr "অস্পষ্টকৈ অপুষ্পক" - -msgid "DALI_DEMO_STR_TITLE_TEXTURED_MESH" -msgstr "টেক্সটারেদ মেশ" - -msgid "DALI_DEMO_STR_TITLE_TEXT_EDITOR" -msgstr "অকনিষ্ঠ আনুবংশিক" - -msgid "DALI_DEMO_STR_TITLE_TEXT_FIELD" -msgstr "অকনিষ্ঠ অগ্ৰণী" - -msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL" -msgstr "লেৱেল কৰক" - -msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE" -msgstr "অক্ষশক্তি অঁকা অকনিষ্ঠ" - -msgid "DALI_DEMO_STR_TITLE_TEXT_SCROLLING" -msgstr "অকনিষ্ঠ অৰ্জুন বঁটা" - -msgid "DALI_DEMO_STR_TITLE_TILT_SENSOR" -msgstr "টিল্ট অনুভূতি" \ No newline at end of file diff --git a/resources/po/de.po b/resources/po/de.po deleted file mode 100755 index 8524b05..0000000 --- a/resources/po/de.po +++ /dev/null @@ -1,131 +0,0 @@ -msgid "DALI_DEMO_STR_TITLE_BLOCKS" -msgstr "Blöcke" - -msgid "DALI_DEMO_STR_TITLE_BUBBLES" -msgstr "Schaumbildung" - -msgid "DALI_DEMO_STR_TITLE_BUTTONS" -msgstr "Tasten" - -msgid "DALI_DEMO_STR_TITLE_COLOR_GRADIENT" -msgstr "Farbverlauf " - -msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION" -msgstr "Würfel Übergangseffekt" - -msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION" -msgstr "Auflösen Übergangseffekt" - -msgid "DALI_DEMO_STR_TITLE_EFFECTS_VIEW" -msgstr "Auswirkungen" - -msgid "DALI_DEMO_STR_TITLE_EMOJI_TEXT" -msgstr "Emoji" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_FITTING_SAMPLING" -msgstr "Bild Montage und Sampling" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING" -msgstr "Bildskalierung" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW" -msgstr "Bildansicht " - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW_ALPHA_BLENDING" -msgstr "Bildansicht mit Transparenz" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW_PIXEL_AREA" -msgstr "Bildansicht Pixelbereich" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW_SVG" -msgstr "Bildansicht SVG" - -msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW" -msgstr "Item-Ansicht" - -msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS" -msgstr "Licht und Schatten" - -msgid "DALI_DEMO_STR_TITLE_LINE_MESH" -msgstr "Linien" - -msgid "DALI_DEMO_STR_TITLE_LOGGING" -msgstr "Logging" - -msgid "DALI_DEMO_STR_TITLE_MAGNIFIER" -msgstr "Bildschirmlupe" - -msgid "DALI_DEMO_STR_TITLE_MESH_MORPH" -msgstr "Mesh Veränderung" - -msgid "DALI_DEMO_STR_TITLE_MESH_SORTING" -msgstr "Mesh Sortierung" - -msgid "DALI_DEMO_STR_TITLE_MESH_VISUAL" -msgstr "3D-Modelle" - -msgid "DALI_DEMO_STR_TITLE_METABALL_EXPLOSION" -msgstr "Metaball Explosion" - -msgid "DALI_DEMO_STR_TITLE_METABALL_REFRAC" -msgstr "Metaball Brechung" - -msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR" -msgstr "Bewegungsunschärfe" - -msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH" -msgstr "Bewegung Strecke" - -msgid "DALI_DEMO_STR_TITLE_NATIVE_IMAGE_SOURCE" -msgstr "Nativen Bild" - -msgid "DALI_DEMO_STR_TITLE_NEGOTIATE_SIZE" -msgstr "Größe Verhandlung" - -msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW" -msgstr "Seite wechseln" - -msgid "DALI_DEMO_STR_TITLE_POPUP" -msgstr "Popup-Menü" - -msgid "DALI_DEMO_STR_TITLE_PRIMITIVE_SHAPES" -msgstr "Grundformen" - -msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU" -msgstr "Radialmenü" - -msgid "DALI_DEMO_STR_TITLE_REFRACTION" -msgstr "Brechung" - -msgid "DALI_DEMO_STR_TITLE_RENDERER_STENCIL" -msgstr "Schablone" - -msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI" -msgstr "Scripting" - -msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW" -msgstr "Scroll-Ansicht" - -msgid "DALI_DEMO_STR_TITLE_SUPER_BLUR_BLOOM" -msgstr "Unschärfe und blühen" - -msgid "DALI_DEMO_STR_TITLE_TEXTURED_MESH" -msgstr "Strukturiertem Mesh" - -msgid "DALI_DEMO_STR_TITLE_TEXT_EDITOR" -msgstr "Texteditor" - -msgid "DALI_DEMO_STR_TITLE_TEXT_FIELD" -msgstr "Textfeld" - -msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL" -msgstr "Beschriftung" - -msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE" -msgstr "Mehrere Sprachen Beschriftung" - -msgid "DALI_DEMO_STR_TITLE_TEXT_SCROLLING" -msgstr "Text Scrollen" - -msgid "DALI_DEMO_STR_TITLE_TILT_SENSOR" -msgstr "Neigungssensor" diff --git a/resources/po/en.po b/resources/po/en.po deleted file mode 120000 index 2ed6a9a..0000000 --- a/resources/po/en.po +++ /dev/null @@ -1 +0,0 @@ -en_US.po \ No newline at end of file diff --git a/resources/po/en_GB.po b/resources/po/en_GB.po deleted file mode 100755 index 3cbc74c..0000000 --- a/resources/po/en_GB.po +++ /dev/null @@ -1,131 +0,0 @@ -msgid "DALI_DEMO_STR_TITLE_BLOCKS" -msgstr "Blocks" - -msgid "DALI_DEMO_STR_TITLE_BUBBLES" -msgstr "Bubbles" - -msgid "DALI_DEMO_STR_TITLE_BUTTONS" -msgstr "Buttons" - -msgid "DALI_DEMO_STR_TITLE_COLOR_GRADIENT" -msgstr "Colour Gradient" - -msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION" -msgstr "Cube Effect" - -msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION" -msgstr "Dissolve Effect" - -msgid "DALI_DEMO_STR_TITLE_EFFECTS_VIEW" -msgstr "Effects View" - -msgid "DALI_DEMO_STR_TITLE_EMOJI_TEXT" -msgstr "Emoji Text" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_FITTING_SAMPLING" -msgstr "Image Fitting and Sampling" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING" -msgstr "Image Scaling Grid" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW" -msgstr "Image View" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW_ALPHA_BLENDING" -msgstr "Image View Alpha Blending" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW_PIXEL_AREA" -msgstr "Image View Pixel Area" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW_SVG" -msgstr "Image View SVG" - -msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW" -msgstr "Item View" - -msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS" -msgstr "Lights and Shadows" - -msgid "DALI_DEMO_STR_TITLE_LINE_MESH" -msgstr "Mesh Line" - -msgid "DALI_DEMO_STR_TITLE_LOGGING" -msgstr "Logging" - -msgid "DALI_DEMO_STR_TITLE_MAGNIFIER" -msgstr "Magnifier" - -msgid "DALI_DEMO_STR_TITLE_MESH_MORPH" -msgstr "Mesh Morph" - -msgid "DALI_DEMO_STR_TITLE_MESH_SORTING" -msgstr "Mesh Sorting" - -msgid "DALI_DEMO_STR_TITLE_MESH_VISUAL" -msgstr "Mesh Visual" - -msgid "DALI_DEMO_STR_TITLE_METABALL_EXPLOSION" -msgstr "Metaball Explosion" - -msgid "DALI_DEMO_STR_TITLE_METABALL_REFRAC" -msgstr "Metaball Refraction" - -msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR" -msgstr "Motion Blur" - -msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH" -msgstr "Motion Stretch" - -msgid "DALI_DEMO_STR_TITLE_NATIVE_IMAGE_SOURCE" -msgstr "Native Image Source" - -msgid "DALI_DEMO_STR_TITLE_NEGOTIATE_SIZE" -msgstr "Negotiate Size" - -msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW" -msgstr "Page Turn View" - -msgid "DALI_DEMO_STR_TITLE_POPUP" -msgstr "Popup" - -msgid "DALI_DEMO_STR_TITLE_PRIMITIVE_SHAPES" -msgstr "Primitive Shapes" - -msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU" -msgstr "Radial Menu" - -msgid "DALI_DEMO_STR_TITLE_REFRACTION" -msgstr "Refraction" - -msgid "DALI_DEMO_STR_TITLE_RENDERER_STENCIL" -msgstr "Renderer Stencil" - -msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI" -msgstr "Script-based UI" - -msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW" -msgstr "Scroll View" - -msgid "DALI_DEMO_STR_TITLE_SUPER_BLUR_BLOOM" -msgstr "Super Blur and Bloom" - -msgid "DALI_DEMO_STR_TITLE_TEXTURED_MESH" -msgstr "Mesh Texture" - -msgid "DALI_DEMO_STR_TITLE_TEXT_EDITOR" -msgstr "Text Editor" - -msgid "DALI_DEMO_STR_TITLE_TEXT_FIELD" -msgstr "Text Field" - -msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL" -msgstr "Text Label" - -msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE" -msgstr "Text Scripts" - -msgid "DALI_DEMO_STR_TITLE_TEXT_SCROLLING" -msgstr "Text Scrolling" - -msgid "DALI_DEMO_STR_TITLE_TILT_SENSOR" -msgstr "Tilt Sensor" diff --git a/resources/po/en_US.po b/resources/po/en_US.po deleted file mode 100755 index aab93ba..0000000 --- a/resources/po/en_US.po +++ /dev/null @@ -1,131 +0,0 @@ -msgid "DALI_DEMO_STR_TITLE_BLOCKS" -msgstr "Blocks" - -msgid "DALI_DEMO_STR_TITLE_BUBBLES" -msgstr "Bubbles" - -msgid "DALI_DEMO_STR_TITLE_BUTTONS" -msgstr "Buttons" - -msgid "DALI_DEMO_STR_TITLE_COLOR_GRADIENT" -msgstr "Color Gradient" - -msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION" -msgstr "Cube Effect" - -msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION" -msgstr "Dissolve Effect" - -msgid "DALI_DEMO_STR_TITLE_EFFECTS_VIEW" -msgstr "Effects View" - -msgid "DALI_DEMO_STR_TITLE_EMOJI_TEXT" -msgstr "Emoji Text" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_FITTING_SAMPLING" -msgstr "Image Fitting and Sampling" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING" -msgstr "Image Scaling Grid" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW" -msgstr "Image View" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW_ALPHA_BLENDING" -msgstr "Image View Alpha Blending" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW_PIXEL_AREA" -msgstr "Image View Pixel Area" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW_SVG" -msgstr "Image View SVG" - -msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW" -msgstr "Item View" - -msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS" -msgstr "Lights and Shadows" - -msgid "DALI_DEMO_STR_TITLE_LINE_MESH" -msgstr "Mesh Line" - -msgid "DALI_DEMO_STR_TITLE_LOGGING" -msgstr "Logging" - -msgid "DALI_DEMO_STR_TITLE_MAGNIFIER" -msgstr "Magnifier" - -msgid "DALI_DEMO_STR_TITLE_MESH_MORPH" -msgstr "Mesh Morph" - -msgid "DALI_DEMO_STR_TITLE_MESH_SORTING" -msgstr "Mesh Sorting" - -msgid "DALI_DEMO_STR_TITLE_MESH_VISUAL" -msgstr "Mesh Visual" - -msgid "DALI_DEMO_STR_TITLE_METABALL_EXPLOSION" -msgstr "Metaball Explosion" - -msgid "DALI_DEMO_STR_TITLE_METABALL_REFRAC" -msgstr "Metaball Refraction" - -msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR" -msgstr "Motion Blur" - -msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH" -msgstr "Motion Stretch" - -msgid "DALI_DEMO_STR_TITLE_NATIVE_IMAGE_SOURCE" -msgstr "Native Image Source" - -msgid "DALI_DEMO_STR_TITLE_NEGOTIATE_SIZE" -msgstr "Negotiate Size" - -msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW" -msgstr "Page Turn View" - -msgid "DALI_DEMO_STR_TITLE_POPUP" -msgstr "Popup" - -msgid "DALI_DEMO_STR_TITLE_PRIMITIVE_SHAPES" -msgstr "Primitive Shapes" - -msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU" -msgstr "Radial Menu" - -msgid "DALI_DEMO_STR_TITLE_REFRACTION" -msgstr "Refraction" - -msgid "DALI_DEMO_STR_TITLE_RENDERER_STENCIL" -msgstr "Renderer Stencil" - -msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI" -msgstr "Script-based UI" - -msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW" -msgstr "Scroll View" - -msgid "DALI_DEMO_STR_TITLE_SUPER_BLUR_BLOOM" -msgstr "Super Blur and Bloom" - -msgid "DALI_DEMO_STR_TITLE_TEXTURED_MESH" -msgstr "Mesh Texture" - -msgid "DALI_DEMO_STR_TITLE_TEXT_EDITOR" -msgstr "Text Editor" - -msgid "DALI_DEMO_STR_TITLE_TEXT_FIELD" -msgstr "Text Field" - -msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL" -msgstr "Text Label" - -msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE" -msgstr "Text Scripts" - -msgid "DALI_DEMO_STR_TITLE_TEXT_SCROLLING" -msgstr "Text Scrolling" - -msgid "DALI_DEMO_STR_TITLE_TILT_SENSOR" -msgstr "Tilt Sensor" diff --git a/resources/po/es.po b/resources/po/es.po deleted file mode 100755 index d3216e8..0000000 --- a/resources/po/es.po +++ /dev/null @@ -1,131 +0,0 @@ -msgid "DALI_DEMO_STR_TITLE_BLOCKS" -msgstr "Bloques" - -msgid "DALI_DEMO_STR_TITLE_BUBBLES" -msgstr "Burbujas" - -msgid "DALI_DEMO_STR_TITLE_BUTTONS" -msgstr "Botones" - -msgid "DALI_DEMO_STR_TITLE_COLOR_GRADIENT" -msgstr "Gradiente de color" - -msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION" -msgstr "Transición cubos" - -msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION" -msgstr "Transición disolver" - -msgid "DALI_DEMO_STR_TITLE_EFFECTS_VIEW" -msgstr "Vista de efectos" - -msgid "DALI_DEMO_STR_TITLE_EMOJI_TEXT" -msgstr "Texto con emojis" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_FITTING_SAMPLING" -msgstr "Modo de encaje y muestreo" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING" -msgstr "Modo de escalado de imagen" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW" -msgstr "Control con imagenes" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW_ALPHA_BLENDING" -msgstr "Control con imagenes con transparencias" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW_PIXEL_AREA" -msgstr "Control con imagenes con area de pixeles" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW_SVG" -msgstr "Control con imagenes SVG" - -msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW" -msgstr "Vista de elementos" - -msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS" -msgstr "Luces y sombras" - -msgid "DALI_DEMO_STR_TITLE_LINE_MESH" -msgstr "Lineas" - -msgid "DALI_DEMO_STR_TITLE_LOGGING" -msgstr "Control de entrada" - -msgid "DALI_DEMO_STR_TITLE_MAGNIFIER" -msgstr "Lupa" - -msgid "DALI_DEMO_STR_TITLE_MESH_MORPH" -msgstr "Transformacion de geometrias" - -msgid "DALI_DEMO_STR_TITLE_MESH_SORTING" -msgstr "Ordenacion de geometrias" - -msgid "DALI_DEMO_STR_TITLE_MESH_VISUAL" -msgstr "Gemeotria 3D" - -msgid "DALI_DEMO_STR_TITLE_METABALL_EXPLOSION" -msgstr "Explosion de metabolas" - -msgid "DALI_DEMO_STR_TITLE_METABALL_REFRAC" -msgstr "Refraccion de metabolas" - -msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR" -msgstr "Desenfoque de movimiento" - -msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH" -msgstr "Movimiento con deformación" - -msgid "DALI_DEMO_STR_TITLE_NATIVE_IMAGE_SOURCE" -msgstr "Fuente de imagenes nativas" - -msgid "DALI_DEMO_STR_TITLE_NEGOTIATE_SIZE" -msgstr "Negociacion de tamaño" - -msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW" -msgstr "Vista de páginas" - -msgid "DALI_DEMO_STR_TITLE_POPUP" -msgstr "Popup" - -msgid "DALI_DEMO_STR_TITLE_PRIMITIVE_SHAPES" -msgstr "Primitvas 3D" - -msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU" -msgstr "Menú radial" - -msgid "DALI_DEMO_STR_TITLE_REFRACTION" -msgstr "Refracción" - -msgid "DALI_DEMO_STR_TITLE_RENDERER_STENCIL" -msgstr "Dibujado con stencil" - -msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI" -msgstr "Interfaz definida por Script" - -msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW" -msgstr "Vista de desplazamiento" - -msgid "DALI_DEMO_STR_TITLE_SUPER_BLUR_BLOOM" -msgstr "Efecto blur y bloom" - -msgid "DALI_DEMO_STR_TITLE_TEXTURED_MESH" -msgstr "Geometria con texturas" - -msgid "DALI_DEMO_STR_TITLE_TEXT_EDITOR" -msgstr "Editor de texto" - -msgid "DALI_DEMO_STR_TITLE_TEXT_FIELD" -msgstr "Campo de texto" - -msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL" -msgstr "Etiqueta de texto" - -msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE" -msgstr "Textos internacionales" - -msgid "DALI_DEMO_STR_TITLE_TEXT_SCROLLING" -msgstr "Texto con desplazamiento" - -msgid "DALI_DEMO_STR_TITLE_TILT_SENSOR" -msgstr "Sensor de inclinacion" diff --git a/resources/po/ko.po b/resources/po/ko.po deleted file mode 100755 index b7cdee7..0000000 --- a/resources/po/ko.po +++ /dev/null @@ -1,131 +0,0 @@ -msgid "DALI_DEMO_STR_TITLE_BLOCKS" -msgstr "블록" - -msgid "DALI_DEMO_STR_TITLE_BUBBLES" -msgstr "방울" - -msgid "DALI_DEMO_STR_TITLE_BUTTONS" -msgstr "" - -msgid "DALI_DEMO_STR_TITLE_COLOR_GRADIENT" -msgstr "" - -msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION" -msgstr "입방체 전환" - -msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION" -msgstr "디졸브 전환" - -msgid "DALI_DEMO_STR_TITLE_EFFECTS_VIEW" -msgstr "" - -msgid "DALI_DEMO_STR_TITLE_EMOJI_TEXT" -msgstr "" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_FITTING_SAMPLING" -msgstr "" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING" -msgstr "이미지 확대" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW" -msgstr "" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW_ALPHA_BLENDING" -msgstr "" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW_PIXEL_AREA" -msgstr "" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW_SVG" -msgstr "" - -msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW" -msgstr "아이템 뷰" - -msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS" -msgstr "빛과 그림자" - -msgid "DALI_DEMO_STR_TITLE_LINE_MESH" -msgstr "" - -msgid "DALI_DEMO_STR_TITLE_LOGGING" -msgstr "" - -msgid "DALI_DEMO_STR_TITLE_MAGNIFIER" -msgstr "돋보기" - -msgid "DALI_DEMO_STR_TITLE_MESH_MORPH" -msgstr "" - -msgid "DALI_DEMO_STR_TITLE_MESH_SORTING" -msgstr "" - -msgid "DALI_DEMO_STR_TITLE_MESH_VISUAL" -msgstr "" - -msgid "DALI_DEMO_STR_TITLE_METABALL_EXPLOSION" -msgstr "" - -msgid "DALI_DEMO_STR_TITLE_METABALL_REFRAC" -msgstr "" - -msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR" -msgstr "모션 블러" - -msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH" -msgstr "늘이기" - -msgid "DALI_DEMO_STR_TITLE_NATIVE_IMAGE_SOURCE" -msgstr "" - -msgid "DALI_DEMO_STR_TITLE_NEGOTIATE_SIZE" -msgstr "" - -msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW" -msgstr "책장 넘기기" - -msgid "DALI_DEMO_STR_TITLE_POPUP" -msgstr "" - -msgid "DALI_DEMO_STR_TITLE_PRIMITIVE_SHAPES" -msgstr "" - -msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU" -msgstr "레이디 얼 메뉴" - -msgid "DALI_DEMO_STR_TITLE_REFRACTION" -msgstr "굴절 효과" - -msgid "DALI_DEMO_STR_TITLE_RENDERER_STENCIL" -msgstr "" - -msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI" -msgstr "스크립팅" - -msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW" -msgstr "스크롤 뷰" - -msgid "DALI_DEMO_STR_TITLE_SUPER_BLUR_BLOOM" -msgstr "" - -msgid "DALI_DEMO_STR_TITLE_TEXTURED_MESH" -msgstr "" - -msgid "DALI_DEMO_STR_TITLE_TEXT_EDITOR" -msgstr "" - -msgid "DALI_DEMO_STR_TITLE_TEXT_FIELD" -msgstr "" - -msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL" -msgstr "텍스트 라벨" - -msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE" -msgstr "" - -msgid "DALI_DEMO_STR_TITLE_TEXT_SCROLLING" -msgstr "" - -msgid "DALI_DEMO_STR_TITLE_TILT_SENSOR" -msgstr "" \ No newline at end of file diff --git a/resources/po/ml.po b/resources/po/ml.po deleted file mode 100755 index 1f477a5..0000000 --- a/resources/po/ml.po +++ /dev/null @@ -1,131 +0,0 @@ -msgid "DALI_DEMO_STR_TITLE_BLOCKS" -msgstr "തടയപ്പെട്ട" - -msgid "DALI_DEMO_STR_TITLE_BUBBLES" -msgstr "കുമിള" - -msgid "DALI_DEMO_STR_TITLE_BUTTONS" -msgstr "ബട്ടണുകൾ" - -msgid "DALI_DEMO_STR_TITLE_COLOR_GRADIENT" -msgstr "വർണ്ണ ഗ്രേഡിയന്റ്" - -msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION" -msgstr "സമചതുരക്കട്ട സംക്രമണ ഇഫക്ട്" - -msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION" -msgstr "സ്ഥാനാന്തരം സംക്രമണ ഇഫക്ട്" - -msgid "DALI_DEMO_STR_TITLE_EFFECTS_VIEW" -msgstr "എഫക്റ്റുകൾ" - -msgid "DALI_DEMO_STR_TITLE_EMOJI_TEXT" -msgstr "ഇമോട്ടികോണുകൾ" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_FITTING_SAMPLING" -msgstr "ചിത്രം ഉചിതമാണ് ആൻഡ് ഒരുപറ്റം" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING" -msgstr "ഇമേജിംഗ്" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW" -msgstr "ചിത്രം കാഴ്ച" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW_ALPHA_BLENDING" -msgstr "ചിത്രം കാഴ്ച" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW_PIXEL_AREA" -msgstr "സുതാര്യത ഉപയോഗിച്ച് ഇമേജ് കാഴ്ച" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW_SVG" -msgstr "ചിത്രം കാഴ്ച SVG" - -msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW" -msgstr "ഇനം കാഴ്ച" - -msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS" -msgstr "നിഴല്" - -msgid "DALI_DEMO_STR_TITLE_LINE_MESH" -msgstr "വര" - -msgid "DALI_DEMO_STR_TITLE_LOGGING" -msgstr "ലോഗിംഗ്" - -msgid "DALI_DEMO_STR_TITLE_MAGNIFIER" -msgstr "ഭൂതക്കണ്ണാടി" - -msgid "DALI_DEMO_STR_TITLE_MESH_MORPH" -msgstr "മോർഫ് mesh" - -msgid "DALI_DEMO_STR_TITLE_MESH_SORTING" -msgstr "തരംതിരിക്കലിനായി mesh" - -msgid "DALI_DEMO_STR_TITLE_MESH_VISUAL" -msgstr "3D മോഡലിങ്" - -msgid "DALI_DEMO_STR_TITLE_METABALL_EXPLOSION" -msgstr "മെറ്റാ പന്ത് സ്ഫോടനം" - -msgid "DALI_DEMO_STR_TITLE_METABALL_REFRAC" -msgstr "മെറ്റാ പന്ത് അപവർത്തനം" - -msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR" -msgstr "അവ്യക്തമാക്കല്" - -msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH" -msgstr "സ്ട്രെച്ച്" - -msgid "DALI_DEMO_STR_TITLE_NATIVE_IMAGE_SOURCE" -msgstr "നേറ്റീവ് ചിത്രം" - -msgid "DALI_DEMO_STR_TITLE_NEGOTIATE_SIZE" -msgstr "വലുപ്പം കൂടിയാലോചന" - -msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW" -msgstr "പേജ് ലേഔട്ട്" - -msgid "DALI_DEMO_STR_TITLE_POPUP" -msgstr "പോപപ്പ് മെനുവിൽ" - -msgid "DALI_DEMO_STR_TITLE_PRIMITIVE_SHAPES" -msgstr "അടിസ്ഥാന രൂപങ്ങൾ" - -msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU" -msgstr "റേഡിയല് രേഖാചിത്രം" - -msgid "DALI_DEMO_STR_TITLE_REFRACTION" -msgstr "പ്രതിഫലിക്കുക" - -msgid "DALI_DEMO_STR_TITLE_RENDERER_STENCIL" -msgstr "സീരിയോലിത്തോഗ്രാഫ്" - -msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI" -msgstr "സ്ക്രിപ്റ്റ്" - -msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW" -msgstr "സ്ക്രോള്ചെയ്യുക കാഴ്ച" - -msgid "DALI_DEMO_STR_TITLE_SUPER_BLUR_BLOOM" -msgstr "മങ്ങൽ പൂക്കൽ" - -msgid "DALI_DEMO_STR_TITLE_TEXTURED_MESH" -msgstr "ടെക്സ്ചർ mesh" - -msgid "DALI_DEMO_STR_TITLE_TEXT_EDITOR" -msgstr "ടെക്സ്റ്റ് എഡിറ്റർ" - -msgid "DALI_DEMO_STR_TITLE_TEXT_FIELD" -msgstr "ടെക്സ്റ്റ് ഫീൽഡ്" - -msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL" -msgstr "ലേബലുചെയ്യുക" - -msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE" -msgstr "ഒന്നിലധികം ഭാഷ വാചകം" - -msgid "DALI_DEMO_STR_TITLE_TEXT_SCROLLING" -msgstr "ടെക്സ്റ്റ് സ്ക്രോളിംഗ്" - -msgid "DALI_DEMO_STR_TITLE_TILT_SENSOR" -msgstr "ചെരിവ് സെൻസർ" \ No newline at end of file diff --git a/resources/po/ur.po b/resources/po/ur.po deleted file mode 100755 index 935a8ab..0000000 --- a/resources/po/ur.po +++ /dev/null @@ -1,131 +0,0 @@ -msgid "DALI_DEMO_STR_TITLE_BLOCKS" -msgstr "اینٹیں" - -msgid "DALI_DEMO_STR_TITLE_BUBBLES" -msgstr "بلبلے" - -msgid "DALI_DEMO_STR_TITLE_BUTTONS" -msgstr "بٹنوں" - -msgid "DALI_DEMO_STR_TITLE_COLOR_GRADIENT" -msgstr "رنگ میلان" - -msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION" -msgstr "کیوب منتقلی" - -msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION" -msgstr "حل منتقلی" - -msgid "DALI_DEMO_STR_TITLE_EFFECTS_VIEW" -msgstr "اثرات" - -msgid "DALI_DEMO_STR_TITLE_EMOJI_TEXT" -msgstr "اموٹکان" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_FITTING_SAMPLING" -msgstr "تصویر فٹنگ" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING" -msgstr "تصویر پیمائی" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW" -msgstr "تصویر کنٹرول" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW_ALPHA_BLENDING" -msgstr "تصویر کنٹرول" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW_PIXEL_AREA" -msgstr "تصویر کنٹرول شفافیت کے ساتھ" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW_SVG" -msgstr "تصویر کنٹرول SVG" - -msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW" -msgstr "چیزوں کی فہرست" - -msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS" -msgstr "روشنی اور سائے" - -msgid "DALI_DEMO_STR_TITLE_LINE_MESH" -msgstr "لکیریں" - -msgid "DALI_DEMO_STR_TITLE_LOGGING" -msgstr "لاگنگ" - -msgid "DALI_DEMO_STR_TITLE_MAGNIFIER" -msgstr "مکبر" - -msgid "DALI_DEMO_STR_TITLE_MESH_MORPH" -msgstr "میش کی تبدیلی" - -msgid "DALI_DEMO_STR_TITLE_MESH_SORTING" -msgstr "میش کی چھنٹائی" - -msgid "DALI_DEMO_STR_TITLE_MESH_VISUAL" -msgstr "3D میش" - -msgid "DALI_DEMO_STR_TITLE_METABALL_EXPLOSION" -msgstr "میٹابال دھماکہ" - -msgid "DALI_DEMO_STR_TITLE_METABALL_REFRAC" -msgstr "میٹابال اپورتن" - -msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR" -msgstr "دھندلانے کی حرکت" - -msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH" -msgstr "کھینچھنے کی حرکت" - -msgid "DALI_DEMO_STR_TITLE_NATIVE_IMAGE_SOURCE" -msgstr "نیٹو تصویر" - -msgid "DALI_DEMO_STR_TITLE_NEGOTIATE_SIZE" -msgstr "سائز مذاکرات" - -msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW" -msgstr "کتاب" - -msgid "DALI_DEMO_STR_TITLE_POPUP" -msgstr "پاپ اپ" - -msgid "DALI_DEMO_STR_TITLE_PRIMITIVE_SHAPES" -msgstr "سادہ ماڈلیے" - -msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU" -msgstr "ریڈیل مینو" - -msgid "DALI_DEMO_STR_TITLE_REFRACTION" -msgstr "رفراکشن" - -msgid "DALI_DEMO_STR_TITLE_RENDERER_STENCIL" -msgstr "سٹینسل" - -msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI" -msgstr "سکرپٹ" - -msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW" -msgstr "سکرول ویو" - -msgid "DALI_DEMO_STR_TITLE_SUPER_BLUR_BLOOM" -msgstr "دھندلاپن اور بلوم" - -msgid "DALI_DEMO_STR_TITLE_TEXTURED_MESH" -msgstr "ٹیکسچرد میش" - -msgid "DALI_DEMO_STR_TITLE_TEXT_EDITOR" -msgstr "حروف ایڈیٹر" - -msgid "DALI_DEMO_STR_TITLE_TEXT_FIELD" -msgstr "حروف لائن ایڈیٹر" - -msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL" -msgstr "حروف کا لیبل" - -msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE" -msgstr "کئی زبانوں" - -msgid "DALI_DEMO_STR_TITLE_TEXT_SCROLLING" -msgstr "حروف کاسکرال " - -msgid "DALI_DEMO_STR_TITLE_TILT_SENSOR" -msgstr "ٹلٹ سینسر" diff --git a/resources/po/zn_CH.po b/resources/po/zn_CH.po deleted file mode 100755 index 17c43ab..0000000 --- a/resources/po/zn_CH.po +++ /dev/null @@ -1,131 +0,0 @@ -msgid "DALI_DEMO_STR_TITLE_BLOCKS" -msgstr "块体" - -msgid "DALI_DEMO_STR_TITLE_BUBBLES" -msgstr "气泡" - -msgid "DALI_DEMO_STR_TITLE_BUTTONS" -msgstr "按钮" - -msgid "DALI_DEMO_STR_TITLE_COLOR_GRADIENT" -msgstr "颜色梯度" - -msgid "DALI_DEMO_STR_TITLE_CUBE_TRANSITION" -msgstr "方块切换效果" - -msgid "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION" -msgstr "冰消瓦解切换效果" - -msgid "DALI_DEMO_STR_TITLE_EFFECTS_VIEW" -msgstr "效果视图" - -msgid "DALI_DEMO_STR_TITLE_EMOJI_TEXT" -msgstr "表情符号" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_FITTING_SAMPLING" -msgstr "图像填充及采样" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_SCALING" -msgstr "图像缩放" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW" -msgstr "图像视图" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW_ALPHA_BLENDING" -msgstr "图像视图透明度" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW_PIXEL_AREA" -msgstr "图像视图像素区域" - -msgid "DALI_DEMO_STR_TITLE_IMAGE_VIEW_SVG" -msgstr "图像视图 SVG" - -msgid "DALI_DEMO_STR_TITLE_ITEM_VIEW" -msgstr "项目视图" - -msgid "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS" -msgstr "阴影" - -msgid "DALI_DEMO_STR_TITLE_LINE_MESH" -msgstr "线条" - -msgid "DALI_DEMO_STR_TITLE_LOGGING" -msgstr "记录" - -msgid "DALI_DEMO_STR_TITLE_MAGNIFIER" -msgstr "放大鏡" - -msgid "DALI_DEMO_STR_TITLE_MESH_MORPH" -msgstr "网格变形" - -msgid "DALI_DEMO_STR_TITLE_MESH_SORTING" -msgstr "网格排序" - -msgid "DALI_DEMO_STR_TITLE_MESH_VISUAL" -msgstr "3D模型" - -msgid "DALI_DEMO_STR_TITLE_METABALL_EXPLOSION" -msgstr "元球爆炸" - -msgid "DALI_DEMO_STR_TITLE_METABALL_REFRAC" -msgstr "元球折射" - -msgid "DALI_DEMO_STR_TITLE_MOTION_BLUR" -msgstr "动作模糊" - -msgid "DALI_DEMO_STR_TITLE_MOTION_STRETCH" -msgstr "动作拉伸" - -msgid "DALI_DEMO_STR_TITLE_NATIVE_IMAGE_SOURCE" -msgstr "本地图像" - -msgid "DALI_DEMO_STR_TITLE_NEGOTIATE_SIZE" -msgstr "尺寸协商" - -msgid "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW" -msgstr "翻页" - -msgid "DALI_DEMO_STR_TITLE_POPUP" -msgstr "弹窗" - -msgid "DALI_DEMO_STR_TITLE_PRIMITIVE_SHAPES" -msgstr "基本形状" - -msgid "DALI_DEMO_STR_TITLE_RADIAL_MENU" -msgstr "径向菜单" - -msgid "DALI_DEMO_STR_TITLE_REFRACTION" -msgstr "折射" - -msgid "DALI_DEMO_STR_TITLE_RENDERER_STENCIL" -msgstr "模板缓冲" - -msgid "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI" -msgstr "脚本用户界面" - -msgid "DALI_DEMO_STR_TITLE_SCROLL_VIEW" -msgstr "滚动视图" - -msgid "DALI_DEMO_STR_TITLE_SUPER_BLUR_BLOOM" -msgstr "模糊及泛光" - -msgid "DALI_DEMO_STR_TITLE_TEXTURED_MESH" -msgstr "纹理网格" - -msgid "DALI_DEMO_STR_TITLE_TEXT_EDITOR" -msgstr "文字编辑器" - -msgid "DALI_DEMO_STR_TITLE_TEXT_FIELD" -msgstr "文字栏" - -msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL" -msgstr "标签" - -msgid "DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE" -msgstr "多语言标签" - -msgid "DALI_DEMO_STR_TITLE_TEXT_SCROLLING" -msgstr "滚动文字" - -msgid "DALI_DEMO_STR_TITLE_TILT_SENSOR" -msgstr "倾斜传感器" \ No newline at end of file diff --git a/shared/dali-demo-strings.h b/shared/dali-demo-strings.h index b1320c2..092a237 100644 --- a/shared/dali-demo-strings.h +++ b/shared/dali-demo-strings.h @@ -32,100 +32,91 @@ extern "C" #ifdef INTERNATIONALIZATION_ENABLED -#define DALI_DEMO_STR_TITLE_BLOCKS dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_BLOCKS") -#define DALI_DEMO_STR_TITLE_BUBBLES dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_BUBBLES") -#define DALI_DEMO_STR_TITLE_BUTTONS dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_BUTTONS") -#define DALI_DEMO_STR_TITLE_COLOR_GRADIENT dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_COLOR_GRADIENT") -#define DALI_DEMO_STR_TITLE_CUBE_TRANSITION dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_CUBE_TRANSITION") -#define DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION") -#define DALI_DEMO_STR_TITLE_EFFECTS_VIEW dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_EFFECTS_VIEW") -#define DALI_DEMO_STR_TITLE_EMOJI_TEXT dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_EMOJI_TEXT") -#define DALI_DEMO_STR_TITLE_IMAGE_FITTING_SAMPLING dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_IMAGE_FITTING_SAMPLING") -#define DALI_DEMO_STR_TITLE_IMAGE_SCALING dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_IMAGE_SCALING") -#define DALI_DEMO_STR_TITLE_IMAGE_VIEW dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_IMAGE_VIEW") -#define DALI_DEMO_STR_TITLE_IMAGE_VIEW_ALPHA_BLENDING dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_IMAGE_VIEW_ALPHA_BLENDING") -#define DALI_DEMO_STR_TITLE_IMAGE_VIEW_PIXEL_AREA dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_IMAGE_VIEW_PIXEL_AREA") -#define DALI_DEMO_STR_TITLE_IMAGE_VIEW_SVG dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_IMAGE_VIEW_SVG") -#define DALI_DEMO_STR_TITLE_ITEM_VIEW dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_ITEM_VIEW") -#define DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS") -#define DALI_DEMO_STR_TITLE_LINE_MESH dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_LINE_MESH") -#define DALI_DEMO_STR_TITLE_LOGGING dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_LOGGING") -#define DALI_DEMO_STR_TITLE_MAGNIFIER dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_MAGNIFIER") -#define DALI_DEMO_STR_TITLE_MESH_MORPH dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_MESH_MORPH") -#define DALI_DEMO_STR_TITLE_MESH_SORTING dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_MESH_SORTING") -#define DALI_DEMO_STR_TITLE_MESH_VISUAL dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_MESH_VISUAL") -#define DALI_DEMO_STR_TITLE_METABALL_EXPLOSION dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_METABALL_EXPLOSION") -#define DALI_DEMO_STR_TITLE_METABALL_REFRAC dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_METABALL_REFRAC") -#define DALI_DEMO_STR_TITLE_MOTION_BLUR dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_MOTION_BLUR") -#define DALI_DEMO_STR_TITLE_MOTION_STRETCH dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_MOTION_STRETCH") -#define DALI_DEMO_STR_TITLE_NATIVE_IMAGE_SOURCE dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_NATIVE_IMAGE_SOURCE") -#define DALI_DEMO_STR_TITLE_NEGOTIATE_SIZE dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_NEGOTIATE_SIZE") -#define DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW") -#define DALI_DEMO_STR_TITLE_POPUP dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_POPUP") -#define DALI_DEMO_STR_TITLE_PRIMITIVE_SHAPES dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_PRIMITIVE_SHAPES") -#define DALI_DEMO_STR_TITLE_RADIAL_MENU dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_RADIAL_MENU") -#define DALI_DEMO_STR_TITLE_REFRACTION dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_REFRACTION") -#define DALI_DEMO_STR_TITLE_RENDERER_STENCIL dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_RENDERER_STENCIL") -#define DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI") -#define DALI_DEMO_STR_TITLE_SCROLL_VIEW dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_SCROLL_VIEW") -#define DALI_DEMO_STR_TITLE_SUPER_BLUR_BLOOM dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_SUPER_BLUR_BLOOM") -#define DALI_DEMO_STR_TITLE_TEXTURED_MESH dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_TEXTURED_MESH") -#define DALI_DEMO_STR_TITLE_TEXT_EDITOR dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_TEXT_EDITOR") -#define DALI_DEMO_STR_TITLE_TEXT_FIELD dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_TEXT_FIELD") -#define DALI_DEMO_STR_TITLE_TEXT_LABEL dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_TEXT_LABEL") -#define DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE") -#define DALI_DEMO_STR_TITLE_TEXT_SCROLLING dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_TEXT_SCROLLING") -#define DALI_DEMO_STR_TITLE_TILT_SENSOR dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_TILT_SENSOR") +#define DALI_DEMO_STR_TITLE_BUBBLES dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_BUBBLES") +#define DALI_DEMO_STR_TITLE_BLOCKS dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_BLOCKS") +#define DALI_DEMO_STR_TITLE_CUBE_TRANSITION dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_CUBE_TRANSITION") +#define DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION") +#define DALI_DEMO_STR_TITLE_ITEM_VIEW dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_ITEM_VIEW") +#define DALI_DEMO_STR_TITLE_RENDERER_STENCIL dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_RENDERER_STENCIL") +#define DALI_DEMO_STR_TITLE_MAGNIFIER dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_MAGNIFIER") +#define DALI_DEMO_STR_TITLE_MOTION_BLUR dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_MOTION_BLUR") +#define DALI_DEMO_STR_TITLE_MOTION_STRETCH dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_MOTION_STRETCH") +#define DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW") +#define DALI_DEMO_STR_TITLE_RADIAL_MENU dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_RADIAL_MENU") +#define DALI_DEMO_STR_TITLE_REFRACTION dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_REFRACTION") +#define DALI_DEMO_STR_TITLE_SCROLL_VIEW dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_SCROLL_VIEW") +#define DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS") +#define DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI") +#define DALI_DEMO_STR_TITLE_IMAGE_FITTING_SAMPLING dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_IMAGE_FITTING_SAMPLING") +#define DALI_DEMO_STR_TITLE_IMAGE_SCALING dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_IMAGE_SCALING") +#define DALI_DEMO_STR_TITLE_TEXT_FIELD dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_TEXT_FIELD") +#define DALI_DEMO_STR_TITLE_TEXT_LABEL dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_TEXT_LABEL") +#define DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE") +#define DALI_DEMO_STR_TITLE_EMOJI_TEXT dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_EMOJI_TEXT") +#define DALI_DEMO_STR_TITLE_NEGOTIATE_SIZE dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_NEGOTIATE_SIZE") +#define DALI_DEMO_STR_TITLE_POPUP dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_POPUP") +#define DALI_DEMO_STR_TITLE_BUTTONS dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_BUTTONS") +#define DALI_DEMO_STR_TITLE_LOGGING dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TITLE_LOGGING") +#define DALI_DEMO_STR_TITLE_MESH_MORPH dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_MESH_MORPH") +#define DALI_DEMO_STR_TITLE_MESH_SORTING dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_MESH_SORTING") +#define DALI_DEMO_STR_TITLE_TEXTURED_MESH dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_TEXTURED_MESH") +#define DALI_DEMO_STR_TITLE_LINE_MESH dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_LINE_MESH") +#define DALI_DEMO_STR_TITLE_COLOR_GRADIENT dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_COLOR_GRADIENT") +#define DALI_DEMO_STR_TITLE_SUPER_BLUR_BLOOM dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_SUPER_BLUR_BLOOM") +#define DALI_DEMO_STR_TITLE_EFFECTS_VIEW dgettext(DALI_DEMO_DOMAIN_LOCAL, "DALI_DEMO_STR_EFFECTS_VIEW") #else // !INTERNATIONALIZATION_ENABLED -#define DALI_DEMO_STR_TITLE_BLOCKS "Blocks" -#define DALI_DEMO_STR_TITLE_BUBBLES "Bubbles" -#define DALI_DEMO_STR_TITLE_BUTTONS "Buttons" -#define DALI_DEMO_STR_TITLE_COLOR_GRADIENT "Color Gradient" -#define DALI_DEMO_STR_TITLE_CUBE_TRANSITION "Cube Effect" -#define DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION "Dissolve Effect" -#define DALI_DEMO_STR_TITLE_EFFECTS_VIEW "Effects View" -#define DALI_DEMO_STR_TITLE_EMOJI_TEXT "Emoji Text" -#define DALI_DEMO_STR_TITLE_IMAGE_FITTING_SAMPLING "Image Fitting and Sampling" -#define DALI_DEMO_STR_TITLE_IMAGE_SCALING "Image Scaling Grid" -#define DALI_DEMO_STR_TITLE_IMAGE_VIEW "Image View" -#define DALI_DEMO_STR_TITLE_IMAGE_VIEW_ALPHA_BLENDING "Image View Alpha Blending" -#define DALI_DEMO_STR_TITLE_IMAGE_VIEW_PIXEL_AREA "Image View Pixel Area" -#define DALI_DEMO_STR_TITLE_IMAGE_VIEW_SVG "Image View SVG" -#define DALI_DEMO_STR_TITLE_ITEM_VIEW "Item View" -#define DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS "Lights and shadows" -#define DALI_DEMO_STR_TITLE_LINE_MESH "Mesh Line" -#define DALI_DEMO_STR_TITLE_LOGGING "Logging" -#define DALI_DEMO_STR_TITLE_MAGNIFIER "Magnifier" -#define DALI_DEMO_STR_TITLE_MESH_MORPH "Mesh Morph" -#define DALI_DEMO_STR_TITLE_MESH_SORTING "Mesh Sorting" -#define DALI_DEMO_STR_TITLE_MESH_VISUAL "Mesh Visual" -#define DALI_DEMO_STR_TITLE_METABALL_EXPLOSION "Metaball Explosion" -#define DALI_DEMO_STR_TITLE_METABALL_REFRAC "Metaball Refractions" -#define DALI_DEMO_STR_TITLE_MOTION_BLUR "Motion Blur" -#define DALI_DEMO_STR_TITLE_MOTION_STRETCH "Motion Stretch" -#define DALI_DEMO_STR_TITLE_NATIVE_IMAGE_SOURCE "Native Image Source" -#define DALI_DEMO_STR_TITLE_NEGOTIATE_SIZE "Negotiate Size" -#define DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW "Page Turn View" -#define DALI_DEMO_STR_TITLE_POPUP "Popup" -#define DALI_DEMO_STR_TITLE_PRIMITIVE_SHAPES "Primitive Shapes" -#define DALI_DEMO_STR_TITLE_RADIAL_MENU "Radial Menu" -#define DALI_DEMO_STR_TITLE_REFRACTION "Refract Effect" -#define DALI_DEMO_STR_TITLE_RENDERER_STENCIL "Renderer Stencils" -#define DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI "Script Based UI" -#define DALI_DEMO_STR_TITLE_SCROLL_VIEW "Scroll View" -#define DALI_DEMO_STR_TITLE_SUPER_BLUR_BLOOM "Super Blur and Bloom" -#define DALI_DEMO_STR_TITLE_TEXTURED_MESH "Mesh Texture" -#define DALI_DEMO_STR_TITLE_TEXT_EDITOR "Text Editor" -#define DALI_DEMO_STR_TITLE_TEXT_FIELD "Text Field" -#define DALI_DEMO_STR_TITLE_TEXT_LABEL "Text Label" -#define DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE "Text Scripts" -#define DALI_DEMO_STR_TITLE_TEXT_SCROLLING "Text Scrolling" -#define DALI_DEMO_STR_TITLE_TILT_SENSOR "Tilt Sensor" +#define DALI_DEMO_STR_TITLE_BUBBLES "Bubbles" +#define DALI_DEMO_STR_TITLE_BLOCKS "Blocks" +#define DALI_DEMO_STR_TITLE_CUBE_TRANSITION "Cube Effect" +#define DALI_DEMO_STR_TITLE_DISSOLVE_TRANSITION "Dissolve Effect" +#define DALI_DEMO_STR_TITLE_ITEM_VIEW "Item View" +#define DALI_DEMO_STR_TITLE_RENDERER_STENCIL "Renderer Stencils" +#define DALI_DEMO_STR_TITLE_MAGNIFIER "Magnifier" +#define DALI_DEMO_STR_TITLE_MODEL_3D_VIEWER "Model 3D Viewer" +#define DALI_DEMO_STR_TITLE_MOTION_BLUR "Motion Blur" +#define DALI_DEMO_STR_TITLE_MOTION_STRETCH "Motion Stretch" +#define DALI_DEMO_STR_TITLE_PAGE_TURN_VIEW "Page Turn View" +#define DALI_DEMO_STR_TITLE_RADIAL_MENU "Radial Menu" +#define DALI_DEMO_STR_TITLE_REFRACTION "Refract Effect" +#define DALI_DEMO_STR_TITLE_SCROLL_VIEW "Scroll View" +#define DALI_DEMO_STR_TITLE_LIGHTS_AND_SHADOWS "Lights and shadows" +#define DALI_DEMO_STR_TITLE_SCRIPT_BASED_UI "Script Based UI" +#define DALI_DEMO_STR_TITLE_IMAGE_FITTING_SAMPLING "Image Fitting and Sampling" +#define DALI_DEMO_STR_TITLE_IMAGE_SCALING "Image Scaling Grid" +#define DALI_DEMO_STR_TITLE_TEXT_FIELD "Text Field" +#define DALI_DEMO_STR_TITLE_TEXT_LABEL "Text Label" +#define DALI_DEMO_STR_TITLE_TEXT_LABEL_MULTI_LANGUAGE "Text Scripts" +#define DALI_DEMO_STR_TITLE_EMOJI_TEXT "Emoji Text" +#define DALI_DEMO_STR_TITLE_TEXT_SCROLLING "Text Scrolling" +#define DALI_DEMO_STR_TITLE_TEXT_EDITOR "Text Editor" +#define DALI_DEMO_STR_TITLE_NEGOTIATE_SIZE "Negotiate Size" +#define DALI_DEMO_STR_TITLE_POPUP "Popup" +#define DALI_DEMO_STR_TITLE_BUTTONS "Buttons" +#define DALI_DEMO_STR_TITLE_LOGGING "Logging" +#define DALI_DEMO_STR_TITLE_MESH_MORPH "Mesh Morph" +#define DALI_DEMO_STR_TITLE_MESH_SORTING "Mesh Sorting" +#define DALI_DEMO_STR_TITLE_METABALL_EXPLOSION "Metaball Explosion" +#define DALI_DEMO_STR_TITLE_METABALL_REFRAC "Metaball Refractions" +#define DALI_DEMO_STR_TITLE_TEXTURED_MESH "Mesh Texture" +#define DALI_DEMO_STR_TITLE_LINE_MESH "Mesh Line" +#define DALI_DEMO_STR_TITLE_COLOR_GRADIENT "Color Gradient" +#define DALI_DEMO_STR_TITLE_IMAGE_VIEW "Image View" +#define DALI_DEMO_STR_TITLE_IMAGE_VIEW_PIXEL_AREA "Image View Pixel Area" +#define DALI_DEMO_STR_TITLE_IMAGE_VIEW_ALPHA_BLENDING "Image View Alpha Blending" +#define DALI_DEMO_STR_TITLE_IMAGE_VIEW_SVG "Image View SVG" +#define DALI_DEMO_STR_TITLE_SUPER_BLUR_BLOOM "Super Blur and Bloom" +#define DALI_DEMO_STR_TITLE_EFFECTS_VIEW "Effects View" +#define DALI_DEMO_STR_TITLE_NATIVE_IMAGE_SOURCE "Native Image Source" +#define DALI_DEMO_STR_TITLE_MESH_VISUAL "Mesh Visual" +#define DALI_DEMO_STR_TITLE_PRIMITIVE_SHAPES "Primitive Shapes" #endif +#define DALI_DEMO_STR_TITLE_TILT_SENSOR "Tilt Sensor" + + #ifdef __cplusplus } #endif // __cplusplus diff --git a/shared/view.h b/shared/view.h index cc7ca8f..2606fd2 100644 --- a/shared/view.h +++ b/shared/view.h @@ -118,9 +118,6 @@ Dali::Layer CreateView( Dali::Application& application, { Dali::Stage stage = Dali::Stage::GetCurrent(); - // Hide the indicator bar - application.GetWindow().ShowIndicator( Dali::Window::INVISIBLE ); - // Create default View. view = Dali::Toolkit::Control::New(); view.SetAnchorPoint( Dali::AnchorPoint::CENTER ); -- 2.7.4