--- /dev/null
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(homescreen-efl C)
+
+SET(INSTALL_EXEC_PREFIX "${INSTALL_PREFIX}/bin")
+SET(INSTALL_RESDIR "${INSTALL_PREFIX}/res")
+SET(INSTALL_IMAGEDIR "${INSTALL_RESDIR}/images")
+SET(EDJEDIR "${INSTALL_RESDIR}/edje")
+SET(LOCALEDIR "${INSTALL_RESDIR}/locale")
+SET(CMAKE_VERBOSE_MAKEFILE 0)
+
+SET(PROJECT_ROOT_DIR "${CMAKE_SOURCE_DIR}/..")
+SET(PROJECT_RESOURCES_DIR "${PROJECT_ROOT_DIR}/res")
+SET(PROJECT_EDC_DIR "${PROJECT_RESOURCES_DIR}/edje")
+SET(PROJECT_IMAGES_DIR "${PROJECT_RESOURCES_DIR}/images")
+SET(PROJECT_PO_DIR "${PROJECT_RESOURCES_DIR}/po")
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(MENU_PKGS REQUIRED
+ appsvc
+ badge
+ capi-appfw-application
+ capi-system-info
+ capi-appfw-package-manager
+ capi-appfw-app-manager
+ capi-system-system-settings
+ dlog
+ elementary
+ shortcut
+ syspopup-caller
+ widget_viewer
+ widget_service
+ widget_viewer_evas
+ capi-appfw-preference
+ sqlite3
+)
+
+FOREACH (flag ${MENU_PKGS_CFLAGS})
+ SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -Wall -Winline -g -fno-builtin-malloc -fPIC")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
+
+INCLUDE_DIRECTORIES(${PROJECT_ROOT_DIR}/inc)
+
+ADD_EXECUTABLE(${PROJECT_NAME}
+ ${PROJECT_ROOT_DIR}/src/homescreen-efl.c
+ ${PROJECT_ROOT_DIR}/src/all_apps.c
+ ${PROJECT_ROOT_DIR}/src/app_mgr.c
+ ${PROJECT_ROOT_DIR}/src/app_item.c
+ ${PROJECT_ROOT_DIR}/src/data_model.c
+ ${PROJECT_ROOT_DIR}/src/tree.c
+
+ ${PROJECT_ROOT_DIR}/src/app_grid.c
+ ${PROJECT_ROOT_DIR}/src/layout.c
+ ${PROJECT_ROOT_DIR}/src/page_scroller.c
+ ${PROJECT_ROOT_DIR}/src/util.c
+ ${PROJECT_ROOT_DIR}/src/app_icon.c
+ ${PROJECT_ROOT_DIR}/src/key.c
+ ${PROJECT_ROOT_DIR}/src/option_menu.c
+ ${PROJECT_ROOT_DIR}/src/mouse.c
+ ${PROJECT_ROOT_DIR}/src/folder_panel.c
+ ${PROJECT_ROOT_DIR}/src/popup.c
+ ${PROJECT_ROOT_DIR}/src/dynamic_index.c
+ ${PROJECT_ROOT_DIR}/src/livebox_all_pages.c
+ ${PROJECT_ROOT_DIR}/src/db/db.c
+
+ ${PROJECT_ROOT_DIR}/src/livebox/livebox_panel.c
+ ${PROJECT_ROOT_DIR}/src/livebox/livebox_animator.c
+ ${PROJECT_ROOT_DIR}/src/livebox/grid_item_resize.c
+ ${PROJECT_ROOT_DIR}/src/livebox/livebox_utils.c
+ ${PROJECT_ROOT_DIR}/src/livebox/grid_reposition.c
+ ${PROJECT_ROOT_DIR}/src/livebox/livebox_widget.c
+)
+
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} -lm)
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${MENU_PKGS_LDFLAGS})
+
+# Install
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${INSTALL_EXEC_PREFIX})
+
+INSTALL(FILES ${PROJECT_ROOT_DIR}/tizen-manifest.xml DESTINATION ${SYS_PACKAGES_DIR} RENAME org.tizen.homescreen-efl.xml)
+INSTALL(DIRECTORY DESTINATION ${PREFIX}/data)
+INSTALL(FILES ${PROJECT_ROOT_DIR}/shared/res/homescreen-efl.png DESTINATION ${SYS_ICONS_DIR})
+
+# End of a file
+ADD_SUBDIRECTORY(res)
--- /dev/null
+ADD_SUBDIRECTORY(edje)
+ADD_SUBDIRECTORY(images)
+ADD_SUBDIRECTORY(po)
+
--- /dev/null
+ADD_CUSTOM_TARGET(home.edj
+ COMMAND edje_cc -id ${PROJECT_EDC_DIR}/../images ${EDJE_CFLAGS}
+ ${PROJECT_EDC_DIR}/home.edc home.edj
+ DEPENDS ${PROJECT_EDC_DIR}/home.edc
+)
+ADD_DEPENDENCIES(${PROJECT_NAME} home.edj)
+INSTALL(FILES home.edj DESTINATION ${EDJEDIR})
+
+ADD_CUSTOM_TARGET(icon.edj
+ COMMAND edje_cc -id ${PROJECT_EDC_DIR}/../images ${EDJE_CFLAGS}
+ ${PROJECT_EDC_DIR}/icon.edc icon.edj
+ DEPENDS ${PROJECT_EDC_DIR}/icon.edc
+)
+ADD_DEPENDENCIES(${PROJECT_NAME} icon.edj)
+INSTALL(FILES icon.edj DESTINATION ${EDJEDIR})
+
+ADD_CUSTOM_TARGET(folder.edj
+ COMMAND edje_cc -id ${PROJECT_EDC_DIR}/../images ${EDJE_CFLAGS}
+ ${PROJECT_EDC_DIR}/folder.edc folder.edj
+ DEPENDS ${PROJECT_EDC_DIR}/folder.edc
+)
+ADD_DEPENDENCIES(${PROJECT_NAME} folder.edj)
+INSTALL(FILES folder.edj DESTINATION ${EDJEDIR})
+
+ADD_CUSTOM_TARGET(folder_entry.edj
+ COMMAND edje_cc -id ${PROJECT_EDC_DIR}/../images ${EDJE_CFLAGS}
+ ${PROJECT_EDC_DIR}/folder_entry.edc folder_entry.edj
+ DEPENDS ${PROJECT_EDC_DIR}/folder_entry.edc
+)
+ADD_DEPENDENCIES(${PROJECT_NAME} folder_entry.edj)
+INSTALL(FILES folder_entry.edj DESTINATION ${EDJEDIR})
+
+ADD_CUSTOM_TARGET(index_element.edj
+ COMMAND edje_cc -id ${PROJECT_EDC_DIR}/../images ${EDJE_CFLAGS}
+ ${PROJECT_EDC_DIR}/index_element.edc index_element.edj
+ DEPENDS ${PROJECT_EDC_DIR}/index_element.edc
+)
+ADD_DEPENDENCIES(${PROJECT_NAME} index_element.edj)
+INSTALL(FILES index_element.edj DESTINATION ${EDJEDIR})
+
+ADD_CUSTOM_TARGET(app_grid.edj
+ COMMAND edje_cc -id ${PROJECT_EDC_DIR}/../images ${EDJE_CFLAGS}
+ ${PROJECT_EDC_DIR}/app_grid.edc app_grid.edj
+ DEPENDS ${PROJECT_EDC_DIR}/app_grid.edc
+)
+ADD_DEPENDENCIES(${PROJECT_NAME} app_grid.edj)
+INSTALL(FILES app_grid.edj DESTINATION ${EDJEDIR})
+
+ADD_CUSTOM_TARGET(livebox_container.edj
+ COMMAND edje_cc -id ${PROJECT_EDC_DIR}/../images ${EDJE_CFLAGS}
+ ${PROJECT_EDC_DIR}/livebox_container.edc livebox_container.edj
+ DEPENDS ${PROJECT_EDC_DIR}/livebox_container.edc
+)
+ADD_DEPENDENCIES(${PROJECT_NAME} livebox_container.edj)
+INSTALL(FILES livebox_container.edj DESTINATION ${EDJEDIR})
+
+ADD_CUSTOM_TARGET(livebox_layout.edj
+ COMMAND edje_cc -id ${PROJECT_EDC_DIR}/../images ${EDJE_CFLAGS}
+ ${PROJECT_EDC_DIR}/livebox_layout.edc livebox_layout.edj
+ DEPENDS ${PROJECT_EDC_DIR}/livebox_layout.edc
+)
+ADD_DEPENDENCIES(${PROJECT_NAME} livebox_layout.edj)
+INSTALL(FILES livebox_layout.edj DESTINATION ${EDJEDIR})
+
+ADD_CUSTOM_TARGET(page_edit.edj
+ COMMAND edje_cc -id ${PROJECT_EDC_DIR}/../images ${EDJE_CFLAGS}
+ ${PROJECT_EDC_DIR}/page_edit.edc page_edit.edj
+ DEPENDS ${PROJECT_EDC_DIR}/page_edit.edc
+)
+ADD_DEPENDENCIES(${PROJECT_NAME} page_edit.edj)
+INSTALL(FILES page_edit.edj DESTINATION ${EDJEDIR})
--- /dev/null
+INSTALL(FILES
+ ${PROJECT_IMAGES_DIR}/default_bg.png
+ ${PROJECT_IMAGES_DIR}/default.png
+DESTINATION
+ ${INSTALL_IMAGEDIR}
+)
+
+INSTALL(FILES
+ ${PROJECT_IMAGES_DIR}/livebox/preview_alarm.png
+ ${PROJECT_IMAGES_DIR}/livebox/preview_contact_4x2.png
+ ${PROJECT_IMAGES_DIR}/livebox/preview_dual_clock.png
+ ${PROJECT_IMAGES_DIR}/livebox/preview_gallery.png
+ ${PROJECT_IMAGES_DIR}/livebox/preview_music.png
+ ${PROJECT_IMAGES_DIR}/livebox/preview_weather_4x2.png
+ ${PROJECT_IMAGES_DIR}/livebox/preview_calendar.png
+ ${PROJECT_IMAGES_DIR}/livebox/preview_contact_4x4.png
+ ${PROJECT_IMAGES_DIR}/livebox/preview_FMradio.png
+ ${PROJECT_IMAGES_DIR}/livebox/preview_internet_4x4.png
+ ${PROJECT_IMAGES_DIR}/livebox/preview_singel_clock.png
+ ${PROJECT_IMAGES_DIR}/livebox/preview_weather_4x4.png
+DESTINATION
+ "${INSTALL_IMAGEDIR}/livebox"
+)
+
+# End of a file
--- /dev/null
+# for i18n
+
+SET(POFILES ar.po az.po bg.po ca.po cs.po da.po de.po el_GR.po en_PH.po en.po en_US.po
+ es_ES.po es_US.po et.po eu.po fi.po fr_CA.po fr.po ga.po gl.po hi.po hr.po
+ hu.po hy.po is.po it_IT.po ja_JP.po ka.po kk.po ko_KR.po lt.po lv.po mk.po
+ nb.po nl.po pl.po pt_BR.po pt_PT.po ro.po ru_RU.po sk.po sl.po sr.po sv.po
+ tr_TR.po uk.po uz.po zh_CN.po zh_HK.po zh_TW.po)
+SET(MSGFMT "/usr/bin/msgfmt")
+
+MESSAGE(STATUS "po files ---")
+FOREACH(pofile ${POFILES})
+ SET(pofile ${PROJECT_PO_DIR}/${pofile})
+ MESSAGE(STATUS " ${pofile}")
+ GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE)
+ GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE)
+ SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo)
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${moFile}
+ COMMAND ${MSGFMT} -o ${moFile} ${absPofile}
+ DEPENDS ${absPofile}
+ )
+ INSTALL(FILES ${moFile} DESTINATION ${LOCALEDIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo)
+ SET(moFiles ${moFiles} ${moFile})
+ENDFOREACH(pofile)
+
+ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles})
/* Build */
#define HAPI __attribute__((visibility("hidden")))
+#define DAPI __attribute__((visibility("default")))
#define COUNT_OF(x) \
((sizeof(x)/sizeof(0[x])) / ((size_t)(!(sizeof(x) % sizeof(0[x])))))
--- /dev/null
+<manifest>
+ <request>
+ <domain name="_"/>
+ </request>
+</manifest>
--- /dev/null
+Name: org.tizen.homescreen-efl
+Summary: Homescreen-Efl
+Version: 0.0.1
+Release: 0.1
+Group: Applications/Core Applications
+License: Flora-1.1
+Source0: %{name}-%{version}.tar.gz
+
+%if "%{?tizen_profile_name}" == "wearable"
+ExcludeArch: %{arm} %ix86 x86_64
+%endif
+
+%if "%{?tizen_profile_name}" == "tv"
+ExcludeArch: %{arm} %ix86 x86_64
+%endif
+
+BuildRequires: cmake
+BuildRequires: edje-tools
+BuildRequires: gettext-tools
+BuildRequires: coreutils
+BuildRequires: hash-signer
+BuildRequires: pkgconfig(appsvc)
+BuildRequires: pkgconfig(badge)
+BuildRequires: pkgconfig(capi-appfw-application)
+BuildRequires: pkgconfig(capi-system-info)
+BuildRequires: pkgconfig(capi-appfw-package-manager)
+BuildRequires: pkgconfig(capi-appfw-app-manager)
+BuildRequires: pkgconfig(dlog)
+BuildRequires: pkgconfig(elementary)
+BuildRequires: pkgconfig(shortcut)
+BuildRequires: pkgconfig(syspopup-caller)
+BuildRequires: pkgconfig(widget_viewer)
+BuildRequires: pkgconfig(widget_service)
+BuildRequires: pkgconfig(sqlite3)
+BuildRequires: pkgconfig(db-util)
+BuildRequires: pkgconfig(notification)
+BuildRequires: pkgconfig(capi-system-system-settings)
+BuildRequires: pkgconfig(widget_service)
+BuildRequires: pkgconfig(widget_viewer_evas)
+BuildRequires: pkgconfig(shortcut)
+BuildRequires: pkgconfig(capi-appfw-preference)
+BuildRequires: pkgconfig(libtzplatform-config)
+
+%description
+Tizen Homescreen Reference Implementation
+
+%prep
+%setup -q
+
+%build
+
+%define _pkg_dir %{TZ_SYS_RO_APP}/%{name}
+%define _pkg_shared_dir %{_pkg_dir}/shared
+%define _pkg_data_dir %{_pkg_dir}/data
+%define _sys_icons_dir %{_pkg_shared_dir}/res
+%define _sys_packages_dir %{TZ_SYS_RO_PACKAGES}
+%define _sys_license_dir %{TZ_SYS_SHARE}/license
+
+cd CMake
+cmake . -DINSTALL_PREFIX=%{_pkg_dir} \
+ -DSYS_ICONS_DIR=%{_sys_icons_dir} \
+ -DSYS_PACKAGES_DIR=%{_sys_packages_dir}
+make %{?jobs:-j%jobs}
+cd -
+
+%install
+cd CMake
+%make_install
+cd -
+
+%define tizen_sign 1
+%define tizen_sign_base %{_pkg_dir}
+%define tizen_sign_level public
+%define tizen_author_sign 1
+%define tizen_dist_sign 1
+mkdir -p %{buildroot}%{_sys_license_dir}
+cp LICENSE %{buildroot}%{_sys_license_dir}/homescreen-efl
+%find_lang homescreen-efl
+
+%files -f homescreen-efl.lang
+%manifest %{name}.manifest
+%defattr(-,root,root,-)
+%{_pkg_dir}/bin/homescreen-efl
+%{_pkg_dir}/res/edje/*.edj
+%{_pkg_dir}/res/images/*.png
+%{_pkg_dir}/res/images/livebox/*.png
+%{_sys_icons_dir}/homescreen-efl.png
+%{_sys_packages_dir}/%{name}.xml
+%{_sys_license_dir}/homescreen-efl
+%{_pkg_dir}/author-signature.xml
+%{_pkg_dir}/signature1.xml
static bool folder_count_pending = false;
static unsigned int folder_badge_counter = 0;
-int main(int argc, char *argv[])
+DAPI int main(int argc, char *argv[])
{
dlog_print(DLOG_DEBUG, LOG_TAG, "Starting homescreen-efl");
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<manifest xmlns="http://tizen.org/ns/packages" api-version="3.0" install-location="internal-only" package="org.tizen.homescreen-efl" version="0.0.1">
<label>homescreen-efl</label>
- <author email="m.szczecinsk@samsung.com" href="www.samsung.com">Michal Szczecinski</author>
<description>Homescreen Application</description>
<ui-application appid="org.tizen.homescreen-efl" exec="homescreen-efl" multiple="false" nodisplay="true" taskmanage="false" type="capp">
<label>homescreen-efl</label>