diff options
author | jk7744.park <jk7744.park@samsung.com> | 2015-01-31 16:05:59 +0900 |
---|---|---|
committer | jk7744.park <jk7744.park@samsung.com> | 2015-01-31 16:05:59 +0900 |
commit | f0771909715fd291774879a179972e4b15b607c1 (patch) | |
tree | 29029eac289ecfb35232ba576915b345d6c5f39a /home/include | |
parent | f9db8329e35639291de2d226c272cf3986bcd44c (diff) | |
download | w3-home-tizen_2.3.tar.gz w3-home-tizen_2.3.tar.bz2 w3-home-tizen_2.3.zip |
tizen 2.3 releasetizen_2.3_releasesubmit/tizen_2.3/20150202.053703tizen_2.3
Diffstat (limited to 'home/include')
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__ |