From 7596e199c101a324ac0bbab1be727962fe0ebf07 Mon Sep 17 00:00:00 2001 From: Jinkun Jang Date: Wed, 13 Mar 2013 01:46:42 +0900 Subject: [PATCH] Tizen 2.1 base --- CMakeLists.txt | 52 ++ LICENSE | 204 ++++++++ NOTICE | 1 + client/CMakeLists.txt | 46 ++ client/ug-client.c | 442 +++++++++++++++++ client/ug-client.edc | 49 ++ client/ug-client.h | 58 +++ image/SLP_UI_Gadget_PG_image00.png | Bin 0 -> 12673 bytes image/SLP_UI_Gadget_PG_image01.png | Bin 0 -> 51733 bytes image/SLP_UI_Gadget_PG_image02.png | Bin 0 -> 34998 bytes image/SLP_UI_Gadget_PG_image03.png | Bin 0 -> 19266 bytes image/SLP_UI_Gadget_PG_image2-1.png | Bin 0 -> 26054 bytes image/SLP_UI_Gadget_PG_image2-11.png | Bin 0 -> 29452 bytes image/SLP_UI_Gadget_PG_image2-12.png | Bin 0 -> 13046 bytes image/SLP_UI_Gadget_PG_image2-13.png | Bin 0 -> 13229 bytes image/SLP_UI_Gadget_PG_image2-14.png | Bin 0 -> 13287 bytes image/SLP_UI_Gadget_PG_image2-15.png | Bin 0 -> 12165 bytes image/SLP_UI_Gadget_PG_image2-16.png | Bin 0 -> 12322 bytes image/SLP_UI_Gadget_PG_image2-17.png | Bin 0 -> 12802 bytes image/SLP_UI_Gadget_PG_image2-2.png | Bin 0 -> 26880 bytes image/SLP_UI_Gadget_PG_image2-3.png | Bin 0 -> 12346 bytes image/SLP_UI_Gadget_PG_image2-4.png | Bin 0 -> 11924 bytes image/SLP_UI_Gadget_PG_image2-5.png | Bin 0 -> 12351 bytes image/SLP_UI_Gadget_PG_image2-6.png | Bin 0 -> 13078 bytes image/SLP_UI_Gadget_PG_image2-7.png | Bin 0 -> 12529 bytes image/SLP_UI_Gadget_PG_image2-8.png | Bin 0 -> 12976 bytes image/SLP_UI_Gadget_PG_image2-9.png | Bin 0 -> 13120 bytes include/SLP_UI_Gadget_PG.h | 895 +++++++++++++++++++++++++++++++++++ include/ug-dbg.h | 37 ++ include/ug-engine.h | 36 ++ include/ug-manager.h | 49 ++ include/ug-module.h | 36 ++ include/ug.h | 76 +++ include/ui-gadget-engine.h | 69 +++ include/ui-gadget-module.h | 169 +++++++ include/ui-gadget.h | 750 +++++++++++++++++++++++++++++ packaging/ui-gadget-1.spec | 66 +++ src/engine.c | 128 +++++ src/manager.c | 848 +++++++++++++++++++++++++++++++++ src/module.c | 138 ++++++ src/ug.c | 283 +++++++++++ ug-efl-engine/CMakeLists.txt | 37 ++ ug-efl-engine/ug-efl-engine.c | 348 ++++++++++++++ ug-efl-engine/ug-efl-engine.h | 32 ++ ug-efl-engine/ug_effect.edc | 137 ++++++ ui-gadget-1.manifest | 5 + ui-gadget-1.pc.in | 11 + 47 files changed, 5002 insertions(+) create mode 100755 CMakeLists.txt create mode 100644 LICENSE create mode 100644 NOTICE create mode 100755 client/CMakeLists.txt create mode 100755 client/ug-client.c create mode 100644 client/ug-client.edc create mode 100755 client/ug-client.h create mode 100644 image/SLP_UI_Gadget_PG_image00.png create mode 100644 image/SLP_UI_Gadget_PG_image01.png create mode 100644 image/SLP_UI_Gadget_PG_image02.png create mode 100644 image/SLP_UI_Gadget_PG_image03.png create mode 100755 image/SLP_UI_Gadget_PG_image2-1.png create mode 100755 image/SLP_UI_Gadget_PG_image2-11.png create mode 100755 image/SLP_UI_Gadget_PG_image2-12.png create mode 100755 image/SLP_UI_Gadget_PG_image2-13.png create mode 100755 image/SLP_UI_Gadget_PG_image2-14.png create mode 100755 image/SLP_UI_Gadget_PG_image2-15.png create mode 100755 image/SLP_UI_Gadget_PG_image2-16.png create mode 100755 image/SLP_UI_Gadget_PG_image2-17.png create mode 100755 image/SLP_UI_Gadget_PG_image2-2.png create mode 100755 image/SLP_UI_Gadget_PG_image2-3.png create mode 100755 image/SLP_UI_Gadget_PG_image2-4.png create mode 100755 image/SLP_UI_Gadget_PG_image2-5.png create mode 100755 image/SLP_UI_Gadget_PG_image2-6.png create mode 100755 image/SLP_UI_Gadget_PG_image2-7.png create mode 100755 image/SLP_UI_Gadget_PG_image2-8.png create mode 100755 image/SLP_UI_Gadget_PG_image2-9.png create mode 100755 include/SLP_UI_Gadget_PG.h create mode 100644 include/ug-dbg.h create mode 100644 include/ug-engine.h create mode 100755 include/ug-manager.h create mode 100644 include/ug-module.h create mode 100755 include/ug.h create mode 100755 include/ui-gadget-engine.h create mode 100755 include/ui-gadget-module.h create mode 100755 include/ui-gadget.h create mode 100755 packaging/ui-gadget-1.spec create mode 100755 src/engine.c create mode 100755 src/manager.c create mode 100644 src/module.c create mode 100755 src/ug.c create mode 100755 ug-efl-engine/CMakeLists.txt create mode 100755 ug-efl-engine/ug-efl-engine.c create mode 100644 ug-efl-engine/ug-efl-engine.h create mode 100644 ug-efl-engine/ug_effect.edc create mode 100644 ui-gadget-1.manifest create mode 100644 ui-gadget-1.pc.in diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100755 index 0000000..f6a577a --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,52 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +PROJECT(ui-gadget-1) + +SET(PREFIX ${CMAKE_INSTALL_PREFIX}) +SET(EXEC_PREFIX "\${prefix}") +SET(LIBDIR "\${prefix}/lib") +SET(INCLUDEDIR "\${prefix}/include") +SET(VERSION_MAJOR 0) +SET(VERSION "${VERSION_MAJOR}.1.0") + +SET(CMAKE_SKIP_BUILD_RPATH TRUE) + +IF("${CMAKE_BUILD_TYPE}" STREQUAL "") + SET(CMAKE_BUILD_TYPE "Release") +ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "") + +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include) + +ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"") +ADD_DEFINITIONS("-DDATAFS=\"${DATADIR}\"") +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden -Wall") + +INCLUDE(FindPkgConfig) +SET(SRCS src/ug.c + src/manager.c + src/module.c + src/engine.c) + +ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS}) + +PKG_CHECK_MODULES(PKGS REQUIRED glib-2.0 utilX bundle dlog x11 capi-appfw-application appsvc capi-appfw-app-manager elementary) +FOREACH(flag ${PKGS_CFLAGS}) + SET(CFLAGS "${CFLAGS} ${flag}") +ENDFOREACH(flag) + +SET(CFLAGS "${CFLAGS} -I${CMAKE_CURRENT_SOURCE_DIR}/include") +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "${CFLAGS}") +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION_MAJOR}) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION}) +TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${PKGS_LDFLAGS} -ldl) + +CONFIGURE_FILE(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY) + +INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib) +INSTALL(FILES ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION lib/pkgconfig) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/ui-gadget-module.h DESTINATION include/ug-1) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/ui-gadget-engine.h DESTINATION include/ug-1) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/ui-gadget.h DESTINATION include/ug-1) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/SLP_UI_Gadget_PG.h DESTINATION include/ug-1) + +ADD_SUBDIRECTORY(ug-efl-engine) +ADD_SUBDIRECTORY(client) diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..bae7f54 --- /dev/null +++ b/LICENSE @@ -0,0 +1,204 @@ +Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd. All rights reserved. + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/NOTICE b/NOTICE new file mode 100644 index 0000000..4c49449 --- /dev/null +++ b/NOTICE @@ -0,0 +1 @@ +Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd. All rights reserved. diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt new file mode 100755 index 0000000..cd31296 --- /dev/null +++ b/client/CMakeLists.txt @@ -0,0 +1,46 @@ +SET(CLIENT ug-client) +SET(CLIENT_SRCS ug-client.c) +SET(CLIENT_VENDOR samsung) +SET(CLIENT_DIR /usr/bin) +SET(CLIENT_LOCALEDIR /usr/share/locale) + +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) + +INCLUDE(FindPkgConfig) +PKG_CHECK_MODULES(CLIENT_PKGS REQUIRED + capi-appfw-application + capi-system-runtime-info + appcore-efl + appsvc + bundle + ecore-x + edje + dlog + elementary + evas + x11) + +FOREACH(flag ${CLIENT_PKGS_CFLAGS}) + SET(CLIENT_CFLAGS "${CLIENT_CFLAGS} ${flag}") +ENDFOREACH(flag) + +SET(CLIENT_CFLAGS, "${CLIENT_CFLAGS} -DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"") +SET(CLIENT_CFLAGS, "${CLIENT_CFLAGS} -DVENDOR=\"${CLIENT_VENDOR}\"") +SET(CLIENT_CFLAGS, "${CLIENT_CFLAGS} -DAPP_NAME=\"${CLIENT}\"") +SET(CLIENT_CFLAGS, "${CLIENT_CFLAGS} -DAPP_DIR=\"${CLIENT_DIR}\"") +SET(CLIENT_CFLAGS, "${CLIENT_CFLAGS} -DAPP_LOCALEDIR=\"${CLIENT_LOCALEDIR}\"") + +ADD_EXECUTABLE(${CLIENT} ${CLIENT_SRCS}) +SET_TARGET_PROPERTIES(${CLIENT} PROPERTIES COMPILE_FLAGS "${CLIENT_CFLAGS}") +TARGET_LINK_LIBRARIES(${CLIENT} ${PROJECT_NAME} ${CLIENT_PKGS_LDFLAGS}) + +ADD_CUSTOM_TARGET(ug-client.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images + ${CMAKE_CURRENT_SOURCE_DIR}/ug-client.edc ${CMAKE_CURRENT_BINARY_DIR}/ug-client.edj + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ug-client.edc +) +ADD_DEPENDENCIES(${CLIENT} ug-client.edj) + +INSTALL(TARGETS ${CLIENT} DESTINATION bin) +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/ug-client.edj DESTINATION share/edje/ug-client) + diff --git a/client/ug-client.c b/client/ug-client.c new file mode 100755 index 0000000..1125ef0 --- /dev/null +++ b/client/ug-client.c @@ -0,0 +1,442 @@ +/* + * UI Gadget + * + * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: Jayoun Lee + * + * 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. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "ug-client.h" + +#ifdef LOG_TAG +#undef LOG_TAG +#endif + +#define LOG_TAG "UI_GADGET_CLIENT" + +static void prt_usage(const char *cmd) +{ + fprintf(stderr, "Usage: %s [-f] [-F] -n [-d ]\n", + cmd); + fprintf(stderr, " Options:\n"); + fprintf(stderr, " -d argument\n"); + fprintf(stderr, " -F Fullview mode (Default)\n"); + fprintf(stderr, " -f Frameview mode\n"); + fprintf(stderr, " Example:\n"); + fprintf(stderr, + " %s -F -n helloUG-efl -d \"name,John Doe\" -d \"age,30\"\n", + cmd); + +} + +static void win_del(void *data, Evas_Object *obj, void *event) +{ + elm_exit(); +} + +static void main_quit_cb(void *data, Evas_Object *obj, + const char *emission, const char *source) +{ + elm_exit(); +} + +static int rotate(enum appcore_rm m, void *data) +{ + struct appdata *ad = data; + int r; + bool is_rotation_lock = false; + + if (ad == NULL || ad->win == NULL) + return 0; + + switch (m) { + case APPCORE_RM_PORTRAIT_NORMAL: + ug_send_event(UG_EVENT_ROTATE_PORTRAIT); + r = 0; + break; + case APPCORE_RM_PORTRAIT_REVERSE: + r = 180; + ug_send_event(UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN); + break; + case APPCORE_RM_LANDSCAPE_NORMAL: + ug_send_event(UG_EVENT_ROTATE_LANDSCAPE); + r = 270; + break; + case APPCORE_RM_LANDSCAPE_REVERSE: + ug_send_event(UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN); + r = 90; + break; + default: + r = -1; + break; + } + + LOGE("rotate cb / rm : %d , r : %d", m, r); + + if(r >= 0) + elm_win_rotation_with_resize_set(ad->win, r); + + return 0; +} + +void _ug_client_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv) +{ + struct appdata *ad; + Evas_Object *base; + + if (!ug || !priv) + return; + + ad = priv; + + base = ug_get_layout(ug); + if (!base) + return; + + switch (mode) { + case UG_MODE_FULLVIEW: + evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + ug_disable_effect(ug); + elm_object_content_set(ad->ly_main, base); + evas_object_show(base); + break; + case UG_MODE_FRAMEVIEW: + elm_object_part_content_set(ad->ly_main, "content", base); + break; + default: + break; + } +} + +void _ug_client_result_cb(ui_gadget_h ug, service_h result, void *priv) +{ + struct appdata *ad; + int ret; + + if (!ug || !priv) + return; + ad = priv; + + ret = service_reply_to_launch_request(result, ad->request, SERVICE_RESULT_SUCCEEDED); + if (ret != SERVICE_ERROR_NONE) + LOGE("service_reply_to_launch_request failed, %d", ret); +} + +void _ug_client_destroy_cb(ui_gadget_h ug, void *priv) +{ + if (!ug) + return; + + ug_destroy(ug); + elm_exit(); +} + +static void profile_changed_cb(void *data, Evas_Object * obj, void *event) +{ + const char *profile = elm_config_profile_get(); + + if (strcmp(profile, "desktop") == 0) + elm_win_indicator_mode_set (obj, ELM_WIN_INDICATOR_HIDE); + else + elm_win_indicator_mode_set (obj, ELM_WIN_INDICATOR_SHOW); +} + +static Evas_Object *create_win(const char *name) +{ + Evas_Object *eo; + int w, h; + + eo = elm_win_add(NULL, name, ELM_WIN_BASIC); + if (eo) { + elm_win_title_set(eo, name); + elm_win_conformant_set(eo, EINA_TRUE); + evas_object_smart_callback_add(eo, "delete,request", + win_del, NULL); + evas_object_smart_callback_add(eo, "profile,changed", profile_changed_cb, NULL); + ecore_x_window_size_get(ecore_x_window_root_first_get(), + &w, &h); + evas_object_resize(eo, w, h); + } + + return eo; +} + +static Evas_Object *_ug_client_load_edj(Evas_Object *parent, const char *file, + const char *group) +{ + Evas_Object *eo; + int r; + eo = elm_layout_add(parent); + if (eo) { + r = elm_layout_file_set(eo, file, group); + if (!r) { + evas_object_del(eo); + return NULL; + } + evas_object_size_hint_weight_set(eo, + EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + } + return eo; +} + +static int low_memory(void *data) +{ + return ug_send_event(UG_EVENT_LOW_MEMORY); +} + +static int low_battery(void *data) +{ + return ug_send_event(UG_EVENT_LOW_BATTERY); +} + +static int lang_changed(void *data) +{ + return ug_send_event(UG_EVENT_LANG_CHANGE); +} + +static int app_create(void *data) +{ + struct appdata *ad = data; + enum appcore_rm rm; + Evas_Object *win; + Evas_Object *ly; + Evas_Object *conform; + Evas_Object *bg; + + /* create window */ + win = create_win(PACKAGE); + if (win == NULL) + return -1; + ad->win = win; + UG_INIT_EFL(ad->win, UG_OPT_INDICATOR_ENABLE); + + bg = elm_bg_add(win); + evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(win, bg); + evas_object_show(bg); + + conform = elm_conformant_add(win); + evas_object_size_hint_weight_set(conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + ad->conform = conform; + + /* load edje */ + ly = _ug_client_load_edj(conform, EDJ_FILE, GRP_MAIN); + if (ly == NULL) + return -1; + elm_win_resize_object_add(win, conform); + + evas_object_show(conform); + elm_object_content_set(conform, ly); + edje_object_signal_callback_add(elm_layout_edje_get(ly), + "EXIT", "*", main_quit_cb, NULL); + ad->ly_main = ly; + elm_win_indicator_mode_set(win, ELM_WIN_INDICATOR_SHOW); + lang_changed(ad); + + if (appcore_get_rotation_state(&rm) == 0) + rotate(rm, ad); + + appcore_set_rotation_cb(rotate, ad); + appcore_set_event_callback(APPCORE_EVENT_LOW_MEMORY, low_memory, ad); + appcore_set_event_callback(APPCORE_EVENT_LOW_BATTERY, low_battery, ad); + appcore_set_event_callback(APPCORE_EVENT_LANG_CHANGE, lang_changed, ad); + + return 0; +} + +static int app_terminate(void *data) +{ + struct appdata *ad = data; + + ug_destroy_all(); + + if (ad->ly_main) { + evas_object_del(ad->ly_main); + ad->ly_main = NULL; + } + + if (ad->win) { + evas_object_del(ad->win); + ad->win = NULL; + } + + return 0; +} + +static int app_pause(void *data) +{ + struct appdata *ad = data; + + ug_pause(); + if (!ad->is_transient) { + LOGD("app_pause received. close ug service"); + elm_exit(); + } + return 0; +} + +static int app_resume(void *data) +{ + ug_resume(); + return 0; +} + +static int svc_cb(void *data) +{ + LOGD("svc_cb called"); + return 0; +} + +static int app_reset(bundle *b, void *data) +{ + struct appdata *ad = data; + struct ug_cbs cbs = { 0, }; + service_h service; + enum ug_mode mode = UG_MODE_FULLVIEW; + int ret; + Ecore_X_Window id2 = elm_win_xwindow_get(ad->win); + + ret = appsvc_request_transient_app(b, id2, svc_cb, "svc test"); + if (ret) + LOGD("fail to request transient app: return value(%d)", ret); + else + ad->is_transient = 1; + + if (ad->win) { + elm_win_activate(ad->win); + evas_object_show(ad->win); + } + + if (ad->data) /* ug-launcher */ + service_create_event(ad->data, &service); + else + service_create_event(b, &service); + + if(service) { + service_clone(&ad->request, service); + service_destroy(service); + } + + cbs.layout_cb = _ug_client_layout_cb; + cbs.destroy_cb = _ug_client_destroy_cb; + cbs.result_cb = _ug_client_result_cb; + cbs.priv = ad; + + mode = ad->is_frameview ? UG_MODE_FRAMEVIEW : UG_MODE_FULLVIEW; + + ad->ug = ug_create(NULL, ad->name, mode, ad->request, &cbs); + if (ad->ug == NULL) { + LOGE("ug_create fail: %s", ad->name); + elm_exit(); + } + + return 0; +} + +static int update_argument(const char *optarg, struct appdata *ad) +{ + const char *key; + const char *val; + key = strtok((char *)optarg, ","); + if (!key) + return -1; + + val = optarg + strlen(key) + 1; + if (!val) + return -1; + + if (!ad->data) + ad->data = bundle_create(); + if (!ad->data) + return -1; + bundle_add(ad->data, key, val); + return 0; +} + +int main(int argc, char *argv[]) +{ + int opt; + struct appdata ad; + struct appcore_ops ops = { + .create = app_create, + .terminate = app_terminate, + .pause = app_pause, + .resume = app_resume, + .reset = app_reset, + }; + int cmdlen = 0; + + setenv("ELM_ENGINE", "gl", 1); //enabling the OpenGL as the backend of the EFL. + + memset(&ad, 0x0, sizeof(struct appdata)); + ops.data = &ad; + + cmdlen = strlen(argv[0]); + if (strncmp(argv[0], "ug-launcher", cmdlen) == 0 + || strncmp(argv[0], "/usr/bin/ug-launcher", cmdlen) == 0) { + while ((opt = getopt(argc, argv, "n:d:")) != -1) { + switch (opt) { + case 'n': + if (optarg) + ad.name = strdup(optarg); + break; + case 'f': + ad.is_frameview = 1; + break; + case 'F': + ad.is_frameview = 0; + break; + case 'd': + if (update_argument(optarg, &ad)) { + if (ad.data) + bundle_free(ad.data); + prt_usage(argv[0]); + return -1; + } + break; + default: + prt_usage(argv[0]); + return -1; + } + } + + if (!ad.name) { + prt_usage(argv[0]); + return -1; + } + argc = 1; // remove appsvc bundle + } else { /* ug-client */ + char *name = NULL; + name = strrchr(argv[0], '/'); + if (name == NULL) + return -1; + /* .../bin/{name} */ + ad.name = strdup(&name[1]); + } + return appcore_efl_main(PACKAGE, &argc, &argv, &ops); +} diff --git a/client/ug-client.edc b/client/ug-client.edc new file mode 100644 index 0000000..398bb77 --- /dev/null +++ b/client/ug-client.edc @@ -0,0 +1,49 @@ +/* + * UI Gadget + * + * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved + * + * Contact: Jayoun Lee + * + * 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. + * + */ + +collections { + group { + name: "main"; + + parts { + part { name: "background"; + type: RECT; + mouse_events: 0; + description { + state: "default" 0.0; + rel1 { relative: 0.0 0.0; offset: 0 0; } + rel2 { relative: 1.0 1.0; offset: -1 -1; } + color: 0 0 0 255; + } + } + + part { name: "content"; + type: SWALLOW; + description { + state: "default" 0.0; + rel1 { relative: 0.2 0.2; to: background; } + rel2 { relative: 0.8 0.8; to: background; } + color: 255 255 255 255; + } + } + } + } +} diff --git a/client/ug-client.h b/client/ug-client.h new file mode 100755 index 0000000..7c496fd --- /dev/null +++ b/client/ug-client.h @@ -0,0 +1,58 @@ +/* + * UI Gadget + * + * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: Jayoun Lee + * + * 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 __UG_CLIENT_H__ +#define __UG_CLIENT_H__ + +#include +#include +#include + +#if !defined(PACKAGE) +#define PACKAGE "ug-client" +#endif + +#if !defined(LOCALEDIR) +#define LOCALEDIR "/usr/share/locale" +#endif + +#if !defined(EDJDIR) +#define EDJDIR "/usr/share/edje/ug-client" +#endif + +#define EDJ_FILE EDJDIR "/" PACKAGE ".edj" +#define GRP_MAIN "main" + +struct appdata { + Evas_Object *win; + Evas_Object *ly_main; + Evas_Object *conform; + + ui_gadget_h ug; + const char *name; + int is_frameview; + int is_transient; + + bundle *data; + service_h request; +}; + +#endif /* __UG_CLIENT_H__ */ diff --git a/image/SLP_UI_Gadget_PG_image00.png b/image/SLP_UI_Gadget_PG_image00.png new file mode 100644 index 0000000000000000000000000000000000000000..fec5e5261834bcbed6c808dc5ce4a0910f539ef4 GIT binary patch literal 12673 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%0Dv;&>zUsq?R)=L5!PF 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 z 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 literal 0 HcmV?d00001 diff --git a/image/SLP_UI_Gadget_PG_image03.png b/image/SLP_UI_Gadget_PG_image03.png new file mode 100644 index 0000000000000000000000000000000000000000..0b69891ce0e8637dbb69f621d0299d9c4ef7c03b GIT binary patch literal 19266 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 literal 0 HcmV?d00001 diff --git a/image/SLP_UI_Gadget_PG_image2-1.png b/image/SLP_UI_Gadget_PG_image2-1.png new file mode 100755 index 0000000000000000000000000000000000000000..3d08ea7d3bd02a1bdadff0bf48f7efe2fa5eed9c GIT binary patch literal 26054 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 literal 0 HcmV?d00001 diff --git a/image/SLP_UI_Gadget_PG_image2-11.png b/image/SLP_UI_Gadget_PG_image2-11.png new file mode 100755 index 0000000000000000000000000000000000000000..eeb9ddba1c6a1a1dd3bb3ca7c9f8029fa2640a6f GIT binary patch literal 29452 zcmXtfb9^nm_jTP<+qUgn>(;onZ*BM1wr$(CZQHhOzkR;H&-=%mImslMon&Uu&RQ#> z^0H!Z(AdyGKtOO3;vxz_K)??_|K9;1Kffr6w;ewxUL{P~^=TaL|3snqbyR*|v>{>iFj}@)P zStf6GC6bNFTtDv*ii|XCnttf-{8wq#CmjQu99_X$jVloF(F9|K$_;L~y5p{;y097O_u+I}5H-0rG$O zhyp`+lmDwrGy{v&Q=UDbq#-Y#kxW5F_eb1_GwK`{HYQ_o-yU2Dl!e9D*LUhr5JU;m zw@zJ2AuncDA6;4Oh~rIQi(qQ^-qlTr1V)NIT9t*(lTKr@c8d8P%ew6}cR$yQek5`3Cd8-F-uRe(3KLNN1?ox7P$v`Di zkWbBKi|dVAk|}{};>L6+IQK+_+z>c88P~f2rE<=HX`+oPnuSWemB0?s#nsDA4#_H3 z>q}{* z4Hgt+;%bPq^i(c)XV$ugibs}$BK^e@{tDpxxw*YQA+kc^YXr!&rn=JE!x9H!lAKJ@ z8^1%5eRU;n#GV$Dfnf?Bm!6~hHh4UU@z=FkLDfZY--42oV(06W)io|RcdV4OKS`af ztS;cL_;{I^SZ2D`OJ+B^R?avoRhX)H< z5Y40Ku@5(TAN}Ih&s!X3i)EuU_fFt@1U%wixQj+3h`a{z#uemn%I zO?B2_P9cNsNF&lA-uB0`@#&(CI7=4?2PK*u?w&jlmD?7Ox^z{N9+;`vc$+30F26X# zEQq`#=_R7VB)#rho>OXJ{Ys_+6WvP=70g6*b(3@Z%}rL((p0G2?TjCeyq5z>6ZPjV zc+;1`11OZm#?GF7GZ*2ny9u0biC=`vz0uBA5dre`CufUQ{XwcG=&|N(6IhSo*oEd} zxs?@awWwb~MIQA*rIhDAOOD6FC`<~c^)~0R42Ui4{3S%=3SC4z177UDpkED(=P>O(nl2o(YUm1ozn=t1zP2@1!eePQX04Y zHaKT}2kOgIY^)aR{icMxvQwpwjV^8O+}PXv^X2jboh9G3B#(SvKnJqdt9>DV=lgg9 zV}+C&M@Q@Rq@hKP{REx(Sc^_dToysJTjN>%$fbBFMB) zGTmhsS`eJ(k?@$k8>Sw6ep0_2OPd3y&VE?=XuD23_{C~we40izDN^kiQj7c1M19PT zbH0Q5BAdyDw8A6-RIcx~_gn6gTI2W5{JPv6bzEH02L6t|jm>q} zr};g`(LSQvH?UwRkjN$e=XwX%=aBkvLN5c~fpye+7kCMc3BRq8KM_<$>+3V|K zYfW5YyGEs?`_n|D`|}wefzHD?EI)UF_jeW@9W?uGt^+L4@>)oUryjx=vSLaX*ihlpf|S1RNY3P_#SY&C3EL#yb6jKX=Oy z9y+K8(NC~$Y|*o|TfYMaQS^D@n?GLY*QD9U7nazG_5>3_1cD_a+@0*9

X;0vB7q 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 literal 0 HcmV?d00001 diff --git a/image/SLP_UI_Gadget_PG_image2-12.png b/image/SLP_UI_Gadget_PG_image2-12.png new file mode 100755 index 0000000000000000000000000000000000000000..a476b23e39f9e4d6b95e69004e15ca6efe3d253d GIT binary patch literal 13046 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 O0wOLfBUCM*>;Hc(VKb8e literal 0 HcmV?d00001 diff --git a/image/SLP_UI_Gadget_PG_image2-13.png b/image/SLP_UI_Gadget_PG_image2-13.png new file mode 100755 index 0000000000000000000000000000000000000000..13199fe6033277c5412e9bde6615d9a59a622f2f GIT binary patch literal 13229 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 A#Q*>R literal 0 HcmV?d00001 diff --git a/image/SLP_UI_Gadget_PG_image2-14.png b/image/SLP_UI_Gadget_PG_image2-14.png new file mode 100755 index 0000000000000000000000000000000000000000..f75131eace0df695561ccd60634a9efc0bd9666f GIT binary patch literal 13287 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 ?}3qSG^(nkRxG2zX8k_Ka{eom-=m5r!)a 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 literal 0 HcmV?d00001 diff --git a/image/SLP_UI_Gadget_PG_image2-2.png b/image/SLP_UI_Gadget_PG_image2-2.png new file mode 100755 index 0000000000000000000000000000000000000000..db457c970534cc79663b1e6b819c870991fe4515 GIT binary patch literal 26880 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 l z!_#1fc|yX~N~GK9J8i%~F867W+O7AJcu#l?PV(@E?ni)!GSJftKc_NI$Cyj58t!7m z8Tc!+o^k}yPAMpbj3w;I#(R+_6l~1L9!J{Pot-+Mlu#K*hjIg2+P41nq5jA>(B@LP zLEw;K#O^_1fLk-t*HThpNQxjfV~YZZ$=j}dj%pQsghm=&8VL#i(ZdFp`yw>>Q_iva zwB#jFIjXgJ#&)TUaAEq65%dQUqgXej@A!*eTkBv!cn2|I?P;z!K_z7CQZ7kicW;X< zX@qSur%OjS+87cS07;VBPh+?6zC9jbs}Jlq!h%7+TkB~dh-9<~@xQoH2=9u@ z)?Zdc$p${D25QCF3iJkHRcp{8$fcv{ByXg1+1>o=!K>2$kdj&-ouI~cJW|>iPiEDo zwm(LY{WFge3W))=XghNCW=BWQL^_k~ndhRCU$6iIw@4TPRVyv@UqFOQ4GzHDTSQVS zS4c$|C$el6*m!NbFxKT@!tJ9H#dZYPU5n)Q3=(G#ik2vNiEJ}Oed^rSy&xN6x@+m2e^oCw8 zIq)Wli+RJs!i0r|!J;8_8H6xT|77fpgkj4>MC?WFg@bZZ@U$Mm2m}NU1(Z<7a3p+0 zDaS`(gh#fTNZ1wlQns2F>*+`Z7gk6O3y~o<5?RkDJ*1!^O2e5y^R2Bn4#|t}!I_*S zYAnK26mSHv&^70PlaM~)9>?jCZ#2M)6Rq?pajekpW$~T!O?>S6$&gw#sgFYXEo1hS zzQq_>k;1Nf#MJdM2=+Pe>Q7OeL47z8^o1u}cX8im;>My#GI*N+8a;m~hS~3dczSj* zec|=;>Bq*5I>lvW44j;9r%Sc+oGNp1@)S^rgElBvKP4HK7r1f0LUa-m5UHq^Y#)Q3 zBqIDRFrfc1)w2r-@O)^bsg|HtoyOa{ukpM+BiGi)DIMS#2BUq>G5{E>Hle~~pWI`h zuYK22gprHBS6jOP45N}31Tp3XiWe>K76S~uC z4~1=VEyB;FyTKSc@Zc=288-#dgFimksl zmb*0yx0aAV@Cg!*U*>^1DlOIiV;;sF8i)(vao>~LAZ|;f$zU0bZkM8pjE**C=aAyc zkbr84+Aqmn=I9vLeWqCSQmx4cSz^|@7ya2oOKE&$#E6$qihorcssVMT)>hM>iZ=r*&=kcZYkUe|qwry11_lP|(xb*LKj`T^8rZRP zYWa+Z5ilso)J7MMg8-dq$Fgtel#`h#LZ^TNstNT4A-NsngOpKv43bdi>OWP6YjW7c zxFg;U{;z%H7`axd(_GQhiski@bC1}Ow|VqFBEY9`XNMEdPR;J(vqyb7W2VA^L}s N7FQ6f5-|+^e*lX4?*jk; literal 0 HcmV?d00001 diff --git a/image/SLP_UI_Gadget_PG_image2-6.png b/image/SLP_UI_Gadget_PG_image2-6.png new file mode 100755 index 0000000000000000000000000000000000000000..041b837312c2dfd1043efa0d281aee14f6be51dc GIT binary patch literal 13078 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 literal 0 HcmV?d00001 diff --git a/image/SLP_UI_Gadget_PG_image2-8.png b/image/SLP_UI_Gadget_PG_image2-8.png new file mode 100755 index 0000000000000000000000000000000000000000..662410b4fd3d1bde44b6d92b94980268c9be7142 GIT binary patch literal 12976 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 JRU(Fg{|A>>TRi{( literal 0 HcmV?d00001 diff --git a/include/SLP_UI_Gadget_PG.h b/include/SLP_UI_Gadget_PG.h new file mode 100755 index 0000000..70387f2 --- /dev/null +++ b/include/SLP_UI_Gadget_PG.h @@ -0,0 +1,895 @@ +/* + * UI Gadget + * + * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: Jayoun Lee , Jinwoo Nam + * + * 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. + * + */ + +/** + * + * @ingroup SLP_PG + * @defgroup SLP_PG_UI_GADGET UI gadget library + * @{ + +

Introduction

+

Purpose of this document

+The purpose of this document is to describe how to develop/use UI gadget. This document gives programming guidelines to UI gadget devlopers and users. +

Scope

+The scope of this document is limited to UI gadget component interface and API usage. + +

UI gadget architecture

+

UI gadget

+An UI gadget is a visual component providing views (or features) of other applications, e.g., contact, image viewer. Because UI gadgets are supposed to deliver most commonly used features that the platform can natively support, developers can avoid unnecessary massive code writing using UI gadgets. Hence an UI gadget eventually includes logics to handle simple request. UI gadget is able to be managed by UI gadget library. +\image html SLP_UI_Gadget_PG_image00.png "Picture 1. UI gadget architecture diagram" + +

UI gadget features

+UI Gadget Library has the following features: +- It provides component interfaces for UI Gadget +- It manages UI gadget instances in an application according to their lifecycle + +

Lifecycle

+Essentially, an UI gadget has following five states (See Picture 2) +- The initial state is \b Ready +- If an UI gadget has been created, it is \b Created +- If an UI gadget has been started, it is \b Running +- If the application that is using an UI gadget is put into background, it is \b Stopped +- If an UI gadget has been destroyed, it is \b Destroyed + +An UI gadget has five callback methods that you can implement to perform operations when the UI gadget moves between states +- When an UI gadget is created, \b create() is invoked +- When an UI gadget is started, \b start() is invoked +- When the application that is using an UI gadget is put into background, \b pause() is invoked +- When the application that is using an UI gadget is brought to the foreground, \b resume() is invoked. +- When an UI gadget is destroyed, \b destroy() is invoked + +In addition, an UI gadget has callback methods for system events and message: +- When an system event is generated, event() is invoked +- When an UI gadget receives message from the caller, message() is invoked + +\image html SLP_UI_Gadget_PG_image01.png "Picture 2. UI gadget state diagram" + +

Management

+UI gadgets in an application are managed as a TREE structure (See Picture 3.) The features for the tree are: +- Root of the tree is the UI gadget manager +- UI gadget caller is parent of callees +- Parents arrange the layout of their children + +Every application which is using UI gadgets has one UI gadget manager as a root of the tree. And the UI gadget manager propagates system events and task management events by post-order traversal. Available system events are low memory, low battery, language changed, region changed and window rotate event. And task management events are pause and resume. + +\image html SLP_UI_Gadget_PG_image02.png "Picture 3. UI gadget management policy" + +

Getting started

+

Overview

+For using UI gadget, you need to know the working procedure between caller and UI gadget module.

+As an UI gadget module developer, the operations of UI gadget module are very important. These operations are called by UI gadget library when the caller requests something to UI gadget module and UI gadget module performs a proper job mainly related with lifecycle. “Section How to make UI gadget” describes detail of each operation.

+As an UI gadget caller, you need to know the APIs for using UI gadget module and callback functions for dealing with UI gadget module. The caller can create UI gadget module using ug_create() API and have right to arrange layout of UI gadget module and destroy UI gadget module. These are performed by caller when caller requests something to UI gadget library and related callback functions are called by UI gadget library. “Section How to use UI gadget” describes detail of each APIs and callback functions. +

How to make UI gadget

+In this section, we are going to write your first UI gadget called "helloUG-efl". Before we get started, make sure you have read the overview, especially, lifecycle section. We will mainly deal with the operations of lifecycle. + +\note Sample codes are included in the UI gadget source package. The samples for UI gadget developers are located in "samples/helloUG-efl/", and the samples for UI gadget users are in "samples/ugcaller/." + +
+

UI gadget template

+To create an UI gadget, start by generating boilerplate code using UI gadget template as follow: +@verbatim +# ug-gen.sh helloUG-efl helloUG-efl EFL +@endverbatim + +\note How to install UI gadget template: +@verbatim +# unrpm ui-gadget-template-xxx.rpm +# or +# rpm -Uvh ui-gadget-templat-xxx.rpm +@endverbatim + +\note How to use UI gadget template: +@verbatim +# ug-gen.sh [destination] [name] [UI library] +@endverbatim +- destination: destination directory +- name: UI gadget name +- UI library: UI library to use. Only EFL is available for now + +After you generate code, you get following files: +- helloUG-efl.c (Source) +- helloUG-efl.h (Private header) +- CMakeList.txt (Build script) +- po/* (I18N files) + +helloUG-efl.c contains base code, and the most important parts are UG_MODULE_INIT and UG_MODULE_EXIT which are symbols to export for dynamic linking. UG_MODULE_INIT is invoked when the UI gadget is loading, and it sets operations, private data, and the option. UG_MODULE_EXIT is invoked when the UI gadget is unloading, and it clears private data.

+Even if you don't understand generated code right now, don't worry about it. What you have to do is just implementation of operations according to their role (see next section.) +@code +// in helloUG-efl.c +UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops) +{ + struct ug_data *ugd; // User defined private data + + if (!ops) + return -1; + + ugd = calloc(1, sizeof(struct ug_data)); + if (!ugd) + return -1; + + // create operation + ops->create = on_create; + // start operation + ops->start = on_start; + // pause operation + ops->pause = on_pause; + // resume operation + ops->resume = on_resume; + // destroy operation + ops->destroy = on_destroy; + // message operation + ops-> message = on_message; + // event operation + ops->event = on_event; + // private data + ops->priv = ugd; + // option + ops->opt = UG_OPT_INDICATOR_ENABLE; + + return 0; +} + +UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops) +{ + struct ug_data *ugd; + + if (!ops) + return; + + ugd = ops->priv; + if (ugd) + free(ugd); // clear private data +} + +@endcode + +\note struct ug_module_ops is a data structure describing operations, private data, and the option of UI gadget: +@code +struct ug_module_ops { + void *(*create)(ui_gadget_h ug, enum ug_mode mode, service_h service, void *priv); + void (*start)(ui_gadget_h ug, service_h service, void *priv); + void (*pause)(ui_gadget_h ug, service_h service, void *priv); + void (*resume)(ui_gadget_h ug, service_h service, void *priv); + void (*destroy)(ui_gadget_h ug, service_h service, void *priv); + void (*message)(ui_gadget_h ug, service_h *msg, service_h service, void *priv); + void (*event)(ui_gadget_h ug, enum ug_event event, service_h service, void *priv); + void *reserved[5]; + void *priv; + enum ug_option opt; +}; +@endcode + +\note enum ug_option is UI gadget options, available options are: +@code +// Enable indicator +UG_OPT_INDICATOR_ENABLE +// Enable indicator with portrait window +UG_OPT_INDICATOR_PORTRAIT_ONLY +// Enable indicator with landscape window +UG_OPT_INDICATOR_LANDSCAPE_ONLY +// Disable indicator +UG_OPT_INDICATOR_DISABLE +// current indicator status will be held +UG_OPT_INDICATOR_MANUAL +// Enable indicator overlap +UG_OPT_OVERLAP_ENABLE +@endcode + +\note struct ug_data is a user defined private data structure describing base layout, own UI gadget handler, and whatever you need: +@code +struct ug_data { + Evas_Object *base; + ui_gadget_h ug; + + // PUT WHATEVER YOU NEED +} +@endcode + +
+

Operations

+There are five state operations, a message operation, and an event operation: create, start, pause, resume, destroy, message, and event. +

+When "helloUG-efl" is created, the create operation is invoked (See Picture 2-1).

+ +\image html SLP_UI_Gadget_PG_image2-1.png "Picture 2-1. Create operation of UI gadget module" + +The implementation of create operation is on_create(). Basically, in the operation, we have to make a base layout and return it. Hence, we made base layout using "window layout winset." In case of fullview, we let indicator area be shown, otherwise, we don't (see create_fullview() and create_frameview().) In addition, in the base layout, we put a box including a label and two buttons (see create_content().) The label is labeled "Hello UI Gadget." And the first button, labeled "Send result", is for sending result to the "helloUG-efl" caller. The other button, labeled "Back", is for sending destroy request to the caller. For more information about two buttons, please see Send results and request to destroy section. + +\note Arguments: All operations receive servive type data which is named service (see \ref service_PG "Tizen Managed APi Reference Guide > Application Framework -> Application") And the argument service is automatically released by UI gadget manager after the UI gadget is destroyed. + +@code +// in helloUG-efl.c +static void *on_create(ui_gadget_h ug, enum ug_mode mode, service_h service, void *priv) +{ + Evas_Object *parent; + Evas_Object *content; + struct ug_data *ugd; + + if (!ug || !priv) + return NULL; + + ugd = priv; + ugd->ug = ug; + + parent = ug_get_parent_layout(ug); + if (!parent) + return NULL; + + if (mode == UG_MODE_FULLVIEW) + ugd->base = create_fullview(parent, ugd); + else + ugd->base = create_frameview(parent, ugd); + + if (ugd->base) { + content = create_content(parent, ugd); + elm_layout_content_set(ugd->base, "elm.swallow.content", content); + } + return ugd->base; +} + +static Evas_Object *create_fullview(Evas_Object *parent, struct ug_data *ugd) +{ + Evas_Object *base; + + base = elm_layout_add(parent); + if (!base) + return NULL; + elm_layout_theme_set(base, "layout", "application", "default"); + // In case of fullview, show indicator area + edje_object_signal_emit(_EDJ(base), "elm,state,show,indicator", "elm"); + edje_object_signal_emit(_EDJ(base), "elm,state,show,content", "elm"); + + return base; +} + +static Evas_Object *create_frameview(Evas_Object *parent, struct ug_data *ugd) +{ + Evas_Object *base; + + base = elm_layout_add(parent); + if (!base) + return NULL; + + elm_layout_theme_set(base, "layout", "application", "default"); + // In case of frameview, do not show indicator area + edje_object_signal_emit(_EDJ(base), "elm,state,show,content", "elm"); + + return base; +} + +static Evas_Object *create_content(Evas_Object *parent, struct ug_data *ugd) +{ + Evas_Object *bx, *eo; + + // add box + bx = elm_box_add(parent); + + // add label and pack it in the box + eo = elm_label_add(parent); + elm_object_text_set(eo, _("Hello UI Gadget")); + evas_object_size_hint_align_set(eo, 0.5, EVAS_HINT_FILL); + evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_show(eo); + elm_box_pack_end(bx, eo); + + // add buttons and pack it in the box + eo = elm_button_add(parent); + elm_object_text_set(eo, _("Send result")); + evas_object_size_hint_align_set(eo, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_smart_callback_add(eo, "clicked", result_cb, ugd); + elm_object_style_set(eo, "bottom_btn"); + + evas_object_show(eo); + elm_box_pack_end(bx, eo); + + eo = elm_button_add(parent); + elm_object_text_set(eo, _("Back")); + evas_object_size_hint_align_set(eo, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_smart_callback_add(eo, "clicked", back_cb, ugd); + elm_object_style_set(eo, "bottom_btn"); + + evas_object_show(eo); + elm_box_pack_end(bx, eo); + return bx; +} + +@endcode + +When "helloUG-efl" starts, the start operation is invoked (See Picture 2-2).

+ +\image html SLP_UI_Gadget_PG_image2-2.png "Picture 2-2. Start operation of UI gadget module" + +The implementation of start operation is on_start(). Usually every job would be completed before this operation, so just describe additional job you need to do in this operation. + +@code +// in helloUG-efl.c +static void on_start(ui_gadget_h ug, service_h service, void *priv) +{ + +} +@endcode + +When "helloUG-efl" is destroyed, the destroy operation is invoked(See Picture 2-3). Ui gadget cannot destroy itself, so it moust be destroyed by caller using ug_destroy().

+ +\image html SLP_UI_Gadget_PG_image2-3.png "Picture 2-3. Destroy operation of UI gadget module" + +The implementation of destroy operation is on_destroy(). We usually release the resources that have been used. In the following method, we delete base layout: + +@code +// in helloUG-efl.c +static void on_destroy(ui_gadget_h ug, service_h service, void *priv) +{ + struct ug_data *ugd; + + if (!ug || !priv) + return; + + ugd = priv; + + evas_object_del(ugd->base); + ugd->base = NULL; +} +@endcode + +When the application using "helloUG-efl" is put into background, the pause operation is invoked (See Picture 2-4). But UI gadget could get state only from caller, so pause operation (e.g., on_pause) is called by caller using ug_pause().

+ +\image html SLP_UI_Gadget_PG_image2-4.png "Picture 2-4. Pause operation of UI gadget module" + +When the application is brought to the foreground, the resume operation is invoked (See Picture 2-5). Resume operation (e.g.,on_resume) is called by caller using ug_resume().

+ +\image html SLP_UI_Gadget_PG_image2-5.png "Picture 2-5. Resume operation of UI gadget module" + +Besides, when an UI gadget receives message from its caller suing ug_send_message(), the message operation(e.g., on_message) is invoked (See Picture 2-6).

+ +\image html SLP_UI_Gadget_PG_image2-6.png "Picture 2-6. Send message to UI gadget module" + +And when a system event is generated and UI gadget receives event from caller using ug_send_event(), the event operation(e.g., on_event) is invoked (See Picture 2-7).

+ +\image html SLP_UI_Gadget_PG_image2-7.png "Picture 2-7. Send system event to UI gadget module" + +The implementation of pause, resume, message, and event operations are on_pause(), on_resume(), on_message(), and on_event(). In on_pause() and on_resume(), you can describe actions performed when a state is changed to pause or resume. For example, music player UI gadget can stop playing music or restart playing music in these operations. In on_message(), you can get service type data from caller and deal with it. In on_event(), you can describe a proper job related to the passed system event. + +@code +// in helloUG-efl.c +static void on_pause(ui_gadget_h ug, service_h service, void *priv) +{ + // Do what you need to do when paused. +} +static void on_resume(ui_gadget_h ug, service_h service, void *priv) +{ + // Do what you need to do when paused. +} + +static void on_message(ui_gadget_h ug, service msg, service_h service, void *priv) +{ + // Do what you need to do when paused. +} + +static void on_event(ui_gadget_h ug, enum ug_event event, service_h service, void *priv) +{ + switch (event) { + case UG_EVENT_LOW_MEMORY: + break; + case UG_EVENT_LOW_BATTERY: + break; + case UG_EVENT_LANG_CHANGE: + break; + case UG_EVENT_ROTATE_PORTRAIT: + break; + case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN: + break; + case UG_EVENT_ROTATE_LANDSCAPE: + break; + case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN: + break; + case UG_EVENT_REGION_CHANGE: + break; + default: + break; + } +} +@endcode + +\warning Message data of message operation is service type data, named msg. Because the message data is released after message operation is finished, if you want to keep using it, please use service_clone()() which duplicates given service data (see \ref service_PG "Tizen Managed API Reference Guide") + +
+

Send results and destroy request

+Usually, an UI gadget needs to send results or destroy request to the UI gadget caller.

+To send result, use ug_send_result(), then UG library calls result callback function registered by caller (See Picture 2-8)(See API reference guide).

+ +\image html SLP_UI_Gadget_PG_image2-8.png "Picture 2-8. Send result" + +And to send the destroy request, use ug_destroy_me().(), then UG library calls destroy callback function registered by caller (See Picture 2-9) (See API reference quide).

+ +\image html SLP_UI_Gadget_PG_image2-9.png "Picture 2-9. UI gadget destroy request" + +We use service library for composing result data. The service provides us a few APIs to make a list of dictionary data that consists of key and value. (ex. {"name" "John Doe"}) To get more information of service, please see \ref service_PG "Tizen Managed API Reference Guide". + +\warning After send your result data, you have to release it using service_destroy() API. + +In our "helloUG-efl", we made two buttons for sending results and destroy request as below: +@code +// in helloUG-efl.c + +//Include to use service APIs +#include + +static void result_cb(void *data, Evas_Object *obj, void *event_info) +{ + service_h result; + struct ug_data *ugd; + int ret; + + if (!data) + return; + + ugd = data; + + ret = service_create(&result); + + service_add_extra_data(result, "name", "hello-UG"); + service_add_extra_data(result, "description", "sample UI gadget"); + + ug_send_result(ugd->ug, result); + + // release service + service_destroy(result); +} + +static void back_cb(void *data, Evas_Object *obj, void *event_info) +{ + struct ug_data *ugd; + int i; + + if (!data) + return; + + ugd = data; + + //Send destroy request + ug_destroy_me(ugd->ug); +} +@endcode + +\note To use service +- Install capi-appfw-application-dev package (add in your RPM spec file) +- Modify CMakeFile.txt to use capi package as follow: +@code + … + pkg_check_modules(pkgs REQUIRED elementary ui-gadget-1 capi-appfw-application) + … +@endcode + +
+

Internationalization

+Basically, we use dgettext for translating a text string into the user's native language because each UI gadget uses different textdomain. +@code +// in helloUG-efl.h +#define PKGNAME "ug-helloUG-efl" +#define _(s) dgettext(PKGNAME, s) +#define dgettext_noop(s) (s) +#define N_(s) dgettext_noop(s) +@endcode + +The PKGNAME is textdomain of "helloUG-efl", and _() is a dgettext wrapper, and N_() is dummy macro. In addition, _() and N_() are additional keywords for marking translatable string for xgettext. Especially, N_() is a dummy keyword for special case as follow: +@code +static const char *message[] = { + N_("translatable string"), +}; +@endcode + +For more information, please see
GNU gettext utilities. + +\note xgettext extracts gettext strings from given input files. The canonical keyword for marking translatable strings is 'gettext'. For convenience, many packages use '_' as a keyword instead of 'gettext', and write '_("translatable string")' instead of 'gettext("translatable string")'. + +
+

Rotation and indicator

+When the UI gadget is created as fullview, we have to consider whether the indicator is shown or not. For instance, "Image viewer" shows the indicator on the portrait mode but not on the landscape mode. Hence, we provided option field named opt of struct ug_module_ops in UG_MODULE_INIT. +Available options are as following: +- UG_OPT_INDICATOR_ENABLE (default) +- UG_OPT_INDICATOR_POTRAIT_ONLY +- UG_OPT_LANDSCAPE_ONLY +- UG_OPT_INDICATOR_DISABLE +- UG_OPT_INDICATOR_MANUAL +- UG_OPT_OVERLAP_ENABLE + +And we used UG_OPT_INDICATOR_POTRAIT_ONLY in "helloUG-efl" + +
+

Build and test

+Before you build, you have to make sure whether translatable strings exist or not. IF translatable strings EXIST, please follow these steps before you build: +@verbatim +# cd po +# ./update-po.sh +# cd .. +@endverbatim +IF NOT, please remove the following line in your CMakeList.txt +@verbatim +ADD_SUBDIRECTORY(po) +@endverbatim + +To build "helloUG-efl", follow these steps: +@verbatim +# mkdir build +# cd build +# cmake -DCMAKE_INSTALL_PREFIX=/usr .. +# make +# make install +or +make home project for your UI gadget in obs. +you can find RPM spec file in packaging directory by template. +@endverbatim + +\note Naming rule: The output library name is "libug-helloUG-efl.so", and we use "helloUG-efl" as UI gadget name except prefix "libug-" and postfix ".so" In other word, when you make an UI gadget, the name of library MUST be "libug-XXXXXX.so" +\note Installation directory: UI gadgets MUST be installed in "/usr/lib/ug/" which is preload Ug and "/opt/lib/ug/" is downloaded UG + +Finally, we made our first UI gadget, "helloUG-efl." Let's test it using ug-launcher which is simple UI gadget launcher. +Fullview test +@verbatim +# ug-launcher -n helloUG-efl +@endverbatim +Frameview test +@verbatim +# ELM_THEME=beat ug-launcher -n helloUG-efl -f +@endverbatim + +\note How to use UG launcher +@verbatim +# ug-launcher [-F] [-f] -n [-d ] +@endverbatim +- -d: argument, key, value pair. +- -F: Fullview mode (default) +- -f: frameview mode +\note Example: +@verbatim +# ug-launcher -F -n helloUG-efl -d "name,John doe" -d "age,30" +@endverbatim + +
+

How to use UI gadget

+Now, we are going to use "helloUG-efl" of previous section. + +
+

Initialize

+ +If you are UI gadget developer who is trying to use UI gadgets, please skip this section. This section is for application developers who use UI gadgets. +You have to initialize UI gadget manager before you use UI gadgets. To initialize, use ug_init() with arguments: disp, xid, win and opt. disp is default display, and xid is X window id of win. win is window evas object for UI gadgets, and it is usually main window. opt is rotation and indicator option for your application (see Rotation and indicator section.) + +The disp and xid are used for indicator management. If you don't know how to get display and X window ID, just use following macro: UG_INIT_EFL(win, opt); + +\note Prototype of ug_init() (See API Reference guide): +@code +int ug_init (Display *disp, Window xid, void *win, enum ug_option opt); +@endcode +\note Macros for convenience (see 3 API reference quide): +@code +UG_INIT_EFL(win, opt); +@endcode + +
+

Create UI gadget instance

+ +To create UI gadget instance, you have to invoke ug_create() which has five arguments: parent, name, mode, service, and cbs. + +First, the parent is provided for specifying parent UI gadget, and it helps UI gadget manager to manage UI gadget tree (see Management section.) For instance, if the UI gadget 'A' uses other UI gadgets, the parent has to be the 'A.' Otherwise, if an application uses UI gadgets, the parent has to be NULL. + +Second, the name is the UI gadget's name (ex. "helloUG-efl") + +Third, the mode could be UG_MODE_FULLVIEW to show the UI gadget as fullview, or UG_MODE_FRAMEVIEW to show it as frameview. + +Fourth, the service is arguments for the UI gadget which is service type (see \ref service_PG "Tizen Managed API Reference Guide") + +\warning After create UI gadget, you have to release the argument using service_destroy() API. + +Fifth, the cbs is data describing layout callback, result callback, destroy callback, and private data. In detail, layout callback is used for layout arrangement, and it invoked after the UI gadget is created, and result callback is invoked to receive result from the UI gadget. And destroy callback is invoked to deal with destroy request from the UI gadget. + +\warning Result data of the result callback is service type data, named result. Because the result data is released after result callback is finished, if you want to keep using it, please use service_clone() which duplicates given service data (see \ref service_PG "Tizen Managed API Reference Guide") + +Using ug_create(), you can create UI gadget. After UI Gadget create operation is completed, layout callback function is called with base layout for layout arrangement (See Picture 2-11).

+ +\image html SLP_UI_Gadget_PG_image2-11.png "Picture 2-11. Create UI gadget" + +The registered callback functions like result_cb or destroy_cb by caller is called when the UI gadget request sending result or destroy operation.

+When UI gadget requests to UI gadget library for sending result to caller using ug_send_result(), UI gadget library calls result callback function which is registered by caller(See Picture 2-12).

+ +\image html SLP_UI_Gadget_PG_image2-12.png "Picture 2-12. Send result" + +And using ug_destroy_me(), UI gadget sends the destroy request to caller (See Picture 2-13). UI gadget cannot destroy itself, so it should request to caller.

+ +\image html SLP_UI_Gadget_PG_image2-13.png "Picture 2-13. Destroy request" + +\note Prototype of ug_create() (See API reference guide): +@code +ui_gadget_h ug_create (ui_gadget_h parent, + const char *name, + enum ug_mode mode, + service_h service, + struct ug_cbs *cbs); + +\note struct ug_cbs is describing some callbacks and private data: +@code +struct ug_cbs { + void (*layout_cb)(ui_gadget_h ug, enum ug_mode mode, void *priv); + void (*result_cb)(ui_gadget_h ug, service result, void *priv); + void (*destroy_cb)(ui_gadget_h ug, void *priv); + void *priv; +}; +@endcode + +Here are some examples: + +@code +// FULLVIEW example +struct my_data { + ui_gadget_h ug; +}; + +static void layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv) +{ + Evas_Object *base, *win; + + if (!ug || !priv) + return; + + base = ug_get_layout(ug); + if (!base) + return; + + switch (mode) { + case UG_MODE_FULLVIEW: + win = ug_get_window(); + if (!win) + return; + evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + ug_disable_effect(ug); + evas_object_show(base); + break; + default: + break; + } +} + +static void result_cb(ui_gadget_h ug, service result, void *priv) +{ + struct my_data *mydata; + const char *val; + + if (!ug || !priv) + return; + + mydata = priv; + if (result) { + service_get_extra_data(result, "name", val); + if (val) + fprintf(stderr, "The name of UI gadget that sends result is %s\n", val); + } + ug_destroy(ug); + mydata->ug = NULL; + +} + +static void destroy_cb(ui_gadget_h ug, void *priv) +{ + struct my_data *mydata; + + if (!ug || !priv) + return; + + mydata = priv; + + ug_destroy(ug); + mydata->ug = NULL; +} + +ui_gadget_h create_ug(struct my_data *data) +{ + ui_gadget_h ug; + struct ug_cbs cbs = {0, }; + + cbs.layout_cb = layout_cb; + cbs.result_cb = result_cb; + cbs.destroy_cb = destroy_cb; + cbs.priv = (void *)data; + + ug = ug_create(NULL, "helloUG-efl", UG_MODE_FULLVIEW, NULL, &cbs); + + return ug; +} +@endcode + +@code +// FRAMEVIEW example +struct my_data { + ui_gadget_h ug; + Evas_Object *main_layout; +}; + +static void layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv) +{ + Evas_Object *base, *win; + struct my_data *mydata; + + if (!ug || !priv) + return; + + mydata = priv; + + base = ug_get_layout(ug); + if (!base) + return; + + switch (mode) { + case UG_MODE_FRAMEVIEW: + elm_layout_content_set(mydata->main_layout, "content", base); + break; + default: + break; + } +} + +static void result_cb(ui_gadget_h ug, service result, void *priv) +{ + struct my_data *mydata; + const char *val; + + if (!ug || !priv) + return; + + mydata = priv; + + if (result) { + service_get_extra_data(result, "name", val); + if (val) + fprintf(stderr, "The name of UI gadget that sends result is %s\n", val); + } + + ug_destroy(ug); + mydata->ug = NULL; + +} + +static void destroy_cb(ui_gadget_h ug, void *priv) +{ + struct my_data *mydata; + + if (!ug || !priv) + return; + + mydata = priv; + + ug_destroy(ug); + mydata->ug = NULL; +} + +ui_gadget_h create_ug(struct my_data *data) +{ + ui_gadget_h ug; + struct ug_cbs cbs = {0, }; + + cbs.layout_cb = layout_cb; + cbs.result_cb = result_cb; + cbs.destroy_cb = destroy_cb; + cbs.priv = (void *)data; + + ug = ug_create(NULL, "helloUG-efl", UG_MODE_FRAMEVIEW, NULL, &cbs); + + return ug; +} +@endcode + +
+

Send message

+ +We provide API for sending message: ug_send_message(). When you send a message, you have to use service type data (see \ref service_PG "Tizen Managed API Reference Guide"). (See Picture 2-14) + +\note Prototype of ug_send_message() (See API reference guide): +@code +int ug_send_message (ui_gadget_h ug, service msg); +@endcode + +\image html SLP_UI_Gadget_PG_image2-14.png "Picture 2-14. Send message" + +\warning After send your message, you have to release it using service_destroy() API. +@code +//example + service_h msg; + + ret = service_create(&msg); + + service_add_extra_data(msg, "name", "hello-UG"); + service_add_extra_data(msg, "description", "sample UI gadget"); + + //Send message + ug_send_message(ug, msg); + + //release service + service_destroy(msg); +@endcode + +
+

Event propagation

+ +If you are UI gadget developer who is trying to use UI gadgets, please skip this section. This section is for application developers who use UI gadgets. + +We provide some APIs for event propagation: ug_pause(), ug_resume(), and ug_send_event(). ug_pause() and ug_resume() are used for task-managing. If the application is put into background, invoke ug_pause(), otherwise, if the application is brought to the foreground, invoke ug_resume(). ug_send_event() is used for system event: low memory, low battery, language change, region change, rotate portrait, rotate portrait upside-down, rotate landscape, and rotate landscape upside-down. + +\note Prototype of ug_pause(), ug_resume(), and ug_send_event() (See API reference guide): +@code +int ug_pause (void); +int ug_resume (void); +int ug_send_event (enum ug_event event); +@endcode + +\image html SLP_UI_Gadget_PG_image2-15.png "Picture 2-15. Pause event propagation" +\image html SLP_UI_Gadget_PG_image2-16.png "Picture 2-16. Resume event propagation" +\image html SLP_UI_Gadget_PG_image2-17.png "Picture 2-17. System event propagation" + +
+

Destroy all UI gadgets

+ +If you are UI gadget developer who is trying to use UI gadgets, please skip this section. This section is for application developers who use UI gadgets. + +When you terminate your application, destroy all UI gadgets using ug_destroy_all(). + +\note Prototype of ug_destroy_all(See API reference guide): +@code +int ug_destroy_all (void); +@endcode + +
+

Disable UI gadget effect

+ +We provide API for disabling transition effect: ug_disable_effect. If you want to disable showing/hiding transition effect when create and destroy a UI Gadget, ug_disable_effect should be called before show UI Gadget layout. + +\note Prototype of ug_disable_effect(See API reference guide): +@code +int ug_disable_effect (void); +@endcode + +Here are some examples: + +@code +To disable transition effect : + + static void layout_cb(struct ui_gadget *ug, enum ug_mode mode, void *priv) + { + Evas_Object *base, *win; + if (!ug || !priv) + return; + base = ug_get_layout(ug); + if (!base) + return; + + win = ug_get_window(); + switch (mode) { + case UG_MODE_FULLVIEW: + evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + // disable effect + ug_disable_effect(ug); + evas_object_show(base); + break; + default: + break; + } +@endcode + + * @} + */ diff --git a/include/ug-dbg.h b/include/ug-dbg.h new file mode 100644 index 0000000..00167b0 --- /dev/null +++ b/include/ug-dbg.h @@ -0,0 +1,37 @@ +/* + * UI Gadget + * + * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: Jayoun Lee + * + * 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 __UG_DBG_H__ +#define __UG_DBG_H__ + +#include + +#ifdef LOG_TAG +#undef LOG_TAG +#endif + +#define LOG_TAG "UI_GADGET" + +#define _ERR(fmt, arg...) LOGE("\x1b[31m" fmt "\x1b[0m", ##arg) +#define _DBG(fmt, arg...) LOGD("\x1b[32m" fmt "\x1b[0m", ##arg) +#define _INFO(fmt, arg...) LOGI("\x1b[33m" fmt "\x1b[0m", ##arg) + +#endif /* __UG_DBG_H__ */ diff --git a/include/ug-engine.h b/include/ug-engine.h new file mode 100644 index 0000000..22914ad --- /dev/null +++ b/include/ug-engine.h @@ -0,0 +1,36 @@ +/* + * UI Gadget + * + * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: Jayoun Lee + * + * 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 __UG_ENGINE_H__ +#define __UG_ENGINE_H__ + +#include "ui-gadget-engine.h" + +struct ug_engine { + void *handle; + struct ug_engine_ops ops; +}; + +struct ug_engine *ug_engine_load(void); +int ug_engine_unload(struct ug_engine *engine); + + +#endif /* __UG_ENGINE_H__ */ diff --git a/include/ug-manager.h b/include/ug-manager.h new file mode 100755 index 0000000..0589ac8 --- /dev/null +++ b/include/ug-manager.h @@ -0,0 +1,49 @@ +/* + * UI Gadget + * + * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: Jayoun Lee + * + * 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 __UG_MANAGER_H__ +#define __UG_MANAGER_H__ + +#include +#include "ug.h" + +int ugman_ug_add(ui_gadget_h parent, ui_gadget_h ug); +ui_gadget_h ugman_ug_load(ui_gadget_h parent, + const char *name, + enum ug_mode mode, + service_h service, + struct ug_cbs *cbs); +int ugman_ug_del(ui_gadget_h ug); +int ugman_ug_del_all(void); + +int ugman_init(Display *disp, Window xid, void *win, enum ug_option opt); +int ugman_resume(void); +int ugman_pause(void); +int ugman_send_event(enum ug_event event); +int ugman_send_key_event(enum ug_key_event event); +int ugman_send_message(ui_gadget_h ug, service_h msg); + +void *ugman_get_window(void); +void *ugman_get_conformant(void); + +int ugman_ug_exist(ui_gadget_h ug); + +#endif /* __UG_MANAGER_H__ */ diff --git a/include/ug-module.h b/include/ug-module.h new file mode 100644 index 0000000..a6fc459 --- /dev/null +++ b/include/ug-module.h @@ -0,0 +1,36 @@ +/* + * UI Gadget + * + * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: Jayoun Lee + * + * 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 __UG_MODULE_H__ +#define __UG_MODULE_H__ + +#include "ui-gadget-module.h" + +struct ug_module { + void *handle; + const char *module_name; + struct ug_module_ops ops; +}; + +struct ug_module *ug_module_load(const char *name); +int ug_module_unload(struct ug_module *module); + +#endif /* __UG_MODULE_H__ */ diff --git a/include/ug.h b/include/ug.h new file mode 100755 index 0000000..fe3be22 --- /dev/null +++ b/include/ug.h @@ -0,0 +1,76 @@ +/* + * UI Gadget + * + * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: Jayoun Lee + * + * 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 __UG_H__ +#define __UG_H__ + +#include +#include "ug-module.h" +#include "ui-gadget.h" + +struct ug_child; + +enum ug_state { + UG_STATE_READY = 0x00, + UG_STATE_CREATED, + UG_STATE_RUNNING, + UG_STATE_STOPPED, + UG_STATE_DESTROYING, + UG_STATE_DESTROYED, + UG_STATE_INVALID, + UG_STATE_MAX +}; + +enum ug_layout_state { + UG_LAYOUT_INIT = 0x00, + UG_LAYOUT_SHOW, + UG_LAYOUT_SHOWEFFECT, + UG_LAYOUT_HIDE, + UG_LAYOUT_HIDEEFFECT, + UG_LAYOUT_DESTROY, + UG_LAYOUT_NOEFFECT, + UG_LAYOUT_MAX +}; + +struct ui_gadget_s { + const char *name; + void *layout; + enum ug_state state; + enum ug_mode mode; + enum ug_option opt; + + ui_gadget_h parent; + void *children; + + struct ug_module *module; + struct ug_cbs cbs; + + service_h service; + + int destroy_me:1; + enum ug_layout_state layout_state; + void *effect_layout; +}; + +ui_gadget_h ug_root_create(void); +int ug_free(ui_gadget_h ug); + +#endif /* __UG_H__ */ diff --git a/include/ui-gadget-engine.h b/include/ui-gadget-engine.h new file mode 100755 index 0000000..035bf20 --- /dev/null +++ b/include/ui-gadget-engine.h @@ -0,0 +1,69 @@ +/* + * UI Gadget + * + * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: Jayoun Lee , Jinwoo Nam + * + * 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 __UI_GADGET_ENGINE_H__ +#define __UI_GADGET_ENGINE_H__ + +/** + * @defgroup UI_Gadget_For_Developer Developer API Reference Guide + * @ingroup UI_Gadget + * @brief A engine to develop a UI gadget. Callees (UI gadgets) uses this engines and APIs. (callee -> caller) + * + * @section Header To Use Them: + * @code + * #include + * @endcode + */ + +/** + * @addtogroup UI_Gadget_For_Developer + * @{ + */ + +#include +#include "ui-gadget.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * UI gadget engine operation type + * @see @ref lifecycle_sec + */ +struct ug_engine_ops { + /** create operation */ + void *(*create)(void *win, ui_gadget_h ug, void(*show_end_cb)(void *data)); + /** destroy operation */ + void (*destroy)(ui_gadget_h ug, ui_gadget_h fv_top, void(*hide_end_cb)(ui_gadget_h ug)); + /** reserved operations */ + void *reserved[4]; +}; + +#ifdef __cplusplus +} +#endif + +/** + * @} + */ + +#endif /* __UI_GADGET_ENGINE_H__ */ diff --git a/include/ui-gadget-module.h b/include/ui-gadget-module.h new file mode 100755 index 0000000..452827b --- /dev/null +++ b/include/ui-gadget-module.h @@ -0,0 +1,169 @@ +/* + * UI Gadget + * + * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: Jayoun Lee , Jinwoo Nam + * + * 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 __UI_GADGET_MODULE_H__ +#define __UI_GADGET_MODULE_H__ + +/** + * @defgroup UI_Gadget_For_Developer Developer API Reference Guide + * @ingroup UI_Gadget + * @brief A module to develop a UI gadget. Callees (UI gadgets) uses this modules and APIs. (callee -> caller) + * + * @section Header To Use Them: + * @code + * #include + * @endcode + */ + +/** + * @addtogroup UI_Gadget_For_Developer + * @{ + */ + +#include "ui-gadget.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * UI gadget module operation type + * @see @ref lifecycle_sec + */ +struct ug_module_ops { + /** create operation */ + void *(*create) (ui_gadget_h ug, enum ug_mode mode, service_h service, + void *priv); + /** start operation */ + void (*start) (ui_gadget_h ug, service_h service, void *priv); + /** pause operation */ + void (*pause) (ui_gadget_h ug, service_h service, void *priv); + /** resume operation */ + void (*resume) (ui_gadget_h ug, service_h service, void *priv); + /** destroy operation */ + void (*destroy) (ui_gadget_h ug, service_h service, void *priv); + /** message operation */ + void (*message) (ui_gadget_h ug, service_h msg, service_h service, void *priv); + /** event operation */ + void (*event) (ui_gadget_h ug, enum ug_event event, service_h service, + void *priv); + /** key event operation */ + void (*key_event) (ui_gadget_h ug, enum ug_key_event event, + service_h service, void *priv); + /** destroying operation */ + void (*destroying) (ui_gadget_h ug, service_h service, void *priv); + /** reserved operations */ + void *reserved[3]; + + /** private data */ + void *priv; + + /** option */ + enum ug_option opt; +}; + +/** + * \par Description: + * This function makes a request that caller of the given UI gadget instance destroys the instance. + * It just makes a request, but not destroys UI gadget + * + * \par Purpose: + * This function is used for sending a request that caller of the given UI gadget instance destroys the instance. + * + * \par Typical use case: + * UI gadget developer who want to send a request that caller of the given UI gadget instance destroys the instance could use the function. + * + * \par Method of function operation: + * Destroy callback which is registered by caller with ug_create() is invoked. + * + * \par Context of function: + * This function supposed to be called in the created UI gadget. + * + * @param[in] ug the UI gadget + * @return 0 on success, -1 on error + * + * \pre None + * \post None + * \see None + * \remarks The API just makes a request, but not destroys UI gadget + * + * \par Sample code: + * \code + * #include + * ... + * // send a "destroy me" request + * ug_destroy_me(ug); + * ... + * \endcode + */ +int ug_destroy_me(ui_gadget_h ug); + +/** + * \par Description: + * This function sends result to caller of the given UI gadget instance. + * + * \par Purpose: + * This function is used for sending result to caller of the given UI gadget instance. The result have to be composed with service handle. + * + * \par Typical use case: + * UI gadget developer who want to send result to caller of the given UI gadget instance could use the function. + * + * \par Method of function operation: + * Result callback which is registered by caller with ug_create() is invoked. + * + * \par Context of function: + * This function supposed to be called in the created UI gadget. + * + * @param[in] ug the UI gadget + * @param[in] result the result, which is service type (see \ref service_PG "Tizen managed api reference guide") + * @return 0 on success, -1 on error + * + * \pre None + * \post None + * \see None + * \remarks After send your message, you have to release it using service_destroy() + * + * \par Sample code: + * \code + * #include + * ... + * // make a result with service + * service_h result; + * service_create(&result); + * service_add_extra_data(result, "Content", "Hello"); + * + * // send the result + * ug_send_result(ug, result); + * + * // release the result + * service_destroy(result); + * ... + * \endcode + */ +int ug_send_result(ui_gadget_h ug, service_h result); + +#ifdef __cplusplus +} +#endif +/** + * @} + */ +#endif /* __UI_GADGET_MODULE_H__ */ diff --git a/include/ui-gadget.h b/include/ui-gadget.h new file mode 100755 index 0000000..0ebcc38 --- /dev/null +++ b/include/ui-gadget.h @@ -0,0 +1,750 @@ +/* + * UI Gadget + * + * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: Jayoun Lee , Jinwoo Nam + * + * 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 __UI_GADGET_H__ +#define __UI_GADGET_H__ + +/** + * @file ui-gadget.h + * @version 0.1 + * @brief This file contains the public API of the UI gadget library + */ + +/** + * @addtogroup APPLICATION_FRAMEWORK + * @{ + * + * @defgroup UI_Gadget UI gadget library + * @version 0.1 + * @brief A library to develop/use a UI gadget + */ + +/** + * @addtogroup UI_Gadget + * @{ + * + * @defgroup UI_Gadget_For_User User API Reference Guide + * @brief A module to use a UI gadget. Caller uses this module and APIs. + * + * @section Header To Use Them: + * @code + * #include + * @endcode + */ + +/** + * @addtogroup UI_Gadget_For_User + * @{ + */ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * struct ui_gadget is an opaque type representing a UI gadget + * @see ug_create(), ug_destroy() + * @see ug_get_layout(), ug_get_parent_layout(), ug_get_mode() + */ +typedef struct ui_gadget_s *ui_gadget_h; + +/** + * UI gadget mode + * @see ug_create() + * @see ug_get_mode() + */ +enum ug_mode { + UG_MODE_FULLVIEW, /**< Fullview mode */ + UG_MODE_FRAMEVIEW, /**< Frameview mode */ + UG_MODE_INVALID, /**< Invalid mode */ + UG_MODE_MAX +}; + +/** + * UI gadget event + * @see ug_send_event() + */ +enum ug_event { + UG_EVENT_NONE = 0x00, /**< No event */ + UG_EVENT_LOW_MEMORY, /**< Low memory event */ + UG_EVENT_LOW_BATTERY, /**< Low battery event */ + UG_EVENT_LANG_CHANGE, /**< Language change event */ + UG_EVENT_ROTATE_PORTRAIT, /**< Rotate event: Portrait */ + UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN, /**< Rotate event: Portrait upsidedown */ + UG_EVENT_ROTATE_LANDSCAPE, /**< Rotate event: Landscape */ + UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN, + /**< Rotate event: Landscape upsidedown */ + UG_EVENT_REGION_CHANGE, /**< Region change event */ + UG_EVENT_MAX +}; + +/** + * UI gadget key event + * @see ug_send_key_event() + */ +enum ug_key_event { + UG_KEY_EVENT_NONE = 0x00, /**< No event */ + UG_KEY_EVENT_END, /**< End key event */ + UG_KEY_EVENT_MAX +}; + +/** + * UI gadget option + * + * @see ug_init() + */ +enum ug_option { + UG_OPT_INDICATOR_ENABLE = 0x00, + /**< Indicator option: + Enable with both portrait and landscape window */ + UG_OPT_INDICATOR_PORTRAIT_ONLY = 0x01, + /**< Indicator option: Enable with portrait window */ + UG_OPT_INDICATOR_LANDSCAPE_ONLY = 0x02, + /**< Indicator option: Enable with landscape window */ + UG_OPT_INDICATOR_DISABLE = 0x03, + /**< Indicator option: + Disable with both portrait and landscape view window */ + UG_OPT_INDICATOR_MANUAL = 0x04, + /**< Indicator option: + Indicator will be handled manually */ + UG_OPT_OVERLAP_ENABLE = 0x08, + /**< Overlap option: Enable indicator overlap */ + UG_OPT_MAX +}; + +#define GET_OPT_INDICATOR_VAL(opt) opt % UG_OPT_OVERLAP_ENABLE +#define GET_OPT_OVERLAP_VAL(opt) opt & UG_OPT_OVERLAP_ENABLE + +/** + * UI gadget callback type + * @see ug_create() + */ +struct ug_cbs { + /** layout callback */ + void (*layout_cb) (ui_gadget_h ug, enum ug_mode mode, + void *priv); + /** result callback */ + void (*result_cb) (ui_gadget_h ug, service_h result, void *priv); + /** destroy callback */ + void (*destroy_cb) (ui_gadget_h ug, void *priv); + /** private data */ + void *priv; +}; + +/** + * Easy-to-use macro of ug_init() for EFL + * @see ug_init() + */ +#define UG_INIT_EFL(win, opt) \ + ug_init((Display *)ecore_x_display_get(), elm_win_xwindow_get(win), \ + win, opt) + +/** + * Easy-to-use macro of ug_init() for GTK + * @see ug_init() + */ +#define UG_INIT_GTK(win, opt) \ + win ? ug_init(gdk_display_get_default(), win, \ + GDK_WINDOW_XWINDOW(GTK_WIDGET(win)->window), win, opt) : -1 + +/** + * \par Description: + * This function initializes default window, display, xwindow id, and indicator state. + * + * \par Purpose: + * First of all, to use UI gadgets in an application, default window to draw the UI gadgets has to be registered. Besides, to change indicator state for the full-view UI gadget, display and xwindow id have to be registered, and to restore application's indicator state, default indicator option has to be registered. This function is used for registering them. + * + * \par Typical use case: + * Application developers who want to use UI gadget MUST register display, xwindow id, default window, and option with the function at first. + * + * \par Method of function operation: + * Register display, xwindow id, default window, and option. + * + * \par Context of function: + * None + * + * \note If you are unfamiliar with display and xwindow id, please use following macros: UG_INIT_EFL, UG_INIT_GTK. The macros kindly generate proper functions to get display and xwindow id. + * + * @param[in] disp Default display + * @param[in] xid Default xwindow id of default window + * @param[in] win Default window object, it is void pointer for supporting both GTK (GtkWidget *) and EFL (Evas_Object *) + * @param[in] opt Default indicator state to restore application's indicator state + * @return 0 on success, -1 on error + * + * \pre None + * \post None + * \see UG_INIT_EFL(), UG_INIT_GTK() + * \remarks None + * + * \par Sample code: + * \code + * #include + * ... + * Evas_Object *win; + * ... + * // create window + * ... + * ug_init((Display *)ecore_x_display_get(), elm_win_xwindow_get(win), win, UG_OPT_INDICATOR_ENABLE); + * // for convenience you can use following macro: ELM_INIT_EFL(win, UG_OPT_INDICATOR_ENABLE); + * ... + * \endcode + */ +int ug_init(Display *disp, Window xid, void *win, enum ug_option opt); + +/** + * \par Description: + * This function creates a UI gadget + * + * \par Purpose: + * This function is used for creating a UI gadget instance. In addition, following callbacks could be registered with the function: layout callback, result callback, and destroy callback. (see struct ug_cbs) + * + * \par Typical use case: + * Anyone who want to create UI gadget could use the function. + * + * \par Method of function operation: + * First, the UI gadget with given name is dynamically loaded(dlopen). Next, state operations of loaded UI gadget are invoked according to its lifecycle. There are three callbacks which could be registered with the function: layout callback, result callback, and destroy callback. If the state is changed to "Create", the layout callback is invoked for layout arrangement. If ug_send_result() is invoked in the loaded UI gadget , the result callback is invoked. And, if ug_destroy_me() is invoked in the loaded UI gadget , the destroy callback is invoked. + * + * \par Context of function: + * This function supposed to be called after successful initialization with ug_init() + * + * @param[in] parent parent's UI gadget. If the UI gadget uses the function, the parent has to be the UI gadget. Otherwise, if an application uses the function, the parent has to be NULL + * @param[in] name name of UI gadget + * @param[in] mode mode of UI gadget (UG_MODE_FULLVIEW | UG_MODE_FRAMEVIEW) + * @param[in] service argument for the UI gadget (see \ref service_PG "Tizen managed api reference guide") + * @param[in] cbs callback functions (layout callback, result callback, destroy callback, see struct ug_cbs) and private data. + * @return The pointer of UI gadget, NULL on error + * + * \pre ug_init() + * \post None + * \see struct ug_cbs, enum ug_mode + * \remarks If you passed "service", you MUST release it using service_destroy() after ug_create() + * + * \par Sample code: + * \code + * #include + * ... + * service_h service; + * ui_gadget_h ug; + * struct ug_cbs cbs = {0, }; + * + * // set callbacks: layout callback, result callback, destroy callback + * cbs.layout_cb = _layout_cb; + * cbs.result_cb = _result_cb; + * cbs.destroy_cb = _destroy_cb; + * cbs.priv = user_data; + * + * // create arguments + * service_create(&service); + * service_add_extra_data(service, "Content", "Hello"); + * + * // create "helloUG-efl" UI gadget instance + * ug = ug_create(NULL, "helloUG-efl", UG_MODE_FULLVIEW, service, &cbs); + * + * // release arguments + * service_destroy(b); + * ... + * \endcode + */ +ui_gadget_h ug_create(ui_gadget_h parent, const char *name, + enum ug_mode mode, service_h service, + struct ug_cbs *cbs); + +/** + * \par Description: + * This function pauses all UI gadgets + * + * \par Purpose: + * This function is used for pausing UI gadgets with "Running" state. Eventually, state of the UI gadgets would be "Stopped." + * + * \par Typical use case: + * Application developers who want to pause loaded UI gadgets could use the function. + * + * \par Method of function operation: + * "Pause" state operations of UI gadgets with "Running" state in the UI gadget tree are invoked by post-order traversal. + * + * \par Context of function: + * This function supposed to be called after successful initialization with ug_init() + * + * @return 0 on success, -1 on error + * + * \pre ug_init() + * \post None + * \see ug_resume() + * \remarks None + * + * \par Sample code: + * \code + * #include + * ... + * // pause all UI gadget instances + * ug_pause(); + * ... + * \endcode + */ +int ug_pause(void); + +/** + * \par Description: + * This function resumes all UI gadgets + * + * \par Purpose: + * This function is used for resuming UI gadgets with "Stopped" state. Eventually, state of all UI gadgets would be "Running." + * + * \par Typical use case: + * Application developers who want to resume loaded UI gadgets could use the function. + * + * \par Method of function operation: + * "Resume" state operations of UI gadgets with "Stopped" state in the UI gadget tree are invoked by post-order traversal. + * + * \par Context of function: + * This function supposed to be called after successful initialization with ug_init() + * + * @return 0 on success, -1 on error + * + * \pre ug_init() + * \post None + * \see ug_pause() + * \remarks None + * + * \par Sample code: + * \code + * #include + * ... + * // resume all UI gadget instances + * ug_resume(); + * ... + * \endcode + */ +int ug_resume(void); + +/** + * \par Description: + * This function destroys the given UI gadget instance + * + * \par Purpose: + * This function is used for destroying given UI gadget instance and its children. Eventually, state of the instance would be "Destroyed." + * + * \par Typical use case: + * Anyone who want to destroy specific UI gadget could use the function. + * + * \par Method of function operation: + * "Destroy" state operations of the given UI gadget instance and its children are invoked. + * + * \par Context of function: + * This function supposed to be called after successful initialization with ug_init() and creation UI gadget with ug_create() + * + * @param[in] ug The UI gadget + * @return 0 on success, -1 on error + * + * \pre ug_init(), ug_create() + * \post None + * \see ug_destroy_all() + * \remarks None + * + * \par Sample code: + * \code + * #include + * ... + * // destroy UI gadget instance + * ug_destroy(ug); + * ... + * \endcode + */ +int ug_destroy(ui_gadget_h ug); + +/** + * \par Description: + * This function destroys all UI gadgets of an application + * + * \par Purpose: + * This function is used for destroying all UI gadgets. Eventually, state of all UI gadgets would be "Destroyed." + * + * \par Typical use case: + * Application developers who want to destroy loaded UI gadgets could use the function. + * + * \par Method of function operation: + * "Destroy" state operations of all UI gadgets in the UI gadget tree are invoked by post-order traversal. + * + * \par Context of function: + * This function supposed to be called after successful initialization with ug_init() + * + * @return 0 on success, -1 on error + * + * \pre ug_init() + * \post None + * \see ug_destroy() + * \remarks None + * + * \par Sample code: + * \code + * #include + * ... + * // destroy all UI gadget instances + * ug_destroy_all(); + * ... + * \endcode + */ +int ug_destroy_all(void); + +/** + * \par Description: + * This function gets base layout of the given UI gadget instance + * + * \par Purpose: + * This function is used for getting base layout pointer of given UI gadget instance. + * + * \par Typical use case: + * Anyone who want to get base layout of UI gadget could use the function. + * + * \par Method of function operation: + * This function returns base layout pointer which is created in "Create" operation of the given UI gadget instance. + * + * \par Context of function: + * This function supposed to be called after successful initialization with ug_init() and creation UI gadget with ug_create() + * + * @param[in] ug The UI gadget + * @return The pointer of base layout, NULL on error. The result value is void pointer for supporting both GTK (GtkWidget *) and EFL (Evas_Object *) + * + * \pre ug_init(), ug_create() + * \post None + * \see ug_get_parent_layout() + * \remarks None + * + * \par Sample code: + * \code + * #include + * ... + * Evas_Object *ly; + * // get a base layout + * ly = (Evas_Object *)ug_get_layout(ug); + * ... + * \endcode + */ +void *ug_get_layout(ui_gadget_h ug); + +/** + * \par Description: + * This function gets base layout of parent of the given UI gadget instance + * + * \par Purpose: + * This function is used for getting base layout pointer of parent of the given UI gadget instance. + * + * \par Typical use case: + * Anyone who want to get base layout of UI gadget's parent could use the function. + * + * \par Method of function operation: + * This function returns base layout pointer which is created in "Create" operation of parent of the given UI gadget instance. + * + * \par Context of function: + * This function supposed to be called after successful initialization with ug_init() and creation UI gadget with ug_create() + * + * @param[in] ug The UI gadget + * @return The pointer of base layout, NULL on error. The result value is void pointer for supporting both GTK (GtkWidget *) and EFL (Evas_Object *) + * + * \pre ug_init(), ug_create() + * \post None + * \see ug_get_layout() + * \remarks None + * + * \par Sample code: + * \code + * #include + * ... + * Evas_Object *ly; + * // get a base layout of parent of the given UI gadget instance + * ly = (Evas_Object *)ug_get_parent_layout(ug); + * ... + * \endcode + */ +void *ug_get_parent_layout(ui_gadget_h ug); + +/** + * \par Description: + * This function gets default window + * + * \par Purpose: + * This function is used for getting default window which is registered with ug_init() + * + * \par Typical use case: + * Anyone who want to get default window could use the function. + * + * \par Method of function operation: + * This function returns default window pointer which is registered with ug_init() + * + * \par Context of function: + * This function supposed to be called after successful initialization with ug_init() + * + * @return The pointer of default window, NULL on error. The result value is void pointer for supporting both GTK (GtkWidget *) and EFL (Evas_Object *) + * + * \pre ug_init() + * \post None + * \see None + * \remarks None + * + * \par Sample code: + * \code + * #include + * ... + * Evas_Object *win; + * // get default window + * win = (Evas_Object *)ug_get_window(); + * ... + * \endcode + */ +void *ug_get_window(void); + +/** + * \par Description: + * This function gets ug conformant + * + * \par Purpose: + * This function is used for getting ug conformant + * + * \par Typical use case: + * Anyone who want to get ug conformant could use the function. + * + * \par Method of function operation: + * This function returns ug conformant pointer + * + * \par Context of function: + * This function supposed to be called after successful initialization with ug_init() + * + * @return The pointer of default window, NULL on error. The result value is void pointer for supporting both GTK (GtkWidget *) and EFL (Evas_Object *) + * + * \pre ug_init() + * \post None + * \see None + * \remarks None + * + * \par Sample code: + * \code + * #include + * ... + * Evas_Object *conform; + * // get default window + * conform = (Evas_Object *)ug_get_conformant(); + * ... + * \endcode + */ +void *ug_get_conformant(void); + +/** + * \par Description: + * This function gets mode of the given UI gadget instance + * + * \par Purpose: + * This function is used for getting mode of the given UI gadget instance. Mode could be UG_MODE_FULLVIEW or UG_MODE_FRAMEVIEW. + * + * \par Typical use case: + * Anyone who want to get mode of UI gadget could use the function. + * + * \par Method of function operation: + * This function returns mode which is registered with ug_create() + * + * \par Context of function: + * This function supposed to be called after successful initialization with ug_init() and creation UI gadget with ug_create() + * + * @param[in] ug The UI gadget + * @return UI gadget mode of the given UI gadget instance (UG_MODE_FULLVIEW | UG_MODE_FRAMEVIEW) + * + * \pre ug_init(), ug_create() + * \post None + * \see enum ug_mode + * \remarks None + * + * \par Sample code: + * \code + * #include + * ... + * enum ug_mode mode; + * // get mode (UG_MODE_FULLVIEW | UG_MODE_FRAMEVIEW) + * mode = ug_get_mode(ug); + * ... + * \endcode + */ +enum ug_mode ug_get_mode(ui_gadget_h ug); + +/** + * \par Description: + * This function propagates the given system event to all UI gadgets + * + * \par Purpose: + * This function is used for propagating the given system event. Available system events are low memory, low battery, language changed, and window rotate event. + * + * \par Typical use case: + * Application developers who want to propagate system event to all UI gadgets could use the function. + * + * \par Method of function operation: + * Event operations of all UI gadgets in the UI gadget tree are invoked by post-order traversal. + * + * \par Context of function: + * This function supposed to be called after successful initialization with ug_init() + * + * @param[in] event UI gadget event. (see enum ug_event) + * @return 0 on success, -1 on error + * + * \pre ug_init() + * \post None + * \see enum ug_event + * \remarks None + * + * \par Sample code: + * \code + * #include + * ... + * // propagate low battery event to all UI gadget instances + * ug_send_event(UG_EVENT_LOW_BATTERY); + * ... + * \endcode + */ +int ug_send_event(enum ug_event event); + +/** + * \par Description: + * This function send key event to full view top UI gadget + * + * \par Purpose: + * This function is used for sending key event to full view top UI gadget. Available key events are end event. + * + * \par Typical use case: + * Application developers who want to send key event to full view top UI gadget could use the function. + * + * \par Method of function operation: + * Key event operation of full view top UI gadget in the UI gadget tree are invoked. + * + * \par Context of function: + * This function supposed to be called after successful initialization with ug_init() + * + * @param[in] event UI gadget key event. (see enum ug_key_event) + * @return 0 on success, -1 on error + * + * \pre ug_init() + * \post None + * \see enum ug_key_event + * \remarks None + * + * \par Sample code: + * \code + * #include + * ... + * // send key event callback to full view top UI gadget instances + * ug_send_key_event(UG_KEY_EVENT_END); + * ... + * \endcode + */ +int ug_send_key_event(enum ug_key_event event); + +/** + * \par Description: + * This function sends message to the given UI gadget instance + * + * \par Purpose: + * This function is used for sending message to created UI gadget. The message have to be composed with service handle. + * + * \par Typical use case: + * Anyone who want to send message to created UI gadget. + * + * \par Method of function operation: + * Message operation of given UI gadget instance is invoked. + * + * \par Context of function: + * This function supposed to be called after successful initialization with ug_init() and creation UI gadget with ug_create() + * + * @param[in] ug The UI gadget + * @param[in] msg message to send, which is service type (see \ref service_PG "Tizen managed api reference guide") + * @return 0 on success, -1 on error + * + * \pre ug_init(), ug_create() + * \post None + * \see None + * \remarks After send your message, you have to release it using service_destroy() + * + * \par Sample code: + * \code + * #include + * ... + * // make a message with service + * service_h msg; + * service_create(&msg) + * service_add_extra_data(msg, "Content", "Hello"); + * + * // send the message + * ug_send_message(ug, msg); + * + * // release the message + * service_destroy(msg); + * ... + * \endcode + */ +int ug_send_message(ui_gadget_h ug, service_h msg); + +/** + * \par Description: + * This function disable transition effect of the given UI gadget instance + * + * \par Purpose: + * This function is used for disabling transition effect of created UI gadget. + * + * \par Typical use case: + * Anyone who want to disable transition effect of created UI gadget. + * + * \par Method of function operation: + * No transition effect of given UI gadget is invoked + * + * \par Context of function: + * This function supposed to be called after successful initialization with ug_init() and creation UI gadget with ug_create() + * + * @param[in] ug The UI gadget + * @return 0 on success, -1 on error + * + * \pre ug_init(), ug_create() + * \post None + * \see None + * \remarks Before show layout of given UI gadget, ug_disable_effect() should be called. + * + * \par Sample code: + * \code + * #include + * ... + * static void layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv) + * { + * ... + * base = ug_get_layout(ug); + * switch (mode) { + * case UG_MODE_FULLVIEW: + * // disable effect + * ug_disable_effect(ug); + * evas_object_show(base); + * ... + * \endcode + */ +int ug_disable_effect(ui_gadget_h ug); + +#ifdef __cplusplus +} +#endif +/** + * @} @} @} + */ +#endif /* __UI_GADGET_H__ */ diff --git a/packaging/ui-gadget-1.spec b/packaging/ui-gadget-1.spec new file mode 100755 index 0000000..dac7f3d --- /dev/null +++ b/packaging/ui-gadget-1.spec @@ -0,0 +1,66 @@ + +Name: ui-gadget-1 +Summary: UI Gadget Library +Version: 0.1.16 +Release: 1 +Group: System/Libraries +License: Apache License, Version 2.0 +Source0: %{name}-%{version}.tar.gz +Requires(post): /sbin/ldconfig +Requires(postun): /sbin/ldconfig +BuildRequires: pkgconfig(utilX) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(appcore-efl) +BuildRequires: pkgconfig(bundle) +BuildRequires: pkgconfig(dlog) +BuildRequires: pkgconfig(x11) +BuildRequires: pkgconfig(appsvc) +BuildRequires: pkgconfig(capi-appfw-application) +BuildRequires: pkgconfig(capi-system-runtime-info) +BuildRequires: pkgconfig(capi-appfw-app-manager) +BuildRequires: cmake +BuildRequires: edje-bin + +%description +UI gadget library (development headers) + +%package devel +Summary: Development files for %{name} +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} +%description devel +Development files for %{name} + +%prep +%setup -q + +%build +cmake . -DCMAKE_INSTALL_PREFIX=/usr + +make %{?jobs:-j%jobs} + +%install +rm -rf %{buildroot} +%make_install + +%post +/sbin/ldconfig +ln -sf /usr/bin/ug-client /usr/bin/ug-launcher + +%postun -p /sbin/ldconfig + +%files +%manifest ui-gadget-1.manifest +%defattr(-,root,root,-) +%{_libdir}/*.so.* +%{_libdir}/lib%{name}-efl-engine.so +/usr/share/edje/ug_effect.edj +%{_bindir}/ug-client +/usr/share/edje/ug-client/*.edj + +%files devel +%defattr(-,root,root,-) +%{_includedir}/ug-1/*.h +%{_libdir}/libui-gadget-1.so +%{_libdir}/pkgconfig/%{name}.pc + diff --git a/src/engine.c b/src/engine.c new file mode 100755 index 0000000..3dcdb11 --- /dev/null +++ b/src/engine.c @@ -0,0 +1,128 @@ +/* + * UI Gadget + * + * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: Jayoun Lee + * + * 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. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "ug-engine.h" +#include "ug-dbg.h" + +#define UG_ENGINE_INIT_SYM "UG_ENGINE_INIT" +#define UG_ENGINE_EXIT_SYM "UG_ENGINE_EXIT" + +enum ug_engine_type { + UG_ENGINE_EFL = 0x00, +}; + +static int file_exist(const char *filename) +{ + FILE *file; + + file = fopen(filename, "r"); + if (file) + { + fclose(file); + return 0; + } + return -1; +} + +struct ug_engine *ug_engine_load() +{ + void *handle; + struct ug_engine *engine; + char engine_file[PATH_MAX]; + enum ug_engine_type type = UG_ENGINE_EFL; + int (*engine_init)(struct ug_engine_ops *ops); + + engine = calloc(1, sizeof(struct ug_engine)); + + if (!engine) { + errno = ENOMEM; + return NULL; + } + + if (type == UG_ENGINE_EFL) { /* UG_ENGINE_EFL is default*/ + if (snprintf(engine_file, PATH_MAX, "/usr/lib/libui-gadget-1-efl-engine.so") < 0){ + goto engine_free; + } + else if (file_exist(engine_file) < 0) { + goto engine_free; + } + } + else + goto engine_free; + + handle = dlopen(engine_file, RTLD_LAZY); + if (!handle) { + _ERR("dlopen failed: %s", dlerror()); + goto engine_free; + } + + engine_init = dlsym(handle, UG_ENGINE_INIT_SYM); + if (!engine_init) { + _ERR("dlsym failed: %s", dlerror()); + goto engine_dlclose; + } + + if (engine_init(&engine->ops)) + goto engine_dlclose; + + engine->handle = handle; + return engine; + +engine_dlclose: + dlclose(handle); + +engine_free: + free(engine); + return NULL; +} + +int ug_engine_unload(struct ug_engine *engine) +{ + void (*engine_exit)(struct ug_engine_ops *ops); + + if (!engine) { + errno = EINVAL; + return -1; + } + + if (engine->handle) { + engine_exit = dlsym(engine->handle, UG_ENGINE_EXIT_SYM); + if (engine_exit) + engine_exit(&engine->ops); + else + _ERR("dlsym failed: %s", dlerror()); + + dlclose(engine->handle); + } + + free(engine); + engine = NULL; + return 0; +} diff --git a/src/manager.c b/src/manager.c new file mode 100755 index 0000000..36cccb5 --- /dev/null +++ b/src/manager.c @@ -0,0 +1,848 @@ +/* + * UI Gadget + * + * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: Jayoun Lee + * + * 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. + * + */ + +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "ug.h" +#include "ug-manager.h" +#include "ug-engine.h" +#include "ug-dbg.h" + +struct ug_manager { + ui_gadget_h root; + ui_gadget_h fv_top; + GSList *fv_list; + + void *win; + Window win_id; + Display *disp; + void *conform; + + enum ug_option base_opt; + enum ug_event last_rotate_evt; + + int walking; + + int is_initted:1; + int is_landscape:1; + int destroy_all:1; + + struct ug_engine *engine; +}; + +static struct ug_manager ug_man; + +static inline void job_start(void); +static inline void job_end(void); + +static int ug_relation_add(ui_gadget_h p, ui_gadget_h c) +{ + c->parent = p; + /* prepend element to avoid the inefficiency, + which is to traverse the entire list to find the end*/ + p->children = g_slist_prepend(p->children, c); + + return 0; +} + +static int ug_relation_del(ui_gadget_h ug) +{ + ui_gadget_h p; + + p = ug->parent; + if (!p) { + _ERR("ug_relation_del failed: no parent"); + return -1; + } + p->children = g_slist_remove(p->children, ug); + if (ug->children) + g_slist_free(ug->children); + ug->parent = NULL; + + return 0; +} + +static int ug_fvlist_add(ui_gadget_h c) +{ + ug_man.fv_list = g_slist_prepend(ug_man.fv_list, c); + ug_man.fv_top = c; + + return 0; +} + +static int ug_fvlist_del(ui_gadget_h c) +{ + ui_gadget_h t; + + ug_man.fv_list = g_slist_remove(ug_man.fv_list, c); + + /* update fullview top ug*/ + t = g_slist_nth_data(ug_man.fv_list, 0); + ug_man.fv_top = t; + + return 0; +} + +static void ugman_tree_dump(ui_gadget_h ug) +{ + static int i; + int lv; + const char *name; + GSList *child; + ui_gadget_h c; + + if (!ug) + return; + + name = ug->name; + if (ug == ug_man.root) { + i = 0; + _DBG("============== TREE_DUMP ============="); + _DBG("ROOT: Manager"); + name = "Manager"; + } + + child = ug->children; + if (!child) + return; + + i++; + lv = i; + + while (child) { + c = child->data; + _DBG("[%d] %s [%c] (%p) (PARENT: %s)", + lv, + c && c->name ? c->name : "NO CHILD INFO FIXIT!!!", + c && c->mode == UG_MODE_FULLVIEW ? 'F' : 'f', c, name); + ugman_tree_dump(c); + child = g_slist_next(child); + } +} + +static int ugman_ug_find(ui_gadget_h p, ui_gadget_h ug) +{ + GSList *child = NULL; + + if (!p || !ug) + return 0; + child = p->children; + + while (child) { + if (child->data == ug) + return 1; + if (ugman_ug_find(child->data, ug)) + return 1; + child = g_slist_next(child); + } + + return 0; +} + +static int ugman_ug_start(void *data) +{ + ui_gadget_h ug = data; + struct ug_module_ops *ops = NULL; + + if (!ug || ug->state != UG_STATE_CREATED + || ug->state == UG_STATE_RUNNING) + return 0; + + _DBG("ug=%p", ug); + + ug->state = UG_STATE_RUNNING; + + if (ug->module) + ops = &ug->module->ops; + + if (ops && ops->start) + ops->start(ug, ug->service, ops->priv); + + return 0; +} + +static int ugman_ug_pause(void *data) +{ + ui_gadget_h ug = data; + struct ug_module_ops *ops = NULL; + GSList *child = NULL; + + job_start(); + + if (!ug || ug->state != UG_STATE_RUNNING) + goto end; + + ug->state = UG_STATE_STOPPED; + + if (ug->children) { + child = ug->children; + while (child) { + ugman_ug_pause(child->data); + child = g_slist_next(child); + } + } + + if (ug->module) + ops = &ug->module->ops; + + if (ops && ops->pause) + ops->pause(ug, ug->service, ops->priv); + + end: + job_end(); + return 0; +} + +static int ugman_ug_resume(void *data) +{ + ui_gadget_h ug = data; + struct ug_module_ops *ops = NULL; + GSList *child = NULL; + + job_start(); + + if (!ug) + goto end; + + switch (ug->state) { + case UG_STATE_CREATED: + ugman_ug_start(ug); + goto end; + case UG_STATE_STOPPED: + break; + default: + goto end; + } + + ug->state = UG_STATE_RUNNING; + + if (ug->children) { + child = ug->children; + while (child) { + ugman_ug_resume(child->data); + child = g_slist_next(child); + } + } + + if (ug->module) + ops = &ug->module->ops; + + if (ops && ops->resume) + ops->resume(ug, ug->service, ops->priv); + + end: + job_end(); + return 0; +} + +static int ugman_indicator_overlap_update(enum ug_option opt) +{ + if (!ug_man.win) { + _ERR("indicator update failed: no window"); + return -1; + } + + if(GET_OPT_OVERLAP_VAL(opt)) { + _DBG("update overlap indicator / opt(%d)", opt); + elm_object_signal_emit(ug_man.conform, "elm,state,indicator,overlap", ""); + } else { + _DBG("update no overlap indicator / opt(%d)", opt); + elm_object_signal_emit(ug_man.conform, "elm,state,indicator,nooverlap", ""); + } + + return 0; +} + +static int ugman_indicator_update(enum ug_option opt, enum ug_event event) +{ + int enable; + int cur_state; + + switch (GET_OPT_INDICATOR_VAL(opt)) { + case UG_OPT_INDICATOR_ENABLE: + if (event == UG_EVENT_NONE) + enable = 1; + else { + cur_state = utilx_get_indicator_state(ug_man.disp, ug_man.win_id); + enable = cur_state ? 1 : 0; + } + break; + case UG_OPT_INDICATOR_PORTRAIT_ONLY: + enable = ug_man.is_landscape ? 0 : 1; + break; + case UG_OPT_INDICATOR_LANDSCAPE_ONLY: + enable = ug_man.is_landscape ? 1 : 0; + break; + case UG_OPT_INDICATOR_DISABLE: + enable = 0; + break; + case UG_OPT_INDICATOR_MANUAL: + return 0; + default: + _ERR("update failed: Invalid opt(%d)", opt); + return -1; + } + + utilx_enable_indicator(ug_man.disp, ug_man.win_id, enable); + + return 0; +} + +static int ugman_ug_getopt(ui_gadget_h ug) +{ + if (!ug) + return -1; + + /* Indicator Option */ + if (ug->mode == UG_MODE_FULLVIEW) { + ugman_indicator_overlap_update(ug->opt); + ugman_indicator_update(ug->opt, UG_EVENT_NONE); + } + + return 0; +} + +static int ugman_ug_event(ui_gadget_h ug, enum ug_event event) +{ + struct ug_module_ops *ops = NULL; + GSList *child = NULL; + + if (!ug) + return 0; + + if (ug->children) { + child = ug->children; + while (child) { + ugman_ug_event(child->data, event); + child = g_slist_next(child); + } + } + + if (ug->module) + ops = &ug->module->ops; + + if (ops && ops->event) + ops->event(ug, event, ug->service, ops->priv); + + return 0; +} + +static int ugman_ug_destroy(void *data) +{ + ui_gadget_h ug = data; + struct ug_module_ops *ops = NULL; + GSList *child, *trail; + + job_start(); + + if (!ug) + goto end; + + _DBG("ugman_ug_destroy start ug(%p)", ug); + + switch (ug->state) { + case UG_STATE_CREATED: + case UG_STATE_RUNNING: + case UG_STATE_STOPPED: + case UG_STATE_DESTROYING: + break; + default: + goto end; + } + + ug->state = UG_STATE_DESTROYED; + + if (ug->module) + ops = &ug->module->ops; + + if (ug->children) { + child = ug->children; + while (child) { + trail = g_slist_next(child); + ugman_ug_destroy(child->data); + child = trail; + } + } + + if (ops && ops->destroy) { + _DBG("ug module destory cb call"); + ops->destroy(ug, ug->service, ops->priv); + } + + ug_relation_del(ug); + + if (ug->mode == UG_MODE_FULLVIEW) { + if (ug_man.fv_top == ug) { + ug_fvlist_del(ug); + ugman_ug_getopt(ug_man.fv_top); + } else { + ug_fvlist_del(ug); + } + } + + ug_free(ug); + + if (ug_man.root == ug) + ug_man.root = NULL; + + ugman_tree_dump(ug_man.root); + end: + job_end(); + + return 0; +} + +static void ug_hide_end_cb(ui_gadget_h ug) +{ + ecore_idler_add(ugman_ug_destroy, ug); +} + +static int ugman_ug_create(void *data) +{ + ui_gadget_h ug = data; + struct ug_module_ops *ops = NULL; + struct ug_cbs *cbs; + struct ug_engine_ops *eng_ops = NULL; + + if (!ug || ug->state != UG_STATE_READY) + return -1; + + ug->state = UG_STATE_CREATED; + + if (ug->module) + ops = &ug->module->ops; + + if (ug_man.engine) + eng_ops = &ug_man.engine->ops; + + if (ops && ops->create) { + ug->layout = ops->create(ug, ug->mode, ug->service, ops->priv); + if (!ug->layout) { + ug_relation_del(ug); + return -1; + } + if (ug->mode == UG_MODE_FULLVIEW) { + if (eng_ops && eng_ops->create) { + //change start cb function call after transition,finished for fullview + ug_man.conform = eng_ops->create(ug_man.win, ug, ugman_ug_start); + } + } + cbs = &ug->cbs; + + if (cbs && cbs->layout_cb) + cbs->layout_cb(ug, ug->mode, cbs->priv); + + ugman_ug_getopt(ug); + } + + ugman_ug_event(ug, ug_man.last_rotate_evt); + + if(ug->mode == UG_MODE_FRAMEVIEW) + ugman_ug_start(ug); + + ugman_tree_dump(ug_man.root); + + return 0; +} + +int ugman_ug_add(ui_gadget_h parent, ui_gadget_h ug) +{ + if (!ug_man.is_initted) { + _ERR("ugman_ug_add failed: manager is not initted"); + return -1; + } + + if (!ug_man.root) { + if (parent) { + _ERR("ugman_ug_add failed: parent has to be NULL w/o root"); + errno = EINVAL; + return -1; + } + + ug_man.root = ug_root_create(); + if (!ug_man.root) + return -1; + ug_man.root->opt = ug_man.base_opt; + ug_man.root->layout = ug_man.win; + ug_fvlist_add(ug_man.root); + } + + if (!parent) + parent = ug_man.root; + + if (ug_relation_add(parent, ug)) + return -1; + + if (ugman_ug_create(ug) == -1) + return -1; + + if (ug->mode == UG_MODE_FULLVIEW) + ug_fvlist_add(ug); + + return 0; +} + +ui_gadget_h ugman_ug_load(ui_gadget_h parent, + const char *name, + enum ug_mode mode, + service_h service, struct ug_cbs *cbs) +{ + int r; + ui_gadget_h ug; + + ug = calloc(1, sizeof(struct ui_gadget_s)); + if (!ug) { + _ERR("ug_create() failed: Memory allocation failed"); + return NULL; + } + + ug->module = ug_module_load(name); + if (!ug->module) { + _ERR("ug_create() failed: Module loading failed"); + goto load_fail; + } + + ug->name = strdup(name); + + ug->mode = mode; + service_clone(&ug->service, service); + ug->opt = ug->module->ops.opt; + ug->state = UG_STATE_READY; + ug->children = NULL; + + if (cbs) + memcpy(&ug->cbs, cbs, sizeof(struct ug_cbs)); + + r = ugman_ug_add(parent, ug); + if (r) { + _ERR("ug_create() failed: Tree update failed"); + goto load_fail; + } + + return ug; + + load_fail: + ug_free(ug); + return NULL; +} + +int ugman_ug_destroying(ui_gadget_h ug) +{ + struct ug_module_ops *ops = NULL; + GSList *child, *trail; + + ug->destroy_me = 1; + ug->state = UG_STATE_DESTROYING; + + if (ug->module) + ops = &ug->module->ops; + + if (ug->children) { + child = ug->children; + while (child) { + trail = g_slist_next(child); + ugman_ug_destroying(child->data); + child = trail; + } + } + + if (ops && ops->destroying) + ops->destroying(ug, ug->service, ops->priv); + + return 0; +} + +int ugman_ug_del(ui_gadget_h ug) +{ + struct ug_engine_ops *eng_ops = NULL; + + if (!ug || !ugman_ug_exist(ug) || ug->state == UG_STATE_DESTROYED) { + _ERR("ugman_ug_del failed: Invalid ug"); + errno = EINVAL; + return -1; + } + + _DBG("ugman_ug_del start ug(%p)", ug); + + if (ug->destroy_me) { + _ERR("ugman_ug_del failed: ug is alreay on destroying"); + return -1; + } + + if (!ug_man.is_initted) { + _ERR("ugman_ug_del failed: manager is not initted"); + return -1; + } + + if (!ug_man.root) { + _ERR("ugman_ug_del failed: no root"); + return -1; + } + + ugman_ug_destroying(ug); + + /* pre call for indicator update time issue */ + if (ug_man.fv_top == ug) { + ui_gadget_h t; + t = g_slist_nth_data(ug_man.fv_list, 1); + ugman_ug_getopt(t); + } + + if (ug_man.engine) + eng_ops = &ug_man.engine->ops; + + if (eng_ops && eng_ops->destroy) + if (ug->mode == UG_MODE_FULLVIEW) + eng_ops->destroy(ug, ug_man.fv_top, ug_hide_end_cb); + else { + eng_ops->destroy(ug, NULL, ug_hide_end_cb); + } + else + ecore_idler_add(ugman_ug_destroy, ug); + + return 0; +} + +int ugman_ug_del_all(void) +{ + /* Terminate */ + if (!ug_man.is_initted) { + _ERR("ugman_ug_del_all failed: manager is not initted"); + return -1; + } + + if (!ug_man.root) { + _ERR("ugman_ug_del_all failed: no root"); + return -1; + } + + if (ug_man.walking > 0) + ug_man.destroy_all = 1; + else + ugman_ug_destroy(ug_man.root); + + return 0; +} + +int ugman_init(Display *disp, Window xid, void *win, enum ug_option opt) +{ + ug_man.is_initted = 1; + ug_man.win = win; + ug_man.disp = disp; + ug_man.win_id = xid; + ug_man.base_opt = opt; + ug_man.last_rotate_evt = UG_EVENT_ROTATE_PORTRAIT; + ug_man.engine = ug_engine_load(); + + return 0; +} + +int ugman_resume(void) +{ + /* RESUME */ + if (!ug_man.is_initted) { + _ERR("ugman_resume failed: manager is not initted"); + return -1; + } + + if (!ug_man.root) { + _ERR("ugman_resume failed: no root"); + return -1; + } + + ecore_idler_add(ugman_ug_resume, ug_man.root); + + return 0; +} + +int ugman_pause(void) +{ + /* PAUSE (Background) */ + if (!ug_man.is_initted) { + _ERR("ugman_pause failed: manager is not initted"); + return -1; + } + + if (!ug_man.root) { + _ERR("ugman_pause failed: no root"); + return -1; + } + + ecore_idler_add(ugman_ug_pause, ug_man.root); + + return 0; +} + +static int ugman_send_event_pre(void *data) +{ + job_start(); + + ugman_ug_event(ug_man.root, (enum ug_event)data); + + job_end(); + + return 0; +} + +int ugman_send_event(enum ug_event event) +{ + int is_rotation = 1; + + /* Propagate event */ + if (!ug_man.is_initted) { + _ERR("ugman_send_event failed: manager is not initted"); + return -1; + } + + /* In case of rotation, indicator state has to be updated */ + switch (event) { + case UG_EVENT_ROTATE_PORTRAIT: + case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN: + ug_man.last_rotate_evt = event; + ug_man.is_landscape = 0; + break; + case UG_EVENT_ROTATE_LANDSCAPE: + case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN: + ug_man.last_rotate_evt = event; + ug_man.is_landscape = 1; + break; + default: + is_rotation = 0; + } + + if (!ug_man.root) { + _ERR("ugman_send_event failed: no root"); + return -1; + } + + ecore_idler_add(ugman_send_event_pre, (void *)event); + + if (is_rotation && ug_man.fv_top) + ugman_indicator_update(ug_man.fv_top->opt, event); + + return 0; +} + +static int ugman_send_key_event_to_ug(ui_gadget_h ug, + enum ug_key_event event) +{ + struct ug_module_ops *ops = NULL; + + if (!ug) + return -1; + + if (ug->module) { + ops = &ug->module->ops; + } else { + return -1; + } + + if (ops && ops->key_event) { + ops->key_event(ug, event, ug->service, ops->priv); + } else { + return -1; + } + + return 0; +} + +int ugman_send_key_event(enum ug_key_event event) +{ + if (!ug_man.is_initted) { + _ERR("ugman_send_key_event failed: manager is not initted"); + return -1; + } + + if (!ug_man.fv_top || !ugman_ug_exist(ug_man.fv_top) + || ug_man.fv_top->state == UG_STATE_DESTROYED) { + _ERR("ugman_send_key_event failed: full view top UG is invalid"); + return -1; + } + + return ugman_send_key_event_to_ug(ug_man.fv_top, event); +} + +int ugman_send_message(ui_gadget_h ug, service_h msg) +{ + struct ug_module_ops *ops = NULL; + if (!ug || !ugman_ug_exist(ug) || ug->state == UG_STATE_DESTROYED) { + _ERR("ugman_send_message failed: Invalid ug"); + errno = EINVAL; + return -1; + } + + if (!msg) { + _ERR("ugman_send_message failed: Invalid msg"); + errno = EINVAL; + return -1; + } + + if (ug->module) + ops = &ug->module->ops; + + if (ops && ops->message) + ops->message(ug, msg, ug->service, ops->priv); + + return 0; +} + +void *ugman_get_window(void) +{ + return ug_man.win; +} + +void *ugman_get_conformant(void) +{ + return ug_man.conform; +} + + +static inline void job_start(void) +{ + ug_man.walking++; +} + +static inline void job_end(void) +{ + ug_man.walking--; + + if (!ug_man.walking && ug_man.destroy_all) { + ug_man.destroy_all = 0; + if (ug_man.root) + ugman_ug_destroy(ug_man.root); + } + + if (ug_man.walking < 0) + ug_man.walking = 0; +} + +int ugman_ug_exist(ui_gadget_h ug) +{ + return ugman_ug_find(ug_man.root, ug); +} diff --git a/src/module.c b/src/module.c new file mode 100644 index 0000000..da518d3 --- /dev/null +++ b/src/module.c @@ -0,0 +1,138 @@ +/* + * UI Gadget + * + * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: Jayoun Lee + * + * 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. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "ug-module.h" +#include "ug-dbg.h" + +#define UG_MODULE_INIT_SYM "UG_MODULE_INIT" +#define UG_MODULE_EXIT_SYM "UG_MODULE_EXIT" + +static int file_exist(const char *filename) +{ + FILE *file; + if ((file = fopen(filename, "r"))) { + fclose(file); + return 1; + } + + return 0; +} + +struct ug_module *ug_module_load(const char *name) +{ + void *handle; + struct ug_module *module; + char ug_file[PATH_MAX]; + char *pkg_name = NULL; + + int (*module_init) (struct ug_module_ops *ops); + + module = calloc(1, sizeof(struct ug_module)); + + if (!module) { + errno = ENOMEM; + return NULL; + } + + app_manager_get_package(getpid(), &pkg_name); + + do { + if (pkg_name) { + snprintf(ug_file, PATH_MAX, "/usr/apps/%s/lib/libug-%s.so", pkg_name, name); + if (file_exist(ug_file)) + break; + snprintf(ug_file, PATH_MAX, "/opt/apps/%s/lib/libug-%s.so", pkg_name, name); + if (file_exist(ug_file)) + break; + } + snprintf(ug_file, PATH_MAX, "/usr/ug/lib/libug-%s.so", name); + if (file_exist(ug_file)) + break; + snprintf(ug_file, PATH_MAX, "/opt/usr/ug/lib/libug-%s.so", name); + if (file_exist(ug_file)) + break; + } while (0); + + if(pkg_name) { + free(pkg_name); + pkg_name = NULL; + } + + handle = dlopen(ug_file, RTLD_LAZY); + if (!handle) { + _ERR("dlopen failed: %s", dlerror()); + goto module_free; + } + + module_init = dlsym(handle, UG_MODULE_INIT_SYM); + if (!module_init) { + _ERR("dlsym failed: %s", dlerror()); + goto module_dlclose; + } + + if (module_init(&module->ops)) + goto module_dlclose; + + module->handle = handle; + return module; + + module_dlclose: + dlclose(handle); + + module_free: + free(module); + return NULL; +} + +int ug_module_unload(struct ug_module *module) +{ + void (*module_exit) (struct ug_module_ops *ops); + + if (!module) { + errno = EINVAL; + return -1; + } + + if (module->handle) { + module_exit = dlsym(module->handle, UG_MODULE_EXIT_SYM); + if (module_exit) + module_exit(&module->ops); + else + _ERR("dlsym failed: %s", dlerror()); + + dlclose(module->handle); + module->handle = NULL; + } + + free(module); + return 0; +} diff --git a/src/ug.c b/src/ug.c new file mode 100755 index 0000000..09f4679 --- /dev/null +++ b/src/ug.c @@ -0,0 +1,283 @@ +/* + * UI Gadget + * + * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: Jayoun Lee + * + * 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. + * + */ + +#include +#include +#include +#include + +#include "ug.h" +#include "ug-module.h" +#include "ug-manager.h" +#include "ug-dbg.h" + +#ifndef UG_API +#define UG_API __attribute__ ((visibility("default"))) +#endif + +ui_gadget_h ug_root_create(void) +{ + ui_gadget_h ug; + + ug = calloc(1, sizeof(struct ui_gadget_s)); + if (!ug) { + _ERR("ug root create failed: Memory allocation failed"); + return NULL; + } + + ug->mode = UG_MODE_FULLVIEW; + ug->state = UG_STATE_RUNNING; + ug->children = NULL; + + return ug; +} + +int ug_free(ui_gadget_h ug) +{ + if (!ug) { + _ERR("ug free failed: Invalid ug"); + errno = EINVAL; + return -1; + } + + if (ug->module) { + ug_module_unload(ug->module); + } + if (ug->name) { + free((void *)ug->name); + ug->name = NULL; + } + if (ug->service) { + service_destroy(ug->service); + ug->service = NULL; + } + free(ug); + ug = NULL; + return 0; +} + +UG_API ui_gadget_h ug_create(ui_gadget_h parent, + const char *name, + enum ug_mode mode, + service_h service, struct ug_cbs *cbs) +{ + if (!name) { + _ERR("ug_create() failed: Invalid name"); + errno = EINVAL; + return NULL; + } + + if (mode < UG_MODE_FULLVIEW || mode >= UG_MODE_INVALID) { + _ERR("ug_create() failed: Invalid mode"); + errno = EINVAL; + return NULL; + } + + return ugman_ug_load(parent, name, mode, service, cbs); +} + +UG_API int ug_init(Display *disp, Window xid, void *win, enum ug_option opt) +{ + if (!win || !xid || !disp) { + _ERR("ug_init() failed: Invalid arguments"); + return -1; + } + + if (opt < UG_OPT_INDICATOR_ENABLE || opt >= UG_OPT_MAX) { + _ERR("ug_init() failed: Invalid option"); + return -1; + } + + return ugman_init(disp, xid, win, opt); +} + +UG_API int ug_pause(void) +{ + return ugman_pause(); +} + +UG_API int ug_resume(void) +{ + return ugman_resume(); +} + +UG_API int ug_destroy(ui_gadget_h ug) +{ + return ugman_ug_del(ug); +} + +UG_API int ug_destroy_all(void) +{ + return ugman_ug_del_all(); +} + +UG_API int ug_destroy_me(ui_gadget_h ug) +{ + if (!ug || !ugman_ug_exist(ug)) { + _ERR("ug_destroy_me() failed: Invalid ug"); + errno = EINVAL; + return -1; + } + + if (ug->state == UG_STATE_DESTROYING) { + _ERR("ug_destory_me() failed:ug is alreay on destroying"); + return -1; + } + + if (!ug->cbs.destroy_cb) { + _ERR("ug_destroy_me() failed: destroy callback does not " + "exist"); + return -1; + } + + ug->cbs.destroy_cb(ug, ug->cbs.priv); + return 0; +} + +UG_API void *ug_get_layout(ui_gadget_h ug) +{ + if (!ug || !ugman_ug_exist(ug)) { + _ERR("ug_get_layout() failed: Invalid ug"); + errno = EINVAL; + return NULL; + } + return ug->layout; +} + +UG_API void *ug_get_parent_layout(ui_gadget_h ug) +{ + ui_gadget_h parent; + if (!ug || !ugman_ug_exist(ug)) { + _ERR("ug_get_parent_layout() failed: Invalid ug"); + errno = EINVAL; + return NULL; + } + + parent = ug->parent; + + if (parent) + return parent->layout; + return NULL; +} + +UG_API enum ug_mode ug_get_mode(ui_gadget_h ug) +{ + if (!ug || !ugman_ug_exist(ug)) { + _ERR("ug_get_mode() failed: Invalid ug"); + errno = EINVAL; + return UG_MODE_INVALID; + } + + return ug->mode; +} + +UG_API void *ug_get_window(void) +{ + return ugman_get_window(); +} + +UG_API void *ug_get_conformant(void) +{ + return ugman_get_conformant(); +} + +UG_API int ug_send_event(enum ug_event event) +{ + if (event <= UG_EVENT_NONE || event >= UG_EVENT_MAX) { + _ERR("ug_send_event() failed: Invalid event"); + return -1; + } + + return ugman_send_event(event); +} + +UG_API int ug_send_key_event(enum ug_key_event event) +{ + if (event <= UG_KEY_EVENT_NONE || event >= UG_KEY_EVENT_MAX) { + _ERR("ug_send_key_event() failed: Invalid event"); + return -1; + } + + return ugman_send_key_event(event); +} + +UG_API int ug_send_result(ui_gadget_h ug, service_h result) +{ + service_h result_dup = NULL; + + if (!ug || !ugman_ug_exist(ug)) { + _ERR("ug_send_result() failed: Invalid ug"); + errno = EINVAL; + return -1; + } + + if (!ug->cbs.result_cb) { + _ERR("ug_send_result() failed: result callback does not exist"); + return -1; + } + + if (result) { + service_clone(&result_dup, result); + if (!result_dup) { + _ERR("ug_send_result() failed: service_destroy failed"); + return -1; + } + } + + ug->cbs.result_cb(ug, result_dup, ug->cbs.priv); + + if (result_dup) + service_destroy(result_dup); + + return 0; +} + +UG_API int ug_send_message(ui_gadget_h ug, service_h msg) +{ + int r; + + service_h msg_dup = NULL; + if (msg) { + service_clone(&msg_dup, msg); + if (!msg_dup) { + _ERR("ug_send_message() failed: service_destroy failed"); + return -1; + } + } + + r = ugman_send_message(ug, msg_dup); + + if (msg_dup) + service_destroy(msg_dup); + + return r; +} + +UG_API int ug_disable_effect(ui_gadget_h ug) +{ + if (ug->layout_state != UG_LAYOUT_INIT) { + _ERR("ug_disable_effect() failed: ug has already been shown"); + return -1; + } + ug->layout_state = UG_LAYOUT_NOEFFECT; + + return 0; +} diff --git a/ug-efl-engine/CMakeLists.txt b/ug-efl-engine/CMakeLists.txt new file mode 100755 index 0000000..d0414f6 --- /dev/null +++ b/ug-efl-engine/CMakeLists.txt @@ -0,0 +1,37 @@ +SET(UG_EFL_ENGINE "${PROJECT_NAME}-efl-engine") +SET(UG_EFL_ENGINE_SRCS ug-efl-engine.c) +SET(UG_ENGINE_EDJ_DIR "${CMAKE_INSTALL_PREFIX}/share/edje") +SET(VERSION_MAJOR 0) +SET(VERSION "${VERSION_MAJOR}.1.0") + +PKG_CHECK_MODULES(UG_EFL_ENGINE_PKGS REQUIRED + dlog + elementary + ecore + ecore-x + edje + capi-appfw-application + evas) + +FOREACH(flag ${UG_EFL_ENGINE_PKGS_CFLAGS}) + SET(UG_EFL_ENGINE_CFLAGS "${UG_EFL_ENGINE_CFLAGS} ${flag}") +ENDFOREACH(flag) +SET(UG_EFL_ENGINE_CFLAGS, "${UG_EFL_ENGINE_CFLAGS} -DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"") + +ADD_LIBRARY(${UG_EFL_ENGINE} SHARED ${UG_EFL_ENGINE_SRCS}) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION_MAJOR}) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION ${VERSION}) +SET_TARGET_PROPERTIES(${UG_EFL_ENGINE} PROPERTIES COMPILE_FLAGS "${UG_EFL_ENGINE_CFLAGS}") +TARGET_LINK_LIBRARIES(${UG_EFL_ENGINE} ${PROJECT_NAME} ${UG_EFL_ENGINE_PKGS_LDFLAGS}) + +INSTALL(TARGETS ${UG_EFL_ENGINE} DESTINATION /usr/lib) + +ADD_CUSTOM_TARGET(ug_effect.edj + COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/ug_effect.edc ${CMAKE_BINARY_DIR}/ug_effect.edj + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ug_effect.edc +) +ADD_DEPENDENCIES(${PROJECT_NAME} ug_effect.edj) +INSTALL(FILES ${CMAKE_BINARY_DIR}/ug_effect.edj DESTINATION ${UG_ENGINE_EDJ_DIR}) + + diff --git a/ug-efl-engine/ug-efl-engine.c b/ug-efl-engine/ug-efl-engine.c new file mode 100755 index 0000000..f4bf697 --- /dev/null +++ b/ug-efl-engine/ug-efl-engine.c @@ -0,0 +1,348 @@ +/* + * UI Gadget + * + * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: Jayoun Lee + * + * 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. + * + */ + +#include +#include +#include + +#include "ug.h" +#include "ug-efl-engine.h" +#include "ug-dbg.h" + +#ifndef UG_ENGINE_API +#define UG_ENGINE_API __attribute__ ((visibility("default"))) +#endif + +static Evas_Object *navi = NULL; +static Evas_Object *conform = NULL; +struct cb_data { + ui_gadget_h ug; + void (*transition_cb)(ui_gadget_h ug); +}; +static void __hide_finished(void *data, Evas_Object *obj, void *event_info); +static void on_show_cb(void *data, Evas *e, Evas_Object *obj, void *event_info); + +static void _on_hideonly_cb(void *data, Evas_Object *obj) +{ + ui_gadget_h ug = (ui_gadget_h)data; + + if (!ug) + return; + + _DBG("\t obj=%p ug=%p state=%d", obj, ug, ug->layout_state); + + evas_object_intercept_hide_callback_del(ug->layout, _on_hideonly_cb); + + struct cb_data *cb_d; + cb_d = (struct cb_data *)calloc(1, sizeof(struct cb_data)); + cb_d->ug = ug; + cb_d->transition_cb = NULL; + + evas_object_event_callback_add(ug->layout, EVAS_CALLBACK_SHOW, on_show_cb, cb_d); + + if (ug->layout_state == UG_LAYOUT_NOEFFECT) { + ; + } + + if (ug->layout_state == UG_LAYOUT_SHOW) { + ug->layout_state = UG_LAYOUT_HIDEEFFECT; + } + + if (GET_OPT_OVERLAP_VAL(ug->opt) == UG_OPT_OVERLAP_ENABLE) { + _DBG("\t this is Overlap UG. Send nooverlap sig on hide_cb"); + elm_object_signal_emit(conform, "elm,state,indicator,nooverlap", ""); + } + + if (elm_naviframe_top_item_get(navi) == ug->effect_layout) { + elm_naviframe_item_pop(navi); + } else { + elm_object_item_del(ug->effect_layout); + ug->effect_layout = NULL; + } +} + +static void _del_effect_layout(ui_gadget_h ug) +{ + GSList *child, *trail; + + if (!ug) + return; + + _DBG("\t ug=%p state=%d", ug, ug->layout_state); + + evas_object_intercept_hide_callback_del(ug->layout, _on_hideonly_cb); + + if (ug->children) { + child = ug->children; + while (child) { + trail = g_slist_next(child); + _del_effect_layout(child->data); + child = trail; + } + } + + /* effect_layout of frameview is null */ + /* remove navi item */ + if (ug->effect_layout) { + _DBG("\t remove navi item: ug=%p", ug); + if (ug->layout_state == UG_LAYOUT_HIDEEFFECT) { + _DBG("\t del cb, ug=%p", ug); + evas_object_smart_callback_del(navi, "transition,finished", + __hide_finished); + } + elm_object_item_del(ug->effect_layout); + ug->effect_layout = NULL; + } + + if (navi) { + Elm_Object_Item *t = elm_naviframe_top_item_get(navi); + Elm_Object_Item *b = elm_naviframe_bottom_item_get(navi); + if (t == b) { + _DBG("\t remove navi"); + evas_object_del(navi); + navi = NULL; + } + } + evas_object_hide(ug->layout); +} + +static void __hide_finished(void *data, Evas_Object *obj, void *event_info) +{ + struct cb_data *cb_d = (struct cb_data *)data; + + if (!cb_d) + return; + + evas_object_smart_callback_del(obj, "transition,finished", + __hide_finished); + + ui_gadget_h ug = cb_d->ug; + _DBG("\t obj=%p ug=%p state=%d", obj, ug, ug->layout_state); + + ug->effect_layout = NULL; + _del_effect_layout(ug); + cb_d->transition_cb(ug); + free(cb_d); +} + +static int __find_child(ui_gadget_h p, ui_gadget_h ug) +{ + GSList *child = NULL; + + if (!p || !ug) + return 0; + child = p->children; + + while (child) { + if (child->data == ug) + return 1; + if (__find_child(child->data, ug)) + return 1; + child = g_slist_next(child); + } + + return 0; +} + +static void on_destroy(ui_gadget_h ug, ui_gadget_h t_ug, + void (*hide_end_cb) (ui_gadget_h ug)) +{ + if (!ug) + return; + _DBG("\t ug=%p tug=%p state=%d", ug, t_ug, ug->layout_state); + + evas_object_intercept_hide_callback_del(ug->layout, + _on_hideonly_cb); + + if (ug != t_ug) { + _DBG("requested ug(%p) is not top ug(%p)", ug, t_ug); + _del_effect_layout(ug); + hide_end_cb(ug); + return; + } + + if (ug->layout_state == UG_LAYOUT_SHOW) { + struct cb_data *cb_d; + cb_d = (struct cb_data *)calloc(1, sizeof(struct cb_data)); + cb_d->ug = ug; + cb_d->transition_cb = hide_end_cb; + + _DBG("\t cb add ug=%p", ug); + + /* overlap update does not needed because manager will do that at on_destroy scenario */ + + evas_object_smart_callback_add(navi, "transition,finished", + __hide_finished, cb_d); + elm_naviframe_item_pop(navi); + ug->layout_state = UG_LAYOUT_HIDEEFFECT; + } else if (ug->layout_state == UG_LAYOUT_HIDE + || ug->layout_state == UG_LAYOUT_NOEFFECT) { + _del_effect_layout(ug); + hide_end_cb(ug); + } else if (ug->layout_state == UG_LAYOUT_HIDEEFFECT + || ug->layout_state == UG_LAYOUT_SHOWEFFECT) { + ug->layout_state = UG_LAYOUT_DESTROY; + } else { + _ERR("[UG Effect Plug-in] : layout state error!!"); + } +} + +static void __show_finished(void *data, Evas_Object *obj, void *event_info) +{ + struct cb_data *cb_d = (struct cb_data *)data; + if (!cb_d) + return; + + ui_gadget_h ug = cb_d->ug; + if (!ug) + return; + + _DBG("\tobj=%p ug=%p state=%d", obj, ug, ug->layout_state); + + evas_object_smart_callback_del(obj, "transition,finished", + __show_finished); + + if (ug->layout_state == UG_LAYOUT_NOEFFECT) + return; + + if (ug->layout_state == UG_LAYOUT_DESTROY) + ; + else + ug->layout_state = UG_LAYOUT_SHOW; + + if(cb_d->transition_cb) + cb_d->transition_cb(ug); + free(cb_d); +} + +static void on_show_cb(void *data, Evas *e, Evas_Object *obj, + void *event_info) +{ + struct cb_data *cb_d = (struct cb_data *)data; + if (!cb_d) + return; + ui_gadget_h ug = cb_d->ug; + if (!ug) + return; + _DBG("\tobj=%p ug=%p layout=%p state=%d", obj, ug, ug->layout, ug->layout_state); + + evas_object_event_callback_del(ug->layout, EVAS_CALLBACK_SHOW, on_show_cb); + + evas_object_intercept_hide_callback_add(ug->layout, + _on_hideonly_cb, ug); + + elm_object_part_content_set(conform, "elm.swallow.ug", navi); + + if (ug->layout_state == UG_LAYOUT_HIDE + || ug->layout_state == UG_LAYOUT_INIT) { + _DBG("\t UG_LAYOUT_Init(%d) obj=%p", ug->layout_state, obj); + ug->layout_state = UG_LAYOUT_SHOWEFFECT; + + if (GET_OPT_OVERLAP_VAL(ug->opt)) { + _DBG("\t this is Overlap UG. Send overlap sig on_show_cb"); + elm_object_signal_emit(conform, "elm,state,indicator,overlap", ""); + } + + evas_object_smart_callback_add(navi, "transition,finished", + __show_finished, cb_d); + ug->effect_layout = elm_naviframe_item_push(navi, NULL, NULL, NULL, + ug->layout, NULL); + } else if (ug->layout_state == UG_LAYOUT_NOEFFECT) { + _DBG("\t UG_LAYOUT_NOEFFECT obj=%p", obj); + + if (GET_OPT_OVERLAP_VAL(ug->opt)) { + _DBG("\t this is Overlap UG. Send overlap sig on_show_cb"); + elm_object_signal_emit(conform, "elm,state,indicator,overlap", ""); + } + + Elm_Object_Item *navi_top = elm_naviframe_top_item_get(navi); + ug->effect_layout = elm_naviframe_item_insert_after(navi, + navi_top, NULL, NULL, NULL, ug->layout, NULL); + + //ug start cb + if(cb_d->transition_cb) + cb_d->transition_cb(ug); + free(cb_d); + } else { + _ERR("\tlayout state error!! state=%d\n", ug->layout_state); + free(cb_d); + } +} + +static void *on_create(void *win, ui_gadget_h ug, + void (*show_end_cb) (void* data)) +{ + Evas_Object *navi_bg; + Evas_Object *con = NULL; + + if (!ug) + return NULL; + _DBG("\t ug=%p state=%d", ug, ug->layout_state); + + con = evas_object_data_get(win, "\377 elm,conformant"); + if (con) { + conform = con; + _DBG("\t There is conformant"); + } + else + _DBG("\t There is NO conformant"); + + if (!navi) { + navi = elm_naviframe_add(conform); + elm_object_style_set(navi, "uglib"); + elm_naviframe_content_preserve_on_pop_set(navi, EINA_TRUE); + _DBG("\t new navi first navi=%p", navi); + elm_naviframe_prev_btn_auto_pushed_set(navi, EINA_FALSE); + + navi_bg = evas_object_rectangle_add(evas_object_evas_get(navi)); + evas_object_size_hint_fill_set(navi_bg, EVAS_HINT_FILL, + EVAS_HINT_FILL); + evas_object_color_set(navi_bg, 0, 0, 0, 0); + elm_naviframe_item_push(navi, NULL, NULL, NULL, navi_bg, NULL); + } + + struct cb_data *cb_d; + cb_d = (struct cb_data *)calloc(1, sizeof(struct cb_data)); + cb_d->ug = ug; + cb_d->transition_cb = show_end_cb; + + evas_object_hide(ug->layout); + evas_object_event_callback_add(ug->layout, EVAS_CALLBACK_SHOW, on_show_cb, cb_d); + + ug->layout_state = UG_LAYOUT_INIT; + + return conform; +} + +UG_ENGINE_API int UG_ENGINE_INIT(struct ug_engine_ops *ops) +{ + if (!ops) + return -1; + + ops->create = on_create; + ops->destroy = on_destroy; + + return 0; +} + +UG_ENGINE_API void UG_ENGINE_EXIT(struct ug_engine_ops *ops) +{ +} diff --git a/ug-efl-engine/ug-efl-engine.h b/ug-efl-engine/ug-efl-engine.h new file mode 100644 index 0000000..fbfce5b --- /dev/null +++ b/ug-efl-engine/ug-efl-engine.h @@ -0,0 +1,32 @@ +/* + * UI Gadget + * + * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: Jayoun Lee + * + * 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 __UG_EFL_ENGINE_H__ +#define __UG_EFL_ENGINE_H__ + +#include +#include + +#define _EDJ(o) elm_layout_edje_get(o) + +#endif /* __UG_EFL_ENGINE_H__ */ diff --git a/ug-efl-engine/ug_effect.edc b/ug-efl-engine/ug_effect.edc new file mode 100644 index 0000000..0be0ed3 --- /dev/null +++ b/ug-efl-engine/ug_effect.edc @@ -0,0 +1,137 @@ +/* + * UI Gadget + * + * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: Jayoun Lee + * + * 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. + * + */ + +//TRANSLATION EFFECT +#define NAVIFRAME_VIEW_TRANS_TIME 0.1 + +collections { +/* group { name:"elm/naviframe/item/basic/uglib"; + parts { + part { name: "base"; + type: RECT; + mouse_events: 0; + description { state: "default" 0.0; + color: 255 255 255 255; + } + description { state: "right" 0.0; + inherit: "default" 0.0; + rel1.relative: 1.0 0.0; + rel2.relative: 2.0 1.0; + color: 255 255 255 0; + } + } + part { name: "elm.swallow.content"; + type: SWALLOW; + scale: 1; + repeat_events: 0; + clip_to: "base"; + description { state: "default" 0.0; + align: 0.0 0.0; + rel1.relative: 0.0 0.0; + rel1.to: "base"; + rel2.relative: 1.0 1.0; + rel2.to: "base"; + } + } + } + programs { + program { name: "content_new_pushed"; + signal: "elm,state,new,pushed,internal"; + source: ""; + action: STATE_SET "default" 0.0; + target: "base"; + transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME; + after: "show_finished"; + } + program { name: "content_cur_pushed"; + signal: "elm,state,cur,pushed,internal"; + source: ""; + action: STATE_SET "default" 0.0; + target: "base"; + transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME; + after: "pushed_finished"; + } + program { name: "content_prev_popped"; + signal: "elm,state,prev,popped,internal"; + source: ""; + action: STATE_SET "default" 0.0; + target: "base"; + transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME; + after: "show_finished"; + } + program { name: "content_cur_popped"; + signal: "elm,state,cur,popped,internal"; + source: ""; + action: STATE_SET "right" 0.0; + target: "base"; + transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME; + after: "popped_finished"; + } + program { name: "cur_pushed"; + signal: "elm,state,cur,pushed"; + source: "elm"; + script { + set_state(PART:"base", "default", 0.0); + emit("elm,state,cur,pushed,internal", ""); + } + } + program { name: "new_pushed"; + signal: "elm,state,new,pushed"; + source: "elm"; + script { + set_state(PART:"base", "right", 0.0); + emit("elm,state,new,pushed,internal", ""); + } + } + program { name: "prev_popped"; + signal: "elm,state,prev,popped"; + source: "elm"; + script { + set_state(PART:"base", "default", 0.0); + emit("elm,state,prev,popped,internal", ""); + } + } + program { name: "cur_popped"; + signal: "elm,state,cur,popped"; + source: "elm"; + script { + set_state(PART:"base", "default", 0.0); + emit("elm,state,cur,popped,internal", ""); + } + } + program { name: "visible"; + signal: "elm,state,visible"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "base"; + } + program { name: "show_finished"; + action: SIGNAL_EMIT "elm,action,show,finished" ""; + } + program { name: "pushed_finished"; + action: SIGNAL_EMIT "elm,action,pushed,finished" ""; + } + program { name: "popped_finished"; + action: SIGNAL_EMIT "elm,action,popped,finished" ""; + } + } + }*/ +} diff --git a/ui-gadget-1.manifest b/ui-gadget-1.manifest new file mode 100644 index 0000000..97e8c31 --- /dev/null +++ b/ui-gadget-1.manifest @@ -0,0 +1,5 @@ + + + + + diff --git a/ui-gadget-1.pc.in b/ui-gadget-1.pc.in new file mode 100644 index 0000000..f011267 --- /dev/null +++ b/ui-gadget-1.pc.in @@ -0,0 +1,11 @@ +prefix=@PREFIX@ +exec_prefix=@EXEC_PREFIX@ +libdir=@LIBDIR@ +includedir=@INCLUDEDIR@/ug-1/ + +Name: UI Gadget +Description: UI Gadget Library +Version: @VERSION@ +Requires: bundle x11 capi-appfw-application +Libs: -L${libdir} -lui-gadget-1 +Cflags: -I${includedir} -- 2.7.4