From fc4f8222d605c21291cd612a0c53b2b1dcfe5453 Mon Sep 17 00:00:00 2001 From: "jk7744.park" Date: Sat, 24 Oct 2015 15:44:54 +0900 Subject: [PATCH] tizen 2.4 release --- CMakeLists.txt | 116 + LICENSE | 204 ++ NOTICE | 2 + include/gallery-efl.h | 96 + include/ge-albums.h | 28 + include/ge-button.h | 36 + include/ge-data-type.h | 101 + include/ge-data-util.h | 155 ++ include/ge-data.h | 88 + include/ge-db-update.h | 31 + include/ge-debug.h | 119 + include/ge-exif.h | 57 + include/ge-ext-exec.h | 35 + include/ge-ext-ug-load.h | 57 + include/ge-file-util.h | 42 + include/ge-gridview.h | 37 + include/ge-icon.h | 44 + include/ge-lang.h | 35 + include/ge-local-data.h | 44 + include/ge-main-view.h | 33 + include/ge-nocontent.h | 24 + include/ge-rotate-bg.h | 33 + include/ge-strings.h | 73 + include/ge-thumb.h | 44 + include/ge-tile.h | 56 + include/ge-ugdata.h | 283 +++ include/ge-ui-util.h | 85 + include/ge-util.h | 48 + packaging/ug-gallery-efl.spec | 90 + res/black_theme/edc/gallery-efl-check.edc | 333 +++ res/black_theme/edc/gallery-efl-edc-res.h | 53 + .../edc/gallery-efl-expanded-title.edc | 845 +++++++ .../edc/gallery-efl-gengrid-item-albums.edc | 746 ++++++ .../gallery-efl-gengrid-item-thumbview.edc | 391 +++ res/black_theme/edc/gallery-efl-gengrid.edc | 751 ++++++ .../edc/gallery-efl-nocontents.edc | 90 + res/black_theme/edc/gallery-efl.edc | 534 ++++ res/black_theme/edc/images/00_badge_bg.png | Bin 0 -> 4277 bytes .../edc/images/00_button_icon_arrow.png | Bin 0 -> 2885 bytes .../edc/images/00_button_icon_arrow_press.png | Bin 0 -> 2965 bytes .../edc/images/00_check_bg_dim.png | Bin 0 -> 2890 bytes .../edc/images/00_popup_dropdown_title_bg.png | Bin 0 -> 3315 bytes .../00_popup_dropdown_title_bg_focus.png | Bin 0 -> 3029 bytes .../00_popup_dropdown_title_bg_press.png | Bin 0 -> 2945 bytes res/black_theme/edc/images/00_scroll_bar.png | Bin 0 -> 3148 bytes .../edc/images/00_thumbs_bg_focus.png | Bin 0 -> 2851 bytes res/black_theme/edc/images/00_title_bg.png | Bin 0 -> 2842 bytes .../edc/images/T01_Nocontents_picture.png | Bin 0 -> 5229 bytes .../edc/images/T01_album_edit_check_bg.png | Bin 0 -> 3507 bytes .../edc/images/T01_album_edit_check_on.png | Bin 0 -> 3190 bytes .../edc/images/T01_album_folder_bg.png | Bin 0 -> 4741 bytes res/black_theme/edc/images/T01_btn_play.png | Bin 0 -> 2974 bytes .../edc/images/T01_overscrolling_bottom.png | Bin 0 -> 2888 bytes .../edc/images/T01_overscrolling_left.png | Bin 0 -> 2890 bytes .../edc/images/T01_overscrolling_right.png | Bin 0 -> 2888 bytes .../edc/images/T01_overscrolling_top.png | Bin 0 -> 2889 bytes res/black_theme/edc/images/T01_video_play.png | Bin 0 -> 6674 bytes .../edc/images/gallery_icon_container.png | Bin 0 -> 1360 bytes .../edc/images/gallery_icon_full.png | Bin 0 -> 1155 bytes res/black_theme/edc/sounds/S_Touch_30ms.wav | Bin 0 -> 24740 bytes .../images/Contents_broken_351X261.png | Bin 0 -> 5678 bytes .../images/No_thumbnail_351X261.png | Bin 0 -> 4766 bytes .../images_edc/T01_album_edit_check_off.png | Bin 0 -> 1679 bytes .../images_edc/T01_album_edit_check_on.png | Bin 0 -> 3190 bytes .../images_edc/T01_album_icon_camera.png | Bin 0 -> 3104 bytes .../images_edc/T01_album_icon_download.png | Bin 0 -> 2763 bytes .../images_edc/T01_album_icon_folder.png | Bin 0 -> 1814 bytes .../images_edc/T01_album_icon_sd_card.png | Bin 0 -> 2415 bytes res/black_theme/images_edc/T01_icon_lock.png | Bin 0 -> 8333 bytes .../images_edc/T01_icon_panorama.png | Bin 0 -> 1894 bytes .../images_edc/T01_icon_sound_shot.png | Bin 0 -> 2940 bytes .../T01_icon_thumbnail_bookmark.png | Bin 0 -> 3807 bytes .../images_edc/T01_title_icon_select_all.png | Bin 0 -> 3883 bytes .../images_edc/gallery-efl-images.edc | 64 + res/icon/ug-gallery-efl.png | Bin 0 -> 7476 bytes res/po/CMakeLists.txt | 30 + res/po/POTFILES.in | 28 + res/po/ar.po | 933 +++++++ res/po/az.po | 933 +++++++ res/po/bg.po | 933 +++++++ res/po/bn.po | 648 +++++ res/po/ca.po | 933 +++++++ res/po/cs.po | 933 +++++++ res/po/da.po | 933 +++++++ res/po/de.po | 933 +++++++ res/po/el_GR.po | 933 +++++++ res/po/en.po | 654 +++++ res/po/en_PH.po | 933 +++++++ res/po/en_US.po | 654 +++++ res/po/es_ES.po | 933 +++++++ res/po/es_US.po | 933 +++++++ res/po/et.po | 933 +++++++ res/po/eu.po | 933 +++++++ res/po/fi.po | 933 +++++++ res/po/fr.po | 933 +++++++ res/po/fr_CA.po | 933 +++++++ res/po/ga.po | 933 +++++++ res/po/gl.po | 933 +++++++ res/po/gu.po | 648 +++++ res/po/hi.po | 654 +++++ res/po/hr.po | 933 +++++++ res/po/hu.po | 933 +++++++ res/po/hy.po | 933 +++++++ res/po/is.po | 933 +++++++ res/po/it_IT.po | 933 +++++++ res/po/ja_JP.po | 933 +++++++ res/po/ka.po | 933 +++++++ res/po/kk.po | 933 +++++++ res/po/kn.po | 649 +++++ res/po/ko_KR.po | 654 +++++ res/po/lt.po | 933 +++++++ res/po/lv.po | 933 +++++++ res/po/mk.po | 933 +++++++ res/po/ml.po | 649 +++++ res/po/mn_MN.po | 921 +++++++ res/po/mr.po | 649 +++++ res/po/nb.po | 933 +++++++ res/po/nl.po | 933 +++++++ res/po/or.po | 649 +++++ res/po/pa.po | 649 +++++ res/po/pl.po | 933 +++++++ res/po/pt_BR.po | 933 +++++++ res/po/pt_PT.po | 933 +++++++ res/po/ro.po | 933 +++++++ res/po/ru_RU.po | 933 +++++++ res/po/si.po | 649 +++++ res/po/sk.po | 933 +++++++ res/po/sl.po | 933 +++++++ res/po/sr.po | 933 +++++++ res/po/sv.po | 933 +++++++ res/po/ta.po | 649 +++++ res/po/te.po | 649 +++++ res/po/tr_TR.po | 933 +++++++ res/po/uk.po | 933 +++++++ res/po/update-po.sh | 60 + res/po/uz.po | 933 +++++++ res/po/zh_CN.po | 933 +++++++ res/po/zh_HK.po | 933 +++++++ res/po/zh_TW.po | 933 +++++++ src/data/ge-data-type.c | 125 + src/data/ge-data-util.c | 427 ++++ src/data/ge-data.c | 1123 +++++++++ src/data/ge-local-data.c | 656 +++++ src/gallery-efl.c | 788 ++++++ src/util/ge-db-update.c | 233 ++ src/util/ge-debug.c | 27 + src/util/ge-exif.c | 608 +++++ src/util/ge-ext-exec.c | 95 + src/util/ge-ext-ug-load.c | 729 ++++++ src/util/ge-file-util.c | 56 + src/util/ge-lang.c | 35 + src/util/ge-ui-util.c | 488 ++++ src/util/ge-util.c | 383 +++ src/view/ge-albums.c | 1243 ++++++++++ src/view/ge-gridview.c | 2163 +++++++++++++++++ src/view/ge-main-view.c | 131 + src/widget/ge-button.c | 106 + src/widget/ge-nocontent.c | 35 + src/widget/ge-rotate-bg.c | 414 ++++ src/widget/ge-thumb.c | 302 +++ src/widget/ge-tile.c | 221 ++ ug-gallery-efl.manifest | 5 + ug-gallery-efl.xml | 120 + ug.gallery-efl.include | 34 + 164 files changed, 69511 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 LICENSE create mode 100644 NOTICE create mode 100644 include/gallery-efl.h create mode 100644 include/ge-albums.h create mode 100644 include/ge-button.h create mode 100644 include/ge-data-type.h create mode 100644 include/ge-data-util.h create mode 100644 include/ge-data.h create mode 100644 include/ge-db-update.h create mode 100644 include/ge-debug.h create mode 100644 include/ge-exif.h create mode 100644 include/ge-ext-exec.h create mode 100644 include/ge-ext-ug-load.h create mode 100644 include/ge-file-util.h create mode 100644 include/ge-gridview.h create mode 100644 include/ge-icon.h create mode 100644 include/ge-lang.h create mode 100644 include/ge-local-data.h create mode 100644 include/ge-main-view.h create mode 100644 include/ge-nocontent.h create mode 100644 include/ge-rotate-bg.h create mode 100644 include/ge-strings.h create mode 100644 include/ge-thumb.h create mode 100644 include/ge-tile.h create mode 100644 include/ge-ugdata.h create mode 100644 include/ge-ui-util.h create mode 100644 include/ge-util.h create mode 100644 packaging/ug-gallery-efl.spec create mode 100644 res/black_theme/edc/gallery-efl-check.edc create mode 100644 res/black_theme/edc/gallery-efl-edc-res.h create mode 100644 res/black_theme/edc/gallery-efl-expanded-title.edc create mode 100644 res/black_theme/edc/gallery-efl-gengrid-item-albums.edc create mode 100644 res/black_theme/edc/gallery-efl-gengrid-item-thumbview.edc create mode 100644 res/black_theme/edc/gallery-efl-gengrid.edc create mode 100644 res/black_theme/edc/gallery-efl-nocontents.edc create mode 100644 res/black_theme/edc/gallery-efl.edc create mode 100644 res/black_theme/edc/images/00_badge_bg.png create mode 100644 res/black_theme/edc/images/00_button_icon_arrow.png create mode 100644 res/black_theme/edc/images/00_button_icon_arrow_press.png create mode 100644 res/black_theme/edc/images/00_check_bg_dim.png create mode 100644 res/black_theme/edc/images/00_popup_dropdown_title_bg.png create mode 100644 res/black_theme/edc/images/00_popup_dropdown_title_bg_focus.png create mode 100644 res/black_theme/edc/images/00_popup_dropdown_title_bg_press.png create mode 100644 res/black_theme/edc/images/00_scroll_bar.png create mode 100644 res/black_theme/edc/images/00_thumbs_bg_focus.png create mode 100644 res/black_theme/edc/images/00_title_bg.png create mode 100644 res/black_theme/edc/images/T01_Nocontents_picture.png create mode 100644 res/black_theme/edc/images/T01_album_edit_check_bg.png create mode 100644 res/black_theme/edc/images/T01_album_edit_check_on.png create mode 100644 res/black_theme/edc/images/T01_album_folder_bg.png create mode 100644 res/black_theme/edc/images/T01_btn_play.png create mode 100644 res/black_theme/edc/images/T01_overscrolling_bottom.png create mode 100644 res/black_theme/edc/images/T01_overscrolling_left.png create mode 100644 res/black_theme/edc/images/T01_overscrolling_right.png create mode 100644 res/black_theme/edc/images/T01_overscrolling_top.png create mode 100644 res/black_theme/edc/images/T01_video_play.png create mode 100644 res/black_theme/edc/images/gallery_icon_container.png create mode 100644 res/black_theme/edc/images/gallery_icon_full.png create mode 100644 res/black_theme/edc/sounds/S_Touch_30ms.wav create mode 100644 res/black_theme/images/Contents_broken_351X261.png create mode 100644 res/black_theme/images/No_thumbnail_351X261.png create mode 100644 res/black_theme/images_edc/T01_album_edit_check_off.png create mode 100644 res/black_theme/images_edc/T01_album_edit_check_on.png create mode 100644 res/black_theme/images_edc/T01_album_icon_camera.png create mode 100644 res/black_theme/images_edc/T01_album_icon_download.png create mode 100644 res/black_theme/images_edc/T01_album_icon_folder.png create mode 100755 res/black_theme/images_edc/T01_album_icon_sd_card.png create mode 100644 res/black_theme/images_edc/T01_icon_lock.png create mode 100644 res/black_theme/images_edc/T01_icon_panorama.png create mode 100644 res/black_theme/images_edc/T01_icon_sound_shot.png create mode 100644 res/black_theme/images_edc/T01_icon_thumbnail_bookmark.png create mode 100644 res/black_theme/images_edc/T01_title_icon_select_all.png create mode 100644 res/black_theme/images_edc/gallery-efl-images.edc create mode 100644 res/icon/ug-gallery-efl.png create mode 100644 res/po/CMakeLists.txt create mode 100644 res/po/POTFILES.in create mode 100644 res/po/ar.po create mode 100644 res/po/az.po create mode 100644 res/po/bg.po create mode 100644 res/po/bn.po create mode 100644 res/po/ca.po create mode 100644 res/po/cs.po create mode 100644 res/po/da.po create mode 100644 res/po/de.po create mode 100644 res/po/el_GR.po create mode 100644 res/po/en.po create mode 100644 res/po/en_PH.po create mode 100644 res/po/en_US.po create mode 100644 res/po/es_ES.po create mode 100644 res/po/es_US.po create mode 100644 res/po/et.po create mode 100644 res/po/eu.po create mode 100644 res/po/fi.po create mode 100644 res/po/fr.po create mode 100644 res/po/fr_CA.po create mode 100644 res/po/ga.po create mode 100644 res/po/gl.po create mode 100644 res/po/gu.po create mode 100644 res/po/hi.po create mode 100644 res/po/hr.po create mode 100644 res/po/hu.po create mode 100644 res/po/hy.po create mode 100644 res/po/is.po create mode 100644 res/po/it_IT.po create mode 100644 res/po/ja_JP.po create mode 100644 res/po/ka.po create mode 100644 res/po/kk.po create mode 100644 res/po/kn.po create mode 100644 res/po/ko_KR.po create mode 100644 res/po/lt.po create mode 100644 res/po/lv.po create mode 100644 res/po/mk.po create mode 100644 res/po/ml.po create mode 100644 res/po/mn_MN.po create mode 100644 res/po/mr.po create mode 100644 res/po/nb.po create mode 100644 res/po/nl.po create mode 100644 res/po/or.po create mode 100644 res/po/pa.po create mode 100644 res/po/pl.po create mode 100644 res/po/pt_BR.po create mode 100644 res/po/pt_PT.po create mode 100644 res/po/ro.po create mode 100644 res/po/ru_RU.po create mode 100644 res/po/si.po create mode 100644 res/po/sk.po create mode 100644 res/po/sl.po create mode 100644 res/po/sr.po create mode 100644 res/po/sv.po create mode 100644 res/po/ta.po create mode 100644 res/po/te.po create mode 100644 res/po/tr_TR.po create mode 100644 res/po/uk.po create mode 100644 res/po/update-po.sh create mode 100644 res/po/uz.po create mode 100644 res/po/zh_CN.po create mode 100644 res/po/zh_HK.po create mode 100644 res/po/zh_TW.po create mode 100644 src/data/ge-data-type.c create mode 100644 src/data/ge-data-util.c create mode 100644 src/data/ge-data.c create mode 100644 src/data/ge-local-data.c create mode 100644 src/gallery-efl.c create mode 100644 src/util/ge-db-update.c create mode 100644 src/util/ge-debug.c create mode 100644 src/util/ge-exif.c create mode 100644 src/util/ge-ext-exec.c create mode 100644 src/util/ge-ext-ug-load.c create mode 100644 src/util/ge-file-util.c create mode 100644 src/util/ge-lang.c create mode 100644 src/util/ge-ui-util.c create mode 100644 src/util/ge-util.c create mode 100644 src/view/ge-albums.c create mode 100644 src/view/ge-gridview.c create mode 100644 src/view/ge-main-view.c create mode 100644 src/widget/ge-button.c create mode 100644 src/widget/ge-nocontent.c create mode 100644 src/widget/ge-rotate-bg.c create mode 100644 src/widget/ge-thumb.c create mode 100644 src/widget/ge-tile.c create mode 100644 ug-gallery-efl.manifest create mode 100644 ug-gallery-efl.xml create mode 100644 ug.gallery-efl.include diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..dfa7784 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,116 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +PROJECT(ug-gallery-efl C) +SET(GALLERY_UG_PROJECT_NAME ug-gallery-efl) +SET(GE_EDC_DIR black_theme/edc) +SET(GE_IMG_DIR black_theme/edc/images) +SET(GE_SOUND_DIR black_theme/edc/sounds) +SET(GE_IMG_EDC_DIR black_theme/images_edc) +SET(GE_IMG_C_DIR black_theme/images) + +IF("${CMAKE_BUILD_TYPE}" STREQUAL "") + SET(CMAKE_BUILD_TYPE "Release") +ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "") +MESSAGE("Build type: ${CMAKE_BUILD_TYPE}") + +SET(PREFIX ${CMAKE_INSTALL_PREFIX}) +SET(RESDIR "${PREFIX}/res") +SET(LOCALEDIR "${RESDIR}/locale") +SET(EXEC_PREFIX "\${prefix}") +SET(LIBDIR "\${prefix}/lib") +SET(INCLUDEDIR "\${prefix}/include") +SET(VERSION 1.0) + +ADD_DEFINITIONS("-D_USE_DLOG_") +ADD_DEFINITIONS("-D_USE_SECURE_LOG_") +ADD_DEFINITIONS("-D_USE_ROTATE_BG_GE") +ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"") +#ADD_DEFINITIONS("-D_USE_CUSTOMIZED_GENGRID_STYLE") +#ADD_DEFINITIONS("-D_USE_SHOW_SELECTED_COUNT_IN_TITLE") +#ADD_DEFINITIONS("-D_USE_ADD_TO_HOME_FOR_IMAGES") + +AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/src MAIN_UG_SRCS) +AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/src/data DATA_UG_SRCS) +AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/src/util UTIL_UG_SRCS) +AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/src/view VIEW_UG_SRCS) +AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/src/widget WIDGET_UG_SRCS) + +SET(UG_SRCS + ${MAIN_UG_SRCS} + ${DATA_UG_SRCS} + ${UTIL_UG_SRCS} + ${VIEW_UG_SRCS} + ${WIDGET_UG_SRCS} + ) + +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include) + +INCLUDE(FindPkgConfig) +pkg_check_modules(pkgs REQUIRED + elementary + evas + dlog + glib-2.0 + capi-appfw-application + capi-content-media-content + ui-gadget-1 + efl-extension + notification + appsvc + storage +) + +FOREACH(flag ${pkgs_CFLAGS}) + SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") +ENDFOREACH(flag) + +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fvisibility=hidden") +SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -fpie") +SET(CMAKE_C_FLAGS_RELEASE "-O2 -fpie") +SET(CMAKE_LDFLAGS "-Wl,-zdefs" ) + +FIND_PROGRAM(UNAME NAMES uname) +EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH") +IF("${ARCH}" STREQUAL "arm") + ADD_DEFINITIONS("-DTARGET") + MESSAGE("add -DTARGET") +ENDIF("${ARCH}" STREQUAL "arm") + +#SET(CMAKE_SHARED_LINKER_FLAGS "-Wl,--as-needed") +SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie") + +ADD_LIBRARY(${PROJECT_NAME} SHARED ${UG_SRCS}) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION 0.0.1) +TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} "-ldl") + +# EDJ +ADD_CUSTOM_COMMAND(OUTPUT gallery-efl.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/res/${GE_IMG_DIR} + -sd ${CMAKE_CURRENT_SOURCE_DIR}/res/${GE_SOUND_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/res/${GE_EDC_DIR}/gallery-efl.edc + ${CMAKE_BINARY_DIR}/gallery-efl.edj + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/${GE_EDC_DIR}/gallery-efl.edc +) + +ADD_CUSTOM_COMMAND(OUTPUT gallery-efl-images.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/res/${GE_IMG_EDC_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/res/${GE_IMG_EDC_DIR}/gallery-efl-images.edc ${CMAKE_BINARY_DIR}/gallery-efl-images.edj + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/${GE_IMG_EDC_DIR}/gallery-efl-images.edc +) + +ADD_CUSTOM_TARGET(gallery_efl_edj_build DEPENDS gallery-efl.edj gallery-efl-images.edj) +ADD_DEPENDENCIES(${PROJECT_NAME} gallery_efl_edj_build) + +INSTALL(FILES ${CMAKE_BINARY_DIR}/gallery-efl.edj DESTINATION /usr/ug/res/edje/gallery-efl) +INSTALL(FILES ${CMAKE_BINARY_DIR}/gallery-efl-images.edj DESTINATION /usr/ug/res/edje/gallery-efl) + +INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/res/${GE_IMG_C_DIR} DESTINATION /usr/ug/res/images/gallery-efl) +INSTALL(TARGETS ${PROJECT_NAME} DESTINATION /usr/ug/lib) + +INSTALL(FILES ${PROJECT_NAME}.xml DESTINATION /usr/share/packages) + +# i18n +ADD_SUBDIRECTORY(res/po) + +# Install appcontrol icon +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/icon/ug-gallery-efl.png DESTINATION /usr/ug/res/images/gallery-efl) + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..54b213e --- /dev/null +++ b/LICENSE @@ -0,0 +1,204 @@ +Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved. + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/NOTICE b/NOTICE new file mode 100644 index 0000000..851c000 --- /dev/null +++ b/NOTICE @@ -0,0 +1,2 @@ +Copyright (c) 2000-2015 Samsung Electronics Co., Ltd. All rights reserved. + diff --git a/include/gallery-efl.h b/include/gallery-efl.h new file mode 100644 index 0000000..984a932 --- /dev/null +++ b/include/gallery-efl.h @@ -0,0 +1,96 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#ifndef __GALLERY_EFL_H__ +#define __GALLERY_EFL_H__ + +#include "ge-data-util.h" + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#define GALLERY_APP_ICON_DIR "/usr/share/icons/default/small/" +#define GE_UG_RES_DIR "/usr/ug/res/" +#define GE_IMAGES_DIR GE_UG_RES_DIR"images/gallery-efl/images/" +#define GE_EDJ_DIR GE_UG_RES_DIR"edje/gallery-efl/" +#define GE_EDJ_FILE GE_EDJ_DIR"gallery-efl.edj" +#ifdef _USE_CUSTOMIZED_GENGRID_STYLE +#define GE_GENGRID_STYLE_GALLERY "gallery_efl" +#endif +#define GE_GRP_GRIDVIEW "gallery_efl/gridview" +#define GE_GRP_ALBUMVIEW "gallery_efl/albumview" + +#define GE_CBAR_STYLE_DEFAULT "gallery_efl/default" +#define GE_NAVIFRAME_STYLE_DEFAULT "gallery_efl/default" +#define GE_CHECKBOX_STYLE_GRID "gallery_efl/grid" + +#define GE_BUNDLE_LAUNCH_TYPE "launch-type" +#define GE_BUNDLE_SELECTION_MODE_SINGLE "single" +#define GE_BUNDLE_SELECTION_MODE_MULTI "multiple" + +#define GE_BUNDLE_FILE_TYPE "file-type" +#define GE_BUNDLE_SETAS_TYPE "setas-type" + +#define GE_LAUNCH_SELECT_ALBUM "select-album" + +#define GE_ALBUM_SELECT_RETURN_ID "album-id" +#define GE_ALBUM_SELECT_RETURN_PATH "folder-path" + +#define GE_LAUNCH_SELECT_SLIDESHOW "select-slideshow" + +#define GE_LAUNCH_SELECT_ONE "select-one" +#define GE_LAUNCH_SELECT_MULTIPLE "select-multiple" +#define GE_LAUNCH_SELECT_SETAS "select-setas" +#define GE_LAUNCH_SELECT_IMFT "select-imft" + +#define GE_FILE_TYPE_IMAGE "image" +#define GE_FILE_TYPE_VIDEO "video" +#define GE_FILE_TYPE_ALL "all" + +#define GE_SETAS_WALLPAPER "wallpaper" +#define GE_SETAS_LOCKSCREEN "lockscreen" +#define GE_SETAS_WALLPAPER_AND_LOCKSCREEN "wallpaper and lockscreen" +#define GE_SETAS_CROP_WALLPAPER "crop-wallpaper" +#define GE_SETAS_CALLERID "callerid" + +#define GE_FILE_SELECT_RETURN_COUNT "count" +#define GE_FILE_SELECT_RETURN_PATH "path" + +#define GE_SETAS_IMAGE_PATH "image-path" +#define GE_BUNDLE_HOMESCREEN_PATH "homescreen_path" +#define GE_BUNDLE_LOCKSCREEN_PATH "lockscreen_path" +#define GE_IMAGEVIEWER_RETURN_ERROR "Error" + +/* MIME type */ +#define GE_MIME_IMAGE_ALL "image/*" +#define GE_MIME_VIDEO_ALL "video/*" + +#define GE_NAVIFRAME_POP_CB_KEY "ge_naviframe_pop_cb_key" + +#define GE_IF_DEL_TIMER(timer) if (timer) { ecore_timer_del(timer); timer = NULL; } +#define GE_IF_DEL_IDLER(idler) if (idler) { ecore_idler_del(idler); idler = NULL; } +#define GE_IF_DEL_OBJ(obj) if (obj) { evas_object_del(obj); obj = NULL; } +#define GE_IF_DEL_JOB(job) if (job) { ecore_job_del(job); job = NULL; } + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + + +#endif /* __GALLERY_EFL_H__ */ + diff --git a/include/ge-albums.h b/include/ge-albums.h new file mode 100644 index 0000000..72dce6b --- /dev/null +++ b/include/ge-albums.h @@ -0,0 +1,28 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#ifndef _GE_ALBUMS_H_ +#define _GE_ALBUMS_H_ + +#include "gallery-efl.h" + +int _ge_albums_create_view(ge_ugdata *ugd); +int _ge_albums_update_view(ge_ugdata *ugd); +Evas_Object* __ge_add_albums_split_view(ge_ugdata *ugd, Evas_Object *parent); + +#endif /* _GE_ALBUMS_H_ */ + diff --git a/include/ge-button.h b/include/ge-button.h new file mode 100644 index 0000000..03c4c9f --- /dev/null +++ b/include/ge-button.h @@ -0,0 +1,36 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#ifndef _GE_BUTTON_H_ +#define _GE_BUTTON_H_ + +#include "gallery-efl.h" + +/**< Evas smart objects' "smart callback" function signature */ +typedef void (*But_Smart_Cb) (void *data, Evas_Object *obj, void *event_info); + +Evas_Object *_ge_but_create_but(Evas_Object *parent, Elm_Theme *theme, + const char *icon, const char *text, + const char *style, But_Smart_Cb cb_func, + const void *data); +Evas_Object *_ge_but_create_image_but(Evas_Object *parent, const char *icon, + const char *text, const char *style, + Evas_Smart_Cb cb_func, void *data, + Eina_Bool flag_propagate); + +#endif /* _GE_BUTTON_H_ */ + diff --git a/include/ge-data-type.h b/include/ge-data-type.h new file mode 100644 index 0000000..709cb12 --- /dev/null +++ b/include/ge-data-type.h @@ -0,0 +1,101 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#ifndef _GE_DATA_TYPE_H_ +#define _GE_DATA_TYPE_H_ + +#include +#include +#include + +#define GE_FREEIF(ptr) \ + do { \ + if (ptr != NULL) \ + { \ + free(ptr); \ + ptr = NULL; \ + } \ + } while (0) + +#define GE_FREE(ptr) \ + do { \ + free(ptr); \ + ptr = NULL; \ + } while (0) + +#define GE_GFREEIF(ptr) \ + do { \ + if (ptr != NULL) { \ + g_free(ptr); \ + ptr = NULL; \ + } \ + } while (0) + +#define GE_GFREE(ptr) \ + do { \ + g_free(ptr); \ + ptr = NULL; \ + } while (0) + +#define GE_TYPE_ALBUM (0x55551) +#define GE_TYPE_MEDIA (0x55553) +#define GE_TYPE_WEB_MEDIA (0x55554) + +typedef enum +{ + GE_PHONE,/**< Stored only in phone */ + GE_MMC, /**< Stored only in MMC */ + GE_ALL, /**< Stored in ALL albums */ +} _ge_store_type_t; + + +typedef struct _ge_album_t ge_album_s; +typedef struct _ge_media_t ge_media_s; + +struct _ge_album_t { + int gtype; /*self-defination type, when free this struct space, use it*/ + char *uuid; /*folder UUID*/ + char *display_name; /*album name*/ + char *path; /*the full path of this folder*/ + int type; /*storage type*/ + time_t mtime; /*modified time*/ + int count; /*the media count in this folder*/ +}; + +struct _ge_media_t { + int gtype; /*self-defination type, when free this struct space, use it*/ + media_info_h media_h; /*the handle of operating this media*/ + char *uuid; /*meida id*/ + int type; /*meida type, image or video*/ + char *thumb_url; /*the thumbnail full path of this meida file*/ + char *file_url; /*the full path of this meida file*/ + time_t mtime; /*modified time*/ + char *display_name; /*item name*/ + int mode; /* Show icon indicates different camera shot mode */ + media_content_storage_e storage_type; /* Storage type got from DB */ + bool b_create_thumb; /* Request DB to create thumbnail */ +}; + +int _ge_data_type_new_media(ge_media_s **item); +int _ge_data_type_new_album(ge_album_s **album); + +int _ge_data_type_free_media_list(Eina_List **list); +int _ge_data_type_free_album_list(Eina_List **list); +int _ge_data_type_free_geitem(void **item); + +#endif + diff --git a/include/ge-data-util.h b/include/ge-data-util.h new file mode 100644 index 0000000..db30c67 --- /dev/null +++ b/include/ge-data-util.h @@ -0,0 +1,155 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#ifndef _GE_DATA_UTIL_H_ +#define _GE_DATA_UTIL_H_ + +#include +#include +#include +#include +#include "ge-debug.h" +#include "ge-strings.h" +#include "ge-data-type.h" +#include "ge-ugdata.h" + +#ifdef _cplusplus +extern "C" { +#endif + +/*MEDIA_TYPE 0-image, 1-video, 2-sound, 3-music*/ +#define GE_CONDITION_IMAGE_VIDEO "(MEDIA_TYPE=0 OR MEDIA_TYPE=1)" +#define GE_CONDITION_IMAGE "(MEDIA_TYPE=0)" +#define GE_CONDITION_VIDEO "(MEDIA_TYPE=1)" +/**< 0-not favourite, 1-favourite*/ +#define GE_CONDITION_FAV_IMAGE_VIDEO "((MEDIA_TYPE=0 OR MEDIA_TYPE=1) AND MEDIA_FAVORITE=1)" + +#define GE_CONDITION_FAVOR " AND MEDIA_FAVORITE=1" + +#define GE_CONDITION_ORDER "MEDIA_TIMELINE, MEDIA_DISPLAY_NAME" +#define CONDITION_LENGTH 512 +#define KEYWORD_LENGTH 128 + +#define GE_CAMERA_PATH_PHONE "/opt/usr/media/DCIM/Camera" +#define GE_CAMERA_PATH_MMC "/opt/storage/sdcard/DCIM/Camera" +#define GE_DOWNLOADS_PATH "/opt/usr/media/Downloads" + +#define GE_ROOT_PATH_PHONE "/opt/usr/media" +#define GE_ROOT_PATH_MMC "/opt/storage/sdcard" +#define GE_DCIM "DCIM" + +#define GE_ALBUM_ALL_ID "GALLERY_ALBUM_ALL_ALBUMS_ID" +/* String length of mtye item id */ +#define GE_MTYPE_ITEN_ID_LEN_MAX 37 + +#define GE_BASE_WIN_WIDTH 720 +#define GE_BASE_WIN_HEIGHT 1280 +/* Indicator + naviframe title + naviframe bottom toobar */ +#define GE_FIXED_HEIGHT_HIDE (111 + 98) +#define GE_FIXED_HEIGHT (60 + 111 + 98) + +#define GE_GRID_ITEM_SIZE_W 202 +#define GE_GRID_ITEM_SIZE_H 202 +#define GE_GRID_ITEM_ZOOM_LEVEL_02 2 +#define GE_GRID_ITEM_ZOOM_LEVEL_02_CNT 8 + +#define GE_ALBUM_COVER_THUMB_NUM 1 + +#define GE_SELINFO_TEXT_LEN_MAX 64 +#define GE_ALBUM_DATE_LEN_MAX 256 +#define GE_VIDEO_DURATION_MAX 256 +#define GE_NOCONTENTS_LABEL_LEN_MAX 512 +#define GE_FILE_PATH_LEN_MAX (4095 * GE_MAX_BYTES_FOR_CHAR + 1) +#define GE_DIR_PATH_LEN_MAX GE_FILE_PATH_LEN_MAX + +#define GE_TIME_SECOND_MILLISECOND 1000 // 1s=1000ms +#define GE_TIME_USEC_PER_SEC 1000000L +#define GE_TIME_MINUTE_SECOND 60 // 1min=60s +#define GE_TIME_HOUR_MINUTE 60 // 1h=60min +#define GE_TIME_HOUR_SECOND (GE_TIME_HOUR_MINUTE * GE_TIME_MINUTE_SECOND) // 1h=(60x60)s + +#define GE_FIRST_VIEW_START_POS 0 +#define GE_GET_ONE_RECORD 1 +#define GE_FIRST_VIEW_END_POS 47 +#define GE_GET_UNTIL_LAST_RECORD 65536 /* Fixme: Do not use 65536. */ +#define GE_GET_ALL_RECORDS -1 + +typedef struct _ge_transfer_data_t ge_transfer_data_s; + +struct _ge_transfer_data_t { + void **userdata; + char *album_id; + bool with_meta; + bool b_mtype; + int list_type; +}; + +typedef struct _ge_filter_t ge_filter_s; + +struct _ge_filter_t { + char cond[CONDITION_LENGTH]; /*set media type or favorite type, or other query statement*/ + media_content_collation_e collate_type; /*collate type*/ + media_content_order_e sort_type; /*sort type*/ + char sort_keyword[KEYWORD_LENGTH]; /*sort keyword*/ + int offset; /*offset*/ + int count; /*count*/ + bool with_meta; /*whether get image or video info*/ + int list_type; +}; + +typedef enum { + GE_ALBUM_LIST_NONE, /**< */ + GE_ALBUM_LIST_FIRST, /**< Get first several albums except Camera and Downloads */ + GE_ALBUM_LIST_PATH, /**< Get a album via path */ + GE_ALBUM_LIST_ALL, /**< Get all albums except Camera and Downloads */ +} ge_album_list_e; + +typedef enum +{ + GE_ALBUM_SNS_NONE, + GE_ALBUM_SNS_PICASA, + GE_ALBUM_SNS_FACEBOOK, +} ge_album_sns_type; + +ge_item* _ge_data_util_calloc_geitem(void); +int _ge_data_util_free_geitem(ge_item* gitem); +int _ge_data_util_free_mtype_items(Eina_List **elist); +int _ge_data_util_free_cluster(ge_cluster* gcluster); +ge_cluster_list *_ge_data_util_calloc_clusters_list(void); +ge_cluster *_ge_data_util_calloc_cluster(void); +ge_cluster *_ge_data_util_new_cluster_all(ge_ugdata *ugd, int count); +ge_item *_ge_data_util_new_item_mitem(ge_media_s *mitem); +int _ge_data_util_free_item(ge_item *gitem); +ge_sel_item_s *_ge_data_util_new_sel_item(ge_item *gitem); +int _ge_data_util_free_sel_item(ge_sel_item_s *item); +ge_sel_album_s *_ge_data_util_new_sel_album(char *album_uuid); +int _ge_data_util_create_filter2(char *cond, char *keyword, int offset, + int count, filter_h *filter); +int _ge_data_util_create_filter(ge_filter_s *condition, filter_h *filter); +int _ge_data_util_destroy_filter(filter_h filter); +bool _ge_data_util_clone_media(media_info_h media, ge_media_s **pitem, + bool b_meta); +int _ge_data_util_get_geo_cond(char *cond, double longmin, double longmax, + double latmin, double latmax); +int _ge_data_util_get_type_cond(char *cond, int file_t); + +#ifdef _cplusplus +} +#endif + +#endif //_GE_DATA_UTIL_H_ + diff --git a/include/ge-data.h b/include/ge-data.h new file mode 100644 index 0000000..431419a --- /dev/null +++ b/include/ge-data.h @@ -0,0 +1,88 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#ifndef _GE_DATA_H_ +#define _GE_DATA_H_ + +#include "ge-local-data.h" +#include "gallery-efl.h" + +#ifdef _cplusplus +extern "C" { +#endif + +#define GE_ALBUMS_FIRST_COUNT 8 + +typedef enum { + GE_SORT_BY_NONE, /**< No Sort */ + GE_SORT_BY_NAME_DESC, /**< Sort by display name descending */ + GE_SORT_BY_NAME_ASC, /**< Sort by display name ascending */ + GE_SORT_BY_DATE_DESC, /**< Sort by modified_date descending */ + GE_SORT_BY_DATE_ASC, /**< Sort by modified_date ascending */ +} ge_sort_type_e; + +typedef enum { + GE_ALBUM_DATA_NONE, /**< First time, default type */ + GE_ALBUM_DATA_LOCAL, /**< There some local/web albums need to be got */ + GE_ALBUM_DATA_WEB, /**< There some web albums need to be got */ + GE_ALBUM_DATA_DONE, /**< Data getting done */ +} ge_album_data_e; + +typedef int (*ge_restore_selected_cb)(Eina_List *sel_id, ge_item *gitem); + +int _ge_data_get_sel_cnt(ge_ugdata *ugd); +int _ge_data_get_sel_paths(ge_ugdata *ugd, char **filepath, char ***filepath_arr, int *cnt); +int _ge_data_get_album_sel_cnt(ge_ugdata *ugd, char *uuid, int *cnt); +int _ge_data_check_sel_items(ge_ugdata *ugd); +int _ge_data_free_sel_albums(ge_ugdata *ugd); +bool _ge_data_check_selected_id(Eina_List *sel_id_list, const char *id); +int _ge_data_update_items_cnt(ge_ugdata *ugd, ge_cluster *album); +int _ge_data_free_clusters(ge_ugdata *ugd); +int _ge_data_get_clusters(ge_ugdata *ugd, int type); +int _ge_data_get_cluster(ge_ugdata *ugd, char *uuid, ge_cluster **cluster); +int _ge_data_free_cluster(ge_cluster *cluster); +int _ge_data_free_medias(Eina_List **elist); +int _ge_data_get_medias(ge_ugdata *ugd, char *uuid, int type, int start_pos, + int end_pos, Eina_List **pmedias_elist, + ge_restore_selected_cb restore_cb, Eina_List *sel_id); +int _ge_data_update_medias(ge_ugdata *ugd, char *uuid, int type, + Eina_List **pmedias_elist, + ge_restore_selected_cb restore_cb, + Eina_List *sel_id); +int _ge_data_get_album_cover(ge_ugdata *ugd, ge_cluster *album, + ge_item **pgitem, media_content_order_e sort_type); +int _ge_data_get_item_cnt(ge_ugdata *ugd, const char *cluster_id, + int album_type, int *item_cnt); +bool _ge_data_check_update(ge_ugdata *ugd); +int _ge_data_del_media_by_id(ge_ugdata* ugd, const char *media_id); +int _ge_data_free_selected_medias(Eina_List **elist); +bool _ge_data_is_default_album(const char *match_folder, ge_album_s *mcluster); +bool _ge_data_is_camera_album(ge_album_s *mcluster); +bool _ge_data_check_root_type(const char *path, const char *root); +bool _ge_data_is_root_path(const char *path); +int _ge_data_create_thumb(ge_media_s *item, + media_thumbnail_completed_cb callback, void *data); +int _ge_data_cancel_thumb(ge_media_s *item); +int _ge_data_restore_selected(Eina_List *sel_ids, ge_item *gitem); +int _ge_data_init(ge_ugdata* ugd); +int _ge_data_finalize(ge_ugdata* ugd); + +#ifdef _cplusplus +} +#endif +#endif /* _GE_DATA_H_ */ + diff --git a/include/ge-db-update.h b/include/ge-db-update.h new file mode 100644 index 0000000..f9e9929 --- /dev/null +++ b/include/ge-db-update.h @@ -0,0 +1,31 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#ifndef _GE_DB_UPDATE_H_ +#define _GE_DB_UPDATE_H_ + +#include "ge-ugdata.h" + +bool _ge_db_update_reg_cb(ge_ugdata *ugd); +bool _ge_db_update_finalize(ge_ugdata *ugd); +int _ge_db_update_get_info(void *data, + media_content_db_update_item_type_e *update_item, + media_content_db_update_type_e *update_type); + +#endif //_GE_DB_UPDATE_H_ + + diff --git a/include/ge-debug.h b/include/ge-debug.h new file mode 100644 index 0000000..30bb2cd --- /dev/null +++ b/include/ge-debug.h @@ -0,0 +1,119 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#ifndef _GL_DEBUG_H_ +#define _GL_DEBUG_H_ + +#include + +#ifdef _cplusplus +extern "C" { +#endif + +#ifdef LOG_TAG +#undef LOG_TAG +#endif + +#define LOG_TAG "GALLERY-EFL" + +typedef enum { + DEBUG_CRITICAL, + DEBUG_CHECK, + MB_DEBUG_LOG, + DEBUG_MAX +} GlDebugType; + +/* anci c color type */ +#define FONT_COLOR_RESET "\033[0m" +#define FONT_COLOR_RED "\033[31m" +#define FONT_COLOR_GREEN "\033[32m" +#define FONT_COLOR_YELLOW "\033[33m" +#define FONT_COLOR_BLUE "\033[34m" +#define FONT_COLOR_PURPLE "\033[35m" +#define FONT_COLOR_CYAN "\033[36m" +#define FONT_COLOR_GRAY "\033[37m" + +#ifdef _USE_DLOG_ + +#define ge_dbg(fmt, arg...) LOGD(FONT_COLOR_BLUE fmt FONT_COLOR_RESET, ##arg) +#define ge_dbgW(fmt, arg...) LOGW(FONT_COLOR_GREEN fmt FONT_COLOR_RESET, ##arg) +#define ge_dbgE(fmt, arg...) LOGE(FONT_COLOR_RED fmt FONT_COLOR_RESET, ##arg) + +#else + +#define ge_dbg(fmt,arg...) +#define ge_dbgW(fmt, arg...) +#define ge_dbgE(fmt, arg...) +#endif + +#ifdef _USE_SECURE_LOG_ +#define ge_sdbg(fmt, arg...) SECURE_LOGD(FONT_COLOR_BLUE fmt FONT_COLOR_RESET, ##arg) +#define ge_sdbgW(fmt, arg...) SECURE_LOGI(FONT_COLOR_GREEN fmt FONT_COLOR_RESET, ##arg) +#define ge_sdbgE(fmt, arg...) SECURE_LOGE(FONT_COLOR_RED fmt FONT_COLOR_RESET, ##arg) +#endif + +#define ge_warn_if(expr, fmt, arg...) do { \ + if (expr) { \ + ge_dbg("(%s) -> "fmt, #expr, ##arg); \ + } \ + } while (0) +#define ge_ret_if(expr) do { \ + if (expr) { \ + ge_dbgE("(%s) -> %s() return", #expr, __FUNCTION__); \ + return; \ + } \ + } while (0) +#define ge_retv_if(expr, val) do { \ + if (expr) { \ + ge_dbgE("(%s) -> %s() return", #expr, __FUNCTION__); \ + return (val); \ + } \ + } while (0) +#define ge_retm_if(expr, fmt, arg...) do { \ + if (expr) { \ + ge_dbgE(fmt, ##arg); \ + ge_dbgE("(%s) -> %s() return", #expr, __FUNCTION__); \ + return; \ + } \ + } while (0) +#define ge_retvm_if(expr, val, fmt, arg...) do { \ + if (expr) { \ + ge_dbgE(fmt, ##arg); \ + ge_dbgE("(%s) -> %s() return", #expr, __FUNCTION__); \ + return (val); \ + } \ + } while (0) + + +#define GE_CHECK_VAL(expr, val) ge_retvm_if(!(expr), val, "Invalid parameter, return ERROR code!") +#define GE_CHECK_NULL(expr) ge_retvm_if(!(expr), NULL, "Invalid parameter, return NULL!") +#define GE_CHECK_FALSE(expr) ge_retvm_if(!(expr), false, "Invalid parameter, return FALSE!") +#define GE_CHECK_CANCEL(expr) ge_retvm_if(!(expr), ECORE_CALLBACK_CANCEL, "Invalid parameter, return ECORE_CALLBACK_CANCEL!") +#define GE_CHECK(expr) ge_retm_if(!(expr), "Invalid parameter, return!") + + +#include +#include + +void _ge_print_debug_time_ex(long start, long end, const char* func_name, char* time_string); + +#ifdef _cplusplus +} +#endif + +#endif //_GL_DEBUG_H_ + diff --git a/include/ge-exif.h b/include/ge-exif.h new file mode 100644 index 0000000..5d71ace --- /dev/null +++ b/include/ge-exif.h @@ -0,0 +1,57 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#ifdef _USE_ROTATE_BG_GE + +#ifndef _GE_EXIF_H_ +#define _GE_EXIF_H_ + +#include +#include + +#ifdef _cplusplus +extern "C" +{ +#endif + +/* +Orientation - angle +1 - 0 +3 - 180 +6 - 90 +8 - 270 +*/ +typedef enum _ge_orientation_rot_t ge_orientation_rot_e; + +enum _ge_orientation_rot_t { + GE_ORIENTATION_ROT_ERR = 0, + GE_ORIENTATION_ROT_0 = 1, + GE_ORIENTATION_ROT_180 = 3, + GE_ORIENTATION_ROT_90 = 6, + GE_ORIENTATION_ROT_270 = 8, +}; + +int _ge_exif_get_orientation(char *file_path, unsigned int *orientation); + +#ifdef _cplusplus +} +#endif + +#endif //_GE_EXIF_H_ + +#endif //_USE_ROTATE_BG_GE + diff --git a/include/ge-ext-exec.h b/include/ge-ext-exec.h new file mode 100644 index 0000000..bc5370a --- /dev/null +++ b/include/ge-ext-exec.h @@ -0,0 +1,35 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#ifndef _GE_EXT_EXEC_H_ +#define _GE_EXT_EXEC_H_ + +#include "gallery-efl.h" + +typedef enum { + LAUNCH_FAIL, + LAUNCH_SUCCESS +} GeLaunchStatus; + +typedef enum { + APPNONE = -1, + FILETRANSFER, +} GeExtAppType; + +int _ge_ext_load_app(ge_ugdata *ugd, GeExtAppType type, char *paths, int count); + +#endif //_GE_EXT_EXEC_H_ diff --git a/include/ge-ext-ug-load.h b/include/ge-ext-ug-load.h new file mode 100644 index 0000000..8e18369 --- /dev/null +++ b/include/ge-ext-ug-load.h @@ -0,0 +1,57 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#ifndef _GE_EXT_UG_LOAD_H_ +#define _GE_EXT_UG_LOAD_H_ + +#include +#include "gallery-efl.h" + +typedef enum +{ + GE_UG_FAIL, + GE_UG_SUCCESS +} ge_ug_load_status; + +typedef enum +{ + GE_UG_IMAGEVIEWER, + GE_UG_GALLERY_SETTING_SLIDESHOW, + GE_UG_GALLERY_SETTING, + GE_UG_CNT, +} ge_ext_ug_type; + +typedef enum +{ + GE_UG_IV, + /*Invoke imageviewer to slideshow on local album */ + GE_UG_IV_SLIDESHOW, + /*Invoke imageviewer to slideshow All items */ + GE_UG_IV_SLIDESHOW_ALL, +#ifdef _USE_APP_SLIDESHOW + /*Invoke imageviewer to slideshow selected files */ + GE_UG_IV_SLIDESHOW_SELECTED, +#endif + GE_UG_IV_CNT, +} ge_ext_iv_type; + +int _ge_ext_load_iv_ug(ge_ugdata *ugd, char *filt_url, char *album_index, int image_index); +int _ge_ext_load_iv_ug_for_help(ge_ugdata *ugd, const char *uri); +int _ge_ext_load_iv_ug_select_mode(void *data, ge_media_s *item, ge_ext_iv_type type); + +#endif //_GE_EXT_UG_LOAD_H_ + diff --git a/include/ge-file-util.h b/include/ge-file-util.h new file mode 100644 index 0000000..170f6d4 --- /dev/null +++ b/include/ge-file-util.h @@ -0,0 +1,42 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#ifndef _GE_FILE_UTIL_H_ +#define _GE_FILE_UTIL_H_ + +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + +int ge_file_exists(const char *path); + +int ge_file_size(const char *filename); + +char* ge_file_dir_get(const char path[]); + +#ifdef __cplusplus +} +#endif + +#endif //_GE_FILE_UTIL_H_ diff --git a/include/ge-gridview.h b/include/ge-gridview.h new file mode 100644 index 0000000..bfc571b --- /dev/null +++ b/include/ge-gridview.h @@ -0,0 +1,37 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#ifndef _GE_GRIDVIEW_H_ +#define _GE_GRIDVIEW_H_ + +#include "gallery-efl.h" + +int _ge_grid_get_selected_ids(ge_ugdata *ugd, Eina_List **ids_list); +int _ge_grid_create_thumb(ge_cluster *album); +int _ge_grid_create_split_view_thumb(ge_cluster *album); +int _ge_grid_create_view(ge_ugdata *ugd, ge_thumbs_s *thumbs_d); +int _ge_grid_update_view(ge_ugdata *ugd); +Evas_Object *_ge_grid_get_layout(ge_ugdata *ugd); +int _ge_grid_update_lang(ge_ugdata *ugd); +int _ge_grid_update_data(ge_ugdata *ugd); +int _ge_grid_get_store_type(ge_ugdata *ugd); +int _ge_grid_create_main_view(ge_ugdata *ugd); +void _ge_grid_change_selection_mode(ge_ugdata *ugd, bool state); +int _ge_grid_sel_one(ge_ugdata *ugd, char *file_url); + +#endif //_GE_GRIDVIEW_H_ + diff --git a/include/ge-icon.h b/include/ge-icon.h new file mode 100644 index 0000000..9cb6259 --- /dev/null +++ b/include/ge-icon.h @@ -0,0 +1,44 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#ifndef __GE_ICON_H__ +#define __GE_ICON_H__ + +#include "gallery-efl.h" + +#define GE_IMAGES_EDJ_FILE GE_EDJ_DIR"/gallery-efl-images.edj" + +#define GE_DEFAULT_APP_ICON GALLERY_APP_ICON_DIR"org.tizen.gallery.png" +#define GE_ALBUM_ICON_CAMERA "T01_album_icon_camera.png" +#define GE_ALBUM_ICON_DOWNLOAD "T01_album_icon_download.png" +#define GE_ALBUM_ICON_FOLDER "T01_album_icon_folder.png" +#define GE_SD_CARD_ICON "T01_album_icon_sd_card.png" +#define GE_LOCK_ICON "T01_icon_lock.png" +#define GE_THUMB_BOOKMARK "T01_icon_thumbnail_bookmark.png" +#define GE_DB_DEFAULT_THUMB "/opt/usr/data/file-manager-service/.thumb/thumb_default.png" +#define GE_ICON_TITLE_SELECT_ALL "T01_title_icon_select_all.png" +#define GE_ICON_TITLE_SELECT_OK "T01_album_edit_check_on.png" +#define GE_ICON_TITLE_SELECT_NOT_OK "T01_album_edit_check_off.png" +#define GE_ICON_TITLE_SELECT_OK "T01_album_edit_check_on.png" +#define GE_ICON_TITLE_SELECT_NOT_OK "T01_album_edit_check_off.png" +#define GE_ICON_SOUND_SHOT "T01_icon_sound_shot.png" +#define GE_ICON_PANORAMA "T01_icon_panorama.png" +#define GE_ICON_NO_THUMBNAIL GE_IMAGES_DIR"No_thumbnail_351X261.png" +#define GE_ICON_CONTENTS_BROKEN GE_IMAGES_DIR"Contents_broken_351X261.png" + +#endif //__GE_ICON_H__ + diff --git a/include/ge-lang.h b/include/ge-lang.h new file mode 100644 index 0000000..ea58bcc --- /dev/null +++ b/include/ge-lang.h @@ -0,0 +1,35 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#ifndef _GE_LANG_H_ +#define _GE_LANG_H_ + +#include "gallery-efl.h" + +#ifdef _cplusplus +extern "C" +{ +#endif + +int _ge_lang_update(ge_ugdata *ugd); + +#ifdef _cplusplus +} +#endif + +#endif //_GE_LANG_H_ + diff --git a/include/ge-local-data.h b/include/ge-local-data.h new file mode 100644 index 0000000..4426894 --- /dev/null +++ b/include/ge-local-data.h @@ -0,0 +1,44 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#ifndef _GE_LOCAL_DATA_H_ +#define _GE_LOCAL_DATA_H_ + +#include "ge-data-util.h" + +int _ge_local_data_connect(void); +int _ge_local_data_disconnect(void); +int _ge_local_data_get_album_by_path(char *path, ge_album_s **album); +int _ge_local_data_get_album_list(ge_filter_s *condition, Eina_List **elilst); +int _ge_local_data_get_media_count(const char *cluster_id, ge_filter_s *filter, + int *item_cnt); +int _ge_local_data_get_all_media_count(ge_filter_s *filter, int *item_cnt); +int _ge_local_data_get_media(const char *media_id, ge_media_s **mitem); +int _ge_local_data_get_album_cover(char *album_id, ge_filter_s *condition, + Eina_List **elist); +int _ge_local_data_get_all_albums_cover(ge_filter_s *condition, + Eina_List **elist); +int _ge_local_data_get_album_media_list(char *album_id, ge_filter_s *condition, + Eina_List **elist); +int _ge_local_data_get_all_albums_media_list(ge_filter_s *condition, + Eina_List **elist); +int _ge_local_data_get_album_by_id(char *album_id, ge_album_s **cluster); +int _ge_local_data_get_media_by_id(char *media_id, ge_media_s **mitem); +int _ge_local_data_get_duration(media_info_h media, int *duration); + +#endif //_GE_LOCAL_DATA_H_ + diff --git a/include/ge-main-view.h b/include/ge-main-view.h new file mode 100644 index 0000000..b5cbeb4 --- /dev/null +++ b/include/ge-main-view.h @@ -0,0 +1,33 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + + +#ifndef __GE_MAIN_VIEW_H__ +#define __GE_MAIN_VIEW_H__ + +#include "ge-ugdata.h" + +typedef enum _ge_ctrl_tab_mode +{ + GE_CTRL_TAB_ALBUMS, + GE_CTRL_TAB_CNT, +} ge_ctrl_tab_mode; + +int _ge_main_create_view(ge_ugdata *ugd); + +#endif //__GE_MAIN_VIEW_H__ + diff --git a/include/ge-nocontent.h b/include/ge-nocontent.h new file mode 100644 index 0000000..f5e938e --- /dev/null +++ b/include/ge-nocontent.h @@ -0,0 +1,24 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#ifndef _GE_NOCONTENT_H_ +#define _GE_NOCONTENT_H_ + +Evas_Object *_ge_nocontents_create(ge_ugdata *ugd); + +#endif //_GE_NOCONTENT_H_ + diff --git a/include/ge-rotate-bg.h b/include/ge-rotate-bg.h new file mode 100644 index 0000000..8facb2c --- /dev/null +++ b/include/ge-rotate-bg.h @@ -0,0 +1,33 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#ifdef _USE_ROTATE_BG_GE + +#ifndef _GE_ROTATE_BG_H_ +#define _GE_ROTATE_BG_H_ + +#include "gallery-efl.h" + +Evas_Object *_ge_rotate_bg_add(Evas_Object *parent, bool b_preload); +int _ge_rotate_bg_set_file(Evas_Object *bg, const char *file, int w, int h); +int _ge_rotate_bg_rotate_image(Evas_Object *bg, unsigned int orient); +int _ge_rotate_bg_add_image(Evas_Object *bg, int w, int h); +int _ge_rotate_bg_set_image_file(Evas_Object *bg, const char *file); + +#endif //_GE_ROTATE_BG_H_ + +#endif //_USE_ROTATE_BG_GE diff --git a/include/ge-strings.h b/include/ge-strings.h new file mode 100644 index 0000000..049fb01 --- /dev/null +++ b/include/ge-strings.h @@ -0,0 +1,73 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#ifndef _GE_STRINGS_H_ +#define _GE_STRINGS_H_ + +#ifdef _cplusplus +extern "C" { +#endif + +#define GE_STR_DOMAIN_SYS "sys_string" +#define GE_STR_DOMAIN_LOCAL "ug-gallery-efl" + +#define _GE_GETSYSTEMSTR(ID) dgettext(GE_STR_DOMAIN_SYS, (ID)) +#define _GE_GETLOCALSTR(ID) dgettext(GE_STR_DOMAIN_LOCAL, (ID)) +/* hard code strings */ +#define GE_ALBUM_CAMERA_NAME _("Camera") +#define GE_POPUP_ONLY_SUPPORT_IMAGE _("Only image is supported!") +#define GE_ALBUM_DOWNLOADS_NAME _("Downloads") +#define GE_POPUP_ADD_SHORTCUT_FAILED _("Add shortcut failed!") +#define GE_STR_SR_TITLE _("title") +#define GE_STR_ID_SELECT_ITEM "IDS_MEDIABR_HEADER_SELECT_ITEM" +#define GE_STR_ID_SELECT_ITEMS _GE_GETLOCALSTR("IDS_MEDIABR_BODY_SELECT_ITEMS")//"IDS_MEDIABR_BODY_SELECT_ITEMS" +#define GE_STR_ID_ALBUMS "IDS_COM_BODY_ALBUMS" +#define GL_STR_ID_TIME_LINE "IDS_MEDIABR_HEADER_TIMELINE_ABB" +#define GE_STR_ID_CANCEL "IDS_COM_SK_CANCEL" +#define GE_STR_ID_DONE "IDS_COM_SK_DONE" +#define GE_STR_ID_START "IDS_COM_BODY_START" +#define GE_STR_ID_BACK "IDS_COM_SK_BACK" +#define GE_STR_ID_OK "IDS_COM_SK_OK" +#define GE_STR_ID_CANCEL_CAP _GE_GETLOCALSTR("IDS_TPLATFORM_ACBUTTON_CANCEL_ABB") +#define GE_STR_ID_DONE_CAP _GE_GETLOCALSTR("IDS_TPLATFORM_ACBUTTON_DONE_ABB") + +#define GE_ALBUM_NAME _GE_GETLOCALSTR("IDS_MEDIABR_BUTTON_ALBUMS") +#define GE_ALBUM_ALL_NAME _GE_GETLOCALSTR("IDS_MEDIABR_BODY_ALL_ALBUMS") +#define GE_STR_NO_ALBUMS _GE_GETLOCALSTR("IDS_MEDIABR_BODY_NO_ALBUMS") +#define GE_ALBUM_ROOT_NAME _GE_GETLOCALSTR("IDS_MEDIABR_POP_NO_NAME") +#define GE_STR_PD_SELECTED _GE_GETLOCALSTR("IDS_MEDIABR_HEADER_PD_SELECTED") +#define GE_STR_UNSUPPORTED_FILE _GE_GETLOCALSTR("IDS_GALLERY_TPOP_FILE_CORRUPT_OR_IN_UNSUPPORTED_FORMAT") + +/* system strings which are included in sys-string-0 po files */ +#define GE_STR_CAMERA _GE_GETLOCALSTR("IDS_GALLERY_BUTTON_CAMERA") +#define GE_STR_DOWNLOADS _GE_GETLOCALSTR("IDS_MF_BODY_DOWNLOADS") +#define GE_STR_NO_VIDEOS _GE_GETSYSTEMSTR("IDS_COM_BODY_NO_VIDEOS") +#define GE_STR_NO_IMAGES _GE_GETSYSTEMSTR("IDS_COM_BODY_NO_IMAGES") +#define GE_STR_NO_ITEMS _GE_GETSYSTEMSTR("IDS_COM_BODY_NO_ITEMS") +#define GE_STR_SELECTED _GE_GETSYSTEMSTR("IDS_COM_POP_SELECTED") +#define GE_STR_UNKNOWN _GE_GETSYSTEMSTR("IDS_COM_BODY_UNKNOWN") +#define GE_STR_MAXIMUM_COUNT _GE_GETLOCALSTR("IDS_IV_POP_YOU_CAN_SELECT_UP_TO_PD_ITEMS") +#define GE_STR_MAXIMUM_SIZE _GE_GETLOCALSTR("IDS_IM_POP_MAXIMUM_SIZE_OF_FILES_EXCEEDED") + +#define ATTACH_PANEL_FLICK_MODE_ENABLE "enable" +#define ATTACH_PANEL_FLICK_MODE_DISABLE "disable" +#define ATTACH_PANEL_FLICK_MODE_KEY "__ATTACH_PANEL_FLICK_DOWN__" + +#ifdef _cplusplus +} +#endif +#endif //_GE_STRINGS_H_ diff --git a/include/ge-thumb.h b/include/ge-thumb.h new file mode 100644 index 0000000..6549a3d --- /dev/null +++ b/include/ge-thumb.h @@ -0,0 +1,44 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#ifndef _GE_THUMB_H_ +#define _GE_THUMB_H_ + +typedef enum _ge_cm_mode_t { + GE_CM_MODE_NORMAL = 0, + GE_CM_MODE_PANORAMA = 1, + GE_CM_MODE_SOUND = 2, + GE_CM_MODE_ANIMATE = 3, + GE_CM_MODE_BEST = 4, + GE_CM_MODE_FB = 5, + GE_CM_MODE_VOICE_REC = 10, + GE_CM_MODE_MAX, +} ge_cm_mode_e; + +Evas_Object *_ge_thumb_show_part_icon_image(Evas_Object *obj, char *path, + unsigned int orient, bool b_favor, + int item_w, int item_h); + +Evas_Object *_ge_thumb_show_part_icon_video(Evas_Object *obj, char *path, + unsigned int v_dur, int bk_len, + bool b_favor, int item_w, int item_h); +int _ge_thumb_set_size(ge_ugdata *ugd, Evas_Object *view, int rotate_mode, + int *size_w, int *size_h); +Evas_Object *_ge_thumb_show_mode(Evas_Object *obj, ge_cm_mode_e mode); + +#endif //_GE_THUMB_H_ + diff --git a/include/ge-tile.h b/include/ge-tile.h new file mode 100644 index 0000000..76c8df6 --- /dev/null +++ b/include/ge-tile.h @@ -0,0 +1,56 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#ifndef _GE_TILE_H_ +#define _GE_TILE_H_ + +#include "ge-data.h" + +#define GE_TILE_ICON "elm.swallow.icon" +#define GE_TILE_LABEL "label_bg" +#define GE_TILE_TYPE_ICON "elm.swallow.type_icon" +#define GE_SD_CARD_TYPE_ICON "ug_sd_icon" + +/* type for showing different icon in typeicon part in edc */ +typedef enum _ge_tile_type { + GE_TILE_TYPE_NONE, + GE_TILE_TYPE_FACEBOOK, /* Facebook album */ + GE_TILE_TYPE_CLOUD, /* Cloud album */ + GE_TILE_TYPE_CAMERA, /* Camera album */ + GE_TILE_TYPE_DOWNLOAD, /* Download album */ + GE_TILE_TYPE_FOLDER, /* Folder album */ + GE_TILE_TYPE_PEOPLE, /* People album */ + GE_TILE_TYPE_MMC, /* MMC album */ +} ge_tile_type; + +typedef enum +{ + GE_ICON_NORMAL, + GE_ICON_CORRUPTED_FILE +}ge_icon_type; + +typedef ge_icon_type (*bg_file_set_cb)(Evas_Object *bg, void *data); + +Evas_Object *_ge_tile_show_part_icon(Evas_Object *obj, const char *part, + int length, bg_file_set_cb func, + void *data); +int _ge_tile_update_item_size(ge_ugdata *ugd, Evas_Object *grid, + int rotate_mode, bool b_update); +Evas_Object *_ge_tile_show_part_type_icon(Evas_Object *obj, int type); + +#endif //_GE_TILE_H_ + diff --git a/include/ge-ugdata.h b/include/ge-ugdata.h new file mode 100644 index 0000000..60493ad --- /dev/null +++ b/include/ge-ugdata.h @@ -0,0 +1,283 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#ifndef __GE_UGDATA_H__ +#define __GE_UGDATA_H__ + +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#define GE_MAX_BYTES_FOR_CHAR 3 +#define GE_ALBUM_NAME_LEN_MAX (255 * GE_MAX_BYTES_FOR_CHAR + 1) + +/*Image viewer UG service parameters-End*/ + +typedef enum { + GE_ALBUM_SELECT_T_NONE, + GE_ALBUM_SELECT_T_ONE, +} ge_album_select_e; + +typedef enum { + GE_FILE_SELECT_T_NONE, + GE_FILE_SELECT_T_ONE, + GE_FILE_SELECT_T_MULTIPLE, + GE_FILE_SELECT_T_SETAS, + GE_FILE_SELECT_T_IMFT, + GE_FILE_SELECT_T_SLIDESHOW, +} ge_file_select_e; + +typedef enum { + GE_SETAS_T_NONE, + GE_SETAS_T_WALLPAPER, + GE_SETAS_T_LOCKPAPER, + GE_SETAS_T_WALLPAPER_LOCKPAPER, + GE_SETAS_T_CROP_WALLPAPER, + GE_SETAS_T_CALLERID, +} ge_file_select_setas_e; + +typedef enum { + GE_FILE_T_NONE, + GE_FILE_T_IMAGE, + GE_FILE_T_VIDEO, + GE_FILE_T_ALL, +} ge_file_type_e; + +typedef enum view_by_mode_e { + GE_VIEW_ALBUMS, + GE_VIEW_PEOPLE, + GE_VIEW_THUMBS, + GE_VIEW_THUMBS_EDIT, +} ge_view_mode; + +typedef enum { + GE_ROTATE_NONE, + GE_ROTATE_PORTRAIT, + GE_ROTATE_PORTRAIT_UPSIDEDOWN, + GE_ROTATE_LANDSCAPE, + GE_ROTATE_LANDSCAPE_UPSIDEDOWN, +} ge_rotate_mode; + +typedef enum { + GE_UPDATE_NONE, + GE_UPDATE_NORMAL, + GE_UPDATE_MMC_REMOVED, + GE_UPDATE_MMC_ADDED, +} ge_update_mode; + +typedef enum { + GE_VIEW_BY_NONE, + GE_VIEW_BY_ALL, + GE_VIEW_BY_ALBUMS, + GE_VIEW_BY_MAX, +} ge_viewby_mode; + +typedef struct _ge_ugdata ge_ugdata; +typedef struct _ge_item ge_item; +typedef struct _ge_sel_album_t ge_sel_album_s; +typedef struct _ge_sel_item_t ge_sel_item_s; +typedef struct _ge_cluster ge_cluster; +typedef struct _ge_thumbs_t ge_thumbs_s; +typedef struct ge_db_noti_t ge_db_noti_s; + +typedef int (*ge_albums_append_cb)(ge_ugdata *ugd, ge_cluster *album); +typedef int (*ge_rotate_view_cb)(ge_ugdata *ugd); + +struct _ge_thumbs_t { + ge_ugdata *ugd; + Evas_Object *view; + Evas_Object *nocontents; + Evas_Object *layout; + Evas_Object *split_view; + Elm_Gengrid_Item_Class *gic; + Elm_Object_Item *nf_it; + Elm_Object_Item *done_it; + + Ecore_Idler *append_idler; + /* It's thumbnails icon size, not grid item size */ + int icon_w; + int icon_h; + + /* Data from parent album */ + char *album_uuid; + int store_type; + /* Data from DB */ + int medias_cnt; + Eina_List *medias_elist; + bool b_multifile; /* Multiple file selection */ + bool b_mainview; /* First level view */ + ge_cluster *album; + int unsupported_cnt; + char *selected_uuid; +}; + +typedef struct { + Eina_List *clist; + int data_type; + int local_cnt; + int web_cnt; + ge_albums_append_cb append_cb; + bool b_updated; + int all_medias_cnt; + time_t last_mtime; +}ge_cluster_list; + +struct _ge_sel_album_t { + union { + char *uuid; /*album's uuid*/ + int id; /*people album's id*/ + }; + Eina_List *elist; +}; + +struct _ge_sel_item_t { + char *uuid; + char *file_url; + int store_type; + int valid; + int sequence; +}; + +struct _ge_item { + ge_media_s* item; + ge_ugdata* ugd; + Elm_Object_Item *elm_item; + bool checked; + ge_cluster *album; + int store_type; + int sequence; +}; + +struct _ge_cluster { + ge_album_s *cluster; + ge_ugdata *ugd; + int index; + + Elm_Object_Item *griditem; + ge_item *cover; + int cover_thumbs_cnt; + int sel_cnt; /* Selected medias count of current album */ + bool select; +}; + +typedef struct +{ + bool b_app_called; /* Indicates if any application invoked by Gallery */ + app_control_h ug; + int ug_type; + int iv_type; + void *data; + int sort_type; /* Types: wminfo_media_sort_type; pass it to imageviewer */ + bool b_start_slideshow; /* Start slideshow from slideshow-setting ug */ + bool b_ug_launched; +} ge_ug_info; + +typedef enum { + ATTACH_PANEL_NONE, + ATTACH_PANEL_FULL_MODE, + ATTACH_PANEL_HALF_MODE, +}_ge_attach_panel_display_mode; + +struct _ge_ugdata { + Evas_Object *win; + Evas_Object *ly_parent; + Evas_Object *ly_main; + Evas_Object *bg; + Elm_Theme *th; + Evas_Object *naviframe; + Elm_Object_Item *nf_it; + Evas_Object *conform; + Evas_Object *image_object; +//#ifdef _USE_HIDE_INDICATOR + Elm_Win_Indicator_Opacity_Mode indi_o_mode; + Elm_Win_Indicator_Mode indi_mode; + bool overlap_mode; +//#endif +#ifdef _USE_ADD_ACCOUNT + WebMediaHandle *db_handle; +#endif + ge_view_mode view_mode; + int rotate_mode; + int tab_mode; + Eina_List *rotate_cbs; + + Evas_Object *main_view_ly; + Elm_Gengrid_Item_Class *album_gic; + Evas_Object *albums_view; + Evas_Object *albums_view_ly; + Evas_Object *nocontents; + Evas_Object *popup; + Elm_Object_Item *done_it; + Ecore_Timer *del_timer; + int popup_mode; + + ge_cluster_list* cluster_list; + ui_gadget_h ug_called_by_me; + ui_gadget_h ug; + char *ug_path; + app_control_h service; /*added for "ug_send_result"*/ + bool b_destroy_me; + Ecore_Idler *album_idler; + Ecore_Idler *sel_album_idler; + Eina_List *selected_elist; + Eina_Bool ck_state; + int album_select_mode; + int file_select_mode; + int file_type_mode; + int file_select_contact_id; + int file_select_setas_mode; + int file_select_setas_status; + char *file_select_setas_path; + char *slideshow_album_id; + int slideshow_viewby; + int max_count; + char* file_setas_image_path; + char* file_setas_crop_image_path; + char albums_view_title[GE_ALBUM_NAME_LEN_MAX]; + char* selected_album; + + Evas_Object *selinfo_ly; + bool b_multifile; /* Multipe files selection */ + bool b_hide_indicator; + ge_thumbs_s *thumbs_d; + ge_db_noti_s *db_noti_d; + _ge_attach_panel_display_mode attach_panel_display_mode; + bool is_attach_panel; + ge_cluster *album_item; + Elm_Object_Item *selected_griditem; + Ecore_Event_Handler *key_down_handler; + ge_ug_info uginfo; /* Global variables about ug image viewer */ + long long int limitsize; + long long int selsize; +}; + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + + +#endif /* __GE_UGDATA_H__ */ + diff --git a/include/ge-ui-util.h b/include/ge-ui-util.h new file mode 100644 index 0000000..0749f23 --- /dev/null +++ b/include/ge-ui-util.h @@ -0,0 +1,85 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#ifndef _GE_UI_UTIL_H_ +#define _GE_UI_UTIL_H_ + +#include "gallery-efl.h" +#include "ge-icon.h" +#include "ge-file-util.h" + +#ifdef _cplusplus +extern "C" { +#endif + + +#define GE_BTN_NAVI_PRE "naviframe/back_btn/default" +#define GE_BTN_NAVI_TOOLBAR "naviframe/toolbar/default" +#define GE_NAVIFRAME_BTN1 "toolbar_button1" +#define GE_NAVIFRAME_TITLE_RIGHT_BTN "title_right_btn" +#define GE_NAVIFRAME_TITLE_LEFT_BTN "title_left_btn" +#define GE_BTN_POPUP "popup" +#define GE_NAVIFRAME_PREB_BTN "prev_btn" +#define GE_BUTTON_STYLE_NAVI_TITLE_ICON "naviframe/title_icon" + +#define _EDJ(o) elm_layout_edje_get(o) + +#define _GE_GET_ICON(_path) \ + ((1 == ge_file_exists(_path) && (ge_file_size(_path) > 0)) ? _path : GE_ICON_NO_THUMBNAIL) +#define _GE_GET_APP_ICON(_path) \ + ((1 == ge_file_exists(_path) && (ge_file_size(_path) > 0)) ? _path : GE_DEFAULT_APP_ICON) + +typedef enum { + GE_POPUP_NOBUT, + GE_POPUP_ONEBUT, + GE_POPUP_TWOBUT, + GE_POPUP_EXIT, +} ge_popup_mode_e; + +Evas_Object* ge_ui_create_naviframe(ge_ugdata *ugd, Evas_Object *parent); +Evas_Object *ge_ui_create_main_ly(Evas_Object *parent); +Evas_Object* ge_ui_load_edj(Evas_Object *parent, const char *file, const char *group); +Evas_Object* ge_ui_create_nocontents(ge_ugdata* ugd); +int ge_ui_lock_albums(ge_cluster* album_item); +Evas_Object* ge_ui_create_popup(ge_ugdata* ugd, ge_popup_mode_e mode, + char* desc); +int _ge_ui_create_notiinfo(const char *text); +char* _ge_ui_get_i18n_album_name(ge_album_s *cluster); +int _ge_ui_reset_scroller_pos(Evas_Object *obj); +int _ge_ui_del_scroller_pos(Evas_Object *obj); +int _ge_ui_save_scroller_pos(Evas_Object *obj); +int _ge_ui_restore_scroller_pos(Evas_Object *obj); +int _ge_ui_set_translate_str(Evas_Object *obj, const char *str); +int _ge_ui_set_translatable_item(Elm_Object_Item *nf_it, const char *str); +int _ge_ui_update_label_text(Elm_Object_Item *nf_it, int sel_cnt, + const char *text); +int _ge_ui_get_indicator_state(ge_ugdata *ugd); +int _ge_ui_hide_indicator(ge_ugdata *ugd); +#ifdef _USE_HIDE_INDICATOR +int _ge_ui_reset_indicator(ge_ugdata *ugd); +#endif +Evas_Object *_ge_ui_add_toolbar(Evas_Object *parent); +Elm_Object_Item *_ge_ui_append_item(Evas_Object *obj, const char *icon, + const char *label, Evas_Smart_Cb func, + const void *data); +int _ge_ui_disable_item(Elm_Object_Item *it, Eina_Bool b_disabled); + +#ifdef _cplusplus +} +#endif + +#endif //_GE_UI_UTIL_H_ diff --git a/include/ge-util.h b/include/ge-util.h new file mode 100644 index 0000000..dd89c63 --- /dev/null +++ b/include/ge-util.h @@ -0,0 +1,48 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#ifndef _GE_UTIL_H_ +#define _GE_UTIL_H_ + +#include "gallery-efl.h" +#include "ge-icon.h" +#include "ge-file-util.h" + +#define GE_FILE_EXISTS(path) \ + (path && (1 == ge_file_exists(path)) && (ge_file_size(path) > 0)) + +#define GE_ICON_SET_FILE(icon, img) \ + elm_image_file_set(icon, GE_IMAGES_EDJ_FILE, img) + + +void _ge_set_current_item(ge_item* gitem); +int ge_reg_db_update_noti(ge_ugdata* ugd); +int ge_dereg_db_update_noti(void); +Eina_Bool ge_update_view(ge_ugdata* ugd); +bool _ge_is_image_valid(void *data, char *filepath); +char *_ge_get_duration_string(unsigned int v_dur); +ge_view_mode _ge_get_view_mode(ge_ugdata *ugd); +int _ge_set_view_mode(ge_ugdata *ugd, ge_view_mode mode); +double _ge_get_win_factor(Evas_Object *win, bool b_hide_indicator, int *width, + int *height); +int _ge_addhome_image(ge_ugdata *ugd, char *path); +int _ge_send_result(ge_ugdata *ugd); +int _ge_atoi(const char *number); +char *_ge_str(char *str_id); + +#endif //_GE_UTIL_H_ + diff --git a/packaging/ug-gallery-efl.spec b/packaging/ug-gallery-efl.spec new file mode 100644 index 0000000..90f1fa1 --- /dev/null +++ b/packaging/ug-gallery-efl.spec @@ -0,0 +1,90 @@ +%define _optdir /opt/usr +%define _usrdir /usr +%define _appdir %{_usrdir}/apps +%define _appdatadir %{_optdir}/apps +%define _ugdir %{_usrdir}/ug + +%define _datadir /opt%{_ugdir}/data +%define _sharedir /opt/usr/media/.iv +Name: ug-gallery-efl +Summary: Gallery UX +Version: 1.3.21 +Release: 1 +Group: Applications +License: Apache-2.0 +Source0: %{name}-%{version}.tar.gz + +%if "%{?tizen_profile_name}" == "wearable" || "%{?tizen_profile_name}" == "tv" +ExcludeArch: %{arm} %ix86 x86_64 +%endif + +BuildRequires: cmake +BuildRequires: gettext-tools +BuildRequires: edje-tools +BuildRequires: prelink +BuildRequires: libicu-devel + +BuildRequires: pkgconfig(elementary) +BuildRequires: pkgconfig(evas) +BuildRequires: pkgconfig(ui-gadget-1) +BuildRequires: pkgconfig(dlog) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(notification) +BuildRequires: pkgconfig(capi-appfw-application) +BuildRequires: pkgconfig(capi-content-media-content) +BuildRequires: pkgconfig(appsvc) +BuildRequires: pkgconfig(efl-extension) +BuildRequires: pkgconfig(storage) + +%description +Description: gallery UG + +%prep +%setup -q + +%build + +%if 0%{?tizen_build_binary_release_type_eng} +export CFLAGS="$CFLAGS -DTIZEN_ENGINEER_MODE" +export CXXFLAGS="$CXXFLAGS -DTIZEN_ENGINEER_MODE" +export FFLAGS="$FFLAGS -DTIZEN_ENGINEER_MODE" +%endif + +%ifarch %{arm} +CXXFLAGS+=" -D_ARCH_ARM_ -mfpu=neon" +%endif + +cmake . -DCMAKE_INSTALL_PREFIX=%{_ugdir}/ug-gallery-efl -DCMAKE_DATA_DIR=%{_datadir} -DARCH=%{ARCH} + +make %{?jobs:-j%jobs} + +%install +rm -rf %{buildroot} +if [ ! -d %{buildroot}/opt/usr/apps/ug-gallery-efl/data ] +then + mkdir -p %{buildroot}/opt/usr/apps/ug-gallery-efl/data +fi + +%make_install + +mkdir -p %{buildroot}/usr/share/license +mkdir -p %{buildroot}%{_sharedir} +cp LICENSE %{buildroot}/usr/share/license/ug-gallery-efl + + +%post +mkdir -p /usr/ug/bin/ +ln -sf /usr/bin/ug-client /usr/ug/bin/gallery-efl +%postun + +%files +%manifest ug-gallery-efl.manifest +%defattr(-,root,root,-) +%{_ugdir}/lib/libug-gallery-efl.so* +%{_ugdir}/res/edje/gallery-efl/* +%{_ugdir}/res/images/gallery-efl/* +%{_ugdir}/res/locale/*/*/ug-gallery-efl.mo +/usr/share/packages/ug-gallery-efl.xml +/usr/ug/res/images/gallery-efl/ug-gallery-efl.png +/usr/share/license/ug-gallery-efl + diff --git a/res/black_theme/edc/gallery-efl-check.edc b/res/black_theme/edc/gallery-efl-check.edc new file mode 100644 index 0000000..f4c0a91 --- /dev/null +++ b/res/black_theme/edc/gallery-efl-check.edc @@ -0,0 +1,333 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#define CHECK_STYLE_DEFAULT_BG_NORMAL_MIN_MAX_INC 64 64 + +#define CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC 255 255 255 255 +#define CHECK_DEFAULT_TEXT_PRESSED_COLOR_INC 255 255 255 255 +#define CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC 136 136 136 136 + +//////////////////////////////////////////////////////////////////////////////////////// +// +// check default textblock style +// +/////////////////////////////////////////////////////////////////////////////////////// + styles { + style { name: "check_label_textblock_style"; + base: "font=Tizen:style=Roman text_class=tizen font_size=32 color=#ffffff wrap=char"; + tag: "br" "\n"; + tag: "ps" "ps"; + tag: "hilight" "+ font=Tizen:style=Bold text_class=tizen"; + tag: "b" "+ font=Tizen:style=Bold text_class=tizen"; + tag: "whitecolor" "+ color=#ffffff"; + tag: "tab" "\t"; + } + } + +#define CHECK_STATE_DEFAULT 0 +#define CHECK_STATE_VISIBLE 1 +#define CHECK_STATE_DISABLED_VISIBLE 2 +#define CHECK_STATE_DISABLED 3 + +//////////////////////////////////////////////////////////////////////////////// +#define CHECK_STYLE_DEFAULT(style_name, image_bg, image_checking, image_nocheck, min_width, min_height, check_visible) \ + group { name: "elm/check/base/"style_name; \ + images { \ + image: image_bg COMP; \ + image: GE_EDC_IMAGE_CHECK_BG_DIM COMP; \ + image: image_checking COMP; \ + image: image_nocheck COMP; \ + } \ + script { \ + public check_state = CHECK_STATE_DEFAULT; \ + } \ + parts { \ + part { name: "back_bg"; \ + type: RECT; \ + scale: 1; \ + description { state: "default" 0.0; \ + rel2.relative: 1.0 1.0; \ + align: 0 0.5; \ + min: min_width min_height; \ + fixed: 1 1; \ + color: 0 0 0 0; \ + } \ + } \ + part { name: "bg"; \ + mouse_events: 0; \ + scale: 1; \ + description { state: "default" 0.0; \ + min: CHECK_STYLE_DEFAULT_BG_NORMAL_MIN_MAX_INC; \ + max: CHECK_STYLE_DEFAULT_BG_NORMAL_MIN_MAX_INC; \ + fixed: 1 1; \ + rel1.to: "back_bg"; \ + rel2.to: "back_bg"; \ + image.normal: image_bg; \ + fill.smooth : 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + image.normal: GE_EDC_IMAGE_CHECK_BG_DIM; \ + fill.smooth : 0; \ + } \ + } \ + part { name: "check"; \ + mouse_events: 0; \ + scale: 1; \ + description { state: "default" 0.0; \ + rel1.to: "bg"; \ + rel2.to: "bg"; \ + visible: check_visible; \ + image.normal: image_nocheck; \ + } \ + description { state: "visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + image.normal: image_checking; \ + } \ + description { state: "disabled_visible" 0.0; \ + inherit: "default" 0.0; \ + image.normal: image_checking; \ + visible: 1; \ + } \ + } \ + part { name: "elm.swallow.content"; \ + type: SWALLOW; \ + description { state: "default" 0.0; \ + fixed: 1 0; \ + visible: 0; \ + color: 255 255 255 255; \ + align: 0.0 0.5; \ + rel1 { \ + to_x: "bg"; \ + relative: 1.0 0.0; \ + offset: 1 1; \ + } \ + rel2 { \ + to_x: "bg"; \ + relative: 1.0 1.0; \ + offset: 2 -2; \ + } \ + } \ + description { state: "visible" 0.0; \ + inherit: "default" 0.0; \ + fixed: 1 1; \ + visible: 1; \ + aspect: 1.0 1.0; \ + aspect_preference: VERTICAL; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + color: 128 128 128 128; \ + } \ + description { state: "disabled_visible" 0.0; \ + inherit: "default" 0.0; \ + color: 128 128 128 128; \ + fixed: 1 1; \ + visible: 1; \ + aspect: 1.0 1.0; \ + } \ + } \ + part { name: "elm.text"; \ + type: TEXTBLOCK; \ + mouse_events: 0; \ + scale: 1; \ + description { state: "default" 0.0; \ + visible: 0; \ + fixed: 0 1; \ + rel1 { \ + relative: 1.0 0.5; \ + offset: 1 1; \ + to_x: "elm.swallow.content"; \ + } \ + rel2 { \ + relative: 1.0 0.5; \ + offset: -2 -2; \ + } \ + align: 0.0 0.5; \ + text { \ + style: "check_label_textblock_style"; \ + min: 0 0; \ + } \ + color: CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC; \ + } \ + description { state: "visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + text.min: 1 1; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + } \ + description { state: "disabled_visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + text.min: 1 1; \ + color: CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC; \ + } \ + } \ + part { name: "events1"; \ + type: RECT; \ + ignore_flags: ON_HOLD; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + } \ + } \ + part { name: "events2"; \ + type: RECT; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + } \ + } \ + part { name: "disabler"; \ + type: RECT; \ + description { state: "default" 0.0; \ + color: 0 0 0 0; \ + visible: 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } \ + } \ + programs { \ + program { name: "click"; \ + signal: "mouse,clicked,1"; \ + source: "events1"; \ + action: SIGNAL_EMIT "elm,action,check,toggle" ""; \ + } \ + program { name: "check_on"; \ + signal: "elm,state,check,on"; \ + source: "elm"; \ + script { \ + set_int(check_state, CHECK_STATE_VISIBLE); \ + set_state(PART:"check", "visible", 0.0); \ + } \ + } \ + program { name: "check_off"; \ + signal: "elm,state,check,off"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "check"; \ + script { \ + if (get_int(check_state) == CHECK_STATE_VISIBLE) \ + { \ + set_int(check_state, CHECK_STATE_DEFAULT); \ + set_state(PART:"check", "default", 0.0); \ + } \ + } \ + } \ + program { name: "text_show"; \ + signal: "elm,state,text,visible"; \ + source: "elm"; \ + action: STATE_SET "visible" 0.0; \ + target: "elm.text"; \ + } \ + program { name: "text_hide"; \ + signal: "elm,state,text,hidden"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "elm.text"; \ + } \ + program { name: "icon_show"; \ + signal: "elm,state,icon,visible"; \ + source: "elm"; \ + action: STATE_SET "visible" 0.0; \ + target: "elm.swallow.content"; \ + } \ + program { name: "icon_hide"; \ + signal: "elm,state,icon,hidden"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "elm.swallow.content"; \ + } \ + program { name: "disable"; \ + signal: "elm,state,disabled"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + target: "disabler"; \ + target: "bg"; \ + after: "disable_text"; \ + } \ + program { name: "disable_text"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.text", st, 30, vl); \ + if (!strcmp(st, "visible")) \ + set_state(PART:"elm.text", "disabled_visible", 0.0); \ + else \ + set_state(PART:"elm.text", "disabled", 0.0); \ + get_state(PART:"elm.swallow.content", st, 30, vl); \ + if (!strcmp(st, "visible")) \ + set_state(PART:"elm.swallow.content", "disabled_visible", 0.0); \ + else \ + set_state(PART:"elm.swallow.content", "disabled", 0.0); \ + get_state(PART:"check", st, 30, vl); \ + if (!strcmp(st, "visible")) \ + { \ + set_state(PART:"check", "disabled_visible", 0.0); \ + set_int(check_state, CHECK_STATE_DISABLED_VISIBLE); \ + } \ + } \ + } \ + program { name: "enable"; \ + signal: "elm,state,enabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "disabler"; \ + target: "bg"; \ + after: "enable_text"; \ + } \ + program { name: "enable_text"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.text", st, 30, vl); \ + if (!strcmp(st, "disabled_visible")) \ + set_state(PART:"elm.text", "visible", 0.0); \ + else \ + set_state(PART:"elm.text", "default", 0.0); \ + get_state(PART:"elm.swallow.content", st, 30, vl); \ + if (!strcmp(st, "visible")) \ + set_state(PART:"elm.swallow.content", "visible", 0.0); \ + else \ + set_state(PART:"elm.swallow.content", "default", 0.0); \ + get_state(PART:"check", st, 30, vl); \ + if (!strcmp(st, "disabled_visible")) \ + { \ + set_state(PART:"check", "visible", 0.0); \ + set_int(check_state, CHECK_STATE_VISIBLE); \ + } \ + else \ + set_int(check_state, CHECK_STATE_DEFAULT); \ + } \ + } \ + } \ + } + +//////////////////////////////////////////////////////////////////////////////// + CHECK_STYLE_DEFAULT("gallery_efl/grid", GE_EDC_IMAGE_CHECK_ALBUM_BG, GE_EDC_IMAGE_CHECK_ALBUM_EDIT_CHECKON,GE_EDC_IMAGE_CHECK_ALBUM_BG, 64, 64, 1) + + +#undef CHECK_STATE_DEFAULT +#undef CHECK_STATE_VISIBLE +#undef CHECK_STATE_DISABLED_VISIBLE +#undef CHECK_STATE_DISABLED + diff --git a/res/black_theme/edc/gallery-efl-edc-res.h b/res/black_theme/edc/gallery-efl-edc-res.h new file mode 100644 index 0000000..c5449ee --- /dev/null +++ b/res/black_theme/edc/gallery-efl-edc-res.h @@ -0,0 +1,53 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +/* Definition of image path used in edc file */ + +/* gallery-efl-nocontents.edc */ +#define GE_EDC_IMAGE_NOCONTENTS_PIC "T01_Nocontents_picture.png" + +/* gallery-efl-gengrid.edc */ +#define GE_EDC_IMAGE_OS_TOP "T01_overscrolling_top.png" +#define GE_EDC_IMAGE_OS_BOTTOM "T01_overscrolling_bottom.png" +#define GE_EDC_IMAGE_OS_LEFT "T01_overscrolling_left.png" +#define GE_EDC_IMAGE_OS_RIGHT "T01_overscrolling_right.png" + +/* gallery-efl-gengrid-item-albums.edc */ +#define GE_EDC_IMAGE_ALBUM_BG "T01_album_folder_bg.png" +#define GE_EDC_IMAGE_THUMBS_BG_FOCUS "00_thumbs_bg_focus.png" +#define GE_EDC_IMAGE_BADGE_BG "00_badge_bg.png" + +/* gallery-efl-gengrid-item-thumbview.edc */ +#define GE_EDC_IMAGE_BUTTON_VIDEO_PLAY "T01_video_play.png" + +/* gallery-efl-check.edc */ +#define GE_EDC_IMAGE_CHECK_ALBUM_BG "T01_album_edit_check_bg.png" +#define GE_EDC_IMAGE_CHECK_BG_DIM "00_check_bg_dim.png" +#define GE_EDC_IMAGE_CHECK_ALBUM_EDIT_CHECKON "T01_album_edit_check_on.png" + +/* gallery-efl-expanded-title.edc */ +#define GE_EDC_IMAGE_TITLE_BG "00_title_bg.png" +#define GE_EDC_IMAGE_POPUP_DROPDOWN_TITLE_BG "00_popup_dropdown_title_bg.png" +#define GE_EDC_IMAGE_POPUP_DROPDOWN_TITLE_BG_PRESS "00_popup_dropdown_title_bg_press.png" +#define GE_EDC_IMAGE_POPUP_DROPDOWN_TITLE_BG_FOCUS "00_popup_dropdown_title_bg_focus.png" +#define GE_EDC_IMAGE_BUTTON_ICON_ARROW_PRESS "00_button_icon_arrow_press.png" +#define GE_EDC_IMAGE_BUTTON_ICON_ARROW "00_button_icon_arrow.png" + +#define GE_EDC_SOUND_TOUCH_30MS "S_Touch_30ms.wav" + +#define GE_EDC_IMAGE_DELETE_SHOW_IMAGE_BG "gallery_icon_container.png" +#define GE_EDC_DELETE_SHOW_IMAGE "gallery_icon_full.png" diff --git a/res/black_theme/edc/gallery-efl-expanded-title.edc b/res/black_theme/edc/gallery-efl-expanded-title.edc new file mode 100644 index 0000000..92c567d --- /dev/null +++ b/res/black_theme/edc/gallery-efl-expanded-title.edc @@ -0,0 +1,845 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ +#define BUTTON_STATE_ENABLED 0 +#define BUTTON_STATE_DISABLED 1 + +#define BUTTON_EDIT_STYLE_BORDER_INC 8 0 5 5 + + sounds { + sample { + name: "touch_sound" AS_IS; + source: GE_EDC_SOUND_TOUCH_30MS; + } + } + +#define NAVIFRAME_TITLE_TEXT_BG_H_INC 88 +#define NAVIFRAME_LANDSCAPE_TITLE_TEXT_BG_H_INC 76 +#define NAVIFRAME_TITLE_BG_IMAGE_BORDER_INC 8 8 2 2 +#define NAVIFRAME_TITLE_H_INC 96 +#define NAVIFRAME_LANDSCAPE_TITLE_H_INC 91 +#define NAVIFRAME_TAB_TITLE_H_INC 165 +#define NAVIFRAME_LANDSCAPE_TAB_TITLE_H_INC 145 +#define NAVIFRAME_TAB_TITLE_H2_INC 126 +#define NAVIFRAME_TOOLBAR_HEIGHT_INC 98 +#define NAVIFRAME_LANDSCAPE_TOOLBAR_HEIGHT_INC 85 +#define NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC 115 96 +#define NAVIFRAME_LANDSCAPE_TITLE_FUNC_BTN_SIZE_INC 115 91 +#define NAVIFRAME_PREV_FUNC_BTN_SIZE_INC 85 98 +#define NAVIFRAME_LANDSCAPE_PREV_FUNC_BTN_SIZE_INC 85 85 +#define NAVIFRAME_TITLE_TAB_H_INC 75 +#define NAVIFRAME_TITLE_TAB_FONT_SIZE_INC 44 +#define NAVIFRAME_LANDSCAPE_TITLE_TAB_FONT_SIZE_INC 38 +#define NAVIFRAME_TITLE_TAB_TEXT_H_INC 90 +#define NAVIFRAME_LANDSCAPE_TITLE_TAB_TEXT_H_INC 70 +#define NAVIFRAME_TITLE_FONT_SIZE_INC 50 +#define NAVIFRAME_TITLE_FONT_MIN_SIZE_INC 46 +#define NAVIFRAME_LANDSCAPE_TITLE_FONT_SIZE_INC 50 +#define NAVIFRAME_TITLE_SMALL_FONT_SIZE_INC 44 +#define NAVIFRAME_LANDSCAPE_TITLE_SMALL_FONT_SIZE_INC 38 +#define NAVIFRAME_ICON_SIZE_INC 45 45 +#define NAVIFRAME_PADDING_INC 26 0 +#define NAVIFRAME_PADDING2_INC 16 0 +#define NAVIFRAME_BADGE_LEFT_PADDING_INC 8 0 +#define NAVIFRAME_BADGE_TOP_PADDING_INC 0 10 +#define NAVIFRAME_BADGE_TEXT_LEFT_PADDING_INC 12 54 +#define NAVIFRAME_BADGE_TEXT_RIGHT_PADDING_INC 10 54 +#define NAVIFRAME_BADGE_TEXT_H_INC 34 +#define NAVIFRAME_BADGE_TEXT_MIN_W_INC 30 +#define NAVIFRAME_BADGE_TEXT_MAX_W_INC 60 +#define NAVIFRAME_BADGE_BG_IMAGE_SIZE_INC 54 54 +#define NAVIFRAME_BADGE_BG_IMAGE_BORDER_INC 26 26 0 0 +#define NAVIFRAME_TOOLBAR_BUTTON_BG_PADDING_INC 112 0 +#define NAVIFRAME_ICON_PADDING_INC 77 0 +#define NAVIFRAME_TITLE_TEXT_COLOR_INC 250 250 250 255 +#define NAVIFRAME_TITLE_STYLE_COLOR_INC "#FAFAFA" +#define NAVIFRAME_SUBTITLE_TEXT_COLOR_INC 250 250 250 255 +#define NAVIFRAME_SUBTITLE_FONT_SIZE_INC 32 +#define NAVIFRAME_LANDSCAPE_SUBTITLE_FONT_SIZE_INC 28 +#define NAVIFRAME_SUBTITLE_H_INC 37 +#define NAVIFRAME_LANDSCAPE_SUBTITLE_H_INC 30 +#define NAVIFRAME_SUBTITLE_TOP_PADDING_H_INC 6 +#define NAVIFRAME_LANDSCAPE_SUBTITLE_TOP_PADDING_H_INC 4 +#define NAVIFRAME_TITLE_TEXT_UNSELECTED_COLOR_INC 153 153 153 255 +#define NAVIFRAME_BADGE_TEXT_COLOR_INC 250 250 250 255; +#define NAVIFRAME_TITLE_BUTTON_DIVIDER_COLOR_INC 255 255 255 82 + + +#define GE_TITLE_DROPDOWN \ + part { name: "dropdown_padding"; \ + type: RECT; \ + scale: 1; \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + align: 0.0 0.0; \ + rel1 { \ + to: "maintitle_text_bg"; \ + relative: 0.0 0.0; \ + } \ + rel2 { \ + to: "maintitle_text_bg"; \ + relative: 0.0 1.0; \ + } \ + min: 6 0; \ + fixed: 1 0; \ + visible: 0; \ + } \ + } \ + part { name: "elm.image.dropdown"; \ + mouse_events: 0; \ + scale: 1; \ + description { state: "default" 0.0; \ + visible: 1; \ + min: 54 54; \ + fixed: 1 1; \ + rel1 { \ + to: "left.padding.text"; \ + relative: 0.0 0.0; \ + } \ + rel2 { \ + to: "right.padding.text"; \ + relative: 1.0 1.0; \ + } \ + image { \ + normal: GE_EDC_IMAGE_POPUP_DROPDOWN_TITLE_BG; \ + border: 8 8 8 8; \ + border_scale: 1; \ + } \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + image.normal: GE_EDC_IMAGE_POPUP_DROPDOWN_TITLE_BG_PRESS; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + image.normal: GE_EDC_IMAGE_POPUP_DROPDOWN_TITLE_BG; \ + visible: 0; \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + image.normal: GE_EDC_IMAGE_POPUP_DROPDOWN_TITLE_BG_PRESS; \ + } \ + description { state: "hide" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + part { name: "focus_image"; \ + scale: 1; \ + mouse_events: 0; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + min: 54 54; \ + max: 54 54; \ + visible: 0; \ + rel1.to : "elm.image.dropdown"; \ + rel2.to : "elm.image.dropdown"; \ + image { \ + normal: GE_EDC_IMAGE_POPUP_DROPDOWN_TITLE_BG_FOCUS; \ + border: 8 8 8 8; \ + border_scale: 1; \ + } \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { state: "hide" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + part { name: "left.padding.text"; \ + type: RECT; \ + mouse_events: 0; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + visible: 0; \ + fixed: 1 0; \ + min: 16 54; \ + rel1 { \ + to: "dropdown_padding"; \ + relative: 0.0 0.0; \ + } \ + rel2 { \ + to: "dropdown_padding"; \ + relative: 0.0 1.0; \ + } \ + align: 0.0 0.0; \ + } \ + } \ + part { name: "right.padding.text"; \ + type: RECT; \ + mouse_events: 0; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + visible: 0; \ + fixed: 1 1; \ + min: 12 0; \ + rel1 { \ + to_x: "arrow_icon"; \ + to_y: "elm.text.dropdown"; \ + relative: 1.0 0.0; \ + } \ + rel2 { \ + to_x: "arrow_icon"; \ + to_y: "elm.text.dropdown"; \ + relative: 1.0 1.0; \ + } \ + align: 0.0 0.0; \ + } \ + } \ + part { name: "elm.text.dropdown"; \ + type: TEXT; \ + mouse_events: 0; \ + effect: FAR_SHADOW BOTTOM; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + visible: 1; \ + rel1 { \ + to: "left.padding.text"; \ + relative: 1.0 0.0; \ + } \ + rel2 { \ + to: "left.padding.text"; \ + relative: 1.0 1.0; \ + } \ + min: 30 0; \ + fixed: 1 0; \ + align: 0.0 0.5; \ + color: 250 250 250 255; \ + color2: 0 0 0 192; \ + text { \ + font: "Tizen:style=Regular"; \ + size: 44; \ + min: 1 0; \ + text_class: "tizen"; \ + } \ + } \ + description { state: "visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 250 250 250 255; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + description { state: "focused" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + color: 250 250 250 255; \ + } \ + description { state: "hide" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + part { name: "arrow_icon_padding"; \ + scale: 1; \ + mouse_events: 0; \ + type: RECT; \ + description { state: "default" 0.0; \ + min: 6 5; \ + fixed: 1 1; \ + align: 0.0 0.5; \ + rel1 { \ + relative: 1.0 0.0; \ + to: "elm.text.dropdown"; \ + } \ + visible: 0; \ + rel2.to: "elm.text.dropdown"; \ + } \ + } \ + part { name: "arrow_icon_bottom_padding"; \ + scale: 1; \ + mouse_events: 0; \ + type: RECT; \ + description { state: "default" 0.0; \ + min: 18 26; \ + max: 18 26; \ + fixed: 1 1; \ + align: 0.0 1.0; \ + rel1 { \ + relative: 1.0 1.0; \ + to_x: "arrow_icon_padding"; \ + to_y: "elm.text.dropdown"; \ + } \ + rel2 { \ + relative: 1.0 1.0; \ + to_x: "arrow_icon_padding"; \ + to_y: "elm.text.dropdown"; \ + } \ + visible: 0; \ + } \ + } \ + part { name: "arrow_icon"; \ + scale: 1; \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + min: 18 18; \ + max: 18 18; \ + fixed: 1 1; \ + align: 0.0 1.0; \ + rel1 { \ + relative: 1.0 0.0; \ + to_x: "arrow_icon_padding"; \ + to_y: "arrow_icon_bottom_padding"; \ + offset: 0 6; \ + } \ + rel2 { \ + relative: 1.0 0.0; \ + to_x: "arrow_icon_padding"; \ + to_y: "arrow_icon_bottom_padding"; \ + } \ + image.normal: GE_EDC_IMAGE_BUTTON_ICON_ARROW; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + image.normal: GE_EDC_IMAGE_BUTTON_ICON_ARROW_PRESS; \ + } \ + description { state: "hide" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + part { name: "access.title"; \ + type: RECT; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + fixed: 1 1; \ + rel1.to: "elm.image.dropdown"; \ + rel2.to: "elm.image.dropdown"; \ + color: 0 0 0 0; \ + } \ + } \ + part { name: "over2"; \ + type: RECT; \ + repeat_events: 1; \ + ignore_flags: ON_HOLD; \ + description { state: "default" 0.0; \ + rel1.to: "elm.image.dropdown"; \ + rel2.to: "elm.image.dropdown"; \ + color: 0 0 0 0; \ + } \ + } \ + part { name: "over3"; \ + type: RECT; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + rel1.to: "elm.image.dropdown"; \ + rel2.to: "elm.image.dropdown"; \ + color: 0 0 0 0; \ + } \ + } \ + part { name: "disabler"; \ + type: RECT; \ + description { state: "default" 0.0; \ + rel1.to: "elm.image.dropdown"; \ + rel2.to: "elm.image.dropdown"; \ + color: 0 0 0 0; \ + visible: 0; \ + } \ + description { state: "disabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } + +#define GL_TITLE_DROPDOWN_PGS \ + program { name: "button_click"; \ + signal: "mouse,down,1"; \ + source: "over2"; \ + action: SIGNAL_EMIT "elm,action,press" ""; \ + after: "button_click_anim"; \ + } \ + program { name: "button_click_anim"; \ + action: STATE_SET "clicked" 0.0; \ + target: "elm.image.dropdown"; \ + target: "elm.text.dropdown"; \ + target: "arrow_icon"; \ + } \ + program { name: "button_double_click"; \ + signal: "mouse,down,1,double"; \ + source: "over2"; \ + after: "button_click_anim"; \ + } \ + program { name: "button_unpress"; \ + action: SIGNAL_EMIT "elm,action,unpress" ""; \ + } \ + program { name: "button_mouseout_clicked"; \ + signal: "mouse,up,1"; \ + source: "over3"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.text.dropdown", st, 30, vl); \ + if (!strcmp(st, "clicked") || !strcmp(st, "focused")) \ + { \ + emit("elm,action,default,text,set", ""); \ + set_state(PART:"elm.text.dropdown", "visible", 0.0); \ + } \ + if (get_int(button_state) != BUTTON_STATE_DISABLED) \ + set_state(PART:"elm.image.dropdown", "default", 0.0); \ + set_state(PART:"arrow_icon", "default", 0.0); \ + } \ + after: button_unpress; \ + } \ + program { name: "touch_snd"; \ + signal: "mouse,clicked,1"; \ + source: "over2"; \ + action: PLAY_SAMPLE "touch_sound" 1.0; \ + after: button_unclick3; \ + } \ + program { name: "button_unclick3"; \ + action: SIGNAL_EMIT "elm,action,click" ""; \ + } \ + program { name: "disable"; \ + signal: "elm,state,disabled"; \ + source: "elm"; \ + action: STATE_SET "disabled" 0.0; \ + target: "elm.image.dropdown"; \ + target: "disabler"; \ + after: "disable_text"; \ + } \ + program { name: "disable_text"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.text.dropdown", st, 30, vl); \ + if (!strcmp(st, "visible")) \ + set_state(PART:"elm.text.dropdown", "disabled_visible", 0.0); \ + else \ + set_state(PART:"elm.text.dropdown", "disabled", 0.0); \ + set_int(button_state, BUTTON_STATE_DISABLED); \ + } \ + } \ + program { name: "enable"; \ + signal: "elm,state,enabled"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "elm.image.dropdown"; \ + target: "disabler"; \ + after: "enable_text"; \ + } \ + program { name: "enable_text"; \ + script { \ + new st[31]; \ + new Float:vl; \ + get_state(PART:"elm.text.dropdown", st, 30, vl); \ + if (!strcmp(st, "disabled_visible")) \ + set_state(PART:"elm.text.dropdown", "visible", 0.0); \ + else \ + set_state(PART:"elm.text.dropdown", "default", 0.0); \ + set_int(button_state, BUTTON_STATE_ENABLED); \ + } \ + } \ + program { name: "expn_title_show"; \ + signal: "elm,action,dropdown,show"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "elm.image.dropdown"; \ + target: "focus_image"; \ + target: "elm.text.dropdown"; \ + target: "arrow_icon"; \ + target: "elm.text.title"; \ + after: enable; \ + } \ + program { name: "expn_title_hide"; \ + signal: "elm,action,dropdown,hide"; \ + source: "elm"; \ + action: STATE_SET "hide" 0.0; \ + target: "elm.image.dropdown"; \ + target: "focus_image"; \ + target: "elm.text.dropdown"; \ + target: "arrow_icon"; \ + target: "elm.text.title"; \ + after: disable; \ + } \ + program { name: "action_focus"; \ + signal: "elm,action,focus_highlight,show"; \ + source: "elm"; \ + action: STATE_SET "focused" 0.0; \ + target: "focus_image"; \ + } \ + program { name: "action_unfocus"; \ + signal: "elm,action,focus_highlight,hide"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "focus_image"; \ + } + + + +group { + name: "ge_naviframe_expanded_title"; + + image: GE_EDC_IMAGE_TITLE_BG COMP; + image: GE_EDC_IMAGE_POPUP_DROPDOWN_TITLE_BG COMP; + image: GE_EDC_IMAGE_POPUP_DROPDOWN_TITLE_BG_PRESS COMP; + image: GE_EDC_IMAGE_POPUP_DROPDOWN_TITLE_BG_FOCUS COMP; + image: GE_EDC_IMAGE_BUTTON_ICON_ARROW_PRESS COMP; + image: GE_EDC_IMAGE_BUTTON_ICON_ARROW COMP; + + script { + public button_state = BUTTON_STATE_ENABLED; + public landscape = 0; //Landscape mode status + } + + parts { + part { name: "base"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + visible: 0; + min: 1 NAVIFRAME_TITLE_H_INC; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 1.0; } + align: 0.0 0.5; + } + description { state: "landscape" 0.0; + inherit: "default" 0.0; + min: 1 NAVIFRAME_LANDSCAPE_TITLE_H_INC; + } + } + part { name: "title_bg"; + type: IMAGE; + scale: 1; + description { state: "default" 0.0; + min: 1 NAVIFRAME_TITLE_H_INC; + max: -1 NAVIFRAME_TITLE_H_INC; + align: 0.0 0.0; + fixed: 0 1; + rel1 { relative: 0.0 0.0; to: "base"; } + rel2 { relative: 1.0 0.0; to: "base"; } + image { + normal: GE_EDC_IMAGE_TITLE_BG; + border: NAVIFRAME_TITLE_BG_IMAGE_BORDER_INC; + border_scale: 1; + } + } + description { state: "landscape" 0.0; + inherit: "default" 0.0; + min: 1 NAVIFRAME_LANDSCAPE_TITLE_H_INC; + max: -1 NAVIFRAME_LANDSCAPE_TITLE_H_INC; + } + description { state: "hide" 0.0; + inherit: "default" 0.0; + min: 0 0; + max: 0 0; + fixed: 1 1; + } + } + part { name: "title_right_padding"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + min: NAVIFRAME_PADDING_INC; + fixed: 1 0; + align: 1.0 0.0; + rel1 { relative: 1.0 0.0; to: "divider2"; } + rel2 { relative: 1.0 1.0; to: "divider2"; } + visible: 0; + } + description { state: "title_left_btn_set" 0.0; + inherit: "default" 0.0; + rel1 { relative: 1.0 0.0; to: "divider1"; } + rel2 { relative: 1.0 1.0; to: "divider1"; } + } + } + part { name: "title_left_padding"; + type: RECT; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + min: 10 0; + fixed: 1 0; + align: 0.0 0.0; + rel1 { relative: 0.0 0.0; to: "title_bg"; } + rel2 { relative: 0.0 1.0; to: "title_bg"; } + visible: 0; + } + description { state: "icon" 0.0; + inherit: "default" 0.0; + min: NAVIFRAME_ICON_PADDING_INC; + } + } + part { name: "title_left_padding2"; + type: RECT; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + min: 26 0; + fixed: 1 0; + align: 0.0 0.0; + rel1 { relative: 0.0 0.0; to: "title_bg"; } + rel2 { relative: 0.0 1.0; to: "title_bg"; } + visible: 0; + } + description { state: "icon" 0.0; + inherit: "default" 0.0; + min: NAVIFRAME_ICON_PADDING_INC; + } + } + part { name: "title_text_bg"; + type: RECT; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + visible: 0; + min: 0 NAVIFRAME_TITLE_TEXT_BG_H_INC; + max: -1 NAVIFRAME_TITLE_TEXT_BG_H_INC; + fixed: 0 1; + rel1 { relative: 1.0 0.0; to_x: "title_left_padding"; to_y: "title_bg"; } + rel2 { relative: 0.0 1.0; to_x: "title_right_padding"; to_y: "title_bg"; } + } + } + part { name: "maintitle_text_bg"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + visible: 0; + rel1 { relative: 0.0 0.0; to: "title_text_bg"; } + rel2 { relative: 0.0 1.0; to_x: "title_right_padding"; to_y: "title_text_bg"; } + } + } + part { name: "maintitle_text_bg2"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + visible: 0; + rel1 { relative: 1.0 0.0; to_x: "title_left_padding2"; to_y: "title_text_bg"; } + rel2 { relative: 0.0 1.0; to_x: "title_right_padding"; to_y: "title_text_bg"; } + } + } + GE_TITLE_DROPDOWN + part { name: "elm.text.title"; + type: TEXT; + effect: FAR_SHADOW BOTTOM; + scale: 1; + description { state: "default" 0.0; + text { font: "Tizen:style=Bold"; + size: NAVIFRAME_TITLE_FONT_SIZE_INC; + size_range: NAVIFRAME_TITLE_FONT_MIN_SIZE_INC NAVIFRAME_TITLE_FONT_SIZE_INC; + fit: 1 0; + min: 0 0; + max: 1 0; + align: 0.0 0.5; + text_class: "tizen"; + } + color: NAVIFRAME_TITLE_TEXT_COLOR_INC; + color3: 0 0 0 255; + align: 0.0 0.5; + rel1.to: "maintitle_text_bg2"; + rel2.to: "maintitle_text_bg2"; + visible: 0; + } + description { state: "hide" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { name: "padding_before_text"; + type: RECT; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + align: 1.0 0.5; + rel1 { relative: 0.0 0.0; to: "title_text_bg"; } + rel2 { relative: 0.0 1.0; to: "title_text_bg"; } + fixed: 1 0; + min: NAVIFRAME_PADDING2_INC; + visible: 0; + } + } + part { name: "divider1"; + type: RECT; + description { state: "default" 0.0; + min: 0 0; + max: 0 -1; + fixed: 1 1; + color: NAVIFRAME_TITLE_BUTTON_DIVIDER_COLOR_INC; + rel1 { relative: 0.0 0.0; to: "title_left_btn"; } + rel2 { relative: 0.0 1.0; to: "title_left_btn"; } + align: 1.0 0.5; + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + min: 2 48; + max: 2 48; + } + } + part { name: "title_left_btn"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC; + fixed: 1 1; + align: 1.0 0.5; + rel1 { relative: 0.0 0.0; to: "divider2"; } + rel2 { relative: 0.0 1.0; to: "divider2"; } + } + description { state: "landscape" 0.0; + inherit: "default" 0.0; + max: NAVIFRAME_LANDSCAPE_TITLE_FUNC_BTN_SIZE_INC; + } + } + part { name: "divider2"; + type: RECT; + description { state: "default" 0.0; + min: 0 0; + max: 0 -1; + fixed: 1 1; + color: NAVIFRAME_TITLE_BUTTON_DIVIDER_COLOR_INC; + rel1 { relative: 0.0 0.0; to: "title_right_btn"; } + rel2 { relative: 0.0 1.0; to: "title_right_btn"; } + align: 1.0 0.5; + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + min: 2 48; + max: 2 48; + } + } + part { name: "elm.swallow.icon"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + max: NAVIFRAME_ICON_SIZE_INC; + fixed: 1 1; + rel1 { relative: 0.0 0.0; to: "padding_before_text"; } + rel2 { relative: 0.0 1.0; to: "padding_before_text"; } + aspect: 1.0 1.0; + aspect_preference: VERTICAL; + align: 1.0 0.5; + } + } + part { name: "title_right_btn"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC; + align: 1.0 0.5; + fixed: 1 1; + rel1 { relative: 1.0 0.0; to: "title_bg"; } + rel2 { relative: 1.0 1.0; to: "title_bg"; } + } + description { state: "landscape" 0.0; + inherit: "default" 0.0; + max: NAVIFRAME_LANDSCAPE_TITLE_FUNC_BTN_SIZE_INC; + } + } + } + programs { + program { name: "title_show"; + signal: "elm,state,title,show"; + source: "elm"; + script { + if (!get_int(landscape)) { + set_state(PART:"base", "default", 0.0); + set_state(PART:"title_bg", "default", 0.0); + } else { + set_state(PART:"base", "landscape", 0.0); + set_state(PART:"title_bg", "landscape", 0.0); + } + } + } + program { + name: "change_to_landscape"; + signal: "elm,state,landscape"; + source: "elm"; + script { + if (!get_int(landscape)) { + set_state(PART:"base", "landscape", 0.0); + set_state(PART:"title_text_bg", "landscape", 0.0); + set_state(PART:"title_left_btn", "landscape", 0.0); + set_state(PART:"title_right_btn", "landscape", 0.0); + + new st[31]; + new Float:vl; + get_state(PART:"title_bg", st, 30, vl); + if (!strcmp(st, "default")) + set_state(PART:"title_bg", "landscape", 0.0); + + set_int(landscape, 1); + } + } + } + program { + name: "change_to_portrait"; + signal: "elm,state,portrait"; + source: "elm"; + script { + if (get_int(landscape)) { + set_state(PART:"base", "default", 0.0); + set_state(PART:"title_text_bg", "default", 0.0); + set_state(PART:"title_left_btn", "default", 0.0); + set_state(PART:"title_right_btn", "default", 0.0); + + new st[31]; + new Float:vl; + get_state(PART:"title_bg", st, 30, vl); + if (!strcmp(st, "landscape")) + set_state(PART:"title_bg", "default", 0.0); + + set_int(landscape, 0); + } + } + } + program { name: "title_left_btn_show"; + signal: "elm,state,title_left_btn,show"; + source: "elm"; + script { + set_state(PART:"divider1", "visible", 0.0); + set_state(PART:"title_right_padding", "title_left_btn_set", 0.0); + } + } + program { name: "title_left_btn_hide"; + signal: "elm,state,title_left_btn,hide"; + source: "elm"; + script { + set_state(PART:"divider1", "default", 0.0); + set_state(PART:"title_right_padding", "default", 0.0); + } + } + program { name: "title_right_btn_show"; + signal: "elm,state,title_right_btn,show"; + source: "elm"; + action: STATE_SET "visible" 0.0; + target: "divider2"; + } + program { name: "title_right_btn_hide"; + signal: "elm,state,title_right_btn,hide"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "divider2"; + } + GL_TITLE_DROPDOWN_PGS + + } + } + +#undef BUTTON_STATE_ENABLED +#undef BUTTON_STATE_DISABLED + diff --git a/res/black_theme/edc/gallery-efl-gengrid-item-albums.edc b/res/black_theme/edc/gallery-efl-gengrid-item-albums.edc new file mode 100644 index 0000000..a013721 --- /dev/null +++ b/res/black_theme/edc/gallery-efl-gengrid-item-albums.edc @@ -0,0 +1,746 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +/* 720/2 */ +#define ALBUM_ITEM_W 360 +/* 1071/3 - 3 */ +#define ALBUM_ITEM_H 294 + +#define ALBUM_ICON_GAP_L (4) +#define ALBUM_ICON_GAP_R (4) +#define ALBUM_ICON_GAP_T (4) +#define ALBUM_ICON_GAP_B (4) + +#define ALBUM_ICON_W (ALBUM_ITEM_W-ALBUM_ICON_GAP_L-ALBUM_ICON_GAP_R) +#define ALBUM_ICON_H (ALBUM_ITEM_H-ALBUM_ICON_GAP_T-ALBUM_ICON_GAP_B) + +/* 7 + 31 + 31*/ +#define ALBUM_TEXT_BG_H 70 +#define ALBUM_TEXT_GAP_L 10 +#define ALBUM_TEXT_GAP_R 8 +#define ALBUM_TEXT_GAP_T 6 +#define ALBUM_TEXT_SNS_X 60 +#define ALBUM_TEXT_DATE_H 31 + +#define ALBUM_TYPE_GAP_T 8 + +#define ALBUM_NAME_COLOR_INC 255 255 255 255 +#define ALBUM_NAME_TEXT_SIZE 15 + +#define ALBUM_COUNT_COLOR_INC 255 255 255 255 +#define ALBUM_COUNT_SHADOW_COLOR_INC 0 0 0 127 + +#define ALBUM_COUNT_TEXT_SIZE 15 + +#define ALBUM_TYPE_ICON_W 48 +#define ALBUM_TYPE_ICON_H 48 + +#define ALBUM_PBAR_W 183 +#define ALBUM_PBAR_H 6 +#define ALBUM_PBAR_GAP_L 6 +#define ALBUM_PBAR_GAP_T 8 + +#define ALBUM_RENAME_BTN_W 64 +#define ALBUM_RENAME_BTN_H 64 + +#define ALBUM_CHECKBOX_W 64 +#define ALBUM_CHECKBOX_H 64 +#define ALBUM_CHECKBOX_GAP_L 6 +#define ALBUM_CHECKBOX_GAP_T 6 +#define SPLIT_ALBUM_NAME_TEXT_SIZE 10 + +#define PARTS_PADDING_LEFT(param_padding_name, param_padding_size ) \ + part { name: param_padding_name; \ + type: RECT; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: param_padding_size 0; \ + fixed: 1 0; \ + visible: 0; \ + rel2.relative: 0.0 1.0; \ + align: 0.0 0.0; \ + } \ + } + +#define PARTS_PADDING_RIGHT(param_padding_name, param_padding_size ) \ + part { name: param_padding_name; \ + type: RECT; \ + scale: 1; \ + description { state: "default" 0.0; \ + min: param_padding_size 0; \ + fixed: 1 0; \ + visible: 0; \ + rel1.relative: 1.0 0.0; \ + align: 1.0 0.0; \ + } \ + } +#define PARTS_PADDING_TOP(param_padding_name, param_padding_size ) \ + part { name: param_padding_name; \ + type: RECT; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: 0 param_padding_size; \ + fixed: 0 1; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + align: 0.0 0.0; \ + } \ + } + +#define GE_ALBUM_BG \ + part { \ + name: "bg"; \ + type: RECT; \ + description { \ + state: "default" 0.0; \ + color: 255 0 0 0; \ + rel1 { relative: 0.0 0.0; } \ + rel2 { relative: 1.0 1.0; } \ + } \ + } + +#define GE_ALBUM_BG_IMAGE \ + part { \ + name: "bg_image"; \ + type: IMAGE; \ + scale : 1; \ + description { \ + state: "default" 0.0; \ + visible: 0; \ + rel1 { relative: 0.0 0.0; to:"bg"; } \ + rel2 { relative: 1.0 1.0; to:"bg"; } \ + image.normal: GE_EDC_IMAGE_ALBUM_BG; \ + image.border: 10 10 10 10; \ + image.middle: 0; \ + } \ + } + +#define GE_ALBUM_ICON_BG \ + part { name: "icon_bg"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + scale : 1; \ + description { \ + state: "default" 0.0; \ + color: 230 230 230 255; \ + rel1 { relative: 0.0 0.0; to:"elm.icon.clipper"; } \ + rel2 { relative: 1.0 1.0; to:"elm.icon.clipper"; } \ + } \ + } + +#define GE_ALBUM_ICON \ + part { \ + name: "elm.swallow.icon"; \ + type: SWALLOW; \ + clip_to: "elm.icon.clipper"; \ + mouse_events: 1; \ + description { \ + state: "default" 0.0; \ + rel1.to: "elm.icon.clipper"; \ + rel2.to: "elm.icon.clipper"; \ + } \ + } \ + part { \ + name: "elm.icon.clipper"; \ + type: RECT; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: ALBUM_ICON_GAP_L/ALBUM_ITEM_W ALBUM_ICON_GAP_T/ALBUM_ITEM_H; to:"bg_image"; } \ + rel2 { relative: (ALBUM_ITEM_W-ALBUM_ICON_GAP_R)/ALBUM_ITEM_W (ALBUM_ITEM_H-ALBUM_ICON_GAP_B)/ALBUM_ITEM_H; to:"bg_image"; } \ + } \ + } + +#define GE_ALBUM_LABEL_BG \ + part { \ + name: "label_bg"; \ + type: RECT; \ + mouse_events: 1; \ + repeat_events: 1; \ + description { \ + state: "default" 0.0; \ + color: 0 0 0 153; \ + rel1 { relative: 0.0 (ALBUM_ITEM_H-ALBUM_TEXT_BG_H)/ALBUM_ITEM_H; to:"bg_image"; } \ + rel2 { relative: 1.0 1.0; to:"bg_image"; } \ + } \ + } + +#define GE_ALBUM_TYPE_ICON \ + part { \ + name: "elm.swallow.type_icon"; \ + type: SWALLOW; \ + mouse_events: 1; \ + repeat_events: 1; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: ALBUM_TEXT_GAP_L/ALBUM_ICON_W ALBUM_TYPE_GAP_T/ALBUM_TEXT_BG_H; to: "label_bg"; } \ + rel2 { relative: (ALBUM_TYPE_ICON_W+ALBUM_TEXT_GAP_L)/ALBUM_ICON_W (ALBUM_TYPE_GAP_T+ALBUM_TYPE_ICON_H)/ALBUM_TEXT_BG_H; to: "label_bg"; } \ + } \ + } + +#define GE_ALBUM_COUNT \ + part { \ + name: "elm.pad.right_count"; \ + type: TEXT; \ + mouse_events: 1; \ + repeat_events: 1; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + visible: 0; \ + rel1 { relative: 1.0 0.0; to: "label_bg"; } \ + rel2 { relative: 1.0 1.0; to: "label_bg"; } \ + min: 10 0; \ + fixed: 1 0; \ + align: 1.0 0.5; \ + } \ + } \ + part { \ + name: "elm.text.count"; \ + type: TEXT; \ + mouse_events: 1; \ + effect: FAR_SHADOW TOP; \ + repeat_events: 1; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + visible: 1; \ + rel1 { relative: 0.0 0.0; to: "elm.pad.right_count"; } \ + rel2 { relative: 0.0 1.0; to: "elm.pad.right_count"; } \ + min: 10 0; \ + fixed: 1 0; \ + align: 1.0 0.5; \ + color: ALBUM_COUNT_COLOR_INC; \ + color2: ALBUM_COUNT_SHADOW_COLOR_INC; \ + text { \ + font: "Tizen:style=Bold"; \ + text_class: "tizen"; \ + size: ALBUM_COUNT_TEXT_SIZE; \ + min: 1 0; \ + align: 1.0 0.5; \ + } \ + } \ + } + +#define GE_ALBUM_NAME \ + part { \ + name: "elm.text.name"; \ + type: TEXT; \ + mouse_events: 1; \ + effect: FAR_SHADOW TOP; \ + repeat_events: 1; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: 1.0 0.0; to_x: "elm.swallow.type_icon"; to_y: "label_bg"; } \ + rel2 { relative: 0.0 1.0; to: "elm.text.count"; } \ + color: ALBUM_NAME_COLOR_INC; \ + color2: ALBUM_COUNT_SHADOW_COLOR_INC; \ + align: 0.0 0.5; \ + text { \ + font: "Tizen:style=Bold"; \ + text_class: "tizen"; \ + size: ALBUM_NAME_TEXT_SIZE; \ + align: 0.0 0.5; \ + } \ + } \ + } + + +#define GE_ALBUM_BADGE \ + part { name: "padding.badge"; \ + type: RECT; \ + scale: 1; \ + mouse_events: 0; \ + description { state: "default" 0.0; \ + align: 1.0 0.0; \ + rel1 { \ + relative: 1.0 0.0; \ + } \ + rel2 { \ + relative: 1.0 0.03; \ + } \ + min: 10 10; \ + fixed: 1 1; \ + visible: 0; \ + } \ + description { state: "default" 0.10; \ + inherit: "default" 0.0; \ + min: 10 10; \ + } \ + description { state: "default" 0.06; \ + inherit: "default" 0.0; \ + min: 6 10; \ + } \ + description { state: "default" 0.04; \ + inherit: "default" 0.0; \ + min: 4 10; \ + } \ + } \ + part { name: "elm.image.badge"; \ + mouse_events: 0; \ + scale: 1; \ + description { state: "default" 0.0; \ + visible: 0; \ + min: 54 54; \ + fixed: 1 1; \ + rel1 { \ + to: "left.padding.text"; \ + relative: 0.0 0.0; \ + } \ + rel2 { \ + to: "right.padding.text"; \ + relative: 1.0 1.0; \ + } \ + image { \ + normal: GE_EDC_IMAGE_BADGE_BG; \ + border: 26 26 0 0; \ + border_scale: 1; \ + } \ + } \ + description { state: "visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } \ + part { name: "left.padding.text"; \ + type: RECT; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + visible: 0; \ + fixed: 1 1; \ + min: 12 54; \ + rel1 { \ + to: "elm.text.badge"; \ + relative: 0.0 0.0; \ + } \ + rel2 { \ + to: "elm.text.badge"; \ + relative: 0.0 1.0; \ + } \ + align: 1.0 0.0; \ + } \ + } \ + part { name: "right.padding.text"; \ + type: RECT; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + visible: 0; \ + fixed: 1 1; \ + min: 12 54; \ + rel1 { \ + to: "padding.badge"; \ + relative: 0.0 1.0; \ + } \ + rel2 { \ + to: "padding.badge"; \ + relative: 0.0 1.0; \ + } \ + align: 1.0 0.0; \ + } \ + } \ + part { name: "elm.text.badge"; \ + type: TEXT; \ + mouse_events: 0; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + visible: 0; \ + rel1 { \ + to: "right.padding.text"; \ + relative: 0.0 0.0; \ + } \ + rel2 { \ + to: "right.padding.text"; \ + relative: 0.0 1.0; \ + } \ + min: 30 0; \ + fixed: 1 0; \ + align: 1.0 0.5; \ + color: 250 250 250 255; \ + text { \ + font: "Tizen:style=Bold"; \ + size: 34; \ + min: 1 0; \ + text_class: "tizen"; \ + } \ + } \ + description { state: "visible" 0.0; \ + inherit: "default" 0.0; \ + visible: 0; \ + } \ + } + + +group { + name: "elm/gengrid/item/gallery_efl/albums_view/default"; + + data.item: "texts" "elm.text.name elm.text.date elm.text.count elm.text.badge"; + data.item: "contents" "elm.swallow.icon elm.swallow.type_icon ug_sd_icon"; + images { + image: GE_EDC_IMAGE_ALBUM_BG COMP; + image: GE_EDC_IMAGE_THUMBS_BG_FOCUS COMP; + image: GE_EDC_IMAGE_BADGE_BG COMP; + } + parts { + PARTS_PADDING_LEFT("padding.check.left", ALBUM_ICON_GAP_L) + PARTS_PADDING_LEFT("padding.check.right", ALBUM_ICON_GAP_L+ALBUM_CHECKBOX_W) + PARTS_PADDING_RIGHT("padding.rename.left", ALBUM_ICON_GAP_R+ALBUM_RENAME_BTN_W) + PARTS_PADDING_RIGHT("padding.rename.right", ALBUM_ICON_GAP_R) + PARTS_PADDING_TOP("padding.rename.top", ALBUM_ICON_GAP_T) + PARTS_PADDING_TOP("padding.rename.bottom", ALBUM_ICON_GAP_T+ALBUM_RENAME_BTN_H) + PARTS_PADDING_TOP("padding.check.top", ALBUM_CHECKBOX_GAP_T) + PARTS_PADDING_TOP("padding.check.bottom", ALBUM_CHECKBOX_GAP_T+ALBUM_CHECKBOX_H) + GE_ALBUM_BG + GE_GENGRID_FOCUS_BG + GE_ALBUM_BG_IMAGE + GE_ALBUM_ICON_BG + + GE_ALBUM_ICON + GE_ALBUM_LABEL_BG + GE_ALBUM_TYPE_ICON + GE_ALBUM_COUNT + GE_ALBUM_NAME + GE_ALBUM_BADGE + part { + name: "ug_sd_icon"; + type: SWALLOW; + description { + state: "default" 0.0; + rel1 { + relative: 0.80 0.55; + to: bg; + } + rel2 { + relative: 0.98 0.73; + to: bg; + } + color: 255 0 0 255; + } + } + } + programs { + GE_GENGRID_FOCUS("elm.swallow.icon") + GE_GENGRID_SOUND("elm.swallow.icon") + GE_GENGRID_PLAY_SOUND + program { name: "badge_show"; + signal: "elm,state,elm.text.badge,visible"; + source: "elm"; + action: STATE_SET "visible" 0.0; + target: "elm.text.badge"; + target: "elm.image.badge"; + } + program { name: "badge_hide"; + signal: "elm,state,elm.text.badge,hidden"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "elm.text.badge"; + target: "elm.image.badge"; + } + } +} + +group { + name: "elm/gengrid/item/gallery_efl/albums_split_view/default"; + + data.item: "texts" "elm.text.name elm.text.date elm.text.badge"; + data.item: "contents" "elm.swallow.icon elm.swallow.type_icon elm.swallow.name_layout ug_sd_icon"; + images { + image: GE_EDC_IMAGE_THUMBS_BG_FOCUS COMP; + image: GE_EDC_IMAGE_BADGE_BG COMP; + } + parts { + part { + name: "bg"; + type: RECT; + description { + state: "default" 0.0; + rel1.relative: 0 0; + rel2.relative: 1 1; + color: 0 0 0 0; + } + } + part { name: "padding.top"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + visible: 1; + min: 0 0; + max: 0 0; + fixed: 1 1; + align: 0.0 0.0; + } + description { + state: "show" 0.0; + inherit: "default" 0.0; + visible: 0; + min: 0 0; + max: 0 0; + fixed: 0 1; + rel2 { relative: 1.0 0.0;} + align: 0.0 0.0; + } + } + part { name: "focus_bg"; + type: IMAGE; + mouse_events: 1; + repeat_events: 1; + description { state: "default" 0.0; + visible: 0; + image.normal: GE_EDC_IMAGE_THUMBS_BG_FOCUS; + image.border: 13 13 13 13; + rel1 { relative: 0.0 0.0; to: "bg"; } + rel2 { relative: 1.0 270/330; to: "bg"; } + } + description { state: "enabled" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { + name: "elm.icon.clipper"; + type: RECT; + description { + state: "default" 0.0; + rel1 { relative: 0 0; offset: 4 4; to:"bg"; } + rel2 { relative: 1 270/330; offset: -4 -4; to:"bg"; } + } + } + part { + name: "elm.swallow.icon"; + type: SWALLOW; + clip_to: "elm.icon.clipper"; + mouse_events: 1; + description { + state: "default" 0.0; + rel1.to: "elm.icon.clipper"; + rel2.to: "elm.icon.clipper"; + } + } + part { + name: "ug_sd_icon"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + align: 0.5 0.5; + rel1 { relative: 0.78 0.75; to: "elm.swallow.icon"; } + rel2 { relative: 0.98 0.95; to: "elm.swallow.icon"; } + } + } + part { + name: "elm.text.name.rect"; + type: RECT; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.0 1.0; to: elm.swallow.icon; } + rel2 { relative: 1.0 1.27; to: elm.swallow.icon; } + color: 0 0 0 0; + align: 0.5 0.5; + } + } + part { + name: "elm.swallow.name_layout"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; to: elm.text.name.rect; } + rel2 { relative: 1.0 1.0; to: elm.text.name.rect; } + min: 0 30; + align: 0.5 0.5; + } + } + part { + name: "elm.swallow.type_icon"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + align: 0.5 0.5; + rel1 { relative: 0.78 0.75; to: "elm.swallow.icon"; } + rel2 { relative: 0.98 0.95; to: "elm.swallow.icon"; } + } + } + part { + name: "padding.badge"; + type: RECT; + scale: 1; + mouse_events: 0; + description { + state: "default" 0.0; + align: 1.0 0.0; + rel1 { + relative: 1.0 0.0; + } + rel2 { + relative: 1.0 0.03; + } + min: 6 2; + fixed: 1 1; + visible: 0; + } + description { + state: "default" 0.10; + inherit: "default" 0.0; + min: 10 10; + } + description { + state: "default" 0.06; + inherit: "default" 0.0; + min: 6 10; + } + description { + state: "default" 0.04; + inherit: "default" 0.0; + min: 4 10; + } + } + part { + name: "elm.image.badge"; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + min: 25 25; + fixed: 1 1; + rel1 { + to: "left.padding.text"; + relative: 0.0 0.0; + } + rel2 { + to: "right.padding.text"; + relative: 1.0 1.0; + } + image { + normal: GE_EDC_IMAGE_BADGE_BG; + border_scale: 1; + } + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { + name: "left.padding.text"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + fixed: 1 1; + min: 5 25; + rel1 { + to: "elm.text.badge"; + relative: 0.0 0.0; + } + rel2 { + to: "elm.text.badge"; + relative: 0.0 1.0; + } + align: 1.0 0.0; + } + } + part { + name: "right.padding.text"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + fixed: 1 1; + min: 5 25; + rel1 { + to: "padding.badge"; + relative: 0.0 1.0; + } + rel2 { + to: "padding.badge"; + relative: 0.0 1.0; + } + align: 1.0 0.0; + } + } + part { + name: "elm.text.badge"; + type: TEXT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + visible: 0; + rel1 { + to: "right.padding.text"; + relative: 0.0 0.0; + } + rel2 { + to: "right.padding.text"; + relative: 0.0 1.0; + } + min: 12 0; + fixed: 1 0; + align: 1.0 0.5; + color: 250 250 250 255; + text { + font: "Tizen:style=Bold"; + size: 12; + min: 1 0; + text_class: "tizen"; + } + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + } + programs { + GE_GENGRID_FOCUS("elm.swallow.icon") + GE_GENGRID_SOUND("elm.swallow.icon") + GE_GENGRID_PLAY_SOUND + program { name: "badge_show"; + signal: "elm,state,elm.text.badge,visible"; + source: "elm"; + action: STATE_SET "visible" 0.0; + target: "elm.text.badge"; + target: "elm.image.badge"; + } + program { name: "badge_hide"; + signal: "elm,state,elm.text.badge,hidden"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "elm.text.badge"; + target: "elm.image.badge"; + } + } +} + diff --git a/res/black_theme/edc/gallery-efl-gengrid-item-thumbview.edc b/res/black_theme/edc/gallery-efl-gengrid-item-thumbview.edc new file mode 100644 index 0000000..2f2af30 --- /dev/null +++ b/res/black_theme/edc/gallery-efl-gengrid-item-thumbview.edc @@ -0,0 +1,391 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#define THUMBNAILS_BG_COLOR 190 189 189 255 + +#define W 180 +#define H 126 +#define W2 240 +#define H2 168 +#define W3 360 +#define H3 252 +#define GAP_W 3 +#define GAP_H 3 +#define THUMB_CHECK_W 64 +#define THUMB_CHECK_H 64 +#define THUMB_CHECK_BORDER_L 1 +#define THUMB_CHECK_BORDER_T 3 +#define MODE_W 64 +#define MODE_H 64 + +#define BURST_W 16 +#define BURST_H 12 +#define BURST_PAD_R 4 +#define BURST_PAD_L 1 + +/* Favourites icon boundary size */ +#define FAVOR_ICON_W 30 +#define FAVOR_ICON_H 30 + +#define GE_GRID_PART_ICON \ + part { \ + name: "elm.swallow.icon"; \ + type: SWALLOW; \ + clip_to: "elm.icon.clipper"; \ + description { \ + state: "default" 0.0; \ + rel1.to: "elm.icon.clipper"; \ + rel2.to: "elm.icon.clipper"; \ + } \ + } \ + part { \ + name: "elm.icon.clipper"; \ + type: RECT; \ + description { \ + state: "default" 0.0; \ + rel1 { relative: GAP_W/W GAP_H/H;} \ + rel2 { relative: (W-GAP_W)/W (H-GAP_H)/H;} \ + } \ + } + +#define PARTS_PADDING_LEFT(param_padding_name, param_padding_size) \ + part { name: param_padding_name; \ + type: RECT; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: param_padding_size 0; \ + fixed: 1 0; \ + visible: 0; \ + rel2.relative: 0.9 0.0; \ + rel2.offset: -35 0; \ + align: 0.0 0.0; \ + } \ + } + +#define PARTS_PADDING_TOP(param_padding_name, param_padding_size) \ + part { name: param_padding_name; \ + type: RECT; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: 0 param_padding_size; \ + fixed: 0 1; \ + visible: 0; \ + rel2.relative: 1.0 0.0; \ + align: 0.0 0.0; \ + } \ + } + +#define PARTS_PADDING_BOT(param_padding_name, param_padding_size) \ + part { name: param_padding_name; \ + type: RECT; \ + scale: 1; \ + description { \ + state: "default" 0.0; \ + min: 0 param_padding_size; \ + fixed: 0 1; \ + visible: 0; \ + rel1.relative: 0.0 1.0; \ + align: 0.0 1.0; \ + } \ + } + +group { + name: "elm/gengrid/item/gallery_efl/thumbnail_view/default"; + + data.item: "contents" "elm.swallow.icon elm.swallow.mode elm.swallow.end elm_image_open_icon_swallow elm_image_open_icon_swallow_blocker"; + images { + image: GE_EDC_IMAGE_THUMBS_BG_FOCUS COMP; + image: GE_EDC_IMAGE_DELETE_SHOW_IMAGE_BG COMP; + image: GE_EDC_DELETE_SHOW_IMAGE COMP; + } + parts { + PARTS_PADDING_LEFT("padding.end.left", THUMB_CHECK_BORDER_L); + PARTS_PADDING_LEFT("padding.end.right", THUMB_CHECK_BORDER_L+THUMB_CHECK_W); + PARTS_PADDING_TOP("padding.end.top", THUMB_CHECK_BORDER_T); + PARTS_PADDING_TOP("padding.end.bottom", THUMB_CHECK_BORDER_T+THUMB_CHECK_H); + PARTS_PADDING_LEFT("padding.end.left2", GAP_W); + PARTS_PADDING_LEFT("padding.end.right2", GAP_W+MODE_W); + PARTS_PADDING_BOT("padding.end.top2", GAP_H+MODE_H); + PARTS_PADDING_BOT("padding.end.bottom2", GAP_H); + part { + name: "bg"; + type: RECT; + description { + state: "default" 0.0; + color: 0 0 0 0; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 1.0;} + } + } + part { + name: "icon_bg"; + type: RECT; + scale : 1; + description { + state: "default" 0.0; + align: 0.5 0.5; + visible: 0; + color: 0 0 0 0; + rel1 { relative: 0.0 0.0;to:"bg"; } + rel2 { relative: 1.0 1.0;to:"bg"; } + } + } + part { + name: "icon_bg_color"; + type: RECT; + scale : 1; + description { + state: "default" 0.0; + align: 0.5 0.5; + visible: 1; + rel1.to : "elm.swallow.icon"; + rel1.offset : 2 2; + rel2.to : "elm.swallow.icon"; + color: 230 230 230 255; + } + } + + part { + name: "elm.swallow.icon"; + type: SWALLOW; + mouse_events: 1; + description { + state: "default" 0.0; + color: 0 0 0 0; + rel1 { relative: 0.0 0.0; to: "icon_bg"; } + rel2 { relative: 1.0 1.0; to: "icon_bg"; } + } + } + part { + name: "elm.swallow.mode"; + type: SWALLOW; + description { + state: "default" 0.0; + rel1 {relative: 1.0 0.0; to_x: "padding.end.left2"; to_y: "padding.end.top2"; } + rel2 {relative: 1.0 0.0; to_x: "padding.end.right2"; to_y: "padding.end.bottom2"; } + } + } + GE_GENGRID_FOCUS_BG + part { + name: "elm.swallow.end"; + type: SWALLOW; + description { + state: "default" 0.0; + align: 0 0; + min: 10 10; + max: 10 10; + rel1 {relative: 1.0 1.0; to_x: "padding.end.left"; to_y: "padding.end.top"; } + rel2 {relative: 1.0 1.0; to_x: "padding.end.right"; to_y: "padding.end.bottom"; } + } + } + part { + name: "elm_image_open_icon_rect"; + type: RECT; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + visible: 1; + rel1 {relative: 0 1; offset: 8 -42; to: bg; } + rel2 {relative: 0 1; offset: 42 -8; to: bg; } + min: 36 36; + max: 36 36; + color: 0 0 0 0; + } + } + part { + name: "elm_image_open_icon_bg"; + type: IMAGE; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + visible: 0; + rel1 {relative: 0 0; to: elm_image_open_icon_rect; } + rel2 {relative: 1 1; to: elm_image_open_icon_rect; } + image.normal: GE_EDC_IMAGE_DELETE_SHOW_IMAGE_BG; + color : 0 0 0 100; + } + description { + state: "show" 0.0; + visible: 1; + rel1 {relative: 0 0; to: elm_image_open_icon_rect; } + rel2 {relative: 1 1; to: elm_image_open_icon_rect; } + image.normal: GE_EDC_IMAGE_DELETE_SHOW_IMAGE_BG; + color : 0 0 0 100; + } + } + part { + name: "elm_image_open_icon_image"; + type: IMAGE; + mouse_events: 1; + repeat_events: 1; + description { + state: "default" 0.0; + visible: 0; + rel1 {relative: 0 0; to: elm_image_open_icon_rect; } + rel2 {relative: 1 1; to: elm_image_open_icon_rect; } + image.normal: GE_EDC_DELETE_SHOW_IMAGE; + } + description { + state: "show" 0.0; + visible: 1; + rel1 {relative: 0 0; to: elm_image_open_icon_rect; } + rel2 {relative: 1 1; to: elm_image_open_icon_rect; } + image.normal: GE_EDC_DELETE_SHOW_IMAGE; + } + } + part { + name: "elm_image_open_icon_swallow_blocker"; + type: SWALLOW; + mouse_events: 1; + repeat_events : 0; + description { + state: "default" 0.0; + visible: 1; + rel1 {relative: 0 0.55; to: bg; } + rel2 {relative: 0.45 1.0; to: bg; } + } + } + part { + name: "elm_image_open_icon_swallow"; + type: SWALLOW; + mouse_events: 1; + repeat_events : 0; + description { + state: "default" 0.0; + visible: 1; + rel1 {relative: 0 0.55; to: bg; } + rel2 {relative: 0.45 1.0; to: bg; } + } + } + } + + programs { + GE_GENGRID_FOCUS("elm.swallow.icon") + GE_GENGRID_SOUND("elm.swallow.end") + GE_GENGRID_SOUND("elm.swallow.icon") + GE_GENGRID_PLAY_SOUND + program { + name: "show_image"; + signal: "show_image_icon"; + source: "elm_image_open_icon_rect"; + action: STATE_SET "show" 0.0; + target: "elm_image_open_icon_bg"; + target: "elm_image_open_icon_image"; + } + } +} + +group +{ + name: "elm/gengrid/photoframe/default_layout"; + + parts { + part { + name: "bg"; + type: RECT; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 1.0;} + color: 0 0 0 0; + } + } + GE_GRID_PART_ICON + } +} + +group +{ + name: "elm/gengrid/photoframe/default_layout_video"; + images { + image: GE_EDC_IMAGE_BUTTON_VIDEO_PLAY COMP; + } + + parts { + part { + name: "bg"; + type: RECT; + mouse_events: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 1.0;} + color: 0 0 0 0; + } + } + GE_GRID_PART_ICON + part { + name: "elm.swallow.videoicon"; + type: IMAGE; + mouse_events: 0; + repeat_events: 0; + scale: 1; + description { + state: "default" 0.0; + rel1 { + relative: 0.5 0.45; + to: bg; + } + rel2 { + relative: 0.5 0.45; + to: bg; + } + min: 36 36; + max: 36 36; + align: 0.5 0.5; + image.normal: GE_EDC_IMAGE_BUTTON_VIDEO_PLAY; + } + } + part { + name: "elm.text.bg"; + type: RECT; + mouse_events: 0; + scale : 1; + description { + state: "default" 0.0; + color: 0 0 0 130; + align: 0.0 1.0; + rel1 { relative: 0 1; offset: 0 -40; to: "elm.swallow.icon"; } + rel2 { relative: 1 1; to: "elm.swallow.icon"; } + } + } + part { + name: "elm.text"; + type: TEXT; + mouse_events: 1; + repeat_events: 1; + scale: 1; + description { + state: "default" 0.0; + align: 0.0 1.0; + rel1 { relative: 0.0 0.0; to: "elm.text.bg"; } + rel2 { relative: 1.0 1.0; to: "elm.text.bg"; } + color: 255 255 255 255; + text { + font: "Tizen:style=Bold"; + text_class: "tizen"; + size: 13; + align: 0.0 0.5; + } + } + } + } +} diff --git a/res/black_theme/edc/gallery-efl-gengrid.edc b/res/black_theme/edc/gallery-efl-gengrid.edc new file mode 100644 index 0000000..1db4d31 --- /dev/null +++ b/res/black_theme/edc/gallery-efl-gengrid.edc @@ -0,0 +1,751 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +//////////Copied from scroller.edc////////////////////// + +#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_IMAGE "00_scroll_bar.png" +#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_IMAGE "00_scroll_bar.png" +#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_IMAGE_BORDER 5 10 5 10 +#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_IMAGE_BORDER 5 10 5 10 +#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_MIN_SIZE_INC 16 238 +#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_MAX_SIZE_INC 16 99999 +#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_MIN_SIZE_INC 208 16 +#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_MAX_SIZE_INC 99999 16 +#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_PADDING_SIZE 6 +#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_PADDING_SIZE 6 + +sounds { + sample { + name: "touch_sound" RAW; + source: GE_EDC_SOUND_TOUCH_30MS; + } +} + +#define GE_GENGRID_SOUND(src) \ + program { name: src"mouse_clicked"; \ + signal: "mouse,clicked,1"; \ + source: src; \ + transition: DECELERATE 0.2; \ + after: "touch_snd"; \ + } + +#define GE_GENGRID_PLAY_SOUND \ + program { name: "touch_snd"; \ + action: RUN_PLUGIN "touch_sound_plugin"; \ + } + +#define GE_GENGRID_FOCUS_BG \ + part { name: "focus_bg"; \ + type: IMAGE; \ + mouse_events: 1; \ + repeat_events: 1; \ + description { state: "default" 0.0; \ + visible: 0; \ + image.normal: GE_EDC_IMAGE_THUMBS_BG_FOCUS; \ + image.border: 13 13 13 13; \ + } \ + description { state: "enabled" 0.0; \ + inherit: "default" 0.0; \ + visible: 1; \ + } \ + } + +#define GE_GENGRID_FOCUS(src) \ + program { \ + name: "go_mouse_down_"src; \ + signal: "mouse,down,1"; \ + source: src; \ + action: STATE_SET "enabled" 0.0; \ + target: "focus_bg"; \ + transition: ACCELERATE 0.2; \ + } \ + program { \ + name: "go_mouse_up_"src; \ + signal: "mouse,up,1"; \ + source: src; \ + action: STATE_SET "default" 0.0; \ + target: "focus_bg"; \ + transition: DECELERATE 0.2; \ + } \ + program { name: "focus_in"; \ + signal: "elm,state,focused"; \ + source: "elm"; \ + action: STATE_SET "enabled" 0.0; \ + target: "focus_bg"; \ + } \ + program { name: "focus_out"; \ + signal: "elm,state,unfocused"; \ + source: "elm"; \ + action: STATE_SET "default" 0.0; \ + target: "focus_bg"; \ + } + + +/* + * vim:ts=3 +*/ +group { name: "elm/scroller/base/gallery_efl"; + + data { + item: "focus_highlight" "on"; + } + + script { + public sbvis_v, sbvis_h, sbalways_v, sbalways_h, sbvis_timer; + public sh_v, sh_h, sh_timer, edge_timer; + public timer0(val) { + new v; + v = get_int(sbvis_v); + if (v) { + v = get_int(sbalways_v); + if (!v) { + emit("do-hide-vbar", ""); + set_int(sbvis_v, 0); + } + } + v = get_int(sbvis_h); + if (v) { + v = get_int(sbalways_h); + if (!v) { + emit("do-hide-hbar", ""); + set_int(sbvis_h, 0); + } + } + set_int(sbvis_timer, 0); + return 0; + } + public timer1(val) { + emit("do-hide-vshadow", ""); + emit("do-hide-hshadow", ""); + set_int(sh_timer, 0); + return 0; + } + public timer2(val) { + emit("do-hide-vshadow", ""); + emit("do-hide-hshadow", ""); + set_int(edge_timer, 0); + return 0; + } + } + images { + image: SCROLLER_DEFAULT_SCROLLBAR_VBAR_IMAGE COMP; + image: SCROLLER_DEFAULT_SCROLLBAR_HBAR_IMAGE COMP; + } + parts { + part { name: "bg"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + rel1.offset: 0 0; + rel2.offset: -1 -1; + color: 255 255 255 0; + } + } + part { name: "clipper"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + rel1.to: "bg"; + rel2.to: "bg"; + rel1.offset: 0 0; + rel2.offset: -1 -1; + } + } + part { name: "elm.swallow.content"; + clip_to: "clipper"; + type: SWALLOW; + scale: 1; + description { state: "default" 0.0; + rel1.to: "bg"; + rel2.to: "bg"; + rel1.offset: 0 0; + rel2.offset: -1 -1; + } + } + part { name: "sb_vbar_clip_master"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + part { name: "sb_vbar_clip"; + clip_to: "sb_vbar_clip_master"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + part { name: "sb_vbar"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + visible: 0; + min: SCROLLER_DEFAULT_SCROLLBAR_VBAR_MIN_SIZE_INC; + align: 1.0 0.0; + rel1 { + relative: 1.0 0.0; + offset: 0 0; + to_y: "elm.swallow.content"; + to_x: "elm.swallow.content"; + } + rel2 { + relative: 1.0 1.0; + offset: -1 1; + to_y: "elm.swallow.content"; + to_x: "elm.swallow.content"; + } + } + } + part { name: "elm.dragable.vbar"; + clip_to: "sb_vbar_clip"; + mouse_events: 0; + scale: 1; + dragable { + x: 0 0 0; + y: 1 1 0; + confine: "sb_vbar"; + } + description { state: "default" 0.0; + fixed: 1 1; + min: SCROLLER_DEFAULT_SCROLLBAR_VBAR_MIN_SIZE_INC; + max: SCROLLER_DEFAULT_SCROLLBAR_VBAR_MAX_SIZE_INC; + rel1 { + relative: 0.5 0.5; + offset: 0 0; + to: "sb_vbar"; + } + rel2 { + relative: 0.5 0.5; + offset: 0 0; + to: "sb_vbar"; + } + image { + normal: SCROLLER_DEFAULT_SCROLLBAR_VBAR_IMAGE; + border: SCROLLER_DEFAULT_SCROLLBAR_VBAR_IMAGE_BORDER; + border_scale: 1; + middle: DEFAULT; + } + } + } + part { name: "sb_hbar_clip_master"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + part { name: "sb_hbar_clip"; + clip_to: "sb_hbar_clip_master"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 255 255 255 0; + } + } + part { name: "sb_hbar"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + visible: 0; + min: SCROLLER_DEFAULT_SCROLLBAR_HBAR_MIN_SIZE_INC; + align: 0.0 1.0; + rel1 { + relative: 0.0 1.0; + offset: 0 0; + to_x: "elm.swallow.content"; + to_y: "elm.swallow.content"; + } + rel2 { + relative: 1.0 1.0; + offset: -1 -1; + to_x: "elm.swallow.content"; + to_y: "elm.swallow.content"; + } + } + } + part { name: "elm.dragable.hbar"; + clip_to: "sb_hbar_clip"; + mouse_events: 0; + scale: 1; + dragable { + x: 1 1 0; + y: 0 0 0; + confine: "sb_hbar"; + } + description { state: "default" 0.0; + fixed: 1 1; + min: SCROLLER_DEFAULT_SCROLLBAR_HBAR_MIN_SIZE_INC; + max: SCROLLER_DEFAULT_SCROLLBAR_HBAR_MAX_SIZE_INC; + rel1 { + relative: 0.5 0.5; + offset: 0 0; + to: "sb_hbar"; + } + rel2 { + relative: 0.5 0.5; + offset: 0 0; + to: "sb_hbar"; + } + image { + normal: SCROLLER_DEFAULT_SCROLLBAR_HBAR_IMAGE; + border: SCROLLER_DEFAULT_SCROLLBAR_HBAR_IMAGE_BORDER; + border_scale: 1; + middle: DEFAULT; + } + } + } + part { name: "disabler"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + rel1.to: "clipper"; + rel2.to: "clipper"; + color: 0 0 0 0; + visible: 0; + } + description { state: "disabled" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 128 128 128 128; + } + } + } + programs { + program { name: "load"; + signal: "load"; + source: ""; + script { + set_state(PART:"sb_hbar_clip", "hidden", 0.0); + set_state(PART:"sb_vbar_clip", "hidden", 0.0); + set_int(sbvis_h, 0); + set_int(sbvis_v, 0); + set_int(sbalways_v, 0); + set_int(sbalways_h, 0); + set_int(sbvis_timer, 0); + } + } + + program { name: "vbar_show"; + signal: "elm,action,show,vbar"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "sb_vbar_clip_master"; + } + program { name: "vbar_hide"; + signal: "elm,action,hide,vbar"; + source: "elm"; + action: STATE_SET "hidden" 0.0; + target: "sb_vbar_clip_master"; + } + program { name: "vbar_show_always"; + signal: "elm,action,show_always,vbar"; + source: "elm"; + script { + new v; + v = get_int(sbvis_v); + v |= get_int(sbalways_v); + if (!v) { + set_int(sbalways_v, 1); + emit("do-show-vbar", ""); + set_int(sbvis_v, 1); + } + } + } + program { name: "vbar_show_notalways"; + signal: "elm,action,show_notalways,vbar"; + source: "elm"; + script { + new v; + v = get_int(sbalways_v); + if (v) { + set_int(sbalways_v, 0); + v = get_int(sbvis_v); + if (!v) { + emit("do-hide-vbar", ""); + set_int(sbvis_v, 0); + } + } + } + } + program { name: "sb_vbar_show"; + signal: "do-show-vbar"; + source: ""; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.5; + target: "sb_vbar_clip"; + } + program { name: "sb_vbar_hide"; + signal: "do-hide-vbar"; + source: ""; + action: STATE_SET "hidden" 0.0; + transition: LINEAR 0.5; + target: "sb_vbar_clip"; + } + + program { name: "hbar_show"; + signal: "elm,action,show,hbar"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "sb_hbar_clip_master"; + } + program { name: "hbar_hide"; + signal: "elm,action,hide,hbar"; + source: "elm"; + action: STATE_SET "hidden" 0.0; + target: "sb_hbar_clip_master"; + } + program { name: "hbar_show_always"; + signal: "elm,action,show_always,hbar"; + source: "elm"; + script { + new v; + v = get_int(sbvis_h); + v |= get_int(sbalways_h); + if (!v) { + set_int(sbalways_h, 1); + emit("do-show-hbar", ""); + set_int(sbvis_h, 1); + } + } + } + program { name: "hbar_show_notalways"; + signal: "elm,action,show_notalways,hbar"; + source: "elm"; + script { + new v; + v = get_int(sbalways_h); + if (v) { + set_int(sbalways_h, 0); + v = get_int(sbvis_h); + if (!v) { + emit("do-hide-hbar", ""); + set_int(sbvis_h, 0); + } + } + } + } + program { name: "sb_hbar_show"; + signal: "do-show-hbar"; + source: ""; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.5; + target: "sb_hbar_clip"; + } + program { name: "sb_hbar_hide"; + signal: "do-hide-hbar"; + source: ""; + action: STATE_SET "hidden" 0.0; + transition: LINEAR 0.5; + target: "sb_hbar_clip"; + } + + program { name: "scroll"; + signal: "elm,action,scroll"; + source: "elm"; + script { + new v; + v = get_int(sbvis_v); + v |= get_int(sbalways_v); + if (!v) { + emit("do-show-vbar", ""); + set_int(sbvis_v, 1); + } + v = get_int(sbvis_h); + v |= get_int(sbalways_h); + if (!v) { + emit("do-show-hbar", ""); + set_int(sbvis_h, 1); + } + v = get_int(sbvis_timer); + if (v > 0) cancel_timer(v); + v = timer(1.0, "timer0", 0); + set_int(sbvis_timer, v); + } + } + program { name: "disable"; + signal: "elm,state,disabled"; + source: "elm"; + action: STATE_SET "disabled" 0.0; + target: "disabler"; + } + program { name: "enable"; + signal: "elm,state,enabled"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "disabler"; + } + } +} + +group { name: "elm/gengrid/base/gallery_efl"; + inherit: "elm/scroller/base/gallery_efl"; + + images { + //image: GE_EDC_IMAGE_OS_TOP COMP; + //image: GE_EDC_IMAGE_OS_BOTTOM COMP; + image: GE_EDC_IMAGE_OS_LEFT COMP; + image: GE_EDC_IMAGE_OS_RIGHT COMP; + } + + parts { + part { name: "shadow_clip"; + type: RECT; + mouse_events: 0; + scale: 1; + description { state: "default" 0.0; + } + description { state: "hidden" 0.0; + visible: 0; + color: 0 0 0 0; + } + } + /*part { name: "shadow_top"; + clip_to: "shadow_clip"; + type: IMAGE; + scale: 1; + description { state: "default" 0.0; + min: 0 30; + fixed: 1 1; + align: 0.5 0.0; + color: 0 0 0 80; + rel1.relative: 0.0 0.0; + rel2.relative: 1.0 0.0; + rel1.to: "elm.swallow.content"; + rel2.to: "elm.swallow.content"; + image.normal: GE_EDC_IMAGE_OS_TOP; + } + description { state: "edge" 0.0; + inherit: "default" 0.0; + color: 0 0 0 255; + } + } + part { name: "shadow_bottom"; + clip_to: "shadow_clip"; + type: IMAGE; + scale: 1; + description { state: "default" 0.0; + min: 0 30; + fixed: 1 1; + align: 0.5 1.0; + color: 0 0 0 80; + rel1.relative: 0.0 1.0; + rel2.relative: 1.0 1.0; + rel1.to: "elm.swallow.content"; + rel2.to: "elm.swallow.content"; + image.normal: GE_EDC_IMAGE_OS_BOTTOM; + } + description { state: "edge" 0.0; + inherit: "default" 0.0; + color: 0 0 0 255; + } + }*/ + part { name: "shadow_left"; + clip_to: "shadow_clip"; + type: IMAGE; + scale: 1; + description { state: "default" 0.0; + min: 30 0; + fixed: 1 1; + align: 0.0 0.5; + color: 0 0 0 80; + rel1.relative: 0.0 0.0; + rel2.relative: 0.0 1.0; + rel1.to: "elm.swallow.content"; + rel2.to: "elm.swallow.content"; + image.normal: GE_EDC_IMAGE_OS_LEFT; + } + description { state: "edge" 0.0; + inherit: "default" 0.0; + color: 0 0 0 255; + } + } + part { name: "shadow_right"; + clip_to: "shadow_clip"; + type: IMAGE; + scale: 1; + description { state: "default" 0.0; + min: 30 0; + fixed: 1 1; + align: 1.0 0.5; + color: 0 0 0 80; + rel1.relative: 1.0 0.0; + rel2.relative: 1.0 1.0; + rel1.to: "elm.swallow.content"; + rel2.to: "elm.swallow.content"; + image.normal: GE_EDC_IMAGE_OS_RIGHT; + } + description { state: "edge" 0.0; + inherit: "default" 0.0; + color: 0 0 0 255; + } + } + } + programs { + program { name: "load"; + script { + set_state(PART:"sb_hbar_clip", "hidden", 0.0); + set_state(PART:"sb_vbar_clip", "hidden", 0.0); + set_state(PART:"shadow_clip", "hidden", 0.0); + set_int(sbvis_h, 0); + set_int(sbvis_v, 0); + set_int(sbalways_v, 0); + set_int(sbalways_h, 0); + set_int(sbvis_timer, 0); + set_int(sh_v, 0); + set_int(sh_timer, 0); + set_int(edge_timer, 0); + } + } + program { name: "vshadow_show"; + signal: "do-show-vshadow"; + source: ""; + action: STATE_SET "default" 0.0; + transition: LINEAR 0.5; + target: "shadow_clip"; + } + program { name: "vshadow_hide"; + signal: "do-hide-vshadow"; + source: ""; + action: STATE_SET "hidden" 0.0; + transition: LINEAR 0.5; + target: "shadow_clip"; + } + program { name: "scroll"; + signal: "elm,action,scroll"; + source: "elm"; + script { + new v; + v = get_int(sbvis_v); + v |= get_int(sbalways_v); + if (!v) { + emit("do-show-vbar", ""); + set_int(sbvis_v, 1); + } + v = get_int(sbvis_h); + v |= get_int(sbalways_h); + if (!v) { + emit("do-show-hbar", ""); + set_int(sbvis_h, 1); + } + v = get_int(sbvis_timer); + if (v > 0) cancel_timer(v); + v = timer(1, "timer0", 0); + set_int(sbvis_timer, v); + + v = get_int(edge_timer); + if (!v) { + //set_state(PART:"shadow_top", "default", 0.0); + //set_state(PART:"shadow_bottom", "default", 0.0); + set_state(PART:"shadow_left", "default", 0.0); + set_state(PART:"shadow_right", "default", 0.0); + emit("do-show-vshadow", ""); + v = get_int(sh_timer); + if (v > 0) cancel_timer(v); + v = timer(0.2, "timer1", 0); + set_int(sh_timer, v); + } + } + } + /*program { name: "edge_top"; + signal: "elm,edge,top"; + source: "elm"; + after: "edge"; + } + program { name: "edge_bottom"; + signal: "elm,edge,bottom"; + source: "elm"; + after: "edge"; + }*/ + program { name: "edge_left"; + signal: "elm,edge,left"; + source: "elm"; + after: "edge"; + } + program { name: "edge_right"; + signal: "elm,edge,right"; + source: "elm"; + after: "edge"; + } + program { name: "edge"; + script { + new v; + v = get_int(sh_timer); + if (v > 0) cancel_timer(v); + //set_state(PART:"shadow_top", "edge", 0.0); + //set_state(PART:"shadow_bottom", "edge", 0.0); + set_state(PART:"shadow_left", "edge", 0.0); + set_state(PART:"shadow_right", "edge", 0.0); + v = get_int(edge_timer); + if (!v) { + emit("do-show-vshadow", ""); + } + if (v > 0) cancel_timer(v); + v = timer(0.2, "timer2", 0); + set_int(edge_timer, v); + } + } + program { name: "show"; + signal: "show"; + source: ""; + script { + new v; + emit("do-show-vbar", ""); + set_int(sbvis_v, 1); + v = get_int(sbalways_v); + if (!v) { + v = get_int(sbvis_timer); + if (v > 0) cancel_timer(v); + v = timer(1.0, "timer0", 0); + set_int(sbvis_timer, v); + } + emit("do-show-hbar", ""); + set_int(sbvis_h, 1); + v = get_int(sbalways_h); + if (!v) { + v = get_int(sbvis_timer); + if (v > 0) cancel_timer(v); + v = timer(1.0, "timer0", 0); + set_int(sbvis_timer, v); + } + } + } + } +} + diff --git a/res/black_theme/edc/gallery-efl-nocontents.edc b/res/black_theme/edc/gallery-efl-nocontents.edc new file mode 100644 index 0000000..cb7c050 --- /dev/null +++ b/res/black_theme/edc/gallery-efl-nocontents.edc @@ -0,0 +1,90 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#define NOCONTENT_TEXT_BLOCK_TEXT_SIZE_INC 32 +#define NOCONTENT_TEXT_BLOCK_STYLE_COLOR_INC 173 170 165 255 + + group { + name: "elm/layout/nocontents/gallery_efl"; + styles{ + style { name: "nocontent_style"; + base: "font=Tizen:style=Roman text_class=tizen font_size="NOCONTENT_TEXT_BLOCK_TEXT_SIZE_INC" align=center color=#ffffff wrap=word"; + tag: "br" "\n"; + tag: "hilight" "+ font=Tizen:style=Bold text_class=tizen"; + tag: "b" "+ font=Tizen:style=Bold text_class=tizen"; + tag: "tab" "\t"; + } + } + images { + image: GE_EDC_IMAGE_NOCONTENTS_PIC COMP; + } + parts { + part { name: "bg"; + scale: 1; + type: RECT; + description { state: "default" 0.0; + visible: 1; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 1.0;} + color: 0 0 0 0; + } + } + part { name: "nocontents.image"; + description { state: "default" 0.0; + visible: 1; + align: 0.5 0.0; + rel1 { relative: 203/720 296/1016; to: "bg";} + rel2 { relative: (203+314)/720 (296+310)/1016; to: "bg";} + image { + normal: GE_EDC_IMAGE_NOCONTENTS_PIC; + border: 1 1 1 1; + border_scale: 1; + } + aspect: 1.0 1.0; + aspect_preference: BOTH; + } + } + part { name: "middle.padding"; + scale: 1; + type: RECT; + description { state: "default" 0.0; + visible: 0; + align: 0.5 0.0; + rel1 { relative: 0.0 1.0; to_y: "nocontents.image";} + rel2 { relative: 1.0 (296+310+54)/1016; to: "bg";} + } + } + part { name: "elm.text"; + type: TEXTBLOCK; + description { state: "default" 0.0; + fixed: 0 1; + align: 0.5 0.0; + visible: 1; + rel1 { relative: 0.0 1.0; to_x: "bg"; to_y: "middle.padding";} + rel2 { relative: 1.0 1.0; to: "bg";} + color: NOCONTENT_TEXT_BLOCK_STYLE_COLOR_INC; + text { + style: "nocontent_style"; + align: 0.5 0.5; + min: 0 0; + max: 0 1; + } + } + } + } + } + diff --git a/res/black_theme/edc/gallery-efl.edc b/res/black_theme/edc/gallery-efl.edc new file mode 100644 index 0000000..7bfbfb4 --- /dev/null +++ b/res/black_theme/edc/gallery-efl.edc @@ -0,0 +1,534 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#define FONT_ROM "HelveticaNeue:style=Roman" +#define FONT_MED "HelveticaNeue:style=Medium" +#define SELINFO_H 48 +#define GALLERY_EDC_COLOR_BG 0 0 0 255 +#define LAYOUT_WIDTH 500 +#define LAYOUT_HEIGHT 300 +#define CENTER_PADDING_WIDTH 5 +#define YOUR_THEME_BASE_SCALE 1 // 2.6 is default base scale for Tizen 2.4 HD. + +#include "gallery-efl-edc-res.h" + +externals { + external: "elm"; + external: "feedback"; +} + +collections { + + plugins { + plugin { + name: "touch_sound_plugin"; + source: "feedback"; + param: "FEEDBACK_TYPE_SOUND FEEDBACK_PATTERN_TAP"; // FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_TOUCH_TAP + /* 2014.06.11 updated from libsvi(feedback) + Above plugin will run below external function: + int feedback_play_type(feedback_type_e type, feedback_pattern_e pattern); + param1: feedback_type_e + FEEDBACK_TYPE_NONE = 0, + FEEDBACK_TYPE_SOUND = 1, + FEEDBACK_TYPE_VIBRATION, + FEEDBACK_TYPE_LED, + FEEDBACK_TYPE_END + + * param2 enumeration: + FEEDBACK_PATTERN_TAP = 0, + FEEDBACK_PATTERN_SIP, + FEEDBACK_PATTERN_SIP_BACKSPACE, + FEEDBACK_PATTERN_SIP_FUNCTION, + FEEDBACK_PATTERN_SIP_FJKEY, + ... + + * For more information please refer libsvi. + */ + } + } + +#include "gallery-efl-gengrid.edc" +#include "gallery-efl-gengrid-item-thumbview.edc" +#include "gallery-efl-gengrid-item-albums.edc" +#include "gallery-efl-check.edc" +#include "gallery-efl-nocontents.edc" +#include "gallery-efl-expanded-title.edc" + +group { + name: "gallery_efl/gridview"; + parts { + part { + name: "background"; + type, RECT; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 1.0; } + color, 0 0 0 0; + } + } + part { + name: "split.view.bg.color"; + type: RECT; + mouse_events: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; to: split.view; } + rel2 { relative: 1.0 1.0; to: split.view; } + color: 230 230 230 255; + } + } + part { + name: "split.view"; + type: SWALLOW; + mouse_events: 1; + description { + state: "default" 0.0; + min: 0 0; + max: 0 0; + align: 0 0; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 1.0 1.0; } + color : 0 255 0 255; + } + description { + state: "visible" 0.0; + rel1 { relative: 0.0 0.0; } + rel2 { relative: 179/540 1.0; } + fixed: 1 0; + min: 0 0; + max: -1 -1; + color : 0 255 0 255; + } + } + part { + name: "select.all.area.bg"; + type: RECT; + mouse_events: 0; + description { + state: "default" 0.0; + min: 0 0; + max: 0 0; + align: 0 0; + rel1 { relative: 1.0 0.0; to: "split.view"; } + rel2 { relative: 1.0 1.0; } + color: 255 255 255 255; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + min: 0 0; + max: -1 60; + } + } + part { + name: "select.all.area.label"; + type: TEXT; + mouse_events: 0; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 24/540 0.0; to: "select.all.area.bg";} + rel2 { relative: 0.6 1.0; to: "select.all.area.bg";} + text { + text: "Select All"; + size: 18; + align: 0.0 0.5; + } + color: 0 0 255 255; + visible: 0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { + name: "select.all.area.check"; + type: SWALLOW; + mouse_events: 0; + description { + state: "default" 0.0; + rel1 { relative: 1.0 0.1; to: "select.all.area.bg"; offset: -60 0;} + rel2 { relative: 1.0 0.9; to: "select.all.area.bg";} + visible: 0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { + name: "select.all.area.check.fg"; + type: SWALLOW; + mouse_events: 1; + repeat_events: 0; + description { + state: "default" 0.0; + rel1 { relative: 0 0; to: "select.all.area.check";} + rel2 { relative: 1 1; to: "select.all.area.check";} + align: 1 0.5; + visible: 0; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + part { + name: "contents"; + type: SWALLOW; + mouse_events: 1; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.0 1.0; to: "select.all.area.bg";} + rel2 { relative: 1.0 1.0; to: "background";} + } + description { + state: "moveup" 0.0; + rel1 { relative: 0.0 0.0; to: "background";} + rel2 { relative: 1.0 1.0; to: "elm.selinfo.clipper"; } + } + } + part { + name: "elm.swallow.selinfo"; + type: SWALLOW; + scale: 1; + clip_to: "elm.selinfo.clipper"; + description { + state: "default" 0.0; + rel1.to: "elm.selinfo.clipper"; + rel2.to: "elm.selinfo.clipper"; + } + } + part { + name: "elm.selinfo.clipper"; + type: RECT; + scale: 1; + description { + state: "default" 0.0; + min: 0 SELINFO_H; // bottom padding size for selectioninfo + fixed: 0 1; + align: 0.5 1.0; + rel1.relative: 0.0 1.0; + visible: 0; + } + description { state: "show" 0.0; + inherit: "default" 0.0; + visible: 1; + color: GALLERY_EDC_COLOR_BG; + } + } + } + script { + public message(Msg_Type:type,id, ...) + { + if((type == MSG_INT) && (id == 1)) + { + new a; + a = getarg(2); + custom_state(PART:"split.view","default",0.0); + set_state_val(PART:"split.view",STATE_MAX,a,-1); + set_state(PART:"split.view","custom",0.0); + } + if((type == MSG_INT) && (id == 2)) + { + new a; + new x, y; + a = getarg(2); + custom_state(PART:"select.all.area.bg","default",0.0); + get_state_val(PART:"select.all.area.bg",STATE_MAX,x,y); + set_state_val(PART:"select.all.area.bg",STATE_MIN,0,60); + set_state_val(PART:"select.all.area.bg",STATE_MAX,a,60); + set_state(PART:"select.all.area.bg","custom",0.0); + } + } + } + programs { + program { + name: "thumb_view_default"; + signal: "elm,thumb_view,state,default"; + source: "elm"; + script { + set_state(PART:"contents", "default", 0.0); + set_state(PART:"elm.selinfo.clipper", "default", 0.0); + } + } + program { + name: "thumb_view_moveup"; + signal: "elm,thumb_view,state,moveup"; + source: "elm"; + script { + set_state(PART:"contents", "moveup", 0.0); + set_state(PART:"elm.selinfo.clipper", "show", 0.0); + } + } + program { + name: "selectall_visible"; + signal: "elm,selectall,state,visible"; + source: "elm"; + script { + set_state(PART:"select.all.area.label", "visible", 0.0); + set_state(PART:"select.all.area.check", "visible", 0.0); + set_state(PART:"select.all.area.check.fg", "visible", 0.0); + } + } + program { + name: "selectall_visible_bg"; + signal: "elm,selectall,state,visible,bg"; + source: "elm"; + script { + set_state(PART:"select.all.area.bg", "visible", 0.0); + } + } + program { + name: "selectall_default"; + signal: "elm,selectall,state,default"; + source: "elm"; + script { + set_state(PART:"select.all.area.label", "default", 0.0); + set_state(PART:"select.all.area.check", "default", 0.0); + set_state(PART:"select.all.area.bg", "default", 0.0); + set_state(PART:"select.all.area.check", "default", 0.0); + } + } + program { + name: "split_view_default"; + signal: "elm,splitview,state,default"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "split.view"; + transition : LINEAR 0.5; + } + program { + name: "split_view_visible"; + signal: "elm,splitview,state,visible"; + source: "elm"; + action: STATE_SET "custom" 0.0; + target: "split.view"; + transition : LINEAR 0.5; + } + program { + name: "touch_snd"; + signal : "mouse,clicked,1"; + source : "select.all.area.check.fg"; + action: RUN_PLUGIN "touch_sound_plugin"; + } + } + } + + group + { + name: "gallery_efl/albumview"; + parts { + part { + name: "background"; + type, RECT; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0;} + rel2 { relative: 1.0 1.0; offset: -1 -1; } + color, 0 0 0 0; + } + } + part { + name: "contents"; + type: SWALLOW; + mouse_events: 1; + scale: 1; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; to: "background";} + rel2 { relative: 1.0 1.0; to: "background";} + } + } + } + } + group { name: "ge_bg_layout"; + parts { + part { name: "bg"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + color: 255 255 255 45; + } + } + part { name: "elm.swallow.image"; + type: SWALLOW; + description { state: "default" 0.0; + } + } + } + } + + group { name: "ge_help_layout"; + parts { + part { name: "bg"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + } + } + part { name: "elm.swallow.image"; + type: SWALLOW; + description { state: "default" 0.0; + } + } + } + } + group { name: "ceter_algined_text_layout_split_view"; + styles { + style { name: "my_textblock_name_style_split_view"; + base: "font=Sans:style=Regular font_size=12 color=#000000 ellipsis=1.0"; + } + style { name: "my_textblock_count_style_split_view"; + base: "font=Sans:style=Regular font_size=12 color=#000000"; + } + } + script { + public scale_value; + public pw; + public tw; + public calc_text_size() { + new x, y, w, h; + new bx, by, bw, bh; + new cx, cy, cw, ch; + get_geometry(PART:"elm.sub.text", x, y, w, h); + get_geometry(PART:"base", bx, by, bw, bh); + get_geometry(PART:"center_padding", cx, cy, cw, ch); + if (get_float(scale_value) != 0) { + // Reverting scale multiplied width. + set_float(pw, (w + cw) * (YOUR_THEME_BASE_SCALE / get_float(scale_value))); + set_float(tw, (bw - cw - w) * (YOUR_THEME_BASE_SCALE / get_float(scale_value))); + } else { + set_float(pw, w + cw); + set_float(tw, bw - cw - w); + } + custom_state(PART:"right_dynamic_padding", "default", 0.0); + set_state_val(PART:"right_dynamic_padding", STATE_MIN, get_int(pw), 0); + set_state(PART:"right_dynamic_padding", "custom", 0.0); + custom_state(PART:"elm.text", "default", 0.0); + set_state_val(PART:"elm.text", STATE_MAX, get_int(tw), -1); + set_state(PART:"elm.text", "custom", 0.0); + } + public message(Msg_Type:type, id, ...) { + if (type == MSG_FLOAT) { + new Float:scale_v; + scale_v = getfarg(2); + set_float(scale_value, scale_v); + calc_text_size(); + } + } + } + parts { + part { name: "base"; + type: RECT; + scale: 1; + description { state: "default" 0.0; + rel1.relative: 0 0; + rel2.relative: 1 1; + color: 0 0 0 0; + } + } + part { name: "right_dynamic_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + align: 1.0 0.5; + min: 0 0; + rel1.relative: 1.0 0.0; + } + } + part { name: "elm.text.bg"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + rel2 { + to_x: "right_dynamic_padding"; + relative: 0.0 1.0; + } + } + } + part { name: "elm.text"; + type: TEXTBLOCK; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + min: 0 0; + rel1 { + to_x: "elm.text.bg"; + relative: 0.5 0.0; + } + rel2 { + to_x: "elm.text.bg"; + relative: 0.5 1.0; + } + text { + style: "my_textblock_name_style_split_view"; + min: 1 1; + max: 0 1; + } + } + } + part { name: "center_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + align: 0.0 0.5; + min: CENTER_PADDING_WIDTH 0; + rel1 { + to_x: "elm.text"; + relative: 1.0 0.0; + } + rel2 { + to_x: "elm.text"; + relative: 1.0 1.0; + } + } + } + part { name: "elm.sub.text"; + type: TEXTBLOCK; + scale: 1; + description { state: "default" 0.0; + fixed: 1 1; + min: 0 0; + align: 0.0 0.5; + rel1 { + to_x: "center_padding"; + relative: 1.0 0.0; + } + rel2 { + to_x: "center_padding"; + relative: 1.0 1.0; + } + text { + style: "my_textblock_count_style_split_view"; + min: 1 1; + max: 0 1; + } + } + } + } + } +} diff --git a/res/black_theme/edc/images/00_badge_bg.png b/res/black_theme/edc/images/00_badge_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..15d94a4a3073ca9140253efadd0ec8b1a3dbc069 GIT binary patch literal 4277 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 XS+hwWZ;j3I00000NkvXXu0mjfkt_mK literal 0 HcmV?d00001 diff --git a/res/black_theme/edc/images/00_button_icon_arrow.png b/res/black_theme/edc/images/00_button_icon_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..22e180bcdd105584f296afb4b22880ca806795f7 GIT binary patch literal 2885 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 literal 0 HcmV?d00001 diff --git a/res/black_theme/edc/images/00_button_icon_arrow_press.png b/res/black_theme/edc/images/00_button_icon_arrow_press.png new file mode 100644 index 0000000000000000000000000000000000000000..f622c7bd90dcb5de19e4736c6674982444dff40d GIT binary patch literal 2965 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 LNkvXXu0mjfelU8| literal 0 HcmV?d00001 diff --git a/res/black_theme/edc/images/00_check_bg_dim.png b/res/black_theme/edc/images/00_check_bg_dim.png new file mode 100644 index 0000000000000000000000000000000000000000..d95649c6a11b13dfd3f77932b1b4d92b2098875a GIT binary patch literal 2890 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 literal 0 HcmV?d00001 diff --git a/res/black_theme/edc/images/00_popup_dropdown_title_bg.png b/res/black_theme/edc/images/00_popup_dropdown_title_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..a8d29c801d638649081aa63560d392276fc58bec GIT binary patch literal 3315 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 literal 0 HcmV?d00001 diff --git a/res/black_theme/edc/images/00_popup_dropdown_title_bg_focus.png b/res/black_theme/edc/images/00_popup_dropdown_title_bg_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..0570886a1e5a23d9bdb28890f275fb9172204e5a GIT binary patch literal 3029 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 literal 0 HcmV?d00001 diff --git a/res/black_theme/edc/images/00_scroll_bar.png b/res/black_theme/edc/images/00_scroll_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..9930bbf2cd6cd17a528d25b3e5b070b96b328e26 GIT binary patch literal 3148 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 BN#g(j literal 0 HcmV?d00001 diff --git a/res/black_theme/edc/images/00_title_bg.png b/res/black_theme/edc/images/00_title_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..51fc782656116e49b7b4327c39ca2e56a460bb03 GIT binary patch literal 2842 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 s(P%UpjYgxmSr;1z|6W7{Sgb@; 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 D<*vR& literal 0 HcmV?d00001 diff --git a/res/black_theme/edc/images/T01_album_edit_check_bg.png b/res/black_theme/edc/images/T01_album_edit_check_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..efda6ba4533861638d748bd35f60281a9b016763 GIT binary patch literal 3507 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 literal 0 HcmV?d00001 diff --git a/res/black_theme/edc/images/T01_album_edit_check_on.png b/res/black_theme/edc/images/T01_album_edit_check_on.png new file mode 100644 index 0000000000000000000000000000000000000000..c2a6b3c9e8be733e44e7ddde998f4c3cdf2713db GIT binary patch literal 3190 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 literal 0 HcmV?d00001 diff --git a/res/black_theme/edc/images/T01_album_folder_bg.png b/res/black_theme/edc/images/T01_album_folder_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..a8fa56f47c94c2739eaa4f5784dc836d4a3fa41f GIT binary patch literal 4741 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 Une5_z9RL6T07*qoM6N<$f(>hgw*UYD literal 0 HcmV?d00001 diff --git a/res/black_theme/edc/images/T01_overscrolling_bottom.png b/res/black_theme/edc/images/T01_overscrolling_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..1bc2eb98ea0886878dd6eda7ad05e6ae5bad9732 GIT binary patch literal 2888 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 MC2hrO1?%wt0RIN2`2YX_ literal 0 HcmV?d00001 diff --git a/res/black_theme/edc/images/gallery_icon_container.png b/res/black_theme/edc/images/gallery_icon_container.png new file mode 100644 index 0000000000000000000000000000000000000000..779e83c99fabe72c1b7ac578b72d90524598669a GIT binary patch literal 1360 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFe_z-M3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWv2L<~p`n7AnVzAE zshOFfj)IYap^?4;5Si&3npl~dSs9rtK!Fm_wxX0Ys~{IQs9ivwtx`rwNr9EVetCJh zUb(Seeo?xx^|#0uTKVr7^KE~&-IMVSR9nfZANAQKal@=Hr> zm4GgVcpgi&u1T;Y}Gc(1?z|7Rq+{E0}+0D|#(9qSy($&Ds(%9MD(b>Yx z%+=W#rq?AuximL5uLPzy1)45_$v zX2y9hra+Nn>y=&DwsLNF75q|uUnyHKY+vIQZI->>58UDp`>u^jackOLptEVkG&V<9 zfz0jikL)yEPe-_ z7c8HwD1YRj-3|u(Tl-(!GP*DQUHEkWOp}7IABuiPGD}ObSK3xR{du#IN7d1_eL2_h zAL7>6R98-ZAfvOYpp@Cn@pAQrmpd|;M3fB{TewY3{$^6bb1k%FQN+%;`L$8EFZ-qQ zUG$0lEI*ew&~9zhw#wAV?ld2})V-D^E8e_5&%D>v(sXc(fb;s47u?N;if#L3RekvKt(U%N=CS2A`r^`-)x>jEW*y&>6)y2N zZP>~uP3x;J&^*9XnK9$Mo%(@*b8EhRk$%p5Ytm8PTT&S_C9|59yEi*;jK1sjvZ?iN z$-?;9X$^1M4cqSu2Zr(k7JoC>=?2PMT51BU<=X zP-0~@_n}0dnQd1Y&F43*I`jQkR>V=ZoR_IKx_c!Jjy}Ja!Oi$;PsaQYm!3rLXX0T< XuXxyNeCymwP#Ndx>gTe~DWM4fPO|03 literal 0 HcmV?d00001 diff --git a/res/black_theme/edc/images/gallery_icon_full.png b/res/black_theme/edc/images/gallery_icon_full.png new file mode 100644 index 0000000000000000000000000000000000000000..f7d5842dafea6cefad056305e21a56d50e7fc2d4 GIT binary patch literal 1155 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFe_z-M3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWv2L<~p`n7AnVzAE zshOFfj)IYap^?4;5Si&3npl~dSs9rtK!Fm_wxX0Ys~{IQs9ivwtx`rwNr9EVetCJh zUb(Seeo?xx^|#0uTKVr7^KE~&-IMVSR9nfZANAQKal@=Hr> zm4GgVcpgi&u1T;Y}Gc(1?(9p!fz{uFi+0D|#(9qSy($U4u$;jB!z{SGV zz}UbErq?AuximL5uLPzy1)}1 z{rUgj{%``54^J~sk5$GM$Hjb7g?vd18)phR*ob%Byl`YbbD@ml*&Y*(m6Z)YWCT_x zZO&I%^oCo&n(5=;gHzhBG(^;Fu;37}if)*}ed@pE1U{$oGgb=MSRUPW@QF!cRn5{$ zbXWNIOP=u>gQ0YYA5({Nhhe*1pCTu}*71PDjv=KyOZgVUGEI4L7FT>RY(v)dl89HBnbi9cjD3 zuaI_JX&v8@?QDyVX0RLy%1DY|`BoxotAu;CEYM4(7gjWTFfuT*F|@TVf0|jBAq^@P NJYD@<);T3K0RU)Ad-wnV literal 0 HcmV?d00001 diff --git a/res/black_theme/edc/sounds/S_Touch_30ms.wav b/res/black_theme/edc/sounds/S_Touch_30ms.wav new file mode 100644 index 0000000000000000000000000000000000000000..99ba74d953ddc929ae302303c0a815f202697151 GIT binary patch literal 24740 zcmeIx>rY#C7zgm*Ifu5V6iP2!YblhD%AkNwWQt4N#v(9qUPwb=iNP=jyJ*yy%sFID z*j{XlMv`f_MJ0iSZOJx`lT8V8Av2oe29C_~_u*7_yC*OBZ z@+6-;kFBbrqP>BTx*fIU``$ieRuMv|wJ!ULkW;%ULK78f+;eEpk+m5V1Rwwb2tWV= z5P$##9)*A?z9lY*KT@}nUSVAdhjKQpEUh}lDx*j@7ham1?{F(8#PMI;`ybS=b`f)0 zVP>^8TEsk?UfiEwYYHfz7kd1rsqsIPf8YM=jeF7I7iMZ!zM$JQpP086bQGl&AJ~+a zt1#B3oQP-pznwZU)HV3gy=vF#zgy@33gssWnyDcEQw=t1GN6EXvcFJ?pN^Jds&kpLXSF=1@K+vDvHy5jll8I8f{G1pjL&YsV7=(MSO>9gEr|CPCy z+?L5#r*6);eUeax@EIFYA2u|aD$Ts<%k+!d(c~1WihE~iuXoZ@I(^+kd3*c?|Fnuf zv3hla+uXrf$$Y-=U?7V>Li$*l>eBjDL(EY1Sn0Z* z%79cQ)^UzN(?i>XcCT$=i$An77AdEi**>LRyG?gjr&zyDJ*23U91wcBK(NbS_|WD1 zbg>|?E4(k}q-b_m>Snb~`?1!gZd9I=`xri9<6Borz`Uec`eB(~ZRWm@Tj&>Mor*r? zYpNR6HD#ybsH}&+oydx84ck|8f>pthm9N9ik-lfj@H3&7&_uX|FN=L6nCL2rQ+8Zln(UKbX4|AbCP1V@U2IEaf~)2(a6j{o=xDrN z9H4^C6-lo&U3Ob~M^c{jCf!8r!rgdF>{|4LXn(XL=89Jc{bC9A9=)3xXCll+CYdqO z8z>cdT5J$JiL;5TiQzvFDCj=k> z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= K5P-n{S>Rue2ZFNz literal 0 HcmV?d00001 diff --git a/res/black_theme/images/Contents_broken_351X261.png b/res/black_theme/images/Contents_broken_351X261.png new file mode 100644 index 0000000000000000000000000000000000000000..033ce0f389f045c26897d61dde2b742c57bc41ad GIT binary patch literal 5678 zcmchZ_cxqf*T*j*dQH(s7ott{jLt+5LDW&Bg;AnK?=4C~Mi54{L=wFPiEg5c9z-1_ zgCPi_Ohy^JlY6~uz4!C}0nZO-?X~x{&slqa&%Vz3JbR$8MMup}4FCY0j`kfR03fj? zuFI6<#K@hutBgcL<*jYu3jj1%|1J_BJC_vzs1019&<77(y!^a;UA(+`bf8ck?RRdz5nd|Bdx^XSv)2tfm^3xX zIKIA3Bt;;ilCK+z(LSf1p;+a8hlqWj_wCse0vtssDT(s6Q=kBnpa~jEpj|Jg z{T64!1;eJsYip9IrzGuuske10qpksJAqb5kKc9Qvsf1*KH-F=wSo@f>0x(HFJ*R@Jb0uaq;D@t)6 z3K&d+OL#UCnb2WLSe^i?Axa)^3*Tk*{= zt>)4|d$)h~Z-wE!JxjdwK>yJ-zu4PdB47}Z#gB^JP z)kd@6Wz*~|c6D{;Ublvo{QxZd9NuZ$4m*2%9HB(O<9?u)1)`;FqP575esm5U-Y?`F zO{041Fu#_fMQEV8Ab=+Lx^*0y%tfxP7+&!~+{sQpkSgSRrjd5DM{xY&(ejemDXGem zEb!4yg(Ngpyu`+l^pCC(qq$%EG9Cc-Tf92H3saItxx`{d121+}&$QkO0#VL7X+8k( z@Q#3l$v~ZIALZW>j28K*&T-hmD%MWU*>QQkgN9%y_f$imyHkTvgZfbv=M%e|6)_sZ z@xvcMB6i^KY9N_*Lznn;Z+eMN(?)t_Z-x_l%KQ%D)@Uj+^{5`a409M}S)c}wJ(s$+`F(T!8SN4t zP5~LFIVyQ7(x--*7B(7iyT^uQ#L8gFowB6VP2Xo5EtC|PFv+G^YE%}~8&w-7lw6hZ&xQ=gGVACT zR=&%aV0U40!Mj%f^lN5X$l%gPeuIqWq6CH!?Uxz$T?-MP-X+G^PipgC;4Z z4~@gC?wU#)uar`K&n!1B%X_e8%wY^KRV+y;gO_-jsD6mBID1BJ(RIJe0Q$l3ZH?_p zYcCItBU@dN7_U2BdAxtLZ1;_t;n}bNk(R78P)m|>S!n?TDt%8HR%dkZ%2}0SCCle1 z*H52nUAP!|5b=ER+V0Ken;bV5ZwtcA4TDI=Hj){SS47mBHine~(va8(jz?u8r$Eq4OHcoy$u<)a=(<=^)zUJPzq zKj91qpP8I_oD}15mDB9X(AXRyqB#p)jxvZ@tOlAr2O=ittV} zXCIS9$_9?jLw%R-oZQL0vzP;yG=Nl#-;)(lDU)zhnv-vqX;$r(aJCqlG|w~Fd92F` zkr1hp^L&h2B5WTdEaxrLtc0>;fxp^#2N#TV9>x_jmr7g_Q^-`ipQwNP)o*o1krL)) z!Tqa&f(Yv1PEaSD4?HF}mN)~o7U9z0*A~$WN&A)BDjO`&BV8zlZF(wH`m*&t-Tj3e zg?#4h03Hu1Wra4$*tFD_J{o1bdg=A>P57E~z+i<_T;b#Mo%<_EE;q9Ti0rX4x+}$@9+gCcTVAARf<8@);AoI1h z3O7itl20(2dgc0M(RefR3Z=&9^&%dV2Ibo@WK~4ljSxNe=!YExF&&>t+_z{1%@C-He4D%YPqueye2L0*rX5uOjiawK>Se0e?p>QiZXchjR$=W*wa zwMFrKEBeebQvl6GOVa-^1mQk4lW40}{FzEW3T;YasyFF8>2#`dT8CGydRDe^lzHl5 zQ>pLav)xBJPI^YcPhUUX^nDUEu54nIG9|jDMc>DbI?vk;6sMD;GkuZUyUg!>CwO%O zPql>SqEna)NDi&QP)u+KfZ!mon@0A2_T3!g>{BZTt7d~Cm9eSK#SnrPnwue4M#&=h z-hoNK>)b}nL^^zbG&wILFFZoxc-{{Eu0C|#ab(Gj!E3jf(GN4Od6BfP*s3^Uz2E4! zUyH_Gg*C#ms}*cLHvKl0&eJCh`dV^Zva6b`-J5no+CGOm<2N|+tL>rMw)!k|Az@P0>U@4?cRtdsJ@D

XSPqz3>Yf&dT|3joI#M7se1{N(+&U> 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 Hvy1!(SB~?U literal 0 HcmV?d00001 diff --git a/res/black_theme/images_edc/T01_album_edit_check_off.png b/res/black_theme/images_edc/T01_album_edit_check_off.png new file mode 100644 index 0000000000000000000000000000000000000000..5b7da078031c5852316c1998b22bd38bc148938e GIT binary patch literal 1679 zcmbVNdrT8|94`XmoDQcm(-QDjpN(sK*U~FJsI2X^v}%DB7D$xp(H`Y&@2<92+JbYy z6z9~TLV^wn3d9I*8i)7-h56cu6B)rxm6*R{9~8j-S74Ne7^78 z_Qd$OnbWz`IULSRy$&_9bFBZJHkJLRtee%vPV*T}Dw9NKFdoc_bCec39S8IzX2p#- zX7O!o#$z~~zziZel}R>>98OHE*MXUBI0K~PR)SLSdg~i`0AW$^ zQltjZ;85e4gf82OCuPSco3m|ZxrGyiA61AR>{+;}Lo!LfUB+L2|j=&mk5ISP6m4M=_XJK)Du9Frc{0>?9lv zK~sRA5lg4tjDp8nI_3iDFc@AEQ?Btqu^|(AF^32ef+CXi`!y=)hnq?E!aBvDDkQ4pk&$Tb=*DwBa)83?LTrFH_V zr(6t1nehp|1gm!(D}F5&Q9E&rp`FPzZJ(%s#7vr@U7554P$$8_vJ`@{&>k1xpPn&q zQQS#n;TElvCV|oTBE%&6l_)HORG?Z6t0a^AJ%+XXpO}eQV?_Sq_)oD+9I+MXU%o7T zcJs1%aEk31C)*m&M-umNI8z$+s505x*;8su;40rK@SNYxwdF(e?BwND?a4Lpa9h>7 zq27^zIZ|lzlh0>q&ZQqRE&D~%9NipLlDD-ZV4I{lZ2hHQV_Yr1-}c@Nz0?|Z6MneM zVfGeSUm3Da^mf>$t_2$oM%5>OF%)gzFu1icsBzU`#ik3q@SRhJgrXL4EcWG6^ znav6382(eFZ*iNrS~d9Tk?5ko5XalU$265ztubB?9tf=}=k`U;h|iVne%u&xwjm82 zZeC*SD}E+>*t@#uLQ#b7yU%Lgz1MReJY$S~L`@ly5Zjn7opS`MIxjhEZv_rurM)_9 zXm;B5{RKA;+J(ioi@q0p_nJtKutypu4T(+AxwcyI?7D za_+{o8BO!2u0Is#sBEFcPY=xw#|KrI7?;X}ul!w0KJHRa|5@5tdpIg5_nW5$;ifM;7Cm;)U*51|UjGh08Q5(= zhxvpz$@V;jIaA&Kf+^`=X%#JRG1Z;e51u_yT@l0`XlQ%TbpvbV>XG_gX=ObPsY5@U zwr4Xfri9LpqOW{)Y39V}n~fh?PuG>xr`kV>aECwW$rD&l`}TdPUKG}se?0Z*(H7H* zM?I(7R%{3;zIgXVNbc9s^`zGwP`q779&K4M%^UjT$KP_Q9JjDL9U;M@%C#5Y`@S{i zKK1-r){%%m3d4ORBl5iRtLd-QQ-O8B(>3xY$mzL#D? Bi2MKm literal 0 HcmV?d00001 diff --git a/res/black_theme/images_edc/T01_album_edit_check_on.png b/res/black_theme/images_edc/T01_album_edit_check_on.png new file mode 100644 index 0000000000000000000000000000000000000000..c2a6b3c9e8be733e44e7ddde998f4c3cdf2713db GIT binary patch literal 3190 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 literal 0 HcmV?d00001 diff --git a/res/black_theme/images_edc/T01_album_icon_camera.png b/res/black_theme/images_edc/T01_album_icon_camera.png new file mode 100644 index 0000000000000000000000000000000000000000..9308c1ab4e75ff765be029516e1f5542f834e73d GIT binary patch literal 3104 zcmbVOc|25WA0G)(6d_A$nigc4eKa#9!&sUogUJ$CGt9wYmS!=QG}f51MA{S)l}QOv zQgMrJDMYy~wo*!=4JoqRqvgKuANRd~yw7u<^DO80`~LRlb7ZuwPU>m~Y7huS-No6# z9h?bsV}UaG?z_6#1f29mWN(oNFGwU|3IK>5ix&VuT{z5Oz#U++qINa`))0td5S#8T z@}_Pf1oAkR%sCp%NDd$5hCr-sBl*n0FhB$i0D{?E8`y`d^)M)#WdrlVQV~?XJrKfn zjurqO(Oc<((P4pj7R+`d)H;#?0&oBk6B@}0=L!jtHn8uw1aLif42MC#lZe7>U_X@d zrqZDHJOKd3TB0oi5lAEyhqFXtus9sj9Ew69QE&wK;4F|B0v1O=SwVj`7${A^3L>~W zIR2Cc?rdNoA`zbehf5?9O9|SNCkTck@p$|k1`1^XQdkJ1xFTkx1y{KG7lH#I3>2{W zA~uf;okL^>@Wdh;7^vwF6F7V-^>1LV@Ta3dm%$^Md^pk)0q1b$?D|eE6uATcQR5$} zh4d&s0Cxw3Jh31Uj7QMwU(BHI{$0=jYN`gSgQ>R=;>%xIz(=8wmW8%bt__gBSg;yaamzz!dQWbRIAKR|e2Rcp{!KgvW>4 zd*GlZUTiLlClQ*?h3AL04uF6i0k9keJP!1`e+le=kWWJ3@F*n85rg<&cK_gI{Xaf~ zgUZ0?lH=F$z-*G?BsF&@_J zGq`+2xmc$<6e2fQOxvK?u&BX&`hCCkwY-h*E#DVTF{TeCu z@;2~!{b%lml_%p-`-4KXxn)EHr#Ff!BC0herR>BfuZ63AOLvRKJ=N; zX^!S3*f;h74UMC1(pMxmS606PZ_32ce6zqK=+?)3$ATWq9;Wz4QTzK#5mZ0a#h=#oSd9n?x&Ngs;c}J4P5!=?GQHt zRe5WhXnE`fO=j-LzqM)a704v@)jWE+byr$jb91xYy7Hp+`EP zeY?jG9ny{U_4VaRrS(`7lRJywny@;n*u(xK$b_BNv6DF!<%;Yr`ntNhjaQJP&9o3J z*MhUmY-u?iVrXDMpin3u4(8-w21T_SVJa#;t~#2Unh7No76;C{mHxRhknx2R zU)fS!;`qj~TWg8Wz+N4*tqFSDW!ljup2~g?68EpnQ@TAf{Z0Lh>xtb7q&}Ns9k-z% z7R$jk-}-4=Z*MR4m~Q#5i4pxf8U|Upo7Q>if6}EUlPTQ_6Ce8;%90l@J9Oh#{_`-R zW3~4{(Q8Aa@S;r(@~eq?<2x%%j9zTMq}dv#c`?0y`GhJ_4e2N`N2lv(@BA_ zzU)?U7D43V;-W$$+rYwdM@B|oWEv48Af7V4x0AiS{ua)!OG~{jT+*_;b;IxgZ6?-Y ze{+aZnQu~`Yp;0iy@LP%Tvl+ucNQnO5!aBiSZZsqe+$NdI@Vs~B+J@O@t)N!_YQcZx9@A!^_VX~9%&U(qC53se?{$ERVz$SrH`CCFtQBp ze|(_Tk8;?u<;-B3&dWWuwY7(W@8^GxQfkY{&{&nc;GG-dF7fhqT!2R*gTLa8NFuQv zRVzqbvU#qoVMl8BSEOG<90w{`KUXJ2O! zg}+^k{G@T^+(pI-WZ)l3B_$;?e+6xe!jm;MUo8e5^=PB-d#+w^^Tn+j@4Xm&AG=qw zZsv%U{rkRAEtk;{J3Bj^&g*cupt#}gOB`RNuo|bRLt$OD;xPRBHAV`+==}43S5Ws# z)%NuF_dg|*$?V1>X{n-+8tJoZQ9>oPugkO!w1-rMKPfMq`ugdmxZ_d9tO~cg2D$Xz z_DU}WKsT-{He(Et^%~%IWuQL(aV=^z!*koV9}@Ak>nsT!L>BoN$770JsMPdSnM`$_*%vDe=FRg; z<1g z-&VfI8BkI0<#A^EO-cP*rKmgkw&iZo6$72AacMcVX-W2DM#}k7R1xz;^DBAI=6lmJJtpg0ul$R`=kGl>c_b5}2w6X)wvy!0x@hj7-G#i>p^U^x F_zOy~K6?NF literal 0 HcmV?d00001 diff --git a/res/black_theme/images_edc/T01_album_icon_download.png b/res/black_theme/images_edc/T01_album_icon_download.png new file mode 100644 index 0000000000000000000000000000000000000000..f16ecc1f6b6bf2c1c7fc1be2f06ef8d0f6cd45b8 GIT binary patch literal 2763 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 literal 0 HcmV?d00001 diff --git a/res/black_theme/images_edc/T01_album_icon_folder.png b/res/black_theme/images_edc/T01_album_icon_folder.png new file mode 100644 index 0000000000000000000000000000000000000000..a301f4259772ebb39cc1c6fc6608b03b042ce68d GIT binary patch literal 1814 zcmbVNX;2eq7!F4{6k7_&Aqp{`w2(V%vJxc+As|Tu#DY*QAz4U(?1p5KfCWYI1gb-= zc+vo(78pDbq%amlpry(&ASgOw6|6c4id>3i>;}YkI@TZE+1>B^-hH3vy=V7I#D4SU zESQ7C;pX`Z`N7x<8XqeQ?0vr`U?sM=puS;f2ojAZ$+QrTqd=k{yuVr&0|i4eMRGzj zk2VpK4j@T{hmfLAHlgiwZv zEYk2GrAnBhg+fxqQh7?8oTVVFU4!@5gBXDtLS=ZpIv&=6dNyI27sU2PF^PbmRzc&~ zgc+y8L=rp?(L#6zk>({QQz&=}AcrcT z^5}Gc#wP>5Gzx_aFjg^vRRRu$LH1>`XtNye#WI<69*;>U19YqszBDccW214Xz5oZ4 z(de^Se^`ggU^z5vS7o$2gQa~C3-Yv(3`Mk31c{&R0ErSo5uFmz;CUecer2c%Rv<|_ z4`X>|qUA$c)n-T`&?0L5bbdkAd+c+`0EbuC_WQbZRg^gUddn8s#5)*cak3XmuocYxu|!x#XG&6zOnq z-_0klN)2wmnf!EpV5e!^LZNAeMYv_7B)qPs)2G@>l^*B~+C1&>vF^7}+9&Q!Kha%c z-XW-3(vGy_=nWH2e{@AYF19+A8&I@*mrU9>{IVt4^}PD^xi3rDEz#v|_aC;^g^hV$ zJL&>BW=`EqrEYZLPzw%(aw4YE-YoMO%IGT0d&GLEeZ{E=Pqid%-S)B4nPe)p&M3>u zFWGI)iWLT3}<{FE?`ooXs-MZQf`#CU&RJ$hAVqk1CGjREcv$*zt)x5aU z$>UGrA2=6n>JIE&$gT2d|5P`@L<{zB8p~~Q9Y(q=LH z&)2OBdr!LQjwGjS$TnsE6w$f~?~57D74z0%}Gs)N(Bmgo@?cp`02^N?*}=X$2wvURne2TdKy5iT7n zCy09*xv=RDGokSmAm}tnN0{Gzl3g zuBhupvua}YT%a8OE`t9ce?AgyKV?2?HR+jMGF~`boWRXJ*i;+Px9@1S`;F8`WY#o;`|YiIiC}dQ``TL6bW!%W^e*sr{y|e%T literal 0 HcmV?d00001 diff --git a/res/black_theme/images_edc/T01_album_icon_sd_card.png b/res/black_theme/images_edc/T01_album_icon_sd_card.png new file mode 100755 index 0000000000000000000000000000000000000000..f0803dbf6604c8580aeca5db8bcea098c8bf6989 GIT binary patch literal 2415 zcmbVOc~BE+9u0&WVG&dgA%=hw(idjm#F_;69U*-TMdt^g9s*h~rr{^HH! z^FSKF0vIF`naISGgNXzJo$TZ5NA_jW2tN2=KY!wk#&@}Ne>w~!;mIVp62U}&KN^GX z7fkT+1!!~8_)A3|~fB>*a`2Q967cTGr$r%oI z2B&L||7ez(Ew}@9({HU0FTNcfNC=-834Aon7TB905QbH3CM`~J_eDx~Brn+N=fSsn zv$~9U>7C7tS@xXhlAZVMKKhwNo2(r|_--e3l!ru48$WDQJmg$15ZinVygE_R#``jS;T|X zU5o4qipq;;tH*2Nu16cG;v~y0Ca=6#>ro4w|FG)j0HjR{WNIU-ukUJ@t@+6kWa#YB z4!Nu2!4CB-J3`k3QhS;kTh-aRmmX94c&TMc;TfcVJ+4}hO~Mx6i0> zT>oXoLX*PAhK7c_y}bmQ8&|3P_;ze;48)MEi#DVzUmi01q@9UD(6QRu3FN*HuV25G zhlPdR;Ajn=%y}8Ak6l@Rgjj-tB3S-C$m*t|H%$A(w{G34;%Esy0n||^6zWy%Ku1T1 zWBb|*8qL)F;ax%7DYO9_fLqek(&ChznK^0IQC@I?`W|2Q+g`)K_Gn-m8$T4`kg(&x zfdiY$%F3Ghjd!S2T|HK|QG1RbCuy5ANYALLhCM&xJ#AL^*Ij=9s-mLej(c5WVow2*!oR(%-=oDn;&ffp3YzZiIk|da%k(+tp74Apeny4@ zX|sQQDYeyZ>dBr{r%t`>?eFh5hObX#Utix#(2>FFcot*x!N!Zr@(dA;P_UE(C_N}Vl=v0=kD zkyuMVYJr zdzo=9r7h9=bdsk%+^dI4eZ!JFj+UF(9i%=U8JV`Tv-?o0!PaAgZQR`421iFn-w$G= zXjWG%I-TXwl-=HKeKAp;VWum+p8MXM6YPxml%u)-Osmx%W!auTN3MK)wzjr*w0)?4 z3mAScP95TdRPEkL$pI@?tXx@fao;P0QUYr;zkICw{FxH3Q%9{jGKQ1f0l!_xYAjn! zmq{lNuTd&X67mnDJ#AQ~jQIGqr=x4a59UVV3gU^>jgI+?kOh~7Kxw!=)+>H3jeMG$ zlapht4AxuPUT6|{@9y2aAP}5%F;Cd-+NauDW9K#5Dsd)m1p#!C1;^a|Kmg-jt;OK; z+6kh2rAGY#6Yu=(uCb@Rz0nyEw9ufm_m6>rX>UjL@z`T=_E&v!MWvL} z)rp3jqhhL}vA+Jb$1#g+KL1U8Lc%11myEaj$7ZD2xxP@-y$5O@D2#v?Ce)vHhaGmhZoJEzgS+3!g z2cyQaI;Tzb7oh@;Cd)M^ovs_JH=#h9a`Cc9de6|E-6rznL)^^bvNzcIm(K_j+t_{k zehs1EqJf+Sx?do6@G@pCom2QPCLq{U literal 0 HcmV?d00001 diff --git a/res/black_theme/images_edc/T01_icon_lock.png b/res/black_theme/images_edc/T01_icon_lock.png new file mode 100644 index 0000000000000000000000000000000000000000..44c98dac1993712d9ccbeece66c48f4848c69b6e GIT binary patch literal 8333 zcmW+)WmHsM8@(eibf-wSNJ>a|r*wA=NFyaVbV^D$N)6r8Eg%ijDILT zowL_|_B!{89r;m3788vW4FCX4c{wR{_-gv!g93)XH_|-$;0vm=oZe>uK*#^@0Rb6V zBmjV>YAY%E@uQ8Co6~0-Cub^oNl7YaS0`&*dn*9&TFlmfXlm>e3E!++cquSRfjmGk}9q zXG#6}i53Lh`U?rYqv=BK06<>T=qNy!a%L9?S@;X~fke6?2pR(Fa!cS-M1c|jV&1V5 zMSz$L2%4S7paJ9|0;aj<5_tHjx5hAWj`E7VNKFCA!r!s>#oqr*nQG$v2{j)2$fm05-uThEvD*Y5+lvDYs~ z03a`c5FYKtlh+tl<=7Z+Y$KKl>p>^@g~r@`^Lcx`%vlTo{<`^3KC`gbkwOK*P>1IN z`eQ^JWAr@tn`rA=Y_SF)Z+}te!udaKr1RsO7Z$d+w&oT3Bn-@c>-arGdQ7@>p6u`Z zg&uFN);l)n0^b`2$|Byb_l#UB6_Sl7qK23+@5ISIHle>fl26n0$(uLpG81g7;km?0 zWyD;(FQkc-NPOE*KlNg{vBvU%AhN~-RDTiy`6RHG7+D}(D>CBfx^->b0Kj>xQ}-Vx z6a=VE@ZWLImlM$^**tmxYAv7W0szKRbZnZx>qG}o06;1)khxm?&1E+UOBa}|8)>;4 z{n3;+M1robM*>Fz%@RuHYWlW3NP;PBw3?jRl>LtwId_+uO<0mM7F&ct34Fj-BqLrOVvN>`R#N8!cHO znIZWNGrMLftO&LWL)W^{8rF;}HP-N}l+ohS*epf;lTxMy%l>$%@kRquDp(Q@gOoUF zivIA|dx`|>^(ytMO8!vGt1;PZ`$dIr@w(27h1w3YEX+NSr;nj#bivnyxi#&Hyfs=F zR+`T*$)&)hQ>T9M%~}+BGtK2T%S{D!m#H}Q!ar)2;NBhIX)&)D+z^ zxiYmf*~50;%A?}!qIT(4y@x<7@c{)!Lq=Ih+!#{!uEv7KN-6jLcUV>=@f$hMRPo4!<0JeP;kOP%|hhA1EJZs4F)Y zy)6<{5>y%(9T_bcolWP-6y}_Jzni(6IhVQCWUB9_&(c`Z_|r6QeBD;cqwzZlbY8fHrsVat5;Yh|!~OTq2R#ptj1)Kzw7U1rZw$x_uZ z@3HN1_;T(DckbI9J+99ay@QhLYTJ{d=())pc5CJSs*Q zXz=Rc*4vl5Ggee!$?Cdx;Yd6tuUVW>JT9mrXuG?D+Gg-ydv2oy9WKuu8L8^B>#a4I-G^nr5h09>sw7wWIkX?7^z{qwEqTb{4mg-WP=n%^};x{h;Y2$oY6oc5=3#Kil21=~6+X&#uMT z+9zzMlNKDezf;mL(Yu0ef@6l~Ki$r2m$vbBe(GdY379w>xE%;RCrzskv}UztR5lyh zH6MGoH~3iJ?7zwRFt&2p{^gA5Wp*ZqUwEbc!rSSl|K@6qXvN=^@o8+hb-|PIxS~z9 z&E!(-NPIzZC45HI;CXreWI5ndmuKF^7eWIb=A_Zo?jFl zLtb2*#+TX;N8O&wp5!Or*RWN$e5nGMUTp4at~4f!ACg`tCA}abq+L8(aIr4I`%Nkf zIdx?K@TLap>9+WY^E+X>)aLrFGM&s-3HjBI)r* zS$6i_sME3V+J#`}=dqKli=^Y9PabSRDPWOThUiSsJ~{yEi#q}z*+BrJ*PFDxYh(=r za;ntvrmHZS+69qy-gTn&8|X0fSqn=CarKq)t80*t>)qpnL&q9Ax>zQ~hU0ot7q6+^ z#cu4OxdBm%RUjQTsL^3F3ac_223vi3wv$$ix8g@yUN;Fic$sxE6+KmA%MI8m$OWJ(E4XrV zy@jo|AP>fjt1OwaJ=$fxo}XavF@n4~WGM2|+FRf_b==o6QyLf|szXutC zGFTlIvg~R%HhF5omga8C>U|$@T2=Ve5v3^F8EC% zD7w#rZeIa&?!k)XuT@YY;KaXA<{jgA8nS6rYBHrNXfhMRW|(6)^JKr9QkwgPpHGJRK-eat z7(B*(1hoq7x2eM;sS4kAcGKCD;rQPU-Dwg~GK!4QAG>sLI9DM@dmr;D3bKMxK-yUnRMCVsSo zu|_urj_vFt7~#*Bha$$UOiTI|FK$4dA!+p~Sz%;!l+%FeBNIVdZZ7gP9qdpp@p3|r zw-xu+n=O~}P~bn{@mHb%FMq6LgEp--2^{qP{(kT1h(1{XH@bhqom@*xhhBdXGwh$8 zQA;JV>3Z zCtobjfM+CrTL_J(d#mdMS1!yfUXCuv&f7a{?~I7y3(a61Vn#+o`FP&l)u!|OOd zF$I)bo)2`SNLFY|&T!9SVsHovjZ947q$`DKzK=8`0S&mLpQXN%7(oGrR31vXk?W-h zCpYR7D!Dl@r?=tVBC(Kc+X*A&fGM1fQuW(aXcF=|J97gALHFK1aD5~Ojui@WF(c&Y zYHcba4g@A`z6}k@NA(xz5_&<#TC5M%zKRFfpCLRXNS}^-Q^d%3D+V0**^@7{F;P>DqF>Z zM26~+eP>qaO^BdW$%w}EG*jg}qFqMl15i9|*A*9-U3qA(NAz?!n{c)5XJWF39CoV+ zq9(EhMI5$h{XMf1=JkSorQ+_u*vAQipN`}+iN6LIBr}j@kuV^4Af1O&*FW4kfL-af`cHZE~| z7h&o9ir8Rn8w%pz)691SAGNeV{vl1fW{u229SFXoE@U(=2=uPW z;%1mJr=?PUCo#Unb*vX1d9L)cHZ4nVlN!yW z`T6-7ejer7a^;We-zZ35jD5hGMbwkgCa{$6@gVzMn7HREd>Y^t2r7HEz7|+!zr--T zHtx(j-16+daponfsoZ@P1*^3fz~XgWo^PpB)LMYktqXmXgpW@SqW(Ak88pnDo|{Wt z;DmBJ^a=0+ZtdpWIWdC&{xt(5gXI{K0z;P^)8Xo+Se@;w24q|v&NUG(D`)b$Y}~pq zCo4e2r|)oBN=xaVedDxMJIrQq z<}AEV->|6yK$m3Ak(=1{3G5dMR~^o|m<)QxnBU>U+Fvyu zFU(TNe;`$D&BPHt(~VK}-N1(&`K)(=o_9lu2e(~8yUmr+6kpG4>?;4}_#9JDce;`3 zaFcG&E;(-MjEi>4eX%LF{vk{ABT@c+I!2*udg+k7rJgbNBl&5?XF~BcWZuE34ZW7& zVE6`ZGVmp*re-3ov^JD{a67ut5RGEo^@2F}s`lNBtZz z()VtH&1sk@hXGRHxM#ho!)TIn>UC%ESLM zv5(KByYRm;{zIBJ!k?q=MpMsV?_y1r?x$GF(Z**Fc1kv)Us@SLjlua6| z%G58c!{#Z}D}FE4f4gY$ zt6rO5=?9bx)uY>B**KC>1vor0R8u`pHy}Sn(5c=dlNE03v}1OFJkA(Rcz=pTx9XEA{{-ElT6SOBmOn7T#1B=4_>V4SN^R!F~US|OG)FK|#ey>#5u<^Kf zyt6PIWau$~_ic+oy!EUYU93P0C1#N{4S9{XPPYi_ot^f*N^!sHg}$lOcaoYkuZJBD zU=Bfi-5#Y7+ur~I2N7tgOp=Qj(O2Ch01Pn^VY~eV3SKqb(rQAz_GSj|I3ynfajB@~ z)#F)ev^NHf68OiLvqV!vSI+9_rBk*;Hy*96Bt~8>tcijvHP31h6CRD8cbI}=VfoZ{ zUd`4ItLpi9Rc=l+HY1JYb&hR6ox{kfHlhUR!w5ucRn!PTUEZ7sA0Mm#sT@3y8afDK zr5d`Te(-(VRJG?z2t zaDA|(q5*WH{}I-_WR6kq*O7lpi4Xh%i0KCp?l`YHHq~Y0XVuwESvHNp%>puq79wyoHT1x9Q1pN-gHoT*x?yjpGl zgle^h*|3Qy*dZxS04k-XJd!n3jG=W!D$Pp2Q2lRbz|}jIEWW>`cqt_?aSq9Z`;kPPtFvO<-1FcMJ~`cmMz$Px0Bg=|C|Y=#Rn#>OJBB- z&jv3|dK@hh_Mt?2<)u+Z)%x5x!i#_ozKLbZ{m~DMENCbm!U|SbSycyVAJC5o)R0Wt z5Dd8R`QAFut+r0olcEDLrCmN<<(qu%SKjT1{qZ}3^-|)D@`=?f?@*>H<~|t-BiIl3 z=mYB^)d;JI@IH`_9A(83()xHlOpI3~4NWQe@B?P(H_8Lw$ebKi9eCbV53FNC)l2_q z5gn)><&68q>cWk$nDo;41z_3<5Unk44yggk}1ENthIZWeDSD0a$B z9u{At^F`n3`a5EU%;5aJ>0$eA30&n)y(bV7&i z*h4^kNMtn*na$13u|H1hTlJn}Q-8Ls1i?Qk6iPUV%X_`W0J@^rLlH7kX0E_`X}2q5 z95iS`1f@?Vx9RWAfNPMFii){0qIroPqPrkaWa}+0EK%Bl9_Oe zXuffUCsS~kQ?Wt6uo{Qykx~%^__H1EPZx74*OfIN1hV@@O3?(uVD{~2GPSHJ2`Ah) zyRQ7=lu7a2-mGEAvd$Aew|xP( z0slU{!E|jVOR+K{INo<;=&;gLQdLDq`1f;sYxosl3=&vVD%y`}c@lk@$=yn#>L$ zsw{go7NXu|7x5*#@86?gRE-Ew{fb`+p#%#9(3%URb+h$mIDU=AfPN!-&liJ@k2#QB zzm)X!baaKs+?U7Q5#neE^kIUG@%j0*lDFPCxA(43Itrn8Y|b~WCmqB0SBJ03$n5#Q zNLsQpNA>*Kq6>IwKXJL+8MO=#C-&GBXxIs{HZ}7|IXiRty4Y<==D53BhE^duK@E2BRuTR64%!#zF+bO{o#AE=ksUk(24U3TupWSzmpTc%{IhrwW;j%m64 zYqk!u%fa)Dnp%Vn{p*(0-mAVB%K08SbeitvgaFxkX4i1BN_Ih0Q!2bUt56^aty_>L zEoY*hHEjNY-_O-k_wo82Idjw$(S~5Gq)0AyP(QR2v1kzlcv*S9Al}Z=%ErRyCK3t? z<16Lxq^e9vpMIb91~N@J*TFast}j0TAI!YAlXd!@L|6Y^*b)NJ0E9+?*o*ai$?%`s zvj#(#R~4U#P$u!edHVVdgbdvA4!FR_!`=1nV4C$$#Li>Itl3Tyr#jFO+l(7Z zA!n$8Q+u)|v-@g>)-Jjwyo?$0gel-)-qF1WP=e!PBsjjWX>DV>Q+5(@vt{ktw4O?CRTj(7bQJQly zYpjEhpf$RdC#&r}g|2;!&wuV>8}!R8h^o$~>l*aGw)@6}OAOJeeF=`Z5;M?cE61RQvg*h4RaJJ$>Y$g+Db+k7e`{MqvDjFKPB61d85wmhG z?g;P2YYYBqYc&ANMoa{QyBC)?H=gwy8~S*in#^Y#(d=P|@gmk4J7Yb|S%h2|Y)n9C zGe5f!nei<5QEJz~!PR{sqiRlHqr>}jrMa9OPd1v}zDWGG%PB>PX?`rBk7Y9ya9@E# zIcZDcE*%{~%*CH#pvw1{Z|tF^QWVp0qvf~({^Mo|xJP*jQT!R&_n<=j3$eDIZ*rpC z+}xDtT|#>N>sxv$Q)q~_e338UObiBa?GNthBb2A>3ACOH3z*mu^rpE#bUYll!czwF zz`VyhoXSIWCIS+2aw|7CO_us_XlE_Up;Pq5MY4Xw!4b~=+CC}p$k=uLInQv8eER!j z?ydL!_O>g(`}vkU0|P_bBU`8QWGGmoWE4)V?RwEJCN@@`g{XTt_c{!~X_4*unBd9j zqFt5C<(}FZ%V#fHo@cdQ?p(H!QMd_Hqx5;`vO*ga4|nmdQ^14U7Z7)@h|QM`<9;!O zladS74MH^8L^}9zyHITgpCA#)OaH7YT}DQt{u&tga?*a&!&xosXEN5C;*bmbHvH!e zrs{H5;rXmwG<5iedp2#u?QzTY^`Yk}X^2izQnI@{@64->UevEb z+rq;m1r7<WiI7++_c7jzgg?FYIxE5RLxk4zt#Q)|XY+?noT>x8>ht)%(2 zDl|)GKcy9Y84GbD2JEzRr>=PDr(HN$qu~x(vpO|ircm8~!Raun*nV9NRz?;o4c`J42#DJ#1r!pJKw_4JPY6ilBZR0C5DCd5L6VKxMS_$jf}>T$ zAL?kSqEZ#GLgT06SOlq{wg@WXhd~8F3PVM$iUU;X1_A9%>CW!H&zy7aefQkAB_?{2 zC6Pn~0KifZ&KKfikl`~k#s3xZwU6+@2@4ftaY!nbB~imbunb9oL4iWD8WzG5S@zoN zFb4o;kmVvVCXR}Pq=Yfg$ic_04GqRl1SIU7?=XDmMgjB=ND_qpj^f!FZYY` ziBg5YY4Y&(YB+9vv`D&sjg&1T2L^x~4TK9QU`zsP6d6hs(s0S+x)44$Y*WeLI0Re6 zC4Wdt92EnGAZi%&qcFUsJ~SH0WKw9peoQ9K3#9wd=u{v4WqQ+mAwMQWXMqzB8IPux zr9wh}*hDOR#U-aECg zza-|H( zLOsXvQBjaUiDD9^6c+HgWL$wFm&>3q-w?bq?9dQj2Af6;rSoVkHjfb+!t-4i>c?R7 zCb@h>nyG-5*d$l>ksCHG*U$|*V&u1;5! z=b1f)?RN^z8+Hrpe&#%}3ePfq!n3V6N*s3j+jQd#Cs5DNnn&68x!A_mha5iVENySh z(S9RKaX~KakaKfqc!p=@&h!?+`vXJKy&b6bk4MG*+&c5Tx~FG6t2r#AAixYDfPk?M zumOz57uO=l?3jzbxFb!+&64U=Aods_nCv(O$ab#mL~KT9At!{q&mX> z_*3tjX1i`5yw>;KaLUZmRk9`bKYQCcE2zFpb?4bSOQ}iHUMw#!k3P}5cY*!ZJ&Ru2R%_%t0Q~3QQAGN#djz#zG-c7W#vs;o7AMYCM?EmH*y19+47hY-ZZ|ivA z5O!t0%}G|G$pXCn`DFyXr13z3z^IeuxlVo*f zeyXNqbcH*ov$<-S$0_@AS}%EHDeltzLnS3|jq@+tG=~Qpt9n37;Fg}~Z(C3*aKRdf z9DeV9ViDWDv~GWcZ0!jGSbVVc@yr+HOjOQUJUHg}Wvge=y~bAUwwnmy!zKE}jUd-{ aYl0~dP~zoyP8bjg;Ey0QnqSFF&ie;8H`vtx literal 0 HcmV?d00001 diff --git a/res/black_theme/images_edc/T01_icon_sound_shot.png b/res/black_theme/images_edc/T01_icon_sound_shot.png new file mode 100644 index 0000000000000000000000000000000000000000..98f090f525e6ba0887386db1ae9e11806ba07426 GIT binary patch literal 2940 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 literal 0 HcmV?d00001 diff --git a/res/black_theme/images_edc/T01_icon_thumbnail_bookmark.png b/res/black_theme/images_edc/T01_icon_thumbnail_bookmark.png new file mode 100644 index 0000000000000000000000000000000000000000..bdb690af79494c784da628d53b8679b9588faa42 GIT binary patch literal 3807 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 literal 0 HcmV?d00001 diff --git a/res/black_theme/images_edc/gallery-efl-images.edc b/res/black_theme/images_edc/gallery-efl-images.edc new file mode 100644 index 0000000..c5692df --- /dev/null +++ b/res/black_theme/images_edc/gallery-efl-images.edc @@ -0,0 +1,64 @@ +/* +* Copyright (c) 2000-2015 Samsung Electronics Co., Ltd All Rights Reserved +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + + + #define RESOURCE_IMAGE( FILE_NAME ) \ + group { \ + name: FILE_NAME; \ + images.image: FILE_NAME COMP; \ + parts { \ + part { name: "image"; \ + description { \ + state: "default" 0.0; \ + image.normal: FILE_NAME; \ + aspect: 1 1; \ + aspect_preference: BOTH; \ + } \ + } \ + } \ + } + +#define RESOURCE_IMAGE_LOSSY( FILE_NAME ) \ + group { \ + name: FILE_NAME; \ + images.image: FILE_NAME LOSSY 85; \ + parts { \ + part { name: "image"; \ + description { \ + state: "default" 0.0; \ + image.normal: FILE_NAME; \ + aspect: 1 1; \ + aspect_preference: BOTH; \ + } \ + } \ + } \ + } + +collections { + RESOURCE_IMAGE("T01_icon_lock.png"); + RESOURCE_IMAGE("T01_album_icon_camera.png"); + RESOURCE_IMAGE("T01_album_icon_download.png"); + RESOURCE_IMAGE("T01_album_icon_folder.png"); + RESOURCE_IMAGE("T01_album_icon_sd_card.png"); + RESOURCE_IMAGE("T01_icon_sound_shot.png"); + RESOURCE_IMAGE("T01_icon_panorama.png"); + RESOURCE_IMAGE("T01_title_icon_select_all.png"); + RESOURCE_IMAGE("T01_album_edit_check_on.png"); + RESOURCE_IMAGE("T01_album_edit_check_off.png"); + RESOURCE_IMAGE("T01_icon_thumbnail_bookmark.png"); +} + diff --git a/res/icon/ug-gallery-efl.png b/res/icon/ug-gallery-efl.png new file mode 100644 index 0000000000000000000000000000000000000000..8be71c8f7835ffe9ba8ec8536c8d5a004ceb9d92 GIT binary patch literal 7476 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 KrOG8t0{#y