summaryrefslogtreecommitdiff
path: root/home/include
diff options
context:
space:
mode:
authorjk7744.park <jk7744.park@samsung.com>2015-01-31 16:05:59 +0900
committerjk7744.park <jk7744.park@samsung.com>2015-01-31 16:05:59 +0900
commitf0771909715fd291774879a179972e4b15b607c1 (patch)
tree29029eac289ecfb35232ba576915b345d6c5f39a /home/include
parentf9db8329e35639291de2d226c272cf3986bcd44c (diff)
downloadw3-home-tizen_2.3.tar.gz
w3-home-tizen_2.3.tar.bz2
w3-home-tizen_2.3.zip
Diffstat (limited to 'home/include')
-rw-r--r--home/include/add-viewer.h49
-rwxr-xr-xhome/include/add-viewer_debug.h88
-rwxr-xr-xhome/include/add-viewer_package.h74
-rwxr-xr-xhome/include/add-viewer_pkgmgr.h41
-rwxr-xr-xhome/include/add-viewer_ucol.h44
-rwxr-xr-xhome/include/add-viewer_util.h26
-rwxr-xr-xhome/include/apps/apps_conf.h78
-rwxr-xr-xhome/include/apps/apps_main.h99
-rwxr-xr-xhome/include/apps/bg.h26
-rwxr-xr-xhome/include/apps/db.h59
-rwxr-xr-xhome/include/apps/effect.h34
-rwxr-xr-xhome/include/apps/grid.h37
-rwxr-xr-xhome/include/apps/item.h42
-rwxr-xr-xhome/include/apps/item_badge.h41
-rwxr-xr-xhome/include/apps/item_info.h75
-rwxr-xr-xhome/include/apps/lang.h33
-rwxr-xr-xhome/include/apps/layout.h43
-rw-r--r--home/include/apps/list.h42
-rwxr-xr-xhome/include/apps/page.h73
-rwxr-xr-xhome/include/apps/page_info.h38
-rwxr-xr-xhome/include/apps/pkgmgr.h41
-rwxr-xr-xhome/include/apps/scroller.h71
-rwxr-xr-xhome/include/apps/scroller_info.h41
-rwxr-xr-xhome/include/apps/xml.h26
-rwxr-xr-xhome/include/bg.h29
-rwxr-xr-xhome/include/clock_service.h262
-rwxr-xr-xhome/include/conf.h87
-rwxr-xr-xhome/include/critical_log.h31
-rwxr-xr-xhome/include/db.h60
-rw-r--r--home/include/dbox.h34
-rwxr-xr-xhome/include/dbus.h96
-rw-r--r--home/include/dynamicbox_evas.h357
-rwxr-xr-xhome/include/edit.h60
-rwxr-xr-xhome/include/edit_info.h31
-rwxr-xr-xhome/include/effect.h32
-rwxr-xr-xhome/include/gesture.h50
-rwxr-xr-xhome/include/index.h34
-rwxr-xr-xhome/include/index_info.h33
-rwxr-xr-xhome/include/item_info.h58
-rwxr-xr-xhome/include/key.h47
-rwxr-xr-xhome/include/lang.h29
-rwxr-xr-xhome/include/layout.h40
-rwxr-xr-xhome/include/layout_info.h37
-rwxr-xr-xhome/include/log.h154
-rwxr-xr-xhome/include/main.h66
-rwxr-xr-xhome/include/mapbuf.h38
-rwxr-xr-xhome/include/minictrl.h95
-rwxr-xr-xhome/include/noti_broker.h46
-rwxr-xr-xhome/include/page.h76
-rwxr-xr-xhome/include/page_info.h88
-rwxr-xr-xhome/include/pkgmgr.h42
-rwxr-xr-xhome/include/popup.h25
-rwxr-xr-xhome/include/power_mode.h42
-rwxr-xr-xhome/include/scroller.h134
-rwxr-xr-xhome/include/scroller_info.h60
-rwxr-xr-xhome/include/tutorial.h41
-rwxr-xr-xhome/include/tutorial_info.h32
-rwxr-xr-xhome/include/util.h270
-rwxr-xr-xhome/include/virtual_canvas.h28
-rwxr-xr-xhome/include/win.h24
-rwxr-xr-xhome/include/wms.h41
-rwxr-xr-xhome/include/xml.h24
62 files changed, 3954 insertions, 0 deletions
diff --git a/home/include/add-viewer.h b/home/include/add-viewer.h
new file mode 100644
index 0000000..a78271d
--- /dev/null
+++ b/home/include/add-viewer.h
@@ -0,0 +1,49 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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.
+ */
+
+/**
+ * Smart callback
+ * "selected"
+ * "dnd"
+ */
+
+struct add_viewer_event_info {
+ struct {
+ Evas_Object *obj;
+ } move;
+
+ struct {
+ const char *dbox_id;
+ const char *content;
+ int size_type;
+ int duplicated;
+ Evas_Object *image;
+ } pkg_info;
+};
+
+enum ADD_VIEWER_CONF_OPTION {
+ ADD_VIEWER_CONF_DND = 0x01
+};
+
+extern void evas_object_add_viewer_init(void);
+extern void evas_object_add_viewer_fini(void);
+extern Evas_Object *evas_object_add_viewer_add(Evas_Object *parent);
+extern void evas_object_add_viewer_conf_set(int type, int flag);
+extern int evas_object_add_viewer_access_action(Evas_Object *obj, int type, void *info);
+extern int evas_object_add_viewer_reload(void);
+
+/* End of a file */
diff --git a/home/include/add-viewer_debug.h b/home/include/add-viewer_debug.h
new file mode 100755
index 0000000..a2ef5c5
--- /dev/null
+++ b/home/include/add-viewer_debug.h
@@ -0,0 +1,88 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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.
+ */
+
+#if !defined(SECURE_LOGD)
+#define SECURE_LOGD LOGD
+#endif
+
+#if !defined(SECURE_LOGW)
+#define SECURE_LOGW LOGW
+#endif
+
+#if !defined(SECURE_LOGE)
+#define SECURE_LOGE LOGE
+#endif
+
+#if !defined(S_)
+#define S_(str) dgettext("sys_string", str)
+#endif
+
+#if !defined(T_)
+#define T_(str) dgettext(PACKAGE, str)
+#endif
+
+#if !defined(N_)
+#define N_(str) (str)
+#endif
+
+#if !defined(_)
+#define _(str) gettext(str)
+#endif
+
+
+#if !defined(DbgPrint)
+#define DbgPrint(format, arg...) SECURE_LOGD(format, ##arg)
+#endif
+
+#if !defined(ErrPrint)
+#define ErrPrint(format, arg...) SECURE_LOGE(format, ##arg)
+#endif
+
+#if !defined(WarnPrint)
+#define WarnPrint(format, arg...) SECURE_LOGW(format, ##arg)
+#endif
+
+#define HAPI __attribute__((visibility("hidden")))
+
+#if !defined(SERVICE_OPERATION_DBOX_SETUP)
+#define SERVICE_OPERATION_DBOX_SETUP "http://tizen.org/appcontrol/operation/appwidget/configuration"
+#endif
+
+#if !defined(SERVICE_OPERATION_SAMSUNG_DBOX_SETUP_MULTIPLE)
+#define SERVICE_OPERATION_SAMSUNG_DBOX_SETUP_MULTIPLE "http://samsung.com/appcontrol/operation/appwidget/configuration_multiple"
+#endif
+
+#if !defined(EXTRA_KEY_PROVIDER_NAME)
+#define EXTRA_KEY_PROVIDER_NAME "http://tizen.org/appcontrol/data/provider_name"
+#endif
+
+#if !defined(EXTRA_KEY_CONTENT_INFO)
+#define EXTRA_KEY_CONTENT_INFO "http://tizen.org/appcontrol/data/user_info"
+#endif
+
+#if !defined(EXTRA_KEY_CONTENT_INFO_LIST)
+#define EXTRA_KEY_CONTENT_INFO_LIST "http://samsung.com/appcontrol/data/user_info_list"
+#endif
+
+#if !defined(EXTRA_KEY_CONTENT_INFO_COUNT)
+#define EXTRA_KEY_CONTENT_INFO_COUNT "http://samsung.com/appcontrol/data/max_items"
+#endif
+
+#define EDJE_FILE RESDIR"/edje/preview.edj"
+#define UNKNOWN_ICON RESDIR"/images/unknown.png"
+
+/* End of a file */
diff --git a/home/include/add-viewer_package.h b/home/include/add-viewer_package.h
new file mode 100755
index 0000000..7a1363a
--- /dev/null
+++ b/home/include/add-viewer_package.h
@@ -0,0 +1,74 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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.
+ */
+
+struct add_viewer_package;
+struct add_viewer_preview;
+
+enum package_type {
+ PACKAGE_TYPE_APP,
+ PACKAGE_TYPE_SHORTCUT,
+ PACKAGE_TYPE_BOX,
+ PACKAGE_TYPE_UNKNOWN,
+};
+
+enum pkg_evt_type {
+ PACKAGE_LIST_EVENT_DEL,
+ PACKAGE_LIST_EVENT_UPDATE,
+ PACKAGE_LIST_EVENT_RELOAD,
+};
+
+extern int add_viewer_package_init(void);
+extern int add_viewer_package_fini(void);
+extern void *add_viewer_package_list_handle(void);
+extern struct add_viewer_package *add_viewer_package_list_item(void *handle);
+extern void *add_viewer_package_list_next(void *handle);
+extern void *add_viewer_package_list_prev(void *handle);
+extern void add_viewer_package_list_del(struct add_viewer_package *package);
+
+extern const char *add_viewer_package_list_name(struct add_viewer_package *package);
+extern const char *add_viewer_package_list_pkgname(struct add_viewer_package *package);
+extern const char *add_viewer_package_list_icon(struct add_viewer_package *package);
+extern int add_viewer_package_list_type(struct add_viewer_package *package);
+extern const char *add_viewer_package_list_extra_key(struct add_viewer_package *package);
+extern const char *add_viewer_package_list_extra_data(struct add_viewer_package *package);
+
+extern int add_viewer_package_list_set_name(struct add_viewer_package *package, const char *name);
+extern int add_viewer_package_list_set_pkgname(struct add_viewer_package *package, const char *pkgname);
+extern int add_viewer_package_list_set_icon(struct add_viewer_package *package, const char *icon);
+extern void *add_viewer_package_list_preview_list(struct add_viewer_package *package);
+extern struct add_viewer_preview *package_list_preview(struct add_viewer_package *package, void *handle);
+extern void *add_viewer_package_list_preview_next(struct add_viewer_package *package, void *handle);
+extern void *add_viewer_package_list_preview_prev(struct add_viewer_package *package, void *handle);
+extern int add_viewer_package_list_preview_size(struct add_viewer_preview *preview);
+extern void *add_viewer_package_list_preview_data(struct add_viewer_preview *preview);
+extern void add_viewer_package_list_preview_set_data(struct add_viewer_preview *preview, void *data);
+extern int add_viewer_package_is_disabled(struct add_viewer_package *package);
+extern void add_viewer_package_set_disabled(struct add_viewer_package *package, int flag);
+extern void add_viewer_package_set_skip(struct add_viewer_package *package, int skip);
+extern int add_viewer_package_is_skipped(struct add_viewer_package *package);
+
+extern void add_viewer_package_set_data(struct add_viewer_package *package, void *data);
+extern void *add_viewer_package_data(struct add_viewer_package *package);
+
+extern int add_viewer_package_list_add_event_callback(struct add_viewer_package *package, int event, int (*cb)(struct add_viewer_package *package, void *data), void *data);
+extern int add_viewer_package_list_del_event_callback(struct add_viewer_package *package, int event, int (*cb)(struct add_viewer_package *package, void *data), void *data);
+
+extern int add_viewer_package_is_valid(struct add_viewer_package *package);
+extern struct add_viewer_package *add_viewer_package_find(const char *dbox_id);
+extern int add_viewer_package_reload_name(void);
+
+/* End of a file */
diff --git a/home/include/add-viewer_pkgmgr.h b/home/include/add-viewer_pkgmgr.h
new file mode 100755
index 0000000..92b6da0
--- /dev/null
+++ b/home/include/add-viewer_pkgmgr.h
@@ -0,0 +1,41 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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.
+ */
+
+enum pkgmgr_event_type {
+ PKGMGR_EVENT_DOWNLOAD,
+ PKGMGR_EVENT_INSTALL,
+ PKGMGR_EVENT_UPDATE,
+ PKGMGR_EVENT_UNINSTALL,
+ PKGMGR_EVENT_RECOVER
+};
+
+enum pkgmgr_status {
+ PKGMGR_STATUS_START,
+ PKGMGR_STATUS_PROCESSING,
+ PKGMGR_STATUS_COMMAND,
+ PKGMGR_STATUS_END,
+ PKGMGR_STATUS_ERROR
+};
+
+extern int add_viewer_pkgmgr_init(void);
+extern int add_viewer_pkgmgr_fini(void);
+
+extern int add_viewer_pkgmgr_add_event_callback(enum pkgmgr_event_type type, int (*cb)(const char *pkgname, enum pkgmgr_status status, double value, void *data), void *data);
+
+extern void *add_viewer_pkgmgr_del_event_callback(enum pkgmgr_event_type type, int (*cb)(const char *pkgname, enum pkgmgr_status status, double value, void *data), void *data);
+
+/* End of a file */
diff --git a/home/include/add-viewer_ucol.h b/home/include/add-viewer_ucol.h
new file mode 100755
index 0000000..198fe47
--- /dev/null
+++ b/home/include/add-viewer_ucol.h
@@ -0,0 +1,44 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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.
+ */
+
+enum LANGUAGE {
+ LANG_ENGLISH,
+ LANG_KOREAN,
+ LANG_JAPANESS,
+ LANG_CHINESS,
+ LANG_UNKNOWN
+};
+
+extern int add_viewer_ucol_init(void);
+
+extern int add_viewer_ucol_compare(const char *src, const char *dest);
+extern int add_viewer_ucol_case_compare(const char *src, const char *dest);
+
+extern int add_viewer_ucol_ncompare(const char *src, const char *dest, int len);
+extern int add_viewer_ucol_case_ncompare(const char *src, const char *dest, int len);
+
+extern int add_viewer_ucol_search(const char *haystack, const char *needle);
+extern int add_viewer_ucol_case_search(const char *haystack, const char *needle);
+
+extern int add_viewer_ucol_compare_first_letters(const char *src, const char *letters);
+extern int add_viewer_ucol_detect_lang(int ch);
+extern int add_viewer_ucol_fini(void);
+extern const int add_viewer_ucol_current_lang(void);
+extern int add_viewer_ucol_is_alpha(const char *name);
+
+/* End of a file */
+
diff --git a/home/include/add-viewer_util.h b/home/include/add-viewer_util.h
new file mode 100755
index 0000000..c6efd32
--- /dev/null
+++ b/home/include/add-viewer_util.h
@@ -0,0 +1,26 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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.
+ */
+
+extern int add_viewer_util_add_to_home(struct add_viewer_package *package, int size, int use_noti);
+extern int add_viewer_util_init(void);
+extern int add_viewer_util_fini(void);
+extern int add_viewer_util_is_lcd_off(void);
+extern char *add_viewer_util_highlight_keyword(const char *name, const char *filter);
+extern int add_viewer_util_get_utf8_len(char ch);
+extern void add_viewer_util_update_matched_color(void);
+
+/* End of a file */
diff --git a/home/include/apps/apps_conf.h b/home/include/apps/apps_conf.h
new file mode 100755
index 0000000..4496585
--- /dev/null
+++ b/home/include/apps/apps_conf.h
@@ -0,0 +1,78 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 _APPS_CONF_H_
+#define _APPS_CONF_H_
+
+/* Layout */
+#define BASE_WIDTH (360.0)
+#define BASE_HEIGHT (480.0)
+
+#define LAYOUT_PAGE_INDICATOR_HEIGHT 40
+
+#define LAYOUT_TITLE_BG_HEIGHT 50
+#define LAYOUT_TITLE_BG_MIN 0 LAYOUT_TITLE_BG_HEIGHT
+
+#define LAYOUT_TITLE_HEIGHT 50
+#define LAYOUT_TITLE_MIN 0 LAYOUT_TITLE_HEIGHT
+
+#define BUTTON_HEIGHT (69)
+
+#define GRID_EDIT_HEIGHT (BASE_HEIGHT-LAYOUT_PAGE_INDICATOR_HEIGHT-LAYOUT_TITLE_HEIGHT-LAYOUT_PAD_AFTER_TITLE_HEIGHT-BUTTON_HEIGHT)
+#define GRID_NORMAL_HEIGHT (BASE_HEIGHT-LAYOUT_PAGE_INDICATOR_HEIGHT-LAYOUT_TITLE_HEIGHT-LAYOUT_PAD_AFTER_TITLE_HEIGHT)
+
+#define BOX_TOP_HEIGHT 10
+#define BOX_TOP_MENU_WIDTH 360
+#define BOX_TOP_MENU_HEIGHT 87
+#define BOX_BOTTOM_HEIGHT 18
+#define BOX_BOTTOM_MENU_HEIGHT 61
+
+#define ITEM_WIDTH (33+98+33)
+#define ITEM_HEIGHT (98+64+16)
+#define ITEM_EDIT_WIDTH (3+23+95+23+3)
+#define ITEM_EDIT_HEIGHT (95+58+7)
+
+#define ITEM_ICON_WIDTH (105)
+#define ITEM_ICON_HEIGHT (108)
+
+#define ITEM_SMALL_ICON_WIDTH (95)
+#define ITEM_SMALL_ICON_HEIGHT (95)
+
+#define ITEM_ICON_Y (45)
+#define ITEM_TEXT_Y (90)
+
+#define ITEM_BADGE_X (29+87)
+#define ITEM_BADGE_Y (14)
+
+#define ITEM_BADGE_W 54
+#define ITEM_BADGE_H 59
+#define ITEM_BADGE_GAP 17
+#define ITEM_BADGE_2W (ITEM_BADGE_W+ITEM_BADGE_GAP)
+#define ITEM_BADGE_3W (ITEM_BADGE_W+(ITEM_BADGE_GAP*2))
+
+#define EDIT_BUTTON_SIZE_W (50)
+#define EDIT_BUTTON_SIZE_H (50)
+
+#define CTXPOPUP_ICON_SIZE 49
+
+/* Configuration */
+#define APPS_PER_PAGE 2
+#define LINE_SIZE 10
+#define LONGPRESS_TIME 0.5f
+
+#endif // _APPS_CONF_H_
+// End of file
diff --git a/home/include/apps/apps_main.h b/home/include/apps/apps_main.h
new file mode 100755
index 0000000..608c766
--- /dev/null
+++ b/home/include/apps/apps_main.h
@@ -0,0 +1,99 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __APPS_MAIN_H__
+#define __APPS_MAIN_H__
+
+#include <app.h>
+#include <Ecore_Evas.h>
+#include <efl_assist.h>
+#include <Elementary.h>
+#include <Evas.h>
+#include <stdbool.h>
+
+#include "util.h"
+
+typedef struct {
+ /* Multi-window : Every windows are written in the instance_list. */
+ Eina_List *instance_list;
+ Elm_Theme *theme;
+ Ea_Theme_Color_Table *color_theme;
+ Eina_List *font_theme;
+ int first_boot;
+ int updated;
+ double scale;
+ int tts;
+ bool longpress_edit_disable;
+} apps_main_s;
+
+typedef struct {
+ int state;
+ int root_w;
+ int root_h;
+ int booting_state;
+ int angle;
+ int is_rotated;
+ Eina_List *cbs_list[APPS_APP_STATE_MAX];
+ Evas *e;
+ Ecore_Evas *ee;
+ Evas_Object *win;
+ Evas_Object *layout;
+ char *content;
+} instance_info_s;
+
+
+enum {
+ APPS_LAUNCH_INIT = 0,
+ APPS_LAUNCH_SHOW,
+ APPS_LAUNCH_EDIT,
+ APPS_LAUNCH_HIDE,
+ APPS_LAUNCH_MAX,
+};
+
+HAPI apps_main_s *apps_main_get_info(void);
+
+HAPI apps_error_e apps_main_register_cb(
+ instance_info_s *info,
+ int state,
+ apps_error_e (*result_cb)(void *), void *result_data);
+
+HAPI void apps_main_unregister_cb(
+ instance_info_s *info,
+ int state,
+ apps_error_e (*result_cb)(void *));
+
+HAPI void apps_main_init();
+HAPI void apps_main_fini();
+HAPI void apps_main_launch(int launch_type);
+HAPI void apps_main_pause();
+HAPI void apps_main_resume();
+HAPI void apps_main_language_chnage();
+HAPI void apps_main_theme_chnage();
+HAPI Eina_Bool apps_main_is_visible();
+
+HAPI void apps_main_list_backup();
+HAPI void apps_main_list_restore();
+HAPI void apps_main_list_reset();
+
+HAPI void apps_main_list_tts(int is_tts);
+
+HAPI void apps_main_show_count_add(void);
+HAPI int apps_main_show_count_get(void);
+
+#endif //__APPS_MAIN_H__
+
+// End of a file
diff --git a/home/include/apps/bg.h b/home/include/apps/bg.h
new file mode 100755
index 0000000..87c9054
--- /dev/null
+++ b/home/include/apps/bg.h
@@ -0,0 +1,26 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __APPS_BG_H__
+#define __APPS_BG_H__
+
+#include <Evas.h>
+
+extern Evas_Object *apps_bg_create(Evas_Object *win, int w, int h);
+extern void apps_bg_destroy(Evas_Object *win);
+
+#endif /* __W_HOME_BG_H__ */
diff --git a/home/include/apps/db.h b/home/include/apps/db.h
new file mode 100755
index 0000000..d50fcb3
--- /dev/null
+++ b/home/include/apps/db.h
@@ -0,0 +1,59 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __APPS_DB_H__
+#define __APPS_DB_H__
+
+#include <stdbool.h>
+
+#include "util.h"
+
+typedef struct stmt stmt_h;
+
+apps_error_e apps_db_open(const char *db_file);
+stmt_h *apps_db_prepare(const char *query);
+apps_error_e apps_db_bind_bool(stmt_h *handle, int idx, bool value);
+apps_error_e apps_db_bind_int(stmt_h *handle, int idx, int value);
+apps_error_e apps_db_bind_str(stmt_h *handle, int idx, const char *str);
+apps_error_e apps_db_next(stmt_h *handle);
+bool apps_db_get_bool(stmt_h *handle, int index);
+int apps_db_get_int(stmt_h *handle, int index);
+const char *apps_db_get_str(stmt_h *handle, int index);
+apps_error_e apps_db_reset(stmt_h *handle);
+apps_error_e apps_db_finalize(stmt_h *handle);
+apps_error_e apps_db_exec(const char *query);
+void apps_db_close(void);
+
+apps_error_e apps_db_begin_transaction(void);
+apps_error_e apps_db_end_transaction(bool success);
+
+HAPI apps_error_e apps_db_init(void);
+HAPI int apps_db_insert_item(const char *id, int ordering);
+HAPI int apps_db_update_item(const char *id, int ordering);
+HAPI int apps_db_remove_item(const char *id);
+HAPI int apps_db_count_item(const char *id);
+HAPI int apps_db_count_item_in(void);
+
+HAPI apps_error_e apps_db_read_list(Eina_List *item_info_list);
+HAPI Eina_List *apps_db_write_list(void);
+HAPI Eina_List *apps_db_write_list_by_name(void);
+
+HAPI apps_error_e apps_db_find_empty_position(int *pos);
+HAPI apps_error_e apps_db_trim(void);
+HAPI apps_error_e apps_db_sync(void);
+
+#endif // __APPS_DB_H__
diff --git a/home/include/apps/effect.h b/home/include/apps/effect.h
new file mode 100755
index 0000000..724b5bc
--- /dev/null
+++ b/home/include/apps/effect.h
@@ -0,0 +1,34 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __APPS_EFFECT_H__
+#define __APPS_EFFECT_H__
+
+#include "util.h"
+
+HAPI apps_error_e apps_effect_init(void);
+HAPI void apps_effect_fini(void);
+
+HAPI void apps_effect_set_sound_status(int status);
+HAPI int apps_effect_get_sound_status(void);
+
+HAPI void apps_effect_play_sound(void);
+HAPI void apps_effect_play_vibration(void);
+
+#endif //__APPS_EFFECT_H__
+
+// End of a file
diff --git a/home/include/apps/grid.h b/home/include/apps/grid.h
new file mode 100755
index 0000000..6f2ad13
--- /dev/null
+++ b/home/include/apps/grid.h
@@ -0,0 +1,37 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __APPS_GRID_H__
+#define __APPS_GRID_H__
+
+#include <Evas.h>
+
+#include "util.h"
+#include "apps/list.h"
+
+HAPI void grid_destroy(Evas_Object *win, Evas_Object *grid);
+HAPI Evas_Object *grid_create(Evas_Object *win, Evas_Object *parent);
+HAPI void grid_refresh(Evas_Object *grid);
+
+HAPI void grid_show_top(Evas_Object *grid);
+
+HAPI void grid_append_list(Evas_Object *grid, Eina_List *list);
+HAPI void grid_remove_list(Evas_Object *grid, Eina_List *list);
+
+#endif //__APPS_GRID_H__
+
+// End of a file
diff --git a/home/include/apps/item.h b/home/include/apps/item.h
new file mode 100755
index 0000000..0bd9251
--- /dev/null
+++ b/home/include/apps/item.h
@@ -0,0 +1,42 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __APPS_ITEM_H__
+#define __APPS_ITEM_H__
+
+#include <Evas.h>
+#include "apps/item_info.h"
+#include "util.h"
+
+HAPI void item_destroy(Evas_Object *item);
+HAPI Evas_Object *item_create(Evas_Object *scroller, item_info_s *info);
+
+HAPI Evas_Object *item_virtual_create(Evas_Object *scroller);
+HAPI void item_virtual_destroy(Evas_Object *item);
+
+HAPI void item_change_language(Evas_Object *item);
+
+HAPI void item_edit(Evas_Object *item);
+HAPI void item_unedit(Evas_Object *item);
+
+HAPI Evas_Object* item_get_press_item(Evas_Object *scroller);
+HAPI int item_is_longpressed(Evas_Object *item);
+
+HAPI void item_is_pressed(Evas_Object *item);
+HAPI void item_is_released(Evas_Object *item);
+
+#endif // __APPS_ITEM_H__
diff --git a/home/include/apps/item_badge.h b/home/include/apps/item_badge.h
new file mode 100755
index 0000000..56f723b
--- /dev/null
+++ b/home/include/apps/item_badge.h
@@ -0,0 +1,41 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __APPS_ITEM_BADGE_H__
+#define __APPS_ITEM_BADGE_H__
+
+#include <Elementary.h>
+
+#include "util.h"
+
+HAPI int item_badge_count(Evas_Object *item);
+
+HAPI int item_badge_is_registered(const char *appid);
+HAPI apps_error_e item_badge_init(Evas_Object *item);
+HAPI void item_badge_destroy(Evas_Object *item);
+
+HAPI void item_badge_register_changed_cb(Evas_Object *layout);
+HAPI void item_badge_unregister_changed_cb(void);
+
+HAPI void item_badge_show(Evas_Object *item, int count);
+HAPI void item_badge_hide(Evas_Object *item);
+HAPI void item_badge_change_language(Evas_Object *item);
+HAPI void item_badge_remove(const char *pkgid);
+
+#endif //__APPS_ITEM_BADGE_H__
+
+// End of a file
diff --git a/home/include/apps/item_info.h b/home/include/apps/item_info.h
new file mode 100755
index 0000000..540ad4f
--- /dev/null
+++ b/home/include/apps/item_info.h
@@ -0,0 +1,75 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __APPS_ITEM_INFO_H__
+#define __APPS_ITEM_INFO_H__
+
+#include <Elementary.h>
+#include <Evas.h>
+
+#include "apps/apps_main.h"
+#include "util.h"
+
+typedef struct {
+ /* innate features */
+ char *pkgid;
+ char *appid;
+ char *name;
+ char *icon;
+ char *type;
+
+ int ordering;
+ int open_app;
+ int tts;
+
+ /* acquired features */
+ Evas_Object *win;
+ Evas_Object *layout;
+ instance_info_s *instance_info;
+
+ Evas_Object *scroller;
+ Evas_Object *box;
+ Evas_Object *page;
+
+ Evas_Object *item;
+ Evas_Object *item_inner;
+ Evas_Object *center;
+} item_info_s;
+
+typedef enum {
+ ITEM_INFO_LIST_TYPE_INVALID = 0,
+ ITEM_INFO_LIST_TYPE_ALL,
+ ITEM_INFO_LIST_TYPE_FACTORY_BINARY,
+ ITEM_INFO_LIST_TYPE_XML,
+ ITEM_INFO_LIST_TYPE_MAX,
+} item_info_list_type_e;
+
+HAPI void apps_item_info_destroy(item_info_s *item_info);
+HAPI item_info_s *apps_item_info_create(const char *appid);
+HAPI item_info_s *apps_item_info_get(Evas_Object *win, const char *appid);
+
+HAPI Eina_List *apps_item_info_list_create(item_info_list_type_e list_type);
+HAPI void apps_item_info_list_destroy(Eina_List *item_info_list);
+
+HAPI Evas_Object *apps_item_info_list_get_item(Eina_List *item_info_list, const char *appid);
+HAPI int apps_item_info_list_get_ordering(Eina_List *item_info_list, const char *appid);
+
+HAPI void apps_item_info_list_change_language(Eina_List *item_info_list);
+
+HAPI int apps_item_info_is_support_tts(const char *appid);
+
+#endif // __APPS_ITEM_INFO_H__
diff --git a/home/include/apps/lang.h b/home/include/apps/lang.h
new file mode 100755
index 0000000..b2267f3
--- /dev/null
+++ b/home/include/apps/lang.h
@@ -0,0 +1,33 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __APPS_LANG_H__
+#define __APPS_LANG_H__
+
+#include <Elementary.h>
+
+#include "util.h"
+
+HAPI apps_error_e apps_lang_add_id(Evas_Object *obj, const char *group, const char *id, int domain);
+HAPI void apps_lang_remove_id(Evas_Object *obj, const char *group);
+
+HAPI apps_error_e apps_lang_register_cb(apps_error_e (*result_cb)(void *), void *result_data);
+HAPI void apps_lang_unregister_cb(apps_error_e (*result_cb)(void *));
+
+HAPI void apps_lang_refresh_ids(void);
+
+#endif /* __APPS_LANG_H__ */
diff --git a/home/include/apps/layout.h b/home/include/apps/layout.h
new file mode 100755
index 0000000..50acbf9
--- /dev/null
+++ b/home/include/apps/layout.h
@@ -0,0 +1,43 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __APPS_LAYOUT_H__
+#define __APPS_LAYOUT_H__
+
+#include <Evas.h>
+#include "util.h"
+
+HAPI Evas_Object *apps_layout_create(Evas_Object *win, const char *file, const char *group);
+HAPI void apps_layout_destroy(Evas_Object *layout);
+
+HAPI apps_error_e apps_layout_show(Evas_Object *win, Eina_Bool show);
+
+HAPI Evas_Object* apps_layout_load_edj(Evas_Object *parent, const char *edjname, const char *grpname);
+HAPI void apps_layout_unload_edj(Evas_Object *layout);
+
+HAPI void apps_layout_rotate(Evas_Object *layout, int is_rotated);
+
+HAPI void apps_layout_block(Evas_Object *layout);
+HAPI void apps_layout_unblock(Evas_Object *layout);
+
+HAPI int apps_layout_is_edited(Evas_Object *layout);
+HAPI void apps_layout_edit(Evas_Object *layout);
+HAPI void apps_layout_unedit(Evas_Object *layout);
+
+#endif //__APPS_LAYOUT_H__
+
+// End of a file
diff --git a/home/include/apps/list.h b/home/include/apps/list.h
new file mode 100644
index 0000000..ed3a4fa
--- /dev/null
+++ b/home/include/apps/list.h
@@ -0,0 +1,42 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __APPS_LIST_H__
+#define __APPS_LIST_H__
+
+#include <Evas.h>
+#include <stdbool.h>
+
+#include "apps/item_info.h"
+#include "util.h"
+
+typedef struct _app_list {
+ Eina_List *list;
+ unsigned int cur_idx;
+} app_list;
+
+HAPI bool list_is_included(const char *id);
+
+HAPI app_list *list_create(void);
+HAPI app_list *list_create_by_appid(void);
+HAPI void list_destroy(app_list *list);
+
+HAPI void list_change_language(app_list *list);
+
+#endif //__APPS_LIST_H__
+
+// End of a file
diff --git a/home/include/apps/page.h b/home/include/apps/page.h
new file mode 100755
index 0000000..30ae23a
--- /dev/null
+++ b/home/include/apps/page.h
@@ -0,0 +1,73 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __APPS_PAGE_H__
+#define __APPS_PAGE_H__
+
+#include <Evas.h>
+#include "util.h"
+
+HAPI void apps_page_destroy(Evas_Object *page);
+HAPI Evas_Object *apps_page_create(Evas_Object *scroller, Evas_Object *prev_page, Evas_Object *next_page);
+
+HAPI apps_error_e apps_page_pack_item(Evas_Object *page, Evas_Object *item);
+HAPI apps_error_e apps_page_unpack_item(Evas_Object *page, Evas_Object *item);
+
+HAPI int apps_page_count_item(Evas_Object *page);
+
+HAPI Evas_Object *apps_page_get_item_at(Evas_Object *page, int position);
+
+HAPI apps_error_e apps_page_pack_nth(Evas_Object *page, Evas_Object *item, int position);
+HAPI Evas_Object *apps_page_unpack_nth(Evas_Object *page, int position);
+
+HAPI void apps_page_change_language(Evas_Object *page);
+
+HAPI int apps_page_has_item(Evas_Object *page, Evas_Object *item);
+
+/*
+ * origin order :
+ * ---------------------------------------------------------------------------
+ * | from_item | from_item + 1 | ... | to_item - 1 | to_item |
+ * ---------------------------------------------------------------------------
+ * changed order : from_item will be returned.
+ * ---------------------------------------------------------------------------
+ * | from_item + 1 | from_item + 2 | ... | to_item | append_item |
+ * ---------------------------------------------------------------------------
+ */
+HAPI Evas_Object *apps_page_move_item_prev(Evas_Object *page, Evas_Object *from_item, Evas_Object *to_item, Evas_Object *append_item);
+
+/*
+ * origin order :
+ * ---------------------------------------------------------------------------
+ * | from_item | from_item + 1 | ... | to_item - 1 | to_item |
+ * ---------------------------------------------------------------------------
+ * changed order : to_item will be returned.
+ * ---------------------------------------------------------------------------
+ * | insert_item | from_item | ... | ... | to_item - 1 |
+ * ---------------------------------------------------------------------------
+ */
+HAPI Evas_Object *apps_page_move_item_next(Evas_Object *page, Evas_Object *from_item, Evas_Object *to_item, Evas_Object *insert_item);
+
+HAPI int apps_page_seek_item_position(Evas_Object *page, Evas_Object *item);
+HAPI void apps_page_print_item(Evas_Object *page);
+
+HAPI void apps_page_edit(Evas_Object *page);
+HAPI void apps_page_unedit(Evas_Object *page);
+
+#endif //__APPS_PAGE_H__
+
+// End of a file
diff --git a/home/include/apps/page_info.h b/home/include/apps/page_info.h
new file mode 100755
index 0000000..2140772
--- /dev/null
+++ b/home/include/apps/page_info.h
@@ -0,0 +1,38 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __APPS_PAGE_INFO_H__
+#define __APPS_PAGE_INFO_H__
+
+#include <Evas.h>
+#include "apps/apps_main.h"
+
+typedef struct {
+ Evas_Object *win;
+ instance_info_s *instance_info;
+
+ Evas_Object *scroller;
+ Evas_Object *page_rect;
+
+ Evas_Object *prev_page;
+ Evas_Object *page;
+ Evas_Object *next_page;
+} page_info_s;
+
+#endif //__APPS_PAGE_INFO_H__
+
+// End of a file
diff --git a/home/include/apps/pkgmgr.h b/home/include/apps/pkgmgr.h
new file mode 100755
index 0000000..28cbabe
--- /dev/null
+++ b/home/include/apps/pkgmgr.h
@@ -0,0 +1,41 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __APPS_PKGMGR_H__
+#define __APPS_PKGMGR_H__
+
+#include <Evas.h>
+
+#include "apps/list.h"
+#include "util.h"
+
+
+
+HAPI apps_error_e apps_pkgmgr_init(void);
+HAPI void apps_pkgmgr_fini(void);
+
+HAPI apps_error_e apps_pkgmgr_item_list_append_item(const char *pkgid, const char *app_id, Evas_Object *item);
+HAPI apps_error_e apps_pkgmgr_item_list_remove_item(const char *pkgid, const char *app_id, Evas_Object *item);
+HAPI void apps_pkgmgr_item_list_affect_pkgid(const char *pkgid, Eina_Bool (*_affected_cb)(const char *, Evas_Object *, void *), void *data);
+HAPI void apps_pkgmgr_item_list_affect_appid(const char *app_id, Eina_Bool (*_affected_cb)(const char *, Evas_Object *, void *), void *data);
+
+HAPI apps_error_e apps_pkgmgr_item_list_enable_mounted_item(void);
+HAPI apps_error_e apps_pkgmgr_item_list_disable_unmounted_item(void);
+
+#endif //__APPS_PKGMGR_H__
+
+// End of a file
diff --git a/home/include/apps/scroller.h b/home/include/apps/scroller.h
new file mode 100755
index 0000000..a0fceed
--- /dev/null
+++ b/home/include/apps/scroller.h
@@ -0,0 +1,71 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __APPS_SCROLLER_H__
+#define __APPS_SCROLLER_H__
+
+#include <Evas.h>
+
+#include "apps/apps_main.h"
+#include "util.h"
+
+HAPI void apps_scroller_destroy(Evas_Object *layout);
+HAPI Evas_Object *apps_scroller_create(Evas_Object *layout);
+
+HAPI int apps_scroller_count_page(Evas_Object *scroller);
+HAPI int apps_scroller_count_item(Evas_Object *scroller);
+HAPI Eina_Bool apps_scroller_is_scrolling(Evas_Object *scroller);
+
+HAPI void apps_scroller_freeze(Evas_Object *scroller);
+HAPI void apps_scroller_unfreeze(Evas_Object *scroller);
+
+HAPI void apps_scroller_bring_in(Evas_Object *scroller, int page_no);
+HAPI void apps_scroller_bring_in_page(Evas_Object *scroller, Evas_Object *page);
+
+HAPI void apps_scroller_region_show(Evas_Object *scroller, int x, int y);
+
+HAPI void apps_scroller_append_item(Evas_Object *scroller, Evas_Object *item);
+HAPI void apps_scroller_remove_item(Evas_Object *scroller, Evas_Object *item);
+
+HAPI void apps_scroller_append_list(Evas_Object *scroller, Eina_List *list);
+HAPI void apps_scroller_remove_list(Evas_Object *scroller, Eina_List *list);
+
+HAPI void apps_scroller_trim(Evas_Object *scroller);
+
+HAPI void apps_scroller_change_language(Evas_Object *scroller);
+
+/* return a page that has the item */
+HAPI Evas_Object *apps_scroller_has_item(Evas_Object *scroller, Evas_Object *item);
+
+HAPI Evas_Object *apps_scroller_move_item_prev(Evas_Object *scroller, Evas_Object *from_item, Evas_Object *to_item, Evas_Object *append_item);
+HAPI Evas_Object *apps_scroller_move_item_next(Evas_Object *scroller, Evas_Object *from_item, Evas_Object *to_item, Evas_Object *insert_item);
+
+HAPI int apps_scroller_seek_item_position(Evas_Object *scroller, Evas_Object *item);
+HAPI void apps_scroller_bring_in_region_by_vector(Evas_Object *scroller, int vector);
+
+HAPI apps_error_e apps_scroller_read_list(Evas_Object *scroller, Eina_List *item_info_list);
+HAPI void apps_scroller_write_list(Evas_Object *scroller);
+
+HAPI Evas_Object *apps_scroller_get_item_by_pkgid(Evas_Object *scroller, const char *pkgid);
+HAPI Evas_Object *apps_scroller_get_item_by_appid(Evas_Object *scroller, const char *appid);
+
+HAPI void apps_scroller_edit(Evas_Object *scroller);
+HAPI void apps_scroller_unedit(Evas_Object *scroller);
+
+#endif //__APPS_SCROLLER_H__
+
+// End of a file
diff --git a/home/include/apps/scroller_info.h b/home/include/apps/scroller_info.h
new file mode 100755
index 0000000..a762433
--- /dev/null
+++ b/home/include/apps/scroller_info.h
@@ -0,0 +1,41 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __APPS_SCROLLER_INFO_H__
+#define __APPS_SCROLLER_INFO_H__
+
+#include <Evas.h>
+#include "apps/apps_main.h"
+
+typedef struct {
+ Evas_Object *win;
+ instance_info_s *instance_info;
+
+ Evas_Object *layout;
+ Evas_Object *box_layout;
+ Evas_Object *box;
+ Evas_Object *layout_focus;
+ Evas_Object *top_focus;
+ Evas_Object *bottom_focus;
+
+ Eina_List *list;
+ int list_index;
+} scroller_info_s;
+
+#endif //__APPS_SCROLLER_INFO_H__
+
+// End of a file
diff --git a/home/include/apps/xml.h b/home/include/apps/xml.h
new file mode 100755
index 0000000..38a7d74
--- /dev/null
+++ b/home/include/apps/xml.h
@@ -0,0 +1,26 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __APPS_XML_H__
+#define __APPS_XML_H__
+
+#include "util.h"
+
+HAPI apps_error_e apps_xml_read_list(const char *xml_file, Eina_List *item_info_list);
+HAPI Eina_List *apps_xml_write_list(const char *xml_file);
+
+#endif // __APPS_XML_H__
diff --git a/home/include/bg.h b/home/include/bg.h
new file mode 100755
index 0000000..92f7a50
--- /dev/null
+++ b/home/include/bg.h
@@ -0,0 +1,29 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_BG_H__
+#define __W_HOME_BG_H__
+
+extern Evas_Object *bg_create(Evas_Object *win);
+extern void bg_destroy(Evas_Object *win);
+
+extern void bg_get_rgb(int *r, int *g, int *b);
+extern void bg_set_rgb(Evas_Object *bg, const char *buf);
+
+extern void bg_register_object(Evas_Object *obj);
+
+#endif /* __W_HOME_BG_H__ */
diff --git a/home/include/clock_service.h b/home/include/clock_service.h
new file mode 100755
index 0000000..dcd03f1
--- /dev/null
+++ b/home/include/clock_service.h
@@ -0,0 +1,262 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __CLOCK_SERVICE_H
+#define __CLOCK_SERVICE_H
+
+#define PAGE_CLOCK_EDJE_FILE EDJEDIR"/page_clock.edj"
+
+#define CLOCK_RET_OK 0
+#define CLOCK_RET_FAIL 1
+#define CLOCK_RET_ASYNC 2
+#define CLOCK_RET_NEED_DESTROY_PREVIOUS 4
+
+#define CLOCK_SERVICE_MODE_NORMAL 1
+#define CLOCK_SERVICE_MODE_NORMAL_RECOVERY 2
+#define CLOCK_SERVICE_MODE_RECOVERY 3
+#define CLOCK_SERVICE_MODE_EMERGENCY 4
+#define CLOCK_SERVICE_MODE_COOLDOWN 5
+
+#define CLOCK_APP_TYPE_NATIVE 1
+#define CLOCK_APP_TYPE_WEBAPP 2
+#define CLOCK_APP_FACTORY_DEFAULT "org.tizen.w-idle-clock-weather2"
+#define CLOCK_APP_RECOVERY "org.tizen.idle-clock-digital"
+#define CLOCK_APP_EMERGENCY "org.tizen.idle-clock-ups"
+#define CLOCK_APP_COOLDOWN "org.tizen.idle-clock-emergency"
+
+#define CLOCK_STATE_IDLE 0
+#define CLOCK_STATE_WAITING 1
+#define CLOCK_STATE_RUNNING 2
+
+/*
+ * Events
+ */
+#define CLOCK_EVENT_MAP(SOURCE, TYPE) ((SOURCE << 16) | TYPE)
+
+/*
+ * instant events
+ */
+#define CLOCK_EVENT_VIEW 0x0000
+#define CLOCK_EVENT_VIEW_READY CLOCK_EVENT_MAP(CLOCK_EVENT_VIEW, 0x0)
+#define CLOCK_EVENT_VIEW_RESIZED CLOCK_EVENT_MAP(CLOCK_EVENT_VIEW, 0x1)
+#define CLOCK_EVENT_VIEW_HIDDEN_SHOW CLOCK_EVENT_MAP(CLOCK_EVENT_VIEW, 0x2)
+#define CLOCK_EVENT_VIEW_HIDDEN_HIDE CLOCK_EVENT_MAP(CLOCK_EVENT_VIEW, 0x4)
+#define CLOCK_EVENT_APP 0x0001
+#define CLOCK_EVENT_APP_PROVIDER_ERROR CLOCK_EVENT_MAP(CLOCK_EVENT_APP, 0x0)
+#define CLOCK_EVENT_APP_PROVIDER_ERROR_FATAL CLOCK_EVENT_MAP(CLOCK_EVENT_APP, 0x1)
+#define CLOCK_EVENT_APP_PAUSE CLOCK_EVENT_MAP(CLOCK_EVENT_APP, 0x2)
+#define CLOCK_EVENT_APP_RESUME CLOCK_EVENT_MAP(CLOCK_EVENT_APP, 0x4)
+#define CLOCK_EVENT_APP_LANGUAGE_CHANGED CLOCK_EVENT_MAP(CLOCK_EVENT_APP, 0x8)
+#define CLOCK_EVENT_DEVICE 0x0002
+#define CLOCK_EVENT_DEVICE_BACK_KEY CLOCK_EVENT_MAP(CLOCK_EVENT_DEVICE, 0x0)
+#define CLOCK_EVENT_DEVICE_LCD 0x0004
+#define CLOCK_EVENT_DEVICE_LCD_ON CLOCK_EVENT_MAP(CLOCK_EVENT_DEVICE_LCD, 0x0)
+#define CLOCK_EVENT_DEVICE_LCD_OFF CLOCK_EVENT_MAP(CLOCK_EVENT_DEVICE_LCD, 0x1)
+
+/*
+ * ongoing events
+ */
+#define CLOCK_EVENT_SCREEN_READER 0x0008
+#define CLOCK_EVENT_SCREEN_READER_ON CLOCK_EVENT_MAP(CLOCK_EVENT_SCREEN_READER, 0x0)
+#define CLOCK_EVENT_SCREEN_READER_OFF CLOCK_EVENT_MAP(CLOCK_EVENT_SCREEN_READER, 0x1)
+#define CLOCK_EVENT_SAP 0x0020
+#define CLOCK_EVENT_SAP_ON CLOCK_EVENT_MAP(CLOCK_EVENT_SAP, 0x0)
+#define CLOCK_EVENT_SAP_OFF CLOCK_EVENT_MAP(CLOCK_EVENT_SAP, 0x1)
+#define CLOCK_EVENT_MODEM 0x0040
+#define CLOCK_EVENT_MODEM_ON CLOCK_EVENT_MAP(CLOCK_EVENT_MODEM, 0x0)
+#define CLOCK_EVENT_MODEM_OFF CLOCK_EVENT_MAP(CLOCK_EVENT_MODEM, 0x1)
+#define CLOCK_EVENT_DND 0x0080
+#define CLOCK_EVENT_DND_ON CLOCK_EVENT_MAP(CLOCK_EVENT_DND, 0x0)
+#define CLOCK_EVENT_DND_OFF CLOCK_EVENT_MAP(CLOCK_EVENT_DND, 0x1)
+#define CLOCK_EVENT_SCROLLER 0x0100
+#define CLOCK_EVENT_SCROLLER_FREEZE_ON CLOCK_EVENT_MAP(CLOCK_EVENT_SCROLLER, 0x0)
+#define CLOCK_EVENT_SCROLLER_FREEZE_OFF CLOCK_EVENT_MAP(CLOCK_EVENT_SCROLLER, 0x1)
+#define CLOCK_EVENT_POWER 0x0200
+#define CLOCK_EVENT_POWER_ENHANCED_MODE_ON CLOCK_EVENT_MAP(CLOCK_EVENT_POWER, 0x0)
+#define CLOCK_EVENT_POWER_ENHANCED_MODE_OFF CLOCK_EVENT_MAP(CLOCK_EVENT_POWER, 0x1)
+#define CLOCK_EVENT_SIM 0x0400
+#define CLOCK_EVENT_SIM_INSERTED CLOCK_EVENT_MAP(CLOCK_EVENT_SIM, 0x0)
+#define CLOCK_EVENT_SIM_NOT_INSERTED CLOCK_EVENT_MAP(CLOCK_EVENT_SIM, 0x1)
+#define CLOCK_EVENT_CFWD 0x0800
+
+#define CLOCK_EVENT_CATEGORY(X) CLOCK_EVENT_MAP(X, 0x0)
+
+#define CLOCK_SMART_SIGNAL_PAUSE "clock,paused"
+#define CLOCK_SMART_SIGNAL_RESUME "clock,resume"
+#define CLOCK_SMART_SIGNAL_VIEW_REQUEST "clock,view,request"
+
+#define CLOCK_VIEW_REQUEST_DRAWER_HIDE 1
+#define CLOCK_VIEW_REQUEST_DRAWER_SHOW 2
+
+#define CLOCK_ATTACHED 1
+#define CLOCK_CANDIDATE 2
+
+#define CLOCK_INF_MINICONTROL 1
+#define CLOCK_INF_DBOX 2
+
+#define CLOCK_CONF_NONE 0
+#define CLOCK_CONF_WIN_ACTIVATION 1
+#define CLOCK_CONF_CLOCK_CONFIGURATION 2
+
+#define CLOCK_VIEW_TYPE_DRAWER 1
+
+#define VCONFKEY_MUSIC_STATUS "memory/homescreen/music_status"
+
+enum {
+ INDICATOR_HIDE_WITH_EFFECT,
+ INDICATOR_HIDE,
+ INDICATOR_SHOW,
+ INDICATOR_SHOW_WITH_EFFECT,
+};
+
+typedef struct {
+ int configure;
+ int interface;
+ int app_type;
+ int async;
+ int state;
+ int use_dead_monitor;
+ int pid;
+ int need_event_relay;
+ char *view_id;
+ char *appid;
+ char *pkgname;
+ void *view;
+ int w;
+ int h;
+} clock_s;
+typedef clock_s * clock_h;
+
+typedef struct _clock_inf_s {
+ int async;
+ int use_dead_monitor;
+ int (*prepare) (clock_h);
+ int (*config) (clock_h, int);
+ int (*create) (clock_h);
+ int (*attached_cb) (clock_h);
+ int (*destroy) (clock_h);
+} clock_inf_s;
+
+/*!
+ * Clock Service
+ */
+extern void clock_service_init(void);
+extern void clock_service_fini(void);
+
+extern void clock_service_mode_set(int mode);
+extern int clock_service_mode_get(void);
+extern char *clock_service_clock_pkgname_get(void);
+extern void clock_service_request(int mode);
+extern void clock_service_pause(void);
+extern void clock_service_resume(void);
+extern void clock_service_app_dead_cb(int pid);
+extern void clock_service_event_handler(clock_h clock, int event);
+extern int clock_service_clock_selector_launch(void);
+extern void clock_service_scroller_freezed_set(int is_freeze);
+extern int clock_service_scroller_freezed_get(void);
+extern const int const clock_service_get_retry_count(void);
+
+/*!
+ * Clock Event
+ */
+extern void clock_service_event_register(void);
+extern void clock_service_event_deregister(void);
+extern int clock_service_event_state_get(int event_source);
+extern void clock_service_event_app_dead_cb(int pid);
+
+/*!
+ * Clock manager
+ */
+extern clock_h clock_new(const char *pkgname);
+extern void clock_del(clock_h clock);
+
+extern int clock_manager_view_prepare(clock_h clock);
+extern int clock_manager_view_configure(clock_h clock, int type);
+extern int clock_manager_view_create(clock_h clock);
+extern int clock_manager_view_destroy(clock_h clock);
+extern int clock_manager_view_attach(clock_h clock);
+extern int clock_manager_view_deattach(clock_h clock);
+extern int clock_manager_view_exchange(clock_h clock, void *view);
+
+extern int clock_manager_clock_inf_type_get(const char *pkgname);
+extern clock_h clock_manager_clock_get(int type);
+extern void clock_manager_clock_set(int type, clock_h clock);
+extern int clock_manager_view_state_get(int view_type);
+
+/*!
+ * Clock View
+ */
+extern void clock_view_indicator_show(int is_show);
+extern Evas_Object *clock_view_add(Evas_Object *parent, Evas_Object *item);
+extern int clock_view_attach(Evas_Object *page);
+extern int clock_view_deattach(Evas_Object *page);
+extern void clock_view_show(Evas_Object *page);
+extern void clock_view_event_handler(clock_h clock, int event, int need_relay);
+extern Evas_Object *clock_view_empty_add(void);
+extern int clock_view_display_state_get(Evas_Object *page, int view_type);
+extern Evas_Object *clock_view_get_item(Evas_Object *view);
+
+/*!
+ * Clock Hidden view
+ */
+extern Evas_Object *clock_view_hidden_add(Evas_Object *page);
+extern void clock_view_hidden_event_handler(Evas_Object *page, int event);
+
+/*!
+ * Clock Visual Cue
+ */
+extern Evas_Object *clock_view_cue_add(Evas_Object *page);
+extern void clock_view_cue_display_set(Evas_Object *page, int is_display, int is_need_vi);
+
+/*!
+ * Clock Shortcut
+ */
+extern void clock_shortcut_init(void);
+extern void clock_shortcut_fini(void);
+extern void clock_shortcut_view_add(Evas_Object *page);
+extern void clock_shortcut_app_dead_cb(int pid);
+
+/*!
+ * Clock indicator
+ */
+extern void clock_view_indicator_add(Evas_Object *page);
+extern void clock_view_indicator_event_handler(Evas_Object *page, int event);
+
+/*!
+ * Clock Uitility
+ */
+extern char *clock_util_wms_configuration_get(void);
+extern int clock_util_wms_configuration_set(const char *pkgname);
+extern int clock_util_provider_launch(const char *clock_pkgname, int *pid_a, int configure);
+extern void clock_util_terminate_clock_by_pid(int pid);
+extern int clock_util_screen_reader_enabled_get(void);
+extern int clock_util_setting_conf_get(void);
+extern void clock_util_setting_conf_set(int value);
+extern void clock_util_setting_conf_bundle_add(bundle *b, int type);
+extern const char *clock_util_setting_conf_content(int type);
+
+/*!
+ * Clock interface::minicontrol
+ */
+extern void clock_inf_minictrl_event_hooker(int action, int pid, const char *minictrl_id, int is_realized, int width, int height);
+
+/*!
+ * Clock interface::dbox
+ */
+extern int clock_inf_prepare_first_clock(const char *pkgname);
+
+#endif
diff --git a/home/include/conf.h b/home/include/conf.h
new file mode 100755
index 0000000..8cbdd01
--- /dev/null
+++ b/home/include/conf.h
@@ -0,0 +1,87 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 _W_HOME_CONF_H_
+#define _W_HOME_CONF_H_
+
+/* Layout */
+#define BASE_WIDTH (360.0)
+#define BASE_HEIGHT (480.0)
+
+#define SCROLLER_NORMAL_HEIGHT BASE_HEIGHT
+#define SCROLLER_EDIT_HEIGHT BASE_HEIGHT
+
+#define INDICATOR_START_Y (7.0)
+#define INDICATOR_HEIGHT (20.0)
+
+#define INDEX_THUMBNAIL_HOME_BG_SIZE 20 20
+#define INDEX_THUMBNAIL_HOME_IND_SIZE 20 20
+
+#define PAGE_EDIT_PAD_WIDTH (16.0)
+#define PAGE_EDIT_SIDE_PAD_WIDTH (40+16)
+
+#define PAGE_EDIT_WIDTH (PAGE_EDIT_PAD_WIDTH+216.0+PAGE_EDIT_PAD_WIDTH)
+#define PAGE_EDIT_HEIGHT (25.0+29.0+265.0)
+
+#define ITEM_EDIT_WIDTH (216.0)
+#define ITEM_EDIT_HEIGHT (288.0)
+
+#define ITEM_EDIT_EF_WIDTH 242
+#define ITEM_EDIT_EF_HEIGHT 314
+
+#define ITEM_EDIT_LINE_WIDTH (ITEM_EDIT_WIDTH+4)
+#define ITEM_EDIT_LINE_HEIGHT (ITEM_EDIT_HEIGHT+4)
+
+#define ADD_WIDGET_BUTTON_HEIGHT (24+37+24)
+#define BUTTON_HEIGHT_REL (0.15)
+#define ADD_WIDGET_BUTTON_TEXT_MIN 328 86
+#define ADD_VIEWER_PREVIEW_WIDTH 216
+#define ADD_VIEWER_PREVIEW_HEIGHT 288
+#define ADD_VIEWER_PREVIEW_LINE_WIDTH (ADD_VIEWER_PREVIEW_WIDTH+4)
+#define ADD_VIEWER_PREVIEW_LINE_HEIGHT (ADD_VIEWER_PREVIEW_HEIGHT+4)
+#define ADD_VIEWER_TEXT_HEIGHT 74
+#define ADD_VIEWER_PAGE_WIDTH 360
+#define ADD_VIEWER_PAGE_HEIGHT 377
+#define ADD_VIEWER_PREVIEW_PAD_LEFT 72
+#define ADD_VIEWER_PREVIEW_PAD_TOP 7
+#define ADD_VIEWER_PAD 8
+
+#define CLOCK_SHORTCUT_AREA_W 90
+#define CLOCK_SHORTCUT_AREA_H 90
+
+#define BEZEL_MOVE_THRESHOLD 80
+
+#define BUTTON_LOCATION 411.5
+
+#define CLOSE_BUTTON_X 316
+#define CLOSE_BUTTON_Y 41
+
+#define IMAGE_Y 112
+
+/* Configuration */
+#define BOOTING_STATE_DONE 1
+#define MAX_DBOX 5
+#define LONGPRESS_THRESHOLD 15
+#define LONGPRESS_TIME 0.5f
+#define INDEX_UPDATE_TIME 0.1f
+
+#define DEFAULT_XML_FILE RESDIR"/default_items.xml"
+#define TTS_XML_FILE RESDIR"/default_items_tts.xml"
+#define APP_CONTROL_OPERATION_MAIN "http://tizen.org/appcontrol/operation/main"
+
+#endif // _W_HOME_CONF_H_
+// End of file
diff --git a/home/include/critical_log.h b/home/include/critical_log.h
new file mode 100755
index 0000000..169ebb6
--- /dev/null
+++ b/home/include/critical_log.h
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2013 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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.
+ */
+
+extern int critical_log(const char *func, int line, const char *fmt, ...);
+extern int critical_log_init(const char *tag);
+extern void critical_log_fini(void);
+
+#if defined(ENABLE_CRITICAL_LOG)
+#define CRITICAL_LOG(args...) critical_log(__func__, __LINE__, args)
+#define CRITICAL_LOG_INIT(a) critical_log_init(a)
+#define CRITICAL_LOG_FINI() critical_log_fini()
+#else
+#define CRITICAL_LOG(args...)
+#define CRITICAL_LOG_INIT(a) (0)
+#define CRITICAL_LOG_FINI()
+#endif
+
+/* End of a file */
diff --git a/home/include/db.h b/home/include/db.h
new file mode 100755
index 0000000..7ab7806
--- /dev/null
+++ b/home/include/db.h
@@ -0,0 +1,60 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_DB_H__
+#define __W_HOME_DB_H__
+
+typedef struct stmt stmt_h;
+typedef enum {
+ DB_FILE_INVALID = 0,
+ DB_FILE_NORMAL,
+ DB_FILE_TTS,
+ DB_FILE_MAX
+} db_file_e;
+
+extern w_home_error_e db_init(db_file_e db_file);
+extern w_home_error_e db_open(const char *db_file);
+extern stmt_h *db_prepare(const char *query);
+extern w_home_error_e db_bind_bool(stmt_h *handle, int idx, bool value);
+extern w_home_error_e db_bind_int(stmt_h *handle, int idx, int value);
+extern w_home_error_e db_bind_str(stmt_h *handle, int idx, const char *str);
+extern w_home_error_e db_next(stmt_h *handle);
+extern bool db_get_bool(stmt_h *handle, int index);
+extern int db_get_int(stmt_h *handle, int index);
+extern const char *db_get_str(stmt_h *handle, int index);
+extern w_home_error_e db_reset(stmt_h *handle);
+extern w_home_error_e db_finalize(stmt_h *handle);
+extern w_home_error_e db_exec(const char *query);
+extern void db_close(void);
+
+extern w_home_error_e db_begin_transaction(void);
+extern w_home_error_e db_end_transaction(bool success);
+
+extern int db_insert_item(const char *id, const char *subid, int ordering);
+extern int db_update_item(const char *id, const char *subid, int ordering);
+extern int db_update_item_by_ordering(const char *id, const char *subid, int ordering);
+extern int db_remove_item(const char *id, const char *subid);
+extern int db_remove_item_after_max(int max);
+extern int db_remove_all_item(void);
+
+extern int db_count_item(const char *id, const char *subid);
+extern int db_count_ordering(int ordering);
+
+extern w_home_error_e db_read_list(Eina_List *page_info_list);
+extern Eina_List *db_write_list(void);
+
+#endif // __W_HOME_DB_H__
diff --git a/home/include/dbox.h b/home/include/dbox.h
new file mode 100644
index 0000000..69a7d72
--- /dev/null
+++ b/home/include/dbox.h
@@ -0,0 +1,34 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_DYNAMICBOX_H__
+#define __W_HOME_DYNAMICBOX_H__
+
+
+extern Evas_Object *dbox_create(Evas_Object *parent, const char *id, const char *subid, double period);
+extern void dbox_destroy(Evas_Object *dynamicbox);
+
+extern void dbox_add_callback(Evas_Object *dynamicbox, Evas_Object *page);
+extern void dbox_del_callback(Evas_Object *dynamicbox);
+
+extern void dbox_set_update_callback(Evas_Object *obj, int (*updated)(Evas_Object *obj));
+extern void dbox_set_scroll_callback(Evas_Object *obj, int (*scroll)(Evas_Object *obj, int hold));
+
+extern void dbox_init(Evas_Object *win);
+extern void dbox_fini(void);
+
+#endif /* __W_HOME_DYNAMICBOX_H__ */
diff --git a/home/include/dbus.h b/home/include/dbus.h
new file mode 100755
index 0000000..6c073e5
--- /dev/null
+++ b/home/include/dbus.h
@@ -0,0 +1,96 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_DBUS_H__
+#define __W_HOME_DBUS_H__
+
+typedef enum {
+ DBUS_EVENT_COOLDOWN_STATE_CHANGED = 0,
+ DBUS_EVENT_ALPM_MANAGER_STATE_CHANGED = 1,
+ DBUS_EVENT_LCD_ON = 2,
+ DBUS_EVENT_LCD_OFF = 3,
+ DBUS_EVENT_MAX,
+} dbus_event_type_e;
+
+/*!
+ * DBUS interfaces and signals
+ */
+#define DBUS_ALPM_MANAGER_PATH "/Org/Tizen/System/AlpmMgr"
+#define DBUS_ALPM_MANAGER_INTERFACE "org.tizen.system.alpmmgr"
+#define DBUS_ALPM_MANAGER_MEMBER_STATUS "ALPMStatus"
+
+#define DBUS_WAKEUP_GESTURE_PATH "/org/tizen/sensor/context/gesture"
+#define DBUS_WAKEUP_GESTURE_INTERFACE "org.tizen.sensor.context.gesture"
+#define DBUS_WAKEUP_GESTURE_MEMBER_WAKEUP "wakeup"
+
+#define DBUS_LOW_BATTERY_PATH "/Org/Tizen/System/Popup/Lowbat"
+#define DBUS_LOW_BATTERY_INTERFACE "org.tizen.system.popup.Lowbat"
+#define DBUS_LOW_BATTERY_MEMBER_EXTREME_LEVEL "Extreme"
+
+#define DBUS_HOME_BUS_NAME "org.tizen.coreapps.home"
+#define DBUS_HOME_RAISE_PATH "/Org/Tizen/Coreapps/home/raise"
+#define DBUS_HOME_RAISE_INTERFACE DBUS_HOME_BUS_NAME".raise"
+#define DBUS_HOME_RAISE_MEMBER "homeraise"
+
+#define DBUS_PROCSWEEP_PATH "/Org/Tizen/ResourceD/Process"
+#define DBUS_PROCSWEEP_INTERFACE "org.tizen.resourced.process"
+#define DBUS_PROCSWEEP_METHOD "ProcSweep"
+
+#define DBUS_DEVICED_BUS_NAME "org.tizen.system.deviced"
+#define DBUS_DEVICED_PATH "/Org/Tizen/System/DeviceD"
+#define DBUS_DEVICED_INTERFACE DBUS_DEVICED_BUS_NAME
+// deviced::display
+#define DBUS_DEVICED_DISPLAY_PATH DBUS_DEVICED_PATH"/Display"
+#define DBUS_DEVICED_DISPLAY_INTERFACE DBUS_DEVICED_INTERFACE".display"
+#define DBUS_DEVICED_DISPLAY_MEMBER_LCD_ON "LCDOn"
+#define DBUS_DEVICED_DISPLAY_MEMBER_LCD_OFF "LCDOff"
+#define DBUS_DEVICED_DISPLAY_MEMBER_LCD_ON_BY_POWERKEY "LCDOnByPowerkey"
+#define DBUS_DEVICED_DISPLAY_METHOD_LCD_OFF "PowerKeyLCDOff"
+#define DBUS_DEVICED_DISPLAY_METHOD_CHANGE_STATE "changestate"
+#define DBUS_DEVICED_DISPLAY_METHOD_CUSTOM_LCD_ON "CustomLCDOn"
+#define DBUS_DEVICED_DISPLAY_COMMAND_LCD_ON "lcdon"
+// deviced::cooldown mode
+#define DBUS_DEVICED_SYSNOTI_PATH DBUS_DEVICED_PATH"/SysNoti"
+#define DBUS_DEVICED_SYSNOTI_INTERFACE DBUS_DEVICED_INTERFACE".SysNoti"
+#define DBUS_DEVICED_SYSNOTI_MEMBER_COOLDOWN_CHANGED "CoolDownChanged"
+#define DBUS_DEVICED_SYSNOTI_METHOD_COOLDOWN_STATUS "GetCoolDownStatus"
+// deviced::cpu booster
+#define DBUS_DEVICED_CPU_BOOSTER_PATH DBUS_DEVICED_PATH"/PmQos"
+#define DBUS_DEVICED_CPU_BOOSTER_INTERFACE DBUS_DEVICED_INTERFACE".PmQos"
+#define DBUS_DEVICED_CPU_BOOSTER_METHOD_HOME "HomeScreen"
+#define DBUS_DEVICED_CPU_BOOSTER_METHOD_HOME_LAUNCH "AppLaunchHome"
+
+/*!
+ * DBUS main functions
+ */
+extern void *home_dbus_connection_get(void);
+extern void home_dbus_init(void *data);
+extern void home_dbus_fini(void *data);
+extern int home_dbus_register_cb(int type, void (*result_cb)(void *, void *), void *result_data);
+extern void home_dbus_unregister_cb(int type, void (*result_cb)(void *, void *));
+/*!
+ * DBUS utility functions
+ */
+extern void home_dbus_lcd_on_signal_send(Eina_Bool wristup);
+extern void home_dbus_lcd_off_signal_send(void);
+extern void home_dbus_procsweep_signal_send(void);
+extern void home_dbus_home_raise_signal_send(void);
+extern void home_dbus_cpu_booster_signal_send(void);
+extern void home_dbus_scroll_booster_signal_send(int sec);
+extern char *home_dbus_cooldown_status_get(void);
+
+#endif
diff --git a/home/include/dynamicbox_evas.h b/home/include/dynamicbox_evas.h
new file mode 100644
index 0000000..8d0b62b
--- /dev/null
+++ b/home/include/dynamicbox_evas.h
@@ -0,0 +1,357 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __DYNAMICBOX_EVAS_H
+#define __DYNAMICBOX_EVAS_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define DYNAMICBOX_EVAS_DEFAULT_PERIOD -1.0f /**< Default Update Period */
+#define DYNAMICBOX_SMART_SIGNAL_DBOX_CREATE_ABORTED "dbox,create,aborted" /**< Dynamicbox creation is aborted */
+#define DYNAMICBOX_SMART_SIGNAL_DBOX_CREATED "dbox,created" /**< Dynamicbox is created */
+#define DYNAMICBOX_SMART_SIGNAL_DBOX_RESIZE_ABORTED "dbox,resize,aborted" /**< Resizing dynamicbox is aborted */
+#define DYNAMICBOX_SMART_SIGNAL_DBOX_RESIZED "dbox,resized" /**< Dynamicbox is resized */
+#define DYNAMICBOX_SMART_SIGNAL_DBOX_FAULTED "dbox,faulted" /**< Dynamicbox has faulted */
+#define DYNAMICBOX_SMART_SIGNAL_UPDATED "updated" /**< Dynamicbox content is updated */
+#define DYNAMICBOX_SMART_SIGNAL_EXTRA_INFO_UPDATED "info,updated" /**< Dynamicbox extra info is updated */
+#define DYNAMICBOX_SMART_SIGNAL_PROVIDER_DISCONNECTED "provider,disconnected" /**< Provider is disconnected */
+#define DYNAMICBOX_SMART_SIGNAL_GBAR_DESTROYED "gbar,destroyed" /**< GBAR is destroyed */
+#define DYNAMICBOX_SMART_SIGNAL_GBAR_ABORTED "gbar,aborted" /**< GBAR creation is aborted */
+#define DYNAMICBOX_SMART_SIGNAL_GBAR_CREATED "gbar,created" /**< GBAR is created */
+#define DYNAMICBOX_SMART_SIGNAL_FLICKDOWN_CANCELLED "flickdown,cancelled" /**< Flick down is canceld */
+#define DYNAMICBOX_SMART_SIGNAL_CONTROL_SCROLLER "control,scroller" /**< Control Scroller */
+#define DYNAMICBOX_SMART_SIGNAL_DBOX_DELETED "dbox,deleted" /**< DynamicBox is deleted */
+#define DYNAMICBOX_SMART_SIGNAL_PERIOD_CHANGED "dbox,period,changed" /**< Period is changed */
+
+/**
+ * \brief
+ * Data structure for Smart Callback Event
+ */
+struct dynamicbox_evas_event_info {
+ const char *pkgname; /**< Dynamicbox Application Id */
+ int event; /**< Event type - DBOX_EVENT_XXX, refer the dynamicbox.h */
+ int error; /**< Error type - DBOX_STATUS_XXX, refer the dynamicbox.h */
+};
+
+enum dynamicbox_evas_raw_event_type {
+ DYNAMICBOX_EVAS_RAW_DELETE = 0x00,
+ DYNAMICBOX_EVAS_RAW_CREATE = 0x02,
+ DYNAMICBOX_EVAS_RAW_MAX = 0xff,
+};
+
+struct dynamicbox_evas_raw_event_info {
+ const char *pkgname;
+ enum dynamicbox_evas_raw_event_type type;
+ int error;
+ Evas_Object *dynamicbox;
+};
+
+/**
+ * \brief
+ * Configuration keys
+ */
+enum dynamicbox_evas_conf {
+ DYNAMICBOX_EVAS_MANUAL_PAUSE_RESUME = 0x0001, /**< Visibility will be changed manually */
+ DYNAMICBOX_EVAS_SHARED_CONTENT = 0x0002, /**< Multiple instances will share the content of one real instance */
+ DYNAMICBOX_EVAS_SUPPORT_GBAR = 0x0004, /**< GBAR will be used */
+ DYNAMICBOX_EVAS_USE_FIXED_SIZE = 0x0008, /**< Dynamicbox will be resized to specific size only */
+ DYNAMICBOX_EVAS_EASY_MODE = 0x0010, /**< Easy mode on/off */
+ DYNAMICBOX_EVAS_SCROLL_X = 0x0020, /**< Box will be scrolled from left to right vice versa */
+ DYNAMICBOX_EVAS_SCROLL_Y = 0x0040, /**< Box will be scrolled from top to bottom vice versa */
+ DYNAMICBOX_EVAS_EVENT_AUTO_FEED = 0x0080, /**< Feeds event automatically from the master provider */
+ DYNAMICBOX_EVAS_DELAYED_PAUSE_RESUME = 0x0100, /**< Delaying the pause/resume when it is automatically changed */
+ DYNAMICBOX_EVAS_SENSITIVE_MOVE = 0x0200, /**< Force feeds mouse up event if the box is moved */
+ DYNAMICBOX_EVAS_AUTO_RENDER_SELECTION = 0x0400, /**< Select render automatically, if a box moved, do not sync using animator, or use the animator */
+ DYNAMICBOX_EVAS_DIRECT_UPDATE = 0x0800, /**< Enable direct update path */
+ DYNAMICBOX_EVAS_USE_RENDER_ANIMATOR = 0x1000, /**< Use the render animator or not */
+ DYNAMICBOX_EVAS_UNKNOWN = 0xFFFF
+};
+
+enum dynamicbox_access_result {
+ DYNAMICBOX_ACCESS_DONE = 0x00,
+ DYNAMICBOX_ACCESS_FIRST = 0x01,
+ DYNAMICBOX_ACCESS_LAST = 0x02,
+ DYNAMICBOX_ACCESS_READ = 0x04,
+ DYNAMICBOX_ACCESS_ERROR = 0x80,
+ DYNAMICBOX_ACCESS_UNKNOWN = 0xFF
+};
+
+/**
+ * @brief Initialize the dynamicbox system
+ * @param[in] win Window object
+ * @param[in] force_to_buffer if you want use the naive buffer directly (instead of resource id), use 1 or 0.
+ * @return int
+ * @retval
+ * @see evas_object_dynamicbox_fini()
+ */
+extern int evas_object_dynamicbox_init(Evas_Object *win, int force_to_buffer);
+
+/**
+ * @brief Finalize the dynamicbox system
+ * @return int
+ * @retval
+ * @see evas_object_dynamicbox_init()
+ */
+extern int evas_object_dynamicbox_fini(void);
+
+/**
+ * @brief Create a new dynamicbox object
+ * @param[in] parent
+ * @param[in] dbox_id
+ * @param[in] content_info
+ * @param[in] cluster
+ * @param[in] category
+ * @param[in] period update period
+ * @return Evas_Object*
+ * @retval NULL if it fails to create a new dynamicbox object
+ */
+extern Evas_Object *evas_object_dynamicbox_add(Evas_Object *parent, const char *dbox_id, const char *content_info, const char *cluster, const char *category, double period);
+
+/**
+ * @brief Close the Glance Bar if it is opened
+ * @param[in] dynamicbox Dynamicbox object
+ * @return int
+ */
+extern int evas_object_dynamicbox_destroy_gbar(Evas_Object *dynamicbox);
+
+/**
+ * @brief if a viewer is resumed, use this function to notify it to the providers.
+ * @details if you call this, all providers will gets resumed event.
+ * @return int
+ * @see evas_object_dynamicbox_paused()
+ */
+extern int evas_object_dynamicbox_resumed(void);
+
+/**
+ * @brief If a viewer is paused, use this function to notify it to the providers
+ * @detail if you call this, all providers will gets paused event.
+ * @return int
+ */
+extern int evas_object_dynamicbox_paused(void);
+
+/**
+ * @brief Change the state of each dynamicbox. if you want made a box should be paused, call this.
+ * @param[in] dynamicbox Dynamicbox object
+ * @return int
+ */
+extern int evas_object_dynamicbox_pause(Evas_Object *dynamicbox);
+
+/**
+ * @brief Change the state of each dynamicbox. If you want made a box should be resumed, call this.
+ * @param[in] dynamicbox Dynamicbox object
+ * @return int
+ */
+extern int evas_object_dynamicbox_resume(Evas_Object *dynamicbox);
+
+/**
+ * @brief Set the viewe port of given dynamicbox
+ * @param[in] dynamicbox
+ * @param[in] x
+ * @param[in] y
+ * @param[in] w
+ * @param[in] h
+ * @return int
+ */
+extern int evas_object_dynamicbox_view_port_set(Evas_Object *dynamicbox, int x, int y, int w, int h);
+
+/**
+ * @brief Get the current view port of given dynamicbox
+ * @param[in] dynamicbox
+ * @param[out] x
+ * @param[out] y
+ * @param[out] w
+ * @param[out] h
+ * @return int
+ */
+extern int evas_object_dynamicbox_view_port_get(Evas_Object *dynamicbox, int *x, int *y, int *w, int *h);
+
+/**
+ * @brief Change the configurable values of dynamicbox system
+ * @param[in] type Configuration item
+ * @param[in] value Its value
+ * @return int
+ */
+extern int evas_object_dynamicbox_conf_set(enum dynamicbox_evas_conf type, int value);
+
+/**
+ * @brief Content string of dynamicbox
+ * @details This string should be used for creating dynamicbox again after reboot device or recovered from crash(abnormal status)
+ * @param[in] dynamicbox Dynamicbox Object
+ * @return const char * String of content
+ * @retval NULL if there is no specific content string.
+ */
+extern const char *evas_object_dynamicbox_content(Evas_Object *dynamicbox);
+
+/**
+ * @brief Summarized string of dynamicbox content.
+ * @details If the accessibility feature is turned on, the homescreen can read this text to describe the dynamicbox.
+ * @param[in] dynamicbox Dynamicbox Object
+ * @return const char * Text should be read
+ * @retval NULL if there is no summarized text for content of given dynamicbox
+ */
+extern const char *evas_object_dynamicbox_title(Evas_Object *dynamicbox);
+
+/**
+ * @brief Get the dynamicbox Id
+ * @param[in] dynamicbox Dynamicbox Object
+ * @return const char * Dynamic Box Id
+ * @retval NULL if an error occurred
+ */
+extern const char *evas_object_dynamicbox_dbox_id(Evas_Object *dynamicbox);
+
+/**
+ * @brief Current period of updates
+ * @param[in] dynamicbox Dynamicbox Object
+ * @return double
+ * @retval Update period
+ */
+extern double evas_object_dynamicbox_period(Evas_Object *dynamicbox);
+
+/**
+ * @brief Cancelate click event procedure.
+ * @details If you call this after feed the mouse_down(or mouse_set) event, the box will get ON_HOLD events.\n
+ * If a box gets ON_HOLD event, it will not do anything even if you feed mouse_up(or mouse_unset) event.\n
+ * @param[in] dynamicbox Dynamicbox Object
+ * @return void
+ */
+extern void evas_object_dynamicbox_cancel_click(Evas_Object *dynamicbox);
+
+/**
+ * @brief This function should be called right after create the dynamicbox object. before resizing it.
+ * @param[in] dynamicbox
+ * @return void
+ */
+extern void evas_object_dynamicbox_disable_preview(Evas_Object *dynamicbox);
+
+/**
+ * @brief While loading a box, hide the help text
+ * @param[in] dynamicbox
+ * @return void
+ */
+extern void evas_object_dynamicbox_disable_overlay_text(Evas_Object *dynamicbox);
+
+/**
+ * @brief Do not display the overlay layer while loading a new box.
+ * @details if you disable it, there is no preview & help text while creating a dynamicbox object
+ * @return void
+ */
+extern void evas_object_dynamicbox_disable_loading(Evas_Object *dynamicbox);
+
+/**
+ * @brief Feeds the mouse_up event forcely.
+ * @details This is very similiar with evas_object_dynamicbox_cancel_click(), but this will sends mouse_up event explicitly.\n
+ * Also feed the ON_HOLD event before feeds mouse_up event.
+ * @param[in] dynamicbox Dynamic Box
+ * @return int
+ */
+extern int evas_object_dynamicbox_force_mouse_up(Evas_Object *dynamicbox);
+
+/**
+ * @brief Feeds accessibility events
+ * @param[in] dynamicbox
+ * @param[in] type
+ * @param[in] info
+ * @param[in] ret_cb
+ * @param[in] dta
+ * @return int
+ */
+extern int evas_object_dynamicbox_access_action(Evas_Object *dynamicbox, int type, void *info, void (*ret_cb)(Evas_Object *obj, int ret, void *data), void *data);
+
+/**
+ * @brief Activate
+ * @param[in] dynamicbox
+ */
+extern void evas_object_dynamicbox_activate(Evas_Object *dynamicbox);
+
+/**
+ * @brief
+ * @param[in] dynamicbox
+ */
+extern int evas_object_dynamicbox_is_faulted(Evas_Object *dynamicbox);
+
+/**
+ * @brief
+ * @param[in] type
+ * @param[in] cb
+ * @param[in] data
+ * @return int
+ */
+extern int evas_object_dynamicbox_unset_raw_event_callback(enum dynamicbox_evas_raw_event_type type, void (*cb)(struct dynamicbox_evas_raw_event_info *info, void *data), void *data);
+
+/**
+ * @brief
+ * @param[in] type
+ * @param[in] cb
+ * @param[in] data
+ */
+extern int evas_object_dynamicbox_set_raw_event_callback(enum dynamicbox_evas_raw_event_type type, void (*cb)(struct dynamicbox_evas_raw_event_info *info, void *data), void *data);
+
+/**
+ * @brief If you don't want change the visibility automatically, freeze it.\n
+ * The visibility will not be changed even though a box disappeared(hidden)/displayed(shown) from/on the screen.
+ * @param[in] dynamicbox
+ * @param[in] status
+ * @return int
+ */
+extern int evas_object_dynamicbox_freeze_visibility(Evas_Object *dynamicbox, int status);
+
+/**
+ * @brief
+ * @param[in] dynamicbox
+ * @return int
+ */
+extern int evas_object_dynamicbox_thaw_visibility(Evas_Object *dynamicbox);
+
+/**
+ * @brief Get the state of visibility option.
+ * @param[in] dynamicbox
+ * @return int
+ */
+extern int evas_object_dynamicbox_visibility_is_freezed(Evas_Object *dynamicbox);
+
+/**
+ * @brief Dump a contents of dynamicbox to a given filename.
+ * @param[in] dynamicbox Dynamicbox object
+ * @param[in] filename Filename will be used for saving content of a dynamicbox
+ * @return int
+ */
+extern int evas_object_dynamicbox_dump(Evas_Object *dynamicbox, const char *filename);
+
+/**
+ * @brief Validate the object, whether it is a dynamicbox object or not
+ * @param[in] dynamicbox
+ * @return int
+ */
+extern int evas_object_dynamicbox_is_dynamicbox(Evas_Object *dynamicbox);
+
+/**
+ * @brief Before delete a box, set the deletion mode using this.
+ * @param[in] dynamicbox Dynamicbox Object which will be deleted soon
+ * @param[in] flag 1 if you delete this dynamicbox instance permanently, of 0 if you want keep it and it will be re-created soon.
+ * @return void
+ */
+extern void evas_object_dynamicbox_set_permanent_delete(Evas_Object *dynamicbox, int flag);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/* End of a file */
diff --git a/home/include/edit.h b/home/include/edit.h
new file mode 100755
index 0000000..72c0791
--- /dev/null
+++ b/home/include/edit.h
@@ -0,0 +1,60 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_EDIT_H__
+#define __W_HOME_EDIT_H__
+
+#include "page.h"
+
+typedef enum {
+ EDIT_MODE_INVALID = 0,
+ EDIT_MODE_LEFT,
+ EDIT_MODE_CENTER,
+ EDIT_MODE_RIGHT,
+ EDIT_MODE_MAX,
+} edit_mode_e;
+
+extern Evas_Object *edit_create_layout(Evas_Object *layout, edit_mode_e edit_mode);
+extern void edit_destroy_layout(void *layout);
+
+extern Evas_Object *edit_create_proxy_page(Evas_Object *edit_scroller, Evas_Object *real_page, page_changeable_bg_e changable_color);
+extern void edit_destroy_proxy_page(Evas_Object *proxy_page);
+
+extern Evas_Object *edit_create_add_viewer(Evas_Object *layout);
+extern void edit_destroy_add_viewer(Evas_Object *layout);
+
+extern void edit_change_focus(Evas_Object *edit_scroller, Evas_Object *page_current);
+
+extern w_home_error_e edit_push_page_before(Evas_Object *scroller
+ , Evas_Object *page
+ , Evas_Object *before);
+extern w_home_error_e edit_push_page_after(Evas_Object *scroller
+ , Evas_Object *page
+ , Evas_Object *after);
+
+extern void edit_minify_effect_page(void *effect_page);
+extern Evas_Object *edit_create_minify_effect_page(Evas_Object *page);
+extern void edit_destroy_minify_effect_page(Evas_Object *effect_page);
+
+extern void edit_enlarge_effect_page(void *effect_page);
+extern Evas_Object *edit_create_enlarge_effect_page(Evas_Object *page);
+extern void edit_destroy_enlarge_effect_page(Evas_Object *effect_page);
+
+extern void edit_arrange_plus_page(Evas_Object *edit);
+extern char *edit_get_count_str_from_icu(int count);
+
+#endif /* __W_HOME_EDIT_H__ */
diff --git a/home/include/edit_info.h b/home/include/edit_info.h
new file mode 100755
index 0000000..10e9a91
--- /dev/null
+++ b/home/include/edit_info.h
@@ -0,0 +1,31 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_EDIT_INFO_H__
+#define __W_HOME_EDIT_INFO_H__
+
+typedef struct {
+ Evas_Object *layout;
+ Evas_Object *scroller;
+
+ Evas_Object *center_page;
+ Evas_Object *plus_page;
+
+ int is_max;
+} edit_info_s;
+
+#endif /* __W_HOME_EDIT_INFO_H__ */
diff --git a/home/include/effect.h b/home/include/effect.h
new file mode 100755
index 0000000..7f7fc44
--- /dev/null
+++ b/home/include/effect.h
@@ -0,0 +1,32 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_EFFECT_H__
+#define __W_HOME_EFFECT_H__
+
+extern w_home_error_e effect_init(void);
+extern void effect_fini(void);
+
+extern void effect_set_sound_status(int status);
+extern int effect_get_sound_status(void);
+
+extern void effect_play_sound(void);
+extern void effect_play_vibration(void);
+
+#endif //__W_HOME_EFFECT_H__
+
+// End of a file
diff --git a/home/include/gesture.h b/home/include/gesture.h
new file mode 100755
index 0000000..6c63a89
--- /dev/null
+++ b/home/include/gesture.h
@@ -0,0 +1,50 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_GESTURE_H__
+#define __W_HOME_GESTURE_H__
+
+#define HOME_GESTURE_WRISTUP_OFF 0
+#define HOME_GESTURE_WRISTUP_CLOCK 1
+#define HOME_GESTURE_WRISTUP_LASTVIEW 2
+
+#define ALPM_MANAGER_STATUS_SHOW "show"
+#define ALPM_MANAGER_STATUS_ALPM_HIDE "ALPMHide"
+#define ALPM_MANAGER_STATUS_SIMPLE_HIDE "SimpleHide"
+
+typedef enum {
+ BEZEL_UP = 0,
+ BEZEL_DOWN,
+} gesture_type_e;
+
+extern void home_gesture_init(void);
+extern void home_gesture_fini(void);
+
+extern int home_gesture_wristup_setting_get(void);
+extern void gesture_home_window_effect_set(int is_enable);
+
+extern void gesture_execute_cbs(int mode);
+
+extern w_home_error_e gesture_register_cb(
+ int mode,
+ void (*result_cb)(void *), void *result_data);
+
+extern void gesture_unregister_cb(
+ int mode,
+ void (*result_cb)(void *));
+
+#endif // __W_HOME_GESTURE_H__
diff --git a/home/include/index.h b/home/include/index.h
new file mode 100755
index 0000000..27f68ad
--- /dev/null
+++ b/home/include/index.h
@@ -0,0 +1,34 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_INDEX_H__
+#define __W_HOME_INDEX_H__
+
+#include "page.h"
+
+typedef enum {
+ INDEX_BRING_IN_NONE = 0,
+ INDEX_BRING_IN_AFTER,
+} index_bring_in_e;
+
+extern void index_bring_in_page(Evas_Object *index, Evas_Object *page);
+
+extern Evas_Object *index_create(Evas_Object *layout, Evas_Object *scroller, page_direction_e direction);
+extern void index_destroy(Evas_Object *index);
+extern void index_update(Evas_Object *index, Evas_Object *scroller, index_bring_in_e after);
+
+#endif /* __W_HOME_INDEX_H__ */
diff --git a/home/include/index_info.h b/home/include/index_info.h
new file mode 100755
index 0000000..dc325e2
--- /dev/null
+++ b/home/include/index_info.h
@@ -0,0 +1,33 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_INDEX_INFO_H__
+#define __W_HOME_INDEX_INFO_H__
+
+typedef struct {
+ /* innate features; */
+ int count;
+ int current_no;
+ page_direction_e direction;
+
+ /* acquired features */
+ Evas_Object *layout;
+ Evas_Object *scroller;
+ Eina_List *page_index_list;
+} index_info_s;
+
+#endif // __W_HOME_INDEX_INFO_H__
diff --git a/home/include/item_info.h b/home/include/item_info.h
new file mode 100755
index 0000000..33fdb48
--- /dev/null
+++ b/home/include/item_info.h
@@ -0,0 +1,58 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_ITEM_INFO_H__
+#define __W_HOME_ITEM_INFO_H__
+
+typedef enum {
+ ITEM_TYPE_IDLE_CLOCK = 0,
+ ITEM_TYPE_APP,
+ ITEM_TYPE_WIDGET,
+ ITEM_TYPE_MORE_APPS,
+ ITEM_TYPE_NXN_PAGE,
+ ITEM_TYPE_MAX,
+} item_type_e;
+
+typedef enum {
+ ITEM_ORDERING_ALL = 0,
+ ITEM_ORDERING_FIRST_TO_CENTER_LEFT,
+ ITEM_ORDERING_FIRST_TO_CENTER,
+ ITEM_ORDERING_CENTER_TO_LAST,
+ ITEM_ORDERING_CENTER_RIGHT_TO_LAST,
+ ITEM_ORDERING_MAX,
+} item_ordering_e;
+
+typedef struct {
+ /* innate features */
+ char *id;
+ char *subid;
+ item_type_e category;
+ int ordering;
+
+ /* acquired features */
+ Evas_Object *page;
+ Evas_Object *item;
+ int removable;
+} item_info_s;
+
+extern item_info_s *item_info_create(const char *id, const char *subid);
+extern void item_info_destroy(item_info_s *item_info);
+extern void item_info_list_destroy(Eina_List *page_info_list);
+
+extern int item_info_is_removable(const char *id);
+
+#endif // __W_HOME_ITEM_INFO_H__
diff --git a/home/include/key.h b/home/include/key.h
new file mode 100755
index 0000000..c2dee6e
--- /dev/null
+++ b/home/include/key.h
@@ -0,0 +1,47 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_KEY_H__
+#define __W_HOME_KEY_H__
+
+typedef enum {
+ KEY_CB_RET_CONTINUE = 0,
+ KEY_CB_RET_STOP,
+} key_cb_ret_e;
+
+typedef enum {
+ KEY_TYPE_BACK = 0,
+ KEY_TYPE_HOME,
+ KEY_TYPE_MAX,
+} key_type_e;
+
+/* Key callbacks are managed as a stack[LIFO] */
+extern w_home_error_e key_register_cb(
+ int type,
+ key_cb_ret_e (*result_cb)(void *), void *result_data);
+
+extern void key_unregister_cb(
+ int type,
+ key_cb_ret_e (*result_cb)(void *));
+
+extern void key_register(void);
+extern void key_unregister(void);
+extern void key_cb_execute(int type);
+
+#endif //__W_HOME_KEY_H__
+
+// End of a file
diff --git a/home/include/lang.h b/home/include/lang.h
new file mode 100755
index 0000000..c15fbd9
--- /dev/null
+++ b/home/include/lang.h
@@ -0,0 +1,29 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __APP_TRAY_LANG_H__
+#define __APP_TRAY_LANG_H__
+
+extern w_home_error_e lang_add_id(Evas_Object *obj, const char *group, const char *id, int domain);
+extern void lang_remove_id(Evas_Object *obj, const char *group);
+
+extern w_home_error_e lang_register_cb(w_home_error_e (*result_cb)(void *), void *result_data);
+extern void lang_unregister_cb(w_home_error_e (*result_cb)(void *));
+
+extern void lang_refresh_ids(void);
+
+#endif /* __APP_TRAY_LANG_H__ */
diff --git a/home/include/layout.h b/home/include/layout.h
new file mode 100755
index 0000000..837a8e6
--- /dev/null
+++ b/home/include/layout.h
@@ -0,0 +1,40 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_LAYOUT_H__
+#define __W_HOME_LAYOUT_H__
+
+#define LAYOUT_SMART_SIGNAL_EDIT_ON "edit,on"
+#define LAYOUT_SMART_SIGNAL_EDIT_OFF "edit,off"
+#define LAYOUT_SMART_SIGNAL_FLICK_UP "flick,up"
+
+extern Evas_Object *layout_create(Evas_Object *win);
+extern void layout_destroy(Evas_Object *win);
+
+extern void layout_add_mouse_cb(Evas_Object *layout);
+extern void layout_del_mouse_cb(Evas_Object *layout);
+
+extern void layout_show_left_index(Evas_Object *layout);
+extern void layout_show_right_index(Evas_Object *layout);
+extern void layout_hide_index(Evas_Object *layout);
+
+extern int layout_is_edit_mode(Evas_Object *layout);
+
+extern void layout_set_idle(Evas_Object *layout);
+extern int layout_is_idle(Evas_Object *layout);
+
+#endif /* __W_HOME_LAYOUT_H__ */
diff --git a/home/include/layout_info.h b/home/include/layout_info.h
new file mode 100755
index 0000000..47130df
--- /dev/null
+++ b/home/include/layout_info.h
@@ -0,0 +1,37 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_LAYOUT_INFO_H__
+#define __W_HOME_LAYOUT_INFO_H__
+
+
+
+typedef struct {
+ /* innate features */
+ Evas_Object *win;
+ Evas_Object *scroller;
+ Evas_Object *index;
+ Evas_Object *gestuer_layer;
+ Evas_Object *tutorial;
+
+ /* acquired features */
+ Evas_Object *edit;
+ Evas_Object *pressed_page;
+ Evas_Object *pressed_item;
+} layout_info_s;
+
+#endif // __W_HOME_LAYOUT_INFO_H__
diff --git a/home/include/log.h b/home/include/log.h
new file mode 100755
index 0000000..348f529
--- /dev/null
+++ b/home/include/log.h
@@ -0,0 +1,154 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_LOG_H__
+#define __W_HOME_LOG_H__
+
+#include <unistd.h>
+#include <dlog.h>
+
+#undef LOG_TAG
+#define LOG_TAG "W_HOME"
+
+#if !defined(_D)
+#define _D(fmt, arg...) LOGD(fmt"\n", ##arg)
+#endif
+
+#if !defined(_W)
+#define _W(fmt, arg...) LOGW(fmt"\n", ##arg)
+#endif
+
+#if !defined(_E)
+#define _E(fmt, arg...) LOGE(fmt"\n", ##arg)
+#endif
+
+#if !defined(_SD)
+#define _SD(fmt, arg...) SECURE_LOGD(fmt"\n", ##arg)
+#endif
+
+#if !defined(_SW)
+#define _SW(fmt, arg...) SECURE_LOGW(fmt"\n", ##arg)
+#endif
+
+#if !defined(_SE)
+#define _SE(fmt, arg...) SECURE_LOGE(fmt"\n", ##arg)
+#endif
+
+#if !defined(_T)
+#define _T(package) SECURE_LOG(LOG_DEBUG, "LAUNCH", "[%s:Menuscreen:launch:done]", package);
+#endif
+
+/* Apps Debug message */
+#define LOG_TAG_APPS "APPS"
+
+#if !defined(_APPS_D)
+#define _APPS_D(fmt, arg...) LOG(LOG_DEBUG, LOG_TAG_APPS, " "fmt, ##arg)
+#endif
+
+#if !defined(_APPS_W)
+#define _APPS_W(fmt, arg...) LOG(LOG_WARN, LOG_TAG_APPS, " "fmt, ##arg)
+#endif
+
+#if !defined(_APPS_E)
+#define _APPS_E(fmt, arg...) LOG(LOG_ERROR, LOG_TAG_APPS, " "fmt, ##arg)
+#endif
+
+#if !defined(_APPS_SD)
+#define _APPS_SD(fmt, arg...) SECURE_LOG(LOG_DEBUG, LOG_TAG_APPS, " "fmt, ##arg)
+#endif
+
+#if !defined(_APPS_SW)
+#define _APPS_SW(fmt, arg...) SECURE_LOG(LOG_WARN, LOG_TAG_APPS, " "fmt, ##arg)
+#endif
+
+#if !defined(_APPS_SE)
+#define _APPS_SE(fmt, arg...) SECURE_LOG(LOG_ERROR, LOG_TAG_APPS, " "fmt, ##arg)
+#endif
+
+#ifdef ADD_FILE_LOG
+#define _F(fmt, arg...) do { \
+ FILE *fp;\
+ fp = fopen("/opt/usr/apps/org.tizen.w-home/data/logs", "a+");\
+ if (NULL == fp) break;\
+ fprintf(fp, "[%s:%d] "fmt"\n", __func__, __LINE__, ##arg); \
+ fclose(fp);\
+} while (0)
+#else
+#define _F(fmt, arg...) ;
+#endif
+
+#define retvm_if_timer(timer, expr, val, fmt, arg...) do { \
+ if (expr) { \
+ _E(fmt, ##arg); \
+ _E("(%s) -> %s() return", #expr, __FUNCTION__); \
+ timer = NULL; \
+ return (val); \
+ } \
+} while (0)
+
+#define retvm_if(expr, val, fmt, arg...) do { \
+ if(expr) { \
+ _E(fmt, ##arg); \
+ _E("(%s) -> %s() return", #expr, __FUNCTION__); \
+ return val; \
+ } \
+} while (0)
+
+#define retv_if(expr, val) do { \
+ if(expr) { \
+ _E("(%s) -> %s() return", #expr, __FUNCTION__); \
+ return (val); \
+ } \
+} while (0)
+
+#define retm_if(expr, fmt, arg...) do { \
+ if(expr) { \
+ _E(fmt, ##arg); \
+ _E("(%s) -> %s() return", #expr, __FUNCTION__); \
+ return; \
+ } \
+} while (0)
+
+#define ret_if(expr) do { \
+ if(expr) { \
+ _E("(%s) -> %s() return", #expr, __FUNCTION__); \
+ return; \
+ } \
+} while (0)
+
+#define goto_if(expr, val) do { \
+ if(expr) { \
+ _E("(%s) -> goto", #expr); \
+ goto val; \
+ } \
+} while (0)
+
+#define break_if(expr) { \
+ if(expr) { \
+ _E("(%s) -> break", #expr); \
+ break; \
+ } \
+}
+
+#define continue_if(expr) { \
+ if(expr) { \
+ _E("(%s) -> continue", #expr); \
+ continue; \
+ } \
+}
+
+#endif /* __W_HOME_LOG_H__ */
diff --git a/home/include/main.h b/home/include/main.h
new file mode 100755
index 0000000..e38d75d
--- /dev/null
+++ b/home/include/main.h
@@ -0,0 +1,66 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_MAIN_H__
+#define __W_HOME_MAIN_H__
+
+typedef struct {
+ Evas_Object *win;
+ Evas *e;
+ Evas_Object *layout;
+ Ecore_Event_Handler *handler;
+ Ea_Theme_Color_Table *color_theme;
+ Eina_List *font_theme;
+ Elm_Theme *theme;
+
+ int first_boot;
+ int state;
+ int root_w;
+ int root_h;
+ int booting_state;
+ int is_mapbuf;
+ int is_rotated;
+ int angle;
+ int apps_pid;
+ int is_tts;
+ int panning_sensitivity;
+ int setup_wizard;
+ int is_alpm_clock_enabled;
+ int is_lcd_on;
+ int is_win_visible;
+ int is_wide_character;
+
+ Eina_List *cbs_list[APP_STATE_MAX];
+
+ Ecore_Timer *safety_init_timer;
+ int is_service_initialized;
+} main_s;
+
+extern main_s *main_get_info(void);
+
+extern void main_inc_booting_state(void);
+extern void main_dec_booting_state(void);
+extern int main_get_booting_state(void);
+
+extern w_home_error_e main_register_cb(
+ int state,
+ w_home_error_e (*result_cb)(void *), void *result_data);
+extern void main_unregister_cb(
+ int state,
+ w_home_error_e (*result_cb)(void *));
+
+#endif /* __W_HOME_MAIN_H__ */
diff --git a/home/include/mapbuf.h b/home/include/mapbuf.h
new file mode 100755
index 0000000..3b78d93
--- /dev/null
+++ b/home/include/mapbuf.h
@@ -0,0 +1,38 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __APP_TRAY_MAPBUF_H__
+#define __APP_TRAY_MAPBUF_H__
+
+extern void mapbuf_set_color(Evas_Object *obj, int a);
+extern w_home_error_e mapbuf_enable(Evas_Object *obj, int force);
+extern int mapbuf_disable(Evas_Object *obj, int force);
+
+extern Evas_Object *mapbuf_bind(Evas_Object *box, Evas_Object *page);
+extern Evas_Object *mapbuf_unbind(Evas_Object *obj);
+
+extern Evas_Object *mapbuf_get_mapbuf(Evas_Object *obj);
+extern Evas_Object *mapbuf_get_page(Evas_Object *obj);
+
+extern int mapbuf_is_enabled(Evas_Object *obj);
+extern int mapbuf_can_be_made(Evas_Object *obj);
+extern int mapbuf_can_be_on(Evas_Object *obj);
+
+
+#endif //__APP_TRAY_MAPBUF_H__
+
+// End of a file
diff --git a/home/include/minictrl.h b/home/include/minictrl.h
new file mode 100755
index 0000000..288443b
--- /dev/null
+++ b/home/include/minictrl.h
@@ -0,0 +1,95 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_MINICTRL_H__
+#define __W_MINICTRL_H__
+
+#define MINICONTROL_MAGIC 0xCAFEDEAD
+
+#define _MINICTRL_VIEW(obj) (page_get_item(obj))
+#define _MINICTRL_PLUG_OBJ(obj) (elm_object_part_content_get(_MINICTRL_VIEW(obj), "item"))
+
+#define MC_CATEGORY_CLOCK 1
+#define MC_CATEGORY_NOTIFICATION 2
+#define MC_CATEGORY_DASHBOARD 3
+
+#define MINICTRL_DATA_KEY_MAGIC "mc_magic"
+#define MINICTRL_DATA_KEY_PID "mc_pid"
+#define MINICTRL_DATA_KEY_VISIBILITY "mc_vis"
+#define MINICTRL_DATA_KEY_CATEGORY "mc_cat"
+#define MINICTRL_DATA_KEY_NAME "mc_name"
+
+#define MINICTRL_EVENT_APP_RESUME "mc_resume"
+#define MINICTRL_EVENT_APP_PAUSE "mc_pause"
+#define MINICTRL_EVENT_VIEW_REMOVED "mc_removed"
+
+typedef struct _Home_Minicontrol_Handler {
+ void (*add) (Evas_Object *view, const char *name, unsigned int width, unsigned int height, minicontrol_priority_e priority, minicontrol_h handler);
+ void (*update) (Evas_Object *view, const char *name, unsigned int width, unsigned int height, minicontrol_priority_e priority, minicontrol_h handler);
+ void (*remove) (Evas_Object *view, const char *name, unsigned int width, unsigned int height, minicontrol_priority_e priority, minicontrol_h handler);
+ void (*request) (Evas_Object *view, const char *name, unsigned int width, unsigned int height, minicontrol_priority_e priority, minicontrol_h handler);
+ void (*visibility_changed_cb) (Evas_Object *view, int visibility);
+ void (*pause_resume_cb) (Evas_Object *view, int is_paused);
+ void (*lcd_state_cb) (Evas_Object *view, int is_lcd_on);
+} Home_Minicontrol_Handler;
+
+typedef struct _Minictrl_Entry {
+ int category;
+ char *name;
+ char *service_name;
+ Evas_Object *view;
+} Minictrl_Entry;
+
+typedef void (*Minictrl_Entry_Foreach_Cb)(Minictrl_Entry *entry, void *user_data);
+
+/*!
+ * Main functions
+ */
+extern void minicontrol_init(void);
+extern void minicontrol_fini(void);
+extern void minicontrol_resume(void);
+extern void minicontrol_pause(void);
+
+/*!
+ * Object manager functions
+ */
+extern void minictrl_manager_entry_add_with_data(const char *name, const char *service_name, int category, Evas_Object *view);
+extern Evas_Object *minictrl_manager_view_get_by_category(int category);
+extern Evas_Object *minictrl_manager_view_get_by_name(const char *name);
+extern Minictrl_Entry *minictrl_manager_entry_get_by_category(int category);
+extern Minictrl_Entry *minictrl_manager_entry_get_by_name(const char *name);
+extern int minictrl_manager_entry_del_by_category(int category);
+extern int minictrl_manager_entry_del_by_name(const char *name);
+extern void minictrl_manager_entry_foreach(Minictrl_Entry_Foreach_Cb cb, void *user_data);
+
+/*!
+ * Utility functions
+ */
+extern int minicontrol_message_send(Evas_Object *obj, char *message);
+extern void minicontrol_visibility_set(Evas_Object *obj, int visibility);
+extern int minicontrol_visibility_get(Evas_Object *obj);
+extern void minicontrol_magic_set(Evas_Object *obj);
+extern int minicontrol_magic_get(Evas_Object *obj);
+extern void minicontrol_name_set(Evas_Object *obj, const char *name);
+extern char *minicontrol_name_get(Evas_Object *obj);
+extern void minicontrol_category_set(Evas_Object *obj, int category);
+extern int minicontrol_category_get(Evas_Object *obj);
+extern void minicontrol_pid_set(Evas_Object *obj, int pid);
+extern int minicontrol_pid_get(Evas_Object *obj);
+extern char *minicontrol_appid_get_by_pid(int pid);
+
+#endif
diff --git a/home/include/noti_broker.h b/home/include/noti_broker.h
new file mode 100755
index 0000000..9bf4c17
--- /dev/null
+++ b/home/include/noti_broker.h
@@ -0,0 +1,46 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_NOTI_BROKER_H__
+#define __W_HOME_NOTI_BROKER_H__
+
+extern const int EVENT_SOURCE_SCROLLER;
+extern const int EVENT_SOURCE_VIEW;
+extern const int EVENT_SOURCE_EDITING;
+
+extern const int EVENT_TYPE_ANIM_START;
+extern const int EVENT_TYPE_ANIM_STOP;
+extern const int EVENT_TYPE_DRAG_START;
+extern const int EVENT_TYPE_DRAG_STOP;
+extern const int EVENT_TYPE_EDGE_LEFT;
+extern const int EVENT_TYPE_EDGE_RIGHT;
+extern const int EVENT_TYPE_EDIT_START;
+extern const int EVENT_TYPE_EDIT_STOP;
+extern const int EVENT_TYPE_NOTI_DELETE;
+extern const int EVENT_TYPE_NOTI_DELETE_ALL;
+extern const int EVENT_TYPE_MOUSE_DOWN;
+extern const int EVENT_TYPE_MOUSE_UP;
+extern const int EVENT_TYPE_SCROLLING;
+extern const int EVENT_TYPE_APPS_SHOW;
+extern const int EVENT_TYPE_APPS_HIDE;
+
+extern void noti_broker_load(void);
+extern void noti_broker_init(void);
+extern void noti_broker_fini(void);
+extern int noti_broker_event_fire_to_plugin(int source, int event, void *data);
+
+#endif /* __W_HOME_NOTI_BROKER_H__ */
diff --git a/home/include/page.h b/home/include/page.h
new file mode 100755
index 0000000..7de0c8d
--- /dev/null
+++ b/home/include/page.h
@@ -0,0 +1,76 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_PAGE_H__
+#define __W_HOME_PAGE_H__
+
+#include <Evas.h>
+#include "page_info.h"
+#include "util.h"
+
+typedef enum {
+ PAGE_CHANGEABLE_BG_OFF = 0,
+ PAGE_CHANGEABLE_BG_ON,
+} page_changeable_bg_e;
+
+typedef enum {
+ PAGE_EFFECT_TYPE_LEFT = 0,
+ PAGE_EFFECT_TYPE_RIGHT,
+} page_effect_type_e;
+
+extern void page_destroy(Evas_Object *page);
+extern Evas_Object *page_create(Evas_Object *scroller
+ , Evas_Object *item
+ , const char *id
+ , const char *subid
+ , int width, int height
+ , page_changeable_bg_e changeable_bg
+ , page_removable_e removable);
+
+/* page_set_item returns the old item. You have to delete the old item */
+extern Evas_Object *page_set_item(Evas_Object *page, Evas_Object *item);
+extern Evas_Object *page_get_item(Evas_Object *page);
+
+extern Evas_Object *page_create_plus_page(Evas_Object *scroller);
+extern void page_destroy_plus_page(Evas_Object *scroller);
+extern void page_arrange_plus_page(Evas_Object *scroller, int toast_popup);
+
+extern void page_focus(Evas_Object *page);
+extern void page_unfocus(Evas_Object *page);
+extern char *page_read_title(Evas_Object *page);
+
+extern void page_set_effect(Evas_Object *page, void (*left_effect)(Evas_Object *), void (*right_effect)(Evas_Object *));
+extern void page_unset_effect(Evas_Object *page);
+extern void *page_get_effect(Evas_Object *page, page_effect_type_e effect_type);
+extern void page_clean_effect(Evas_Object *scroller);
+
+extern void page_effect_none(Evas_Object *page);
+extern void page_effect_smaller_by_remainder(Evas_Object *page);
+
+extern void page_backup_inner_focus(Evas_Object *page, Evas_Object *prev_page, Evas_Object *next_page);
+extern void page_restore_inner_focus(Evas_Object *page);
+
+extern void page_set_title(Evas_Object *page, const char *title);
+extern const char *page_get_title(Evas_Object *page);
+
+extern void page_highlight(Evas_Object *page);
+extern void page_unhighlight(Evas_Object *page);
+
+extern int page_is_appended(Evas_Object *page);
+
+
+#endif /* __W_HOME_PAGE_H__ */
diff --git a/home/include/page_info.h b/home/include/page_info.h
new file mode 100755
index 0000000..ea9b107
--- /dev/null
+++ b/home/include/page_info.h
@@ -0,0 +1,88 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_PAGE_INFO_H__
+#define __W_HOME_PAGE_INFO_H__
+
+typedef enum {
+ PAGE_DIRECTION_LEFT = 0,
+ PAGE_DIRECTION_CENTER,
+ PAGE_DIRECTION_RIGHT,
+ PAGE_DIRECTION_ANY, /* This direction is only for scroller_pop_pages, never use this in the push functions */
+ PAGE_DIRECTION_MAX,
+} page_direction_e;
+
+typedef enum {
+ PAGE_CATEGORY_IDLE_CLOCK = 0,
+ PAGE_CATEGORY_APP,
+ PAGE_CATEGORY_WIDGET,
+ PAGE_CATEGORY_MORE_APPS,
+ PAGE_CATEGORY_NXN_PAGE,
+ PAGE_CATEGORY_MAX,
+} page_category_e;
+
+typedef enum {
+ PAGE_REMOVABLE_OFF = 0,
+ PAGE_REMOVABLE_ON,
+} page_removable_e;
+
+typedef struct {
+ /* innate features */
+ char *id;
+ char *subid;
+ char *title;
+ double period;
+ int width;
+ int height;
+ page_direction_e direction;
+ page_category_e category;
+ page_removable_e removable;
+
+ /* acquired features */
+ Evas_Object *layout;
+ Evas_Object *scroller;
+ Evas_Object *page;
+ Evas_Object *page_rect;
+ Evas_Object *page_inner;
+ Evas_Object *page_inner_area;
+ Evas_Object *page_inner_bg;
+ Evas_Object *focus;
+ Evas_Object *remove_focus;
+ Evas_Object *item;
+ Evas_Object *focus_prev;
+ Evas_Object *focus_next;
+
+ int ordering;
+ int layout_longpress;
+ int highlighted;
+ int drag_threshold_page;
+ Eina_Bool need_to_unhighlight;
+ Eina_Bool highlight_changed;
+ Eina_Bool is_scrolled_object;
+ Eina_Bool appended;
+ Eina_Bool need_to_read;
+ void *faulted_hl_timer;
+} page_info_s;
+
+extern page_info_s *page_info_create(const char *id, const char *subid, double period);
+extern void page_info_destroy(page_info_s *page_info);
+extern page_info_s *page_info_dup(page_info_s *page_info);
+
+extern void page_info_list_destroy(Eina_List *page_info_list);
+extern int page_info_is_removable(const char *id);
+
+#endif // __W_HOME_PAGE_INFO_H__
diff --git a/home/include/pkgmgr.h b/home/include/pkgmgr.h
new file mode 100755
index 0000000..6c53374
--- /dev/null
+++ b/home/include/pkgmgr.h
@@ -0,0 +1,42 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_PKGMGR_H__
+#define __W_HOME_PKGMGR_H__
+
+extern void pkgmgr_hold_event(void);
+extern void pkgmgr_unhold_event(void);
+
+extern w_home_error_e pkgmgr_init(void);
+extern void pkgmgr_fini(void);
+
+extern w_home_error_e pkgmgr_uninstall(const char *appid);
+
+extern w_home_error_e pkgmgr_item_list_append_item(const char *pkg_id, const char *app_id, Evas_Object *item);
+extern w_home_error_e pkgmgr_item_list_remove_item(const char *pkg_id, const char *app_id, Evas_Object *item);
+
+extern void pkgmgr_item_list_affect_pkgid(const char *pkg_id, Eina_Bool (*_affected_cb)(const char *, Evas_Object *, void *), void *data);
+extern void pkgmgr_item_list_affect_appid(const char *app_id, Eina_Bool (*_affected_cb)(const char *, Evas_Object *, void *), void *data);
+
+extern w_home_error_e pkgmgr_reserve_list_push_request(const char *package, const char *key, const char *val);
+extern w_home_error_e pkgmgr_reserve_list_pop_request(void);
+
+extern int pkgmgr_exist(char *appid);
+
+#endif //__W_HOME_PKGMGR_H__
+
+// End of a file
diff --git a/home/include/popup.h b/home/include/popup.h
new file mode 100755
index 0000000..50a53aa
--- /dev/null
+++ b/home/include/popup.h
@@ -0,0 +1,25 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_POPUP_H__
+#define __W_HOME_POPUP_H__
+
+#define POPUP_STAGE_AFTER_TUTORIAL 1
+
+extern void popup_show(int stage);
+
+#endif
diff --git a/home/include/power_mode.h b/home/include/power_mode.h
new file mode 100755
index 0000000..48d659d
--- /dev/null
+++ b/home/include/power_mode.h
@@ -0,0 +1,42 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __POWER_MODE_H
+#define __POWER_MODE_H
+
+typedef enum {
+ POWER_MODE_COOLDOWN_ON,
+ POWER_MODE_COOLDOWN_OFF,
+ POWER_MODE_ENHANCED_ON,
+ POWER_MODE_ENHANCED_OFF,
+ POWER_MODE_EVENT_MAX,
+} power_mode_event_type_e;
+
+#define COOLDOWN_MODE_RELEASE 1
+#define COOLDOWN_MODE_LIMITATION 2
+#define COOLDOWN_MODE_WARNING 3
+
+extern int power_mode_register_cb(int type, void (*result_cb)(void *, void *), void *result_data);
+extern void power_mode_unregister_cb(int type, void (*result_cb)(void *, void *));
+extern void power_mode_init(void);
+extern void power_mode_ui_init(void);
+extern void power_mode_fini(void);
+extern int emergency_mode_enabled_get(void);
+extern int cooldown_mode_enabled_get(void);
+extern int cooldown_mode_warning_get(void);
+
+#endif
diff --git a/home/include/scroller.h b/home/include/scroller.h
new file mode 100755
index 0000000..c855a06
--- /dev/null
+++ b/home/include/scroller.h
@@ -0,0 +1,134 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_SCROLLER_H__
+#define __W_HOME_SCROLLER_H__
+
+/*
+ * FIRST - ... - CENTER_LEFT - CENTER_NEIGHBOR_LEFT - CENTER - CENTER_NEIGHBOR_RIGHT - CENTER_RIGHT - ... - LAST
+ * If there is no center page,
+ * then put the CENTER_LEFT & CENTER & CREATE_RIGHT page to LAST.
+ * The scroller has only one CENTER, CENTER_NEIGHBOR_LEFT and CENTER_NEIGHBOR_RIGHT page each.
+ * If there are already the CENTER & CENTER_NEIGHBOR pages, the scroller replaces them.
+ */
+typedef enum {
+ SCROLLER_PUSH_TYPE_INVALID = 0,
+ SCROLLER_PUSH_TYPE_FIRST,
+ SCROLLER_PUSH_TYPE_CENTER_LEFT,
+ SCROLLER_PUSH_TYPE_CENTER_NEIGHBOR_LEFT,
+ SCROLLER_PUSH_TYPE_CENTER,
+ SCROLLER_PUSH_TYPE_CENTER_NEIGHBOR_RIGHT,
+ SCROLLER_PUSH_TYPE_CENTER_RIGHT,
+ SCROLLER_PUSH_TYPE_LAST,
+ SCROLLER_PUSH_TYPE_MAX,
+} scroller_push_type_e;
+
+typedef enum {
+ SCROLLER_FREEZE_OFF = 0,
+ SCROLLER_FREEZE_ON,
+ SCROLLER_FREEZE_MAX,
+} scroller_freeze_e;
+
+typedef enum {
+ SCROLLER_BRING_TYPE_INVALID = 0,
+ SCROLLER_BRING_TYPE_INSTANT,
+ SCROLLER_BRING_TYPE_INSTANT_SHOW,
+ SCROLLER_BRING_TYPE_ANIMATOR,
+ SCROLLER_BRING_TYPE_JOB,
+ SCROLLER_BRING_TYPE_MAX,
+} scroller_bring_type_e;
+
+extern Evas_Object *scroller_get_focused_page(Evas_Object *scroller);
+extern void scroller_destroy(Evas_Object *layout);
+extern Evas_Object *scroller_create(Evas_Object *layout, Evas_Object *parent, int page_width, int page_height, scroller_index_e index);
+
+extern w_home_error_e scroller_push_page(Evas_Object *scroller, Evas_Object *page, scroller_push_type_e scroller_type);
+extern Evas_Object *scroller_pop_page(Evas_Object *scroller, Evas_Object *page);
+
+extern w_home_error_e scroller_push_pages(Evas_Object *scroller, Eina_List *page_info_list, void (*after_func)(void *), void *data);
+extern void scroller_pop_pages(Evas_Object *scroller, page_direction_e direction);
+
+extern w_home_error_e scroller_push_page_before(Evas_Object *scroller
+ , Evas_Object *page
+ , Evas_Object *before);
+extern w_home_error_e scroller_push_page_after(Evas_Object *scroller
+ , Evas_Object *page
+ , Evas_Object *after);
+
+extern int scroller_count(Evas_Object *scroller);
+extern int scroller_count_direction(Evas_Object *scroller, page_direction_e direction);
+
+extern Eina_Bool scroller_is_scrolling(Evas_Object *scroller);
+
+extern void scroller_freeze(Evas_Object *scroller);
+extern void scroller_unfreeze(Evas_Object *scroller);
+
+extern void scroller_bring_in(Evas_Object *scroller, int i, scroller_freeze_e freeze, scroller_bring_type_e bring_type);
+extern void scroller_bring_in_page(Evas_Object *scroller, Evas_Object *page, scroller_freeze_e freeze, scroller_bring_type_e bring_type);
+extern void scroller_bring_in_by_push_type(Evas_Object *scroller, scroller_push_type_e push_type, scroller_freeze_e freeze, scroller_bring_type_e bring_type);
+extern void scroller_bring_in_center_of(Evas_Object *scroller
+ , Evas_Object *page
+ , scroller_freeze_e freeze
+ , void (*before_func)(void *), void *before_data
+ , void (*after_func)(void *), void *after_data);
+
+extern void scroller_region_show_page(Evas_Object *scroller, Evas_Object *page, scroller_freeze_e freeze, scroller_bring_type_e bring_type);
+extern void scroller_region_show_by_push_type(Evas_Object *scroller, scroller_push_type_e push_type, scroller_freeze_e freeze, scroller_bring_type_e bring_type);
+extern void scroller_region_show_center_of(Evas_Object *scroller
+ , Evas_Object *page
+ , scroller_freeze_e freeze
+ , void (*before_func)(void *), void *before_data
+ , void (*after_func)(void *), void *after_data);
+extern void scroller_region_show_page_without_timer(Evas_Object *scroller, Evas_Object *page);
+
+extern void scroller_read_favorites_list(Evas_Object *scroller, Eina_List *page_info_list);
+extern void scroller_read_list(Evas_Object *scroller, Eina_List *page_info_list);
+extern Eina_List *scroller_write_list(Evas_Object *scroller);
+
+extern Evas_Object *scroller_move_page_prev(Evas_Object *scroller, Evas_Object *from_page, Evas_Object *to_page, Evas_Object *append_page);
+extern Evas_Object *scroller_move_page_next(Evas_Object *scroller, Evas_Object *from_page, Evas_Object *to_page, Evas_Object *insert_page);
+extern int scroller_seek_page_position(Evas_Object *scroller, Evas_Object *page);
+
+extern Evas_Object *scroller_get_page_at(Evas_Object *scroller, int idx);
+
+extern int scroller_get_current_page_direction(Evas_Object *scroller);
+extern Evas_Object *scroller_get_left_page(Evas_Object *scroller, Evas_Object *page);
+extern Evas_Object *scroller_get_right_page(Evas_Object *scroller, Evas_Object *page);
+
+extern void scroller_focus(Evas_Object *scroller);
+
+extern void scroller_highlight(Evas_Object *scroller);
+extern void scroller_unhighlight(Evas_Object *scroller);
+
+extern void scroller_enable_focus_on_scroll(Evas_Object *scroller);
+extern void scroller_disable_focus_on_scroll(Evas_Object *scroller);
+
+extern void scroller_enable_index_on_scroll(Evas_Object *scroller);
+extern void scroller_disable_index_on_scroll(Evas_Object *scroller);
+
+extern void scroller_enable_effect_on_scroll(Evas_Object *scroller);
+extern void scroller_disable_effect_on_scroll(Evas_Object *scroller);
+
+extern void scroller_enable_cover_on_scroll(Evas_Object *scroller);
+extern void scroller_disable_cover_on_scroll(Evas_Object *scroller);
+
+extern void scroller_backup_inner_focus(Evas_Object *scroller);
+extern void scroller_restore_inner_focus(Evas_Object *scroller);
+
+extern void scroller_reorder_with_list(Evas_Object *scroller, Eina_List *list, page_direction_e page_direction);
+
+#endif /* __W_HOME_SCROLLER_H__ */
diff --git a/home/include/scroller_info.h b/home/include/scroller_info.h
new file mode 100755
index 0000000..86ba4ff
--- /dev/null
+++ b/home/include/scroller_info.h
@@ -0,0 +1,60 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_SCROLLER_INFO_H__
+#define __W_HOME_SCROLLER_INFO_H__
+
+typedef enum {
+ SCROLLER_INDEX_INVALID = 0,
+ SCROLLER_INDEX_SINGULAR,
+ SCROLLER_INDEX_PLURAL,
+ SCROLLER_INDEX_MAX,
+} scroller_index_e;
+
+typedef struct {
+ /* innate features; */
+ int root_width;
+ int root_height;
+ int page_width;
+ int page_height;
+ int max_page;
+ scroller_index_e index_number;
+
+ /* acquired features */
+ int scroll_focus;
+ int scroll_index;
+ int scroll_effect;
+ int scroll_cover;
+ int scrolling;
+ int unpack_page_inners_on_scroll;
+ int enable_highlight;
+ int mouse_down;
+
+ Evas_Object *layout;
+ Evas_Object *parent;
+ Evas_Object *box_layout;
+ Evas_Object *box;
+ Evas_Object *center_neighbor_left;
+ Evas_Object *center;
+ Evas_Object *center_neighbor_right;
+ Evas_Object *plus_page;
+ Evas_Object *index[PAGE_DIRECTION_MAX];
+ Ecore_Timer *index_update_timer;
+ Eina_List *effect_page_list;
+} scroller_info_s;
+
+#endif // __W_HOME_SCROLLER_INFO_H__
diff --git a/home/include/tutorial.h b/home/include/tutorial.h
new file mode 100755
index 0000000..6fa7b05
--- /dev/null
+++ b/home/include/tutorial.h
@@ -0,0 +1,41 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_TUTORIAL_H__
+#define __W_HOME_TUTORIAL_H__
+
+enum {
+ TUTORIAL_STEP_INIT = 0,
+ TUTORIAL_STEP_ONE,
+ TUTORIAL_STEP_TWO,
+ TUTORIAL_STEP_THREE,
+ TUTORIAL_STEP_FOUR,
+ TUTORIAL_STEP_FIVE,
+ TUTORIAL_STEP_SIX,
+ TUTORIAL_STEP_SEVEN,
+ TUTORIAL_STEP_MAX,
+};
+
+extern void tutorial_set_transient_for(Ecore_X_Window xwin);
+extern int tutorial_is_first_boot(void);
+extern int tutorial_is_exist(void);
+extern Evas_Object *tutorial_create(Evas_Object *layout);
+extern void tutorial_destroy(Evas_Object *tutorial);
+extern int tutorial_is_apps(Ecore_X_Window xwin);
+extern int tutorial_is_indicator(Ecore_X_Window xwin);
+
+#endif /* __W_HOME_TUTORIAL_H__ */
diff --git a/home/include/tutorial_info.h b/home/include/tutorial_info.h
new file mode 100755
index 0000000..5bded74
--- /dev/null
+++ b/home/include/tutorial_info.h
@@ -0,0 +1,32 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_TUTORIAL_INFO_H__
+#define __W_HOME_TUTORIAL_INFO_H__
+
+typedef struct {
+ Evas_Object *win;
+ Evas_Object *tutorial;
+ Evas_Object *bg;
+ Evas_Object *layout_focus;
+ Evas_Object *text_focus;
+ Evas_Object *layout; // layout of home
+ Evas_Object *scroller; // scroller of home
+ scroller_info_s *scroller_info; //scroller_info of home
+} tutorial_info_s;
+
+#endif /* __W_HOME_TUTORIAL_INFO_H__ */
diff --git a/home/include/util.h b/home/include/util.h
new file mode 100755
index 0000000..13d73d3
--- /dev/null
+++ b/home/include/util.h
@@ -0,0 +1,270 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_UTIL_H__
+#define __W_HOME_UTIL_H__
+
+#include <bundle.h>
+#include <Evas.h>
+
+/* Key */
+#define DATA_KEY_ADD_VIEWER "av"
+#define DATA_KEY_BG "bg"
+#define DATA_KEY_CHECK "ch"
+#define DATA_KEY_CHECK_POPUP "ch_pp"
+#define DATA_KEY_CONFORMANT "cf"
+#define DATA_KEY_EDIT_INFO "ed_if"
+#define DATA_KEY_EDIT_MODE "ed_md"
+#define DATA_KEY_EFFECT_PAGE "ef_pg"
+#define DATA_KEY_EVENT_UPPER_IS_ON "ev_io"
+#define DATA_KEY_EVENT_UPPER_PAGE "ev_up"
+#define DATA_KEY_EVENT_UPPER_TIMER "ev_ut"
+#define DATA_KEY_INDEX "id"
+#define DATA_KEY_INDEX_INFO "id_if"
+#define DATA_KEY_IS_LONGPRESS "is_lp"
+#define DATA_KEY_ITEM_INFO "it_if"
+#define DATA_KEY_LAYOUT "ly"
+#define DATA_KEY_LAYOUT_INFO "ly_if"
+#define DATA_KEY_MAPBUF "mb"
+#define DATA_KEY_MAPBUF_DISABLED_PAGE "mb_dis"
+#define DATA_KEY_PAGE "pg"
+#define DATA_KEY_PAGE_INFO "pg_i"
+#define DATA_KEY_PAGE_ONHOLD_COUNT "pg_ohc"
+#define DATA_KEY_PROXY_PAGE "pr_p"
+#define DATA_KEY_REAL_PAGE "rp"
+#define DATA_KEY_SCROLLER "sc"
+#define DATA_KEY_SCROLLER_INFO "sc_i"
+#define DATA_KEY_WIN "win"
+
+
+//Apps
+#define DATA_KEY_BG "bg"
+#define DATA_KEY_BOX "bx"
+#define DATA_KEY_BUTTON "bt"
+#define DATA_KEY_CURRENT_ITEM "cu_item"
+#define DATA_KEY_EDJE_OBJECT "ej_o"
+#define DATA_KEY_EVAS_OBJECT "ev_o"
+#define DATA_KEY_EVENT_UPPER_ITEM "eu_it"
+#define DATA_KEY_FUNC_DELETE_PACKAGE "fn_del_pkg"
+#define DATA_KEY_FUNC_DESTROY_POPUP "fn_dr_pp"
+#define DATA_KEY_FUNC_DISABLE_ITEM "fn_dis_it"
+#define DATA_KEY_FUNC_ENABLE_ITEM "fn_en_it"
+#define DATA_KEY_FUNC_HIDE_POPUP "fn_hd_pp"
+#define DATA_KEY_FUNC_ROTATE_POPUP "fn_rt_pp"
+#define DATA_KEY_FUNC_SHOW_POPUP "fn_sh_pp"
+#define DATA_KEY_GIC "gic"
+#define DATA_KEY_GRID "gr"
+#define DATA_KEY_HIDE_TRAY_TIMER "htt"
+#define DATA_KEY_HISTORY_LIST "hi_l"
+#define DATA_KEY_IDLE_TIMER "idle_timer"
+#define DATA_KEY_INSTANCE_INFO "ii"
+#define DATA_KEY_ITEM "it"
+#define DATA_KEY_ITEM_ICON_HEIGHT "it_ic_h"
+#define DATA_KEY_ITEM_ICON_WIDTH "it_ic_w"
+#define DATA_KEY_ITEM_HEIGHT "it_h"
+#define DATA_KEY_ITEM_WIDTH "it_w"
+#define DATA_KEY_LAYOUT "ly"
+#define DATA_KEY_LAYOUT_IS_PAUSED "ly_is_ps"
+#define DATA_KEY_LAYOUT_FOCUS_ON "ly_fcs_on"
+#define DATA_KEY_LAYOUT_HIDE_TIMER "ly_hd_tm"
+#define DATA_KEY_LIST "ls"
+#define DATA_KEY_LIST_INDEX "ls_ix"
+#define DATA_KEY_POPUP "pp"
+#define DATA_KEY_SCROLLER "sc"
+#define DATA_KEY_TIMER "timer"
+#define DATA_KEY_WIN "win"
+#define DATA_KEY_IS_VIRTUAL_ITEM "vit"
+#define DATA_KEY_IS_ORDER_CHANGE "ioc"
+#define DATA_KEY_ITEM_UNINSTALL_RESERVED "i_u_r"
+
+#define STR_SIGNAL_EMIT_SIGNAL_ROTATE "rotate"
+#define STR_SIGNAL_EMIT_SIGNAL_UNROTATE "unrotate"
+
+
+
+/* Strings */
+#define APPID_W_HOME "org.tizen.w-home"
+#define APPID_APPS "org.tizen.apps-dbox"
+#define FILE_W_HOME_DB DATADIR"/.w_home.db"
+#define STR_SIGNAL_EMIT_SIGNAL_ROTATE "rotate"
+#define STR_SIGNAL_EMIT_SIGNAL_UNROTATE "unrotate"
+
+
+
+/* Multi-language */
+#if !defined(_)
+#define _(str) gettext(str)
+#endif
+#define gettext_noop(str) (str)
+#define N_(str) gettext_noop(str)
+#define D_(str) dgettext("sys_string", str)
+
+
+
+/* Accessibility */
+#define ACCESS_BUTTON "button"
+#define ACCESS_EDIT "IDS_AT_POP_EDIT"
+
+
+
+/* SIZE */
+#define NAME_LEN 256
+#define TEXT_LEN 256
+#define LOCALE_LEN 32
+#define BUFSZE 1024
+#define SPARE_LEN 128
+#define INDEX_COUNT_LEN 3
+#define PART_NAME_SIZE 128
+
+
+/* VCONF */
+#define VCONF_KEY_WMS_APPS_ORDER "memory/wms/apps_order"
+#define VCONF_KEY_WMS_FAVORITES_ORDER "memory/wms/favorites_order"
+#define VCONF_KEY_HOME_LOGGING "db/private/org.tizen.w-home/logging"
+#define VCONF_KEY_HOME_IS_TUTORIAL "memory/private/org.tizen.w-home/tutorial"
+#define VCONF_KEY_HOME_IS_TUTORIAL_ENABLED_TO_RUN "db/private/org.tizen.w-home/enabled_tutorial"
+#define VCONFKEY_APPS_IS_INITIAL_POPUP "db/private/org.tizen.w-home/apps_initial_popup"
+
+
+/* Build */
+#define HAPI __attribute__((visibility("hidden")))
+
+/* Packaging */
+#define DEFAULT_ICON IMAGEDIR"/unknown.png"
+
+
+/* Enum */
+typedef enum {
+ W_HOME_ERROR_NONE = 0,
+ W_HOME_ERROR_FAIL = -1,
+ W_HOME_ERROR_DB_FAILED = -2,
+ W_HOME_ERROR_OUT_OF_MEMORY = -3,
+ W_HOME_ERROR_INVALID_PARAMETER = -4,
+ W_HOME_ERROR_NO_DATA = -5,
+} w_home_error_e;
+
+
+
+typedef enum {
+ APP_STATE_CREATE = 0,
+ APP_STATE_PAUSE,
+ APP_STATE_RESET,
+ APP_STATE_RESUME,
+ APP_STATE_LANGUAGE_CHANGED,
+ APP_STATE_TERMINATE,
+ APP_STATE_POWER_OFF,
+ APP_STATE_MAX,
+} app_state_e;
+
+
+
+typedef enum {
+ FEATURE_CLOCK_SELECTOR = 0x0001,
+ FEATURE_CLOCK_CHANGE = 0x0002,
+ FEATURE_CLOCK_VISUAL_CUE = 0x0004,
+ FEATURE_CLOCK_HIDDEN_BUTTON = 0x0008,
+ FEATURE_CLOCK_HIDDEN_BUTTON_TIMER = 0x0010,
+ FEATURE_APPS_BY_BEZEL_UP = 0x0020,
+ FEATURE_APPS = 0x0040,
+ FEATURE_TUTORIAL = 0x0080,
+ FEATURE_MAX,
+} feature_e;
+
+
+typedef enum {
+ APPS_ERROR_NONE = 0,
+ APPS_ERROR_FAIL = -1,
+ APPS_ERROR_DB_FAILED = -2,
+ APPS_ERROR_OUT_OF_MEMORY = -3,
+ APPS_ERROR_INVALID_PARAMETER = -4,
+ APPS_ERROR_NO_DATA = -5,
+} apps_error_e;
+
+enum {
+ APPS_APP_STATE_CREATE = 0,
+ APPS_APP_STATE_PAUSE,
+ APPS_APP_STATE_RESET,
+ APPS_APP_STATE_RESUME,
+ APPS_APP_STATE_TERMINATE,
+ APPS_APP_STATE_POWER_OFF,
+ APPS_APP_STATE_MAX,
+};
+
+
+
+enum {
+ APPS_ROTATE_PORTRAIT = 0,
+ APPS_ROTATE_LANDSCAPE,
+};
+
+
+
+enum {
+ APP_TYPE_NATIVE = 0,
+ APP_TYPE_WEB,
+};
+
+
+enum {
+ TUTORIAL_LANGUAGE_NORMAL = 0,
+ TUTORIAL_LANGUAGE_MALI,
+ TUTORIAL_LANGUAGE_GEORGIA,
+};
+
+#if !defined(_EDJ)
+#define _EDJ(a) elm_layout_edje_get(a)
+#endif
+
+/* Functions */
+extern void _evas_object_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+extern void _evas_object_event_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+extern void _evas_object_event_move_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+extern void _evas_object_event_show_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+extern void _evas_object_event_hide_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+extern void _evas_object_event_changed_size_hints_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
+
+extern void util_post_message_for_launch_fail(const char *name);
+extern void util_launch(const char *package, const char *name);
+extern void util_launch_with_arg(const char *app_id, const char *arg, const char *name);
+extern void util_launch_with_bundle(const char *app_id, bundle *b, const char *name);
+extern void util_notify_to_home(int pid);
+
+extern int util_launch_app(const char *appid, const char *key, const char *value);
+extern int util_feature_enabled_get(int feature);
+
+extern int util_find_top_visible_window(char **command);
+
+//apps
+extern void apps_util_launch(Evas_Object *win, const char *package, const char *name);
+extern void apps_util_launch_main_operation(Evas_Object *win, const char *app_id, const char *name);
+extern void apps_util_launch_with_arg(Evas_Object *win, const char *app_id, const char *arg, const char *name);
+extern void apps_util_launch_with_bundle(Evas_Object *win, const char *app_id, bundle *b, const char *name);
+
+extern void apps_util_post_message_for_launch_fail(const char *name);
+extern void apps_util_notify_to_home(int pid);
+
+extern int util_create_toast_popup(Evas_Object *parent, const char* text);
+extern int util_create_check_popup(Evas_Object *parent, const char* text, void _clicked_cb(void *, Evas_Object *, void *));
+
+extern int util_get_app_type(const char *appid);
+extern char *util_get_appid_by_pkgname(const char *pkgname);
+
+extern const char *util_basename(const char *name);
+extern double util_timestamp(void);
+
+extern void util_activate_home_window(void);
+#endif /* __W_HOME_UTIL_H__ */
diff --git a/home/include/virtual_canvas.h b/home/include/virtual_canvas.h
new file mode 100755
index 0000000..06d58ae
--- /dev/null
+++ b/home/include/virtual_canvas.h
@@ -0,0 +1,28 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __APP_TRAY_VIRTUAL_CANVAS_H__
+#define __APP_TRAY_VIRTUAL_CANVAS_H__
+
+extern Evas *virtual_canvas_create(int w, int h);
+extern bool virtual_canvas_flush_to_file(Evas *e, const char *filename, int w, int h);
+extern void *virtual_canvas_load_file_to_data(Evas *e, const char *file, int w, int h);
+extern bool virtual_canvas_destroy(Evas *e);
+
+#endif //__APP_TRAY_VIRTUAL_CANVAS_H__
+
+// End of a file
diff --git a/home/include/win.h b/home/include/win.h
new file mode 100755
index 0000000..271bad8
--- /dev/null
+++ b/home/include/win.h
@@ -0,0 +1,24 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_WIN_H__
+#define __W_HOME_WIN_H__
+
+extern Evas_Object *win_create(const char *name);
+extern void win_destroy(Evas_Object *win);
+
+#endif /* __W_HOME_WIN_H__ */
diff --git a/home/include/wms.h b/home/include/wms.h
new file mode 100755
index 0000000..66a34b9
--- /dev/null
+++ b/home/include/wms.h
@@ -0,0 +1,41 @@
+/*
+ * W-Home
+ *
+ * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: Jin Yoon <jinny.yoon@samsung.com>
+ *
+ * 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 __W_HOME_WMS_H__
+#define __W_HOME_WMS_H__
+
+// 0 : init, 1 : backup request, 2 : restore request, 3: write done
+enum {
+ W_HOME_WMS_INIT = 0,
+ W_HOME_WMS_BACKUP,
+ W_HOME_WMS_RESOTRE,
+ W_HOME_WMS_DONE,
+};
+
+extern void wms_change_apps_order(int value);
+extern void wms_change_favorite_order(int value);
+
+extern void wms_register_setup_wizard_vconf();
+extern void wms_unregister_setup_wizard_vconf();
+
+extern void wms_launch_gear_manager(Evas_Object *parent, char *link);
+
+#endif /* __W_HOME_MAIN_H__ */
diff --git a/home/include/xml.h b/home/include/xml.h
new file mode 100755
index 0000000..bdaeae8
--- /dev/null
+++ b/home/include/xml.h
@@ -0,0 +1,24 @@
+/*
+ * Samsung API
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/license/
+ *
+ * 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 __W_HOME_XML_H__
+#define __W_HOME_XML_H__
+
+extern w_home_error_e xml_read_list(const char *xml_file, Eina_List *page_info_list);
+extern Eina_List *xml_write_list(const char *xml_file);
+
+#endif // __W_HOME_XML_H__