From: Hermet Park Date: Wed, 28 Sep 2016 11:43:15 +0000 (+0900) Subject: c: revise lifecycle and event callbacks. X-Git-Tag: submit/tizen/20160930.094404^2~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7cbbdf0cbb6ebb47d5eb2860c174670582befc19;p=platform%2Fcore%2Fuifw%2Fui-viewmgr.git c: revise lifecycle and event callbacks. we need more sophisticated event callback methods for extendibility. Change-Id: Ib92d63e5cc508f0b01567084ae65be75f5741ec5 --- diff --git a/src/examples/efl/c/main.cpp b/src/examples/efl/c/main.cpp index eec479f..203674f 100644 --- a/src/examples/efl/c/main.cpp +++ b/src/examples/efl/c/main.cpp @@ -13,17 +13,18 @@ app_create(void *data) return true; } -static void -app_control(app_control_h app_control, void *data) +static bool +app_control(app_control_h app_control, void *user_data) { /* Handle the launch request. */ + + return true; } int main(int argc, char *argv[]) { - int ret = 0; - ui_app_lifecycle_callback_s lifecycle_callback = {0, }; + ui_application_lifecycle_cb_s app_lifecycle_cb = {0, }; //Initialize ui_app. ui_app initializes basic resources including ui_viewmgr internally. if (!ui_application_init(PACKAGE, LOCALE_DIR)) @@ -33,11 +34,11 @@ main(int argc, char *argv[]) } //Register life cycle callback functions. - lifecycle_callback.create = app_create; - lifecycle_callback.app_control = app_control; + app_lifecycle_cb.create = app_create; + app_lifecycle_cb.control = app_control; //Run ui_app. Now it requests to run an application mainloop. - if (!ui_application_run(argc, argv, &lifecycle_callback, NULL)) + if (!ui_application_run(argc, argv, &app_lifecycle_cb, NULL)) { dlog_print(DLOG_ERROR, LOG_TAG, "ui_app_run() is failed"); return 0; diff --git a/src/examples/efl/c/page1.cpp b/src/examples/efl/c/page1.cpp index 386ea7b..7ac56d5 100644 --- a/src/examples/efl/c/page1.cpp +++ b/src/examples/efl/c/page1.cpp @@ -31,7 +31,7 @@ next_btn_clicked_cb(void *data, Eo *obj, void *event_info) } static bool -view1_load_cb(ui_standard_view *view, void *data) +view1_load_cb(ui_standard_view *view, void *user_data) { Eo *content = NULL; Eo *base = NULL; @@ -63,7 +63,7 @@ create_page1() { int ret = 0; ui_standard_view *view = NULL; - ui_view_lifecycle_callback_s lifecycle_callback = {0, }; + ui_view_lifecycle_cb_s lifecycle_cb = {0, }; //Create a view. view = ui_standard_view_create("page1"); @@ -74,10 +74,10 @@ create_page1() } //Set View Life-Cycle callbacks. - lifecycle_callback.load = view1_load_cb; - if (!(ret = ui_view_set_lifecycle_callbacks(view, &lifecycle_callback, NULL))) + lifecycle_cb.load = view1_load_cb; + if (!(ret = ui_view_set_lifecycle_cb(view, &lifecycle_cb, NULL))) { - dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_lifecycle_callback_set() is failed. err = %d", ret); + dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_set_lifecycle_cb() is failed. err = %d", ret); ui_view_destroy(view); return; } diff --git a/src/examples/efl/c/page10.cpp b/src/examples/efl/c/page10.cpp index a759be3..c1ab302 100644 --- a/src/examples/efl/c/page10.cpp +++ b/src/examples/efl/c/page10.cpp @@ -30,10 +30,11 @@ next_btn_clicked_cb(void *data, Eo *obj, void *event_info) } static bool -view10_rotate_cb(ui_standard_view *view, int degree, void *data) +view10_rotate_cb(ui_standard_view *view, void *user_data) { Eo *content = NULL; Eo *base = NULL; + //int degree = ui_view_get_degree(view); //Get a base object from view. base = ui_view_get_base(view); @@ -68,9 +69,9 @@ view10_rotate_cb(ui_standard_view *view, int degree, void *data) } static bool -view10_load_cb(ui_standard_view *view, void *data) +view10_load_cb(ui_standard_view *view, void *user_data) { - return view10_rotate_cb(view, ui_view_get_degree(view), data); + return view10_rotate_cb(view, user_data); } void @@ -78,8 +79,7 @@ create_page10() { int ret = 0; ui_standard_view *view = NULL; - ui_view_lifecycle_callback_s lifecycle_callback = {0, }; - ui_view_event_callback_s event_callback = {0, }; + ui_view_lifecycle_cb_s view_lifecycle_cb = {0, }; //Create a view. view = ui_standard_view_create("page10"); @@ -90,19 +90,18 @@ create_page10() } //Set View Life-Cycle callbacks. - lifecycle_callback.load = view10_load_cb; - if (!(ret = ui_view_set_lifecycle_callbacks(view, &lifecycle_callback, NULL))) + view_lifecycle_cb.load = view10_load_cb; + if (!(ret = ui_view_set_lifecycle_cb(view, &view_lifecycle_cb, NULL))) { - dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_lifecycle_callback_set is failed. err = %d", ret); + dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_set_lifecycle_cb() is failed. err = %d", ret); ui_view_destroy(view); return; } //Set Rotation Event callbacks. - event_callback.rotate = view10_rotate_cb; - if (!(ret = ui_view_set_event_callbacks(view, &event_callback, NULL))) + if (!(ret = ui_view_set_event_cb(view, UI_VIEW_EVENT_ROTATE, view10_rotate_cb, NULL))) { - dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_event_callback_set is failed. err = %d", ret); + dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_set_event_cb() is failed. err = %d", ret); } ui_viewmgr_push_view(view); diff --git a/src/examples/efl/c/page11.cpp b/src/examples/efl/c/page11.cpp index 1922c79..56f685f 100644 --- a/src/examples/efl/c/page11.cpp +++ b/src/examples/efl/c/page11.cpp @@ -30,7 +30,7 @@ next_btn_clicked_cb(void *data, Eo *obj, void *event_info) } static bool -view11_load_cb(ui_standard_view *view, void *data) +view11_load_cb(ui_standard_view *view, void *user_data) { Eo *content = NULL; Eo *base = NULL; @@ -66,10 +66,11 @@ ctxpopup_item_select_cb(void *data, Eo *obj, void *event_info) } static bool -view11_menu_cb(ui_menu *menu, void *data) +view11_menu_cb(ui_view *view, void *user_data) { Eo *base = NULL; Elm_Ctxpopup *ctxpopup = NULL; + ui_menu *menu = ui_view_get_menu(view); //Get a base object from menu. base = ui_menu_get_base(menu); @@ -107,8 +108,7 @@ create_page11() { int ret = 0; ui_standard_view *view = NULL; - ui_view_lifecycle_callback_s lifecycle_callback = {0, }; - ui_view_event_callback_s event_callback = {0, }; + ui_view_lifecycle_cb_s view_lifecycle_cb = {0, }; //Create a view. view = ui_standard_view_create("page11"); @@ -118,20 +118,19 @@ create_page11() return; } - //Set View Life-Cycle callbacks. - lifecycle_callback.load = view11_load_cb; - if (!(ret = ui_view_set_lifecycle_callbacks(view, &lifecycle_callback, NULL))) + //Set View Life-Cycle callback. + view_lifecycle_cb.load = view11_load_cb; + if (!(ret = ui_view_set_lifecycle_cb(view, &view_lifecycle_cb, NULL))) { - dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_lifecycle_callback_set is failed. err = %d", ret); + dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_set_lifecycle_cb() is failed. err = %d", ret); ui_view_destroy(view); return; } - //Set Menu Event callbacks. - event_callback.menu = view11_menu_cb; - if (!(ret = ui_view_set_event_callbacks(view, &event_callback, NULL))) + //Set Menu Event callback. + if (!(ret = ui_view_set_event_cb(view, UI_VIEW_EVENT_MENU, view11_menu_cb, NULL))) { - dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_event_callback_set is failed. err = %d", ret); + dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_set_event_cb() is failed. err = %d", ret); } ui_viewmgr_push_view(view); diff --git a/src/examples/efl/c/page12.cpp b/src/examples/efl/c/page12.cpp index 1af2810..8ca7a98 100644 --- a/src/examples/efl/c/page12.cpp +++ b/src/examples/efl/c/page12.cpp @@ -94,7 +94,7 @@ view12_btn_clicked(void *data, Eo *obj, void *event_info) } static bool -view12_load_cb(ui_standard_view *view, void *data) +view12_load_cb(ui_standard_view *view, void *user_data) { Eo *content = NULL; Eo *base = NULL; @@ -133,7 +133,7 @@ create_page12() { int ret = 0; ui_standard_view *view = NULL; - ui_view_lifecycle_callback_s lifecycle_callback = {0, }; + ui_view_lifecycle_cb_s view_lifecycle_cb = {0, }; //Create a view view = ui_standard_view_create("page12"); @@ -144,10 +144,10 @@ create_page12() } //Set View Life-Cycle callbacks. - lifecycle_callback.load = view12_load_cb; - if (!(ret = ui_view_set_lifecycle_callbacks(view, &lifecycle_callback, NULL))) + view_lifecycle_cb.load = view12_load_cb; + if (!(ret = ui_view_set_lifecycle_cb(view, &view_lifecycle_cb, NULL))) { - dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_lifecycle_callback_set is failed. err = %d", ret); + dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_set_lifecycle_cb() is failed. err = %d", ret); ui_view_destroy(view); return; } diff --git a/src/examples/efl/c/page13.cpp b/src/examples/efl/c/page13.cpp index 34e110d..a2f5321 100644 --- a/src/examples/efl/c/page13.cpp +++ b/src/examples/efl/c/page13.cpp @@ -30,7 +30,7 @@ next_btn_clicked_cb(void *data, Eo *obj, void *event_info) } static bool -view13_load_cb(ui_standard_view *view, void *data) +view13_load_cb(ui_standard_view *view, void *user_data) { Eo *content = NULL; Eo *base = NULL; @@ -62,7 +62,7 @@ create_page13() { int ret = 0; ui_standard_view *view = NULL; - ui_view_lifecycle_callback_s lifecycle_callback = {0, }; + ui_view_lifecycle_cb_s view_lifecycle_cb = {0, }; //Create a view. view = ui_standard_view_create("page13"); @@ -76,10 +76,10 @@ create_page13() ui_view_set_transition_style(view, "fade"); //Set View Life-Cycle callbacks. - lifecycle_callback.load = view13_load_cb; - if (!(ret = ui_view_set_lifecycle_callbacks(view, &lifecycle_callback, NULL))) + view_lifecycle_cb.load = view13_load_cb; + if (!(ret = ui_view_set_lifecycle_cb(view, &view_lifecycle_cb, NULL))) { - dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_lifecycle_callback_set is failed. err = %d", ret); + dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_set_lifecycle_cb() is failed. err = %d", ret); ui_view_destroy(view); return; } diff --git a/src/examples/efl/c/page14.cpp b/src/examples/efl/c/page14.cpp index 8fc88fa..ee6cc41 100644 --- a/src/examples/efl/c/page14.cpp +++ b/src/examples/efl/c/page14.cpp @@ -30,7 +30,7 @@ next_btn_clicked_cb(void *data, Eo *obj, void *event_info) } static bool -view14_load_cb(ui_standard_view *view, void *data) +view14_load_cb(ui_standard_view *view, void *user_data) { Eo *content = NULL; Eo *base = NULL; @@ -62,7 +62,7 @@ create_page14() { int ret = 0; ui_standard_view *view = NULL; - ui_view_lifecycle_callback_s lifecycle_callback = {0, }; + ui_view_lifecycle_cb_s view_lifecycle_cb = {0, }; //Create a view. view = ui_standard_view_create("page14"); @@ -76,10 +76,10 @@ create_page14() ui_view_set_transition_style(view, "none"); //Set View Life-Cycle callbacks. - lifecycle_callback.load = view14_load_cb; - if (!(ret = ui_view_set_lifecycle_callbacks(view, &lifecycle_callback, NULL))) + view_lifecycle_cb.load = view14_load_cb; + if (!(ret = ui_view_set_lifecycle_cb(view, &view_lifecycle_cb, NULL))) { - dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_lifecycle_callback_set is failed. err = %d", ret); + dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_set_lifecycle_cb() is failed. err = %d", ret); ui_view_destroy(view); return; } diff --git a/src/examples/efl/c/page15.cpp b/src/examples/efl/c/page15.cpp index ce88949..495acf9 100644 --- a/src/examples/efl/c/page15.cpp +++ b/src/examples/efl/c/page15.cpp @@ -24,7 +24,7 @@ view15_btn_clicked_cb(void *data, Eo *obj, void *event_info) } static bool -view15_load_cb(ui_standard_view *view, void *data) +view15_load_cb(ui_standard_view *view, void *user_data) { Eo *content = NULL; Eo *base = NULL; @@ -62,7 +62,7 @@ create_page15() { int ret = 0; ui_standard_view *view = NULL; - ui_view_lifecycle_callback_s lifecycle_callback = {0, }; + ui_view_lifecycle_cb_s view_lifecycle_cb = {0, }; view = ui_standard_view_create("page15"); if (!view) @@ -72,10 +72,10 @@ create_page15() } //Set View Life-Cycle callbacks. - lifecycle_callback.load = view15_load_cb; - if (!(ret = ui_view_set_lifecycle_callbacks(view, &lifecycle_callback, NULL))) + view_lifecycle_cb.load = view15_load_cb; + if (!(ret = ui_view_set_lifecycle_cb(view, &view_lifecycle_cb, NULL))) { - dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_lifecycle_callback_set is failed. err = %d", ret); + dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_set_lifecycle_cb() is failed. err = %d", ret); ui_view_destroy(view); return; } diff --git a/src/examples/efl/c/page16.cpp b/src/examples/efl/c/page16.cpp index 718c4c5..d472bd1 100644 --- a/src/examples/efl/c/page16.cpp +++ b/src/examples/efl/c/page16.cpp @@ -58,7 +58,7 @@ title_hide_anim_btn_clicked_cb(void *data, Eo *obj, void *event_info) } static bool -view16_load_cb(ui_standard_view *view, void *data) +view16_load_cb(ui_standard_view *view, void *user_data) { Eo *content = NULL; Eo *base = NULL; @@ -90,7 +90,7 @@ create_page16() { int ret = 0; ui_standard_view *view = NULL; - ui_view_lifecycle_callback_s lifecycle_callback = {0, }; + ui_view_lifecycle_cb_s view_lifecycle_cb = {0, }; //Create a view. view = ui_standard_view_create("page16"); @@ -101,10 +101,10 @@ create_page16() } //Set View Life-Cycle callbacks. - lifecycle_callback.load = view16_load_cb; - if (!(ret = ui_view_set_lifecycle_callbacks(view, &lifecycle_callback, NULL))) + view_lifecycle_cb.load = view16_load_cb; + if (!(ret = ui_view_set_lifecycle_cb(view, &view_lifecycle_cb, NULL))) { - dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_lifecycle_callback_set is failed. err = %d", ret); + dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_set_lifecycle_cb() is failed. err = %d", ret); ui_view_destroy(view); return; } diff --git a/src/examples/efl/c/page2.cpp b/src/examples/efl/c/page2.cpp index 44b0684..76d6b33 100644 --- a/src/examples/efl/c/page2.cpp +++ b/src/examples/efl/c/page2.cpp @@ -30,7 +30,7 @@ next_btn_clicked_cb(void *data, Eo *obj, void *event_info) } static bool -view2_load_cb(ui_standard_view *view, void *data) +view2_load_cb(ui_standard_view *view, void *user_data) { Eo *content = NULL; Eo *base = NULL; @@ -76,7 +76,7 @@ create_page2() { int ret = 0; ui_standard_view *view = NULL; - ui_view_lifecycle_callback_s lifecycle_callback = {0, }; + ui_view_lifecycle_cb_s view_lifecycle_cb = {0, }; //Create a view. view = ui_standard_view_create("page2"); @@ -87,10 +87,10 @@ create_page2() } //Set View Life-Cycle callbacks. - lifecycle_callback.load = view2_load_cb; - if (!(ret = ui_view_set_lifecycle_callbacks(view, &lifecycle_callback, NULL))) + view_lifecycle_cb.load = view2_load_cb; + if (!(ret = ui_view_set_lifecycle_cb(view, &view_lifecycle_cb, NULL))) { - dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_lifecycle_callback_set() is failed. err = %d", ret); + dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_set_lifecycle_cb() is failed. err = %d", ret); ui_view_destroy(view); return; } diff --git a/src/examples/efl/c/page3.cpp b/src/examples/efl/c/page3.cpp index 0e29092..a85581a 100644 --- a/src/examples/efl/c/page3.cpp +++ b/src/examples/efl/c/page3.cpp @@ -30,7 +30,7 @@ next_btn_clicked_cb(void *data, Eo *obj, void *event_info) } static bool -view3_load_cb(ui_standard_view *view, void *data) +view3_load_cb(ui_standard_view *view, void *user_data) { Eo *content = NULL; Eo *base = NULL; @@ -63,7 +63,7 @@ create_page3() { int ret = 0; ui_standard_view *view = NULL; - ui_view_lifecycle_callback_s lifecycle_callback = {0, }; + ui_view_lifecycle_cb_s view_lifecycle_cb = {0, }; //Create a view. view = ui_standard_view_create("page3"); @@ -74,10 +74,10 @@ create_page3() } //Set View Life-Cycle callbacks. - lifecycle_callback.load = view3_load_cb; - if (!(ret = ui_view_set_lifecycle_callbacks(view, &lifecycle_callback, NULL))) + view_lifecycle_cb.load = view3_load_cb; + if (!(ret = ui_view_set_lifecycle_cb(view, &view_lifecycle_cb, NULL))) { - dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_lifecycle_callback_set is failed. err = %d", ret); + dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_set_lifecycle_cb() is failed. err = %d", ret); ui_view_destroy(view); return; } diff --git a/src/examples/efl/c/page4.cpp b/src/examples/efl/c/page4.cpp index ccdd79c..01c6449 100644 --- a/src/examples/efl/c/page4.cpp +++ b/src/examples/efl/c/page4.cpp @@ -30,7 +30,7 @@ next_btn_clicked_cb(void *data, Eo *obj, void *event_info) } static bool -view4_load_cb(ui_standard_view *view, void *data) +view4_load_cb(ui_standard_view *view, void *user_data) { Eo *content = NULL; Eo *base = NULL; @@ -63,7 +63,7 @@ create_page4() { int ret = 0; ui_standard_view *view = NULL; - ui_view_lifecycle_callback_s lifecycle_callback = {0, }; + ui_view_lifecycle_cb_s view_lifecycle_cb = {0, }; //Create a view. view = ui_standard_view_create("page4"); @@ -74,10 +74,10 @@ create_page4() } //Set View Life-Cycle callbacks. - lifecycle_callback.load = view4_load_cb; - if (!(ret = ui_view_set_lifecycle_callbacks(view, &lifecycle_callback, NULL))) + view_lifecycle_cb.load = view4_load_cb; + if (!(ret = ui_view_set_lifecycle_cb(view, &view_lifecycle_cb, NULL))) { - dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_lifecycle_callback_set is failed. err = %d", ret); + dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_set_lifecycle_cb() is failed. err = %d", ret); ui_view_destroy(view); return; } diff --git a/src/examples/efl/c/page5.cpp b/src/examples/efl/c/page5.cpp index 3146e9c..8a5095f 100644 --- a/src/examples/efl/c/page5.cpp +++ b/src/examples/efl/c/page5.cpp @@ -30,7 +30,7 @@ next_btn_clicked_cb(void *data, Eo *obj, void *event_info) } static bool -view5_load_cb(ui_view *view, void *data) +view5_load_cb(ui_view *view, void *user_data) { Eo *content = NULL; Eo *base = NULL; @@ -63,7 +63,7 @@ create_page5() { int ret = 0; ui_view *view = NULL; - ui_view_lifecycle_callback_s lifecycle_callback = {0, }; + ui_view_lifecycle_cb_s view_lifecycle_cb = {0, }; //Create a view. view = ui_view_create("page5"); @@ -74,10 +74,10 @@ create_page5() } //Set View Life-Cycle callbacks. - lifecycle_callback.load = view5_load_cb; - if (!(ret = ui_view_set_lifecycle_callbacks(view, &lifecycle_callback, NULL))) + view_lifecycle_cb.load = view5_load_cb; + if (!(ret = ui_view_set_lifecycle_cb(view, &view_lifecycle_cb, NULL))) { - dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_lifecycle_callback_set is failed. err = %d", ret); + dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_set_lifecycle_cb() is failed. err = %d", ret); ui_view_destroy(view); return; } diff --git a/src/examples/efl/c/page6.cpp b/src/examples/efl/c/page6.cpp index 9556bae..bdaa662 100644 --- a/src/examples/efl/c/page6.cpp +++ b/src/examples/efl/c/page6.cpp @@ -30,7 +30,7 @@ next_btn_clicked_cb(void *data, Eo *obj, void *event_info) } static bool -view6_load_cb(ui_standard_view *view, void *data) +view6_load_cb(ui_standard_view *view, void *user_data) { Eo *content = NULL; Eo *base = NULL; @@ -66,7 +66,7 @@ create_page6() { int ret = 0; ui_standard_view *view = NULL; - ui_view_lifecycle_callback_s lifecycle_callback = {0, }; + ui_view_lifecycle_cb_s view_lifecycle_cb = {0, }; //Create a view. view = ui_standard_view_create("page6"); @@ -77,10 +77,10 @@ create_page6() } //Set View Life-Cycle callbacks. - lifecycle_callback.load = view6_load_cb; - if (!(ret = ui_view_set_lifecycle_callbacks(view, &lifecycle_callback, NULL))) + view_lifecycle_cb.load = view6_load_cb; + if (!(ret = ui_view_set_lifecycle_cb(view, &view_lifecycle_cb, NULL))) { - dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_lifecycle_callback_set is failed. err = %d", ret); + dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_set_lifecycle_cb() is failed. err = %d", ret); ui_view_destroy(view); return; } diff --git a/src/examples/efl/c/page7.cpp b/src/examples/efl/c/page7.cpp index 815ac91..7026186 100644 --- a/src/examples/efl/c/page7.cpp +++ b/src/examples/efl/c/page7.cpp @@ -30,7 +30,7 @@ next_btn_clicked_cb(void *data, Eo *obj, void *event_info) } static bool -view7_load_cb(ui_standard_view *view, void *data) +view7_load_cb(ui_standard_view *view, void *user_data) { Eo *content = NULL; Eo *base = NULL; @@ -66,7 +66,7 @@ create_page7() { int ret = 0; ui_standard_view *view = NULL; - ui_view_lifecycle_callback_s lifecycle_callback = {0, }; + ui_view_lifecycle_cb_s view_lifecycle_cb = {0, }; //Create a view. view = ui_standard_view_create("page7"); @@ -77,10 +77,10 @@ create_page7() } //Set View Life-Cycle callbacks. - lifecycle_callback.load = view7_load_cb; - if (!(ret = ui_view_set_lifecycle_callbacks(view, &lifecycle_callback, NULL))) + view_lifecycle_cb.load = view7_load_cb; + if (!(ret = ui_view_set_lifecycle_cb(view, &view_lifecycle_cb, NULL))) { - dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_lifecycle_callback_set is failed. err = %d", ret); + dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_set_lifecycle_cb() is failed. err = %d", ret); ui_view_destroy(view); return; } diff --git a/src/examples/efl/c/page9.cpp b/src/examples/efl/c/page9.cpp index ce48198..e77c42f 100644 --- a/src/examples/efl/c/page9.cpp +++ b/src/examples/efl/c/page9.cpp @@ -30,7 +30,7 @@ next_btn_clicked_cb(void *data, Eo *obj, void *event_info) } static bool -view9_portrait_cb(ui_standard_view *view, void *data) +view9_portrait_cb(ui_standard_view *view, void *user_data) { Eo *content = NULL; Eo *base = NULL; @@ -60,7 +60,7 @@ view9_portrait_cb(ui_standard_view *view, void *data) } static bool -view9_landscape_cb(ui_standard_view *view, void *data) +view9_landscape_cb(ui_standard_view *view, void *user_data) { Eo *content = NULL; Eo *base = NULL; @@ -88,13 +88,13 @@ view9_landscape_cb(ui_standard_view *view, void *data) } static bool -view9_load_cb(ui_standard_view *view, void *data) +view9_load_cb(ui_standard_view *view, void *user_data) { if (ui_view_get_orientation_mode(view) == UI_VIEW_ORIENTATION_MODE_PORTRAIT) { - return view9_portrait_cb(view, data); + return view9_portrait_cb(view, user_data); } else { - return view9_landscape_cb(view, data); + return view9_landscape_cb(view, user_data); } } @@ -103,8 +103,7 @@ create_page9() { int ret = 0; ui_standard_view *view = NULL; - ui_view_lifecycle_callback_s lifecycle_callback = {0, }; - ui_view_event_callback_s event_callback = {0, }; + ui_view_lifecycle_cb_s view_lifecycle_cb = {0, }; //Create a view. view = ui_standard_view_create("page9"); @@ -115,20 +114,24 @@ create_page9() } //Set View Life-Cycle callbacks. - lifecycle_callback.load = view9_load_cb; - if (!(ret = ui_view_set_lifecycle_callbacks(view, &lifecycle_callback, NULL))) + view_lifecycle_cb.load = view9_load_cb; + if (!(ret = ui_view_set_lifecycle_cb(view, &view_lifecycle_cb, NULL))) { - dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_lifecycle_callback_set is failed. err = %d", ret); + dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_set_lifecycle_cb() is failed. err = %d", ret); ui_view_destroy(view); return; } - //Set Portrait/Landscape Event callbacks. - event_callback.portrait = view9_portrait_cb; - event_callback.landscape = view9_landscape_cb; - if (!(ret = ui_view_set_event_callbacks(view, &event_callback, NULL))) + //Set Portrait Event callback. + if (!(ret = ui_view_set_event_cb(view, UI_VIEW_EVENT_PORTRAIT, view9_portrait_cb, NULL))) { - dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_event_callback_set is failed. err = %d", ret); + dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_set_event_cb() is failed. err = %d", ret); + } + + //Set Landscape Event callback. + if (!(ret = ui_view_set_event_cb(view, UI_VIEW_EVENT_LANDSCAPE, view9_landscape_cb, NULL))) + { + dlog_print(DLOG_ERROR, LOG_TAG, "ui_view_set_event_cb() is failed. err = %d", ret); } ui_viewmgr_push_view(view); diff --git a/src/include/efl/mobile/c/_ui_common_view_capi.h b/src/include/efl/mobile/c/_ui_common_view_capi.h index a5271c1..231bb01 100644 --- a/src/include/efl/mobile/c/_ui_common_view_capi.h +++ b/src/include/efl/mobile/c/_ui_common_view_capi.h @@ -23,16 +23,17 @@ namespace efl_viewmanager class ui_common_view_capi { public: - ui_view_lifecycle_callback_s lifecycle_callback; - ui_view_event_callback_s event_callback; - void *lifecycle_data; - void *event_data; - const char *type; + ui_view_lifecycle_cb_s lifecycle_cb = {nullptr, }; + void *lifecycle_data = nullptr; - ui_common_view_capi(const char *type) : lifecycle_data(NULL), event_data(NULL), type(type) + //TODO: Optimize memory? We don't need all slots. + ui_view_event_cb event_cb[UI_VIEW_EVENT_LAST] = {nullptr, }; + void* event_data[UI_VIEW_EVENT_LAST] = {nullptr, }; + + const char *type = nullptr; + + ui_common_view_capi(const char *type) : lifecycle_data(NULL), type(type) { - this->lifecycle_callback = {0, }; - this->event_callback = {0, }; } ~ui_common_view_capi() diff --git a/src/include/efl/mobile/c/ui_application.h b/src/include/efl/mobile/c/ui_application.h index 6555590..2de61ff 100644 --- a/src/include/efl/mobile/c/ui_application.h +++ b/src/include/efl/mobile/c/ui_application.h @@ -5,6 +5,23 @@ extern "C" { #endif +typedef bool (*ui_application_create_cb)(void *user_data); +typedef bool (*ui_application_terminate_cb)(void *user_data); +typedef bool (*ui_application_pause_cb)(void *user_data); +typedef bool (*ui_application_resume_cb)(void *user_data); +typedef bool (*ui_application_control_cb)(app_control_h app_control, void *user_data); + +typedef struct +{ + ui_application_create_cb create; + ui_application_terminate_cb terminate; + ui_application_pause_cb pause; + ui_application_resume_cb resume; + ui_application_control_cb control; + +} ui_application_lifecycle_cb_s; + + /** * @defgroup CAPI_UI_APPLICATION UI Application * @ingroup CAPI_UI_VIEWMGR_MODULE @@ -44,7 +61,7 @@ EAPI bool ui_application_init(const char *pkg, const char *locale_dir); * * @since_tizen 3.0 */ -EAPI bool ui_application_run(int argc, char **argv, ui_app_lifecycle_callback_s *lifecycle_callback, void *user_data); +EAPI bool ui_application_run(int argc, char **argv, ui_application_lifecycle_cb_s *app_lifecycle_cb, void *user_data); /** * @brief This is ui_application destructor. diff --git a/src/include/efl/mobile/c/ui_view.h b/src/include/efl/mobile/c/ui_view.h index 9851db7..935ff42 100644 --- a/src/include/efl/mobile/c/ui_view.h +++ b/src/include/efl/mobile/c/ui_view.h @@ -17,42 +17,14 @@ extern "C" { * * @since_tizen 3.0 */ -typedef bool (*ui_view_lifecycle_cb)(ui_view *view, void *data); +typedef bool (*ui_view_lifecycle_cb)(ui_view *view, void *user_data); /** * @brief ui_view's rotate event callback function signature. * * @since_tizen 3.0 */ -typedef bool (*ui_view_event_rotate_cb)(ui_view *view, int degree, void *data); - -/** - * @brief ui_view's portrait event callback function signature. - * - * @since_tizen 3.0 - */ -typedef bool (*ui_view_event_portrait_cb)(ui_view *view, void *data); - -/** - * @brief ui_view's landscape event callback function signature. - * - * @since_tizen 3.0 - */ -typedef bool (*ui_view_event_landscape_cb)(ui_view *view, void *data); - -/** - * @brief ui_view's back event callback function signature. - * - * @since_tizen 3.0 - */ -typedef bool (*ui_view_event_back_cb)(ui_view *view, void *data); - -/** - * @brief ui_view's menu event callback function signature. - * - * @since_tizen 3.0 - */ -typedef bool (*ui_view_event_menu_cb)(ui_menu *menu, void *data); +typedef bool (*ui_view_event_cb)(ui_view *view, void *user_data); /** * @brief The structure type containing the set of callback functions for handling view's lifecycle events. @@ -68,22 +40,22 @@ typedef struct ui_view_lifecycle_cb activate; ui_view_lifecycle_cb deactivate; ui_view_lifecycle_cb destroy; -} ui_view_lifecycle_callback_s; +} ui_view_lifecycle_cb_s; + /** - * @brief The structure type containing the set of callback functions for handling view's events. + * @brief The Enumeration for view events. * * @since_tizen 3.0 */ -typedef struct -{ - ui_view_event_rotate_cb rotate; - ui_view_event_portrait_cb portrait; - ui_view_event_landscape_cb landscape; - ui_view_event_back_cb back; - ui_view_event_menu_cb menu; -} ui_view_event_callback_s; - +typedef enum { + UI_VIEW_EVENT_ROTATE = 0, + UI_VIEW_EVENT_PORTRAIT, + UI_VIEW_EVENT_LANDSCAPE, + UI_VIEW_EVENT_BACK, + UI_VIEW_EVENT_MENU, + UI_VIEW_EVENT_LAST +} ui_view_event_type_e; /** * @brief A constructor for an ui_view. @@ -118,27 +90,28 @@ EAPI bool ui_view_set_content(ui_view *view, Eo *content); * @brief Set callback functions for handling view's lifecycle events. * * @param view An ui_view instance. - * @param lifecycle_callback The set of callback functions to handle application lifecycle events. - * @param data The user data to be passed to the given @a lifecycle_callback functions. + * @param lifecycle_cb The set of callback functions to handle application lifecycle events. + * @param user_data The user data to be passed to the given @a lifecycle_callback functions. * * @return @c true if it succeeds, @c false otherwise. * * @since_tizen 3.0 */ -EAPI bool ui_view_set_lifecycle_callbacks(ui_view *view, ui_view_lifecycle_callback_s *lifecycle_callback, void *data); +EAPI bool ui_view_set_lifecycle_cb(ui_view *view, ui_view_lifecycle_cb_s *lifecycle_cb, void *user_data); /** * @brief Set callback functions for handling view events. * * @param view An ui_view instance. - * @param event_callback The set of callback functions to handle view events. - * @param data The user data to be passed to the given @a event_callback functions. + * @param event_type ui_view event type. + * @param event_cb The set of callback functions to handle view events. + * @param user_data The user data to be passed to the given @a event_callback functions. * * @return @c true if it succeeds, @c false otherwise. * * @since_tizen 3.0 */ -EAPI bool ui_view_set_event_callbacks(ui_view *view, ui_view_event_callback_s *event_callback, void *data); +EAPI bool ui_view_set_event_cb(ui_view *view, ui_view_event_type_e event_type, ui_view_event_cb event_cb, void *user_data); /** * @brief Get a base object of ui_view. @@ -308,7 +281,7 @@ EAPI const char *ui_view_get_transition_style(ui_view *view); * * @since_tizen 3.0 */ -EAPI const ui_menu *ui_view_get_menu(ui_view *view); +EAPI ui_menu *ui_view_get_menu(ui_view *view); /** * @brief Return a name of this view. diff --git a/src/lib/efl/mobile/c/ui_application.cpp b/src/lib/efl/mobile/c/ui_application.cpp index 4c43f2e..c3c2995 100644 --- a/src/lib/efl/mobile/c/ui_application.cpp +++ b/src/lib/efl/mobile/c/ui_application.cpp @@ -4,51 +4,64 @@ class ui_app_capi : public UiApp { public: - ui_app_lifecycle_callback_s capi_lifecycle_callback; - void *data; + ui_application_lifecycle_cb_s app_lifecycle_cb; + void *user_data; bool onCreate() { if (!UiApp::onCreate()) return false; - if (!this->capi_lifecycle_callback.create) return false; - return this->capi_lifecycle_callback.create(this->data); + if (this->app_lifecycle_cb.create) + { + return this->app_lifecycle_cb.create(this->user_data); + } + + return true; } void onTerminate() { UiApp::onTerminate(); - if (!this->capi_lifecycle_callback.terminate) return; - this->capi_lifecycle_callback.terminate(this->data); + if (this->app_lifecycle_cb.terminate) + { + this->app_lifecycle_cb.terminate(this->user_data); + } } void onPause() { UiApp::onPause(); - if (!this->capi_lifecycle_callback.pause) return; - this->capi_lifecycle_callback.pause(this->data); + if (this->app_lifecycle_cb.pause) + { + this->app_lifecycle_cb.pause(this->user_data); + } + } void onResume() { UiApp::onResume(); - if (!this->capi_lifecycle_callback.resume) return; - this->capi_lifecycle_callback.resume(this->data); + if (this->app_lifecycle_cb.resume) + { + this->app_lifecycle_cb.resume(this->user_data); + } } void onControl(app_control_h app_control) { UiApp::onControl(app_control); - if (!this->capi_lifecycle_callback.app_control) return; - this->capi_lifecycle_callback.app_control(app_control, this->data); + if (this->app_lifecycle_cb.control) + { + this->app_lifecycle_cb.control(app_control, this->user_data); + } } ui_app_capi(const char *pkg, const char *locale_dir) - : UiApp(pkg, locale_dir), data(nullptr) + : UiApp(pkg, locale_dir), user_data(nullptr) { } @@ -56,14 +69,18 @@ public: { } - bool run(int argc, char **argv, ui_app_lifecycle_callback_s *lifecycle_callback, void *user_data) + bool run(int argc, char **argv, ui_application_lifecycle_cb_s* app_lifecycle_cb, void* user_data) { - if (lifecycle_callback) + if (app_lifecycle_cb) + { + this->app_lifecycle_cb = *app_lifecycle_cb; + } + else { - this->capi_lifecycle_callback = *lifecycle_callback; + memset(&this->app_lifecycle_cb, 0x0, sizeof(this->app_lifecycle_cb)); } - this->data = user_data; + this->user_data = user_data; return UiApp::run(argc, argv); } @@ -88,7 +105,7 @@ EAPI bool ui_application_init(const char *pkg, const char *locale_dir) return true; } -EAPI bool ui_application_run(int argc, char **argv, ui_app_lifecycle_callback_s *lifecycle_callback, void *user_data) +EAPI bool ui_application_run(int argc, char **argv, ui_application_lifecycle_cb_s* app_lifecycle_cb, void* user_data) { ui_app_capi *app = g_app; if (!app) @@ -97,7 +114,7 @@ EAPI bool ui_application_run(int argc, char **argv, ui_app_lifecycle_callback_s return false; } - return app->run(argc, argv, lifecycle_callback, user_data); + return app->run(argc, argv, app_lifecycle_cb, user_data); } EAPI bool ui_application_term(void) diff --git a/src/lib/efl/mobile/c/ui_standard_view.cpp b/src/lib/efl/mobile/c/ui_standard_view.cpp index 589f44a..70e1b8b 100644 --- a/src/lib/efl/mobile/c/ui_standard_view.cpp +++ b/src/lib/efl/mobile/c/ui_standard_view.cpp @@ -10,108 +10,108 @@ class ui_standard_view_capi: public ui_standard_view, public ui_common_view_capi public: void onLoad() { - if (this->lifecycle_callback.load) + if (this->lifecycle_cb.load) { - if (!this->lifecycle_callback.load(this, this->lifecycle_data)) return; + if (!this->lifecycle_cb.load(this, this->lifecycle_data)) return; } ui_standard_view::onLoad(); } void onUnload() { - if (this->lifecycle_callback.unload) + if (this->lifecycle_cb.unload) { - if (!this->lifecycle_callback.unload(this, this->lifecycle_data)) return; + if (!this->lifecycle_cb.unload(this, this->lifecycle_data)) return; } ui_standard_view::onUnload(); } void onPause() { - if (this->lifecycle_callback.pause) + if (this->lifecycle_cb.pause) { - if (!this->lifecycle_callback.pause(this, this->lifecycle_data)) return; + if (!this->lifecycle_cb.pause(this, this->lifecycle_data)) return; } ui_standard_view::onPause(); } void onResume() { - if (this->lifecycle_callback.resume) + if (this->lifecycle_cb.resume) { - if (!this->lifecycle_callback.resume(this, this->lifecycle_data)) return; + if (!this->lifecycle_cb.resume(this, this->lifecycle_data)) return; } ui_standard_view::onResume(); } void onActivate() { - if (this->lifecycle_callback.activate) + if (this->lifecycle_cb.activate) { - if (!this->lifecycle_callback.activate(this, this->lifecycle_data)) return; + if (!this->lifecycle_cb.activate(this, this->lifecycle_data)) return; } ui_standard_view::onActivate(); } void onDeactivate() { - if (this->lifecycle_callback.deactivate) + if (this->lifecycle_cb.deactivate) { - if (!this->lifecycle_callback.deactivate(this, this->lifecycle_data)) return; + if (!this->lifecycle_cb.deactivate(this, this->lifecycle_data)) return; } ui_standard_view::onDeactivate(); } void onDestroy() { - if (this->lifecycle_callback.destroy) + if (this->lifecycle_cb.destroy) { - if (!this->lifecycle_callback.destroy(this, this->lifecycle_data)) return; + if (!this->lifecycle_cb.destroy(this, this->lifecycle_data)) return; } ui_standard_view::onDestroy(); } void onPortrait() { - if (this->event_callback.portrait) + if (this->event_cb[UI_VIEW_EVENT_PORTRAIT]) { - if (!this->event_callback.portrait(this, this->event_data)) return; + if (!(*this->event_cb[UI_VIEW_EVENT_PORTRAIT])(this, this->event_data[UI_VIEW_EVENT_PORTRAIT])) return; } ui_standard_view::onPortrait(); } void onLandscape() { - if (this->event_callback.landscape) + if (this->event_cb[UI_VIEW_EVENT_LANDSCAPE]) { - if (!this->event_callback.landscape(this, this->event_data)) return; + if (!(*this->event_cb[UI_VIEW_EVENT_LANDSCAPE])(this, this->event_data[UI_VIEW_EVENT_LANDSCAPE])) return; } ui_standard_view::onLandscape(); } void onRotate(int degree) { - if (this->event_callback.rotate) + if (this->event_cb[UI_VIEW_EVENT_ROTATE]) { - if (!this->event_callback.rotate(this, degree, this->event_data)) return; + if (!(*this->event_cb[UI_VIEW_EVENT_ROTATE])(this, this->event_data[UI_VIEW_EVENT_ROTATE])) return; } ui_standard_view::onRotate(degree); } void onBack() { - if (this->event_callback.back) + if (this->event_cb[UI_VIEW_EVENT_BACK]) { - if (!this->event_callback.back(this, this->event_data)) return; + if (!(*this->event_cb[UI_VIEW_EVENT_BACK])(this, this->event_data[UI_VIEW_EVENT_BACK])) return; } ui_standard_view::onBack(); } void onMenu(ui_menu *menu) { - if (this->event_callback.menu) + if (this->event_cb[UI_VIEW_EVENT_MENU]) { - if (!this->event_callback.menu(menu, this->event_data)) return; + if (!(*this->event_cb[UI_VIEW_EVENT_MENU])(this, this->event_data[UI_VIEW_EVENT_MENU])) return; } ui_standard_view::onMenu(menu); } diff --git a/src/lib/efl/mobile/c/ui_view.cpp b/src/lib/efl/mobile/c/ui_view.cpp index af6cf3c..10a9bf1 100644 --- a/src/lib/efl/mobile/c/ui_view.cpp +++ b/src/lib/efl/mobile/c/ui_view.cpp @@ -9,108 +9,108 @@ class ui_view_capi: public ui_view, public ui_common_view_capi public: void onLoad() { - if (this->lifecycle_callback.load) + if (this->lifecycle_cb.load) { - if (!this->lifecycle_callback.load(this, this->lifecycle_data)) return; + if (!this->lifecycle_cb.load(this, this->lifecycle_data)) return; } ui_view::onLoad(); } void onUnload() { - if (this->lifecycle_callback.unload) + if (this->lifecycle_cb.unload) { - if (!this->lifecycle_callback.unload(this, this->lifecycle_data)) return; + if (!this->lifecycle_cb.unload(this, this->lifecycle_data)) return; } ui_view::onUnload(); } void onPause() { - if (this->lifecycle_callback.pause) + if (this->lifecycle_cb.pause) { - if (!this->lifecycle_callback.pause(this, this->lifecycle_data)) return; + if (!this->lifecycle_cb.pause(this, this->lifecycle_data)) return; } ui_view::onPause(); } void onResume() { - if (this->lifecycle_callback.resume) + if (this->lifecycle_cb.resume) { - if (!this->lifecycle_callback.resume(this, this->lifecycle_data)) return; + if (!this->lifecycle_cb.resume(this, this->lifecycle_data)) return; } ui_view::onResume(); } void onActivate() { - if (this->lifecycle_callback.activate) + if (this->lifecycle_cb.activate) { - if (!this->lifecycle_callback.activate(this, this->lifecycle_data)) return; + if (!this->lifecycle_cb.activate(this, this->lifecycle_data)) return; } ui_view::onActivate(); } void onDeactivate() { - if (this->lifecycle_callback.deactivate) + if (this->lifecycle_cb.deactivate) { - if (!this->lifecycle_callback.deactivate(this, this->lifecycle_data)) return; + if (!this->lifecycle_cb.deactivate(this, this->lifecycle_data)) return; } ui_view::onDeactivate(); } void onDestroy() { - if (this->lifecycle_callback.destroy) + if (this->lifecycle_cb.destroy) { - if (!this->lifecycle_callback.destroy(this, this->lifecycle_data)) return; + if (!this->lifecycle_cb.destroy(this, this->lifecycle_data)) return; } ui_view::onDestroy(); } void onPortrait() { - if (this->event_callback.portrait) + if (this->event_cb[UI_VIEW_EVENT_PORTRAIT]) { - if (!this->event_callback.portrait(this, this->event_data)) return; + if (!(*this->event_cb[UI_VIEW_EVENT_PORTRAIT])(this, this->event_data[UI_VIEW_EVENT_PORTRAIT])) return; } ui_view::onPortrait(); } void onLandscape() { - if (this->event_callback.landscape) + if (this->event_cb[UI_VIEW_EVENT_LANDSCAPE]) { - if (!this->event_callback.landscape(this, this->event_data)) return; + if (!(*this->event_cb[UI_VIEW_EVENT_LANDSCAPE])(this, this->event_data[UI_VIEW_EVENT_LANDSCAPE])) return; } ui_view::onLandscape(); } void onRotate(int degree) { - if (this->event_callback.rotate) + if (this->event_cb[UI_VIEW_EVENT_ROTATE]) { - if (!this->event_callback.rotate(this, degree, this->event_data)) return; + if (!(*this->event_cb[UI_VIEW_EVENT_ROTATE])(this, this->event_data[UI_VIEW_EVENT_ROTATE])) return; } ui_view::onRotate(degree); } void onBack() { - if (this->event_callback.back) + if (this->event_cb[UI_VIEW_EVENT_BACK]) { - if (!this->event_callback.back(this, this->event_data)) return; + if (!(*this->event_cb[UI_VIEW_EVENT_BACK])(this, this->event_data[UI_VIEW_EVENT_BACK])) return; } ui_view::onBack(); } void onMenu(ui_menu *menu) { - if (this->event_callback.menu) + if (this->event_cb[UI_VIEW_EVENT_MENU]) { - if (!this->event_callback.menu(menu, this->event_data)) return; + if (!(*this->event_cb[UI_VIEW_EVENT_MENU])(this, this->event_data[UI_VIEW_EVENT_MENU])) return; } ui_view::onMenu(menu); } @@ -145,7 +145,7 @@ EAPI ui_view* ui_view_create(const char *name) return new ui_view_capi(name); } -EAPI bool ui_view_set_lifecycle_callbacks(ui_view *view, ui_view_lifecycle_callback_s *lifecycle_callback, void *data) +EAPI bool ui_view_set_lifecycle_cb(ui_view *view, ui_view_lifecycle_cb_s *lifecycle_cb, void *user_data) { if (!validate_view(view)) return false; @@ -156,18 +156,23 @@ EAPI bool ui_view_set_lifecycle_callbacks(ui_view *view, ui_view_lifecycle_callb return false; } - if (lifecycle_callback) + if (lifecycle_cb) { - event_attr->lifecycle_callback = *lifecycle_callback; + event_attr->lifecycle_cb = *lifecycle_cb; } - event_attr->lifecycle_data = data; + event_attr->lifecycle_data = user_data; return true; } -EAPI bool ui_view_set_event_callbacks(ui_view *view, ui_view_event_callback_s *event_callback, void *data) +EAPI bool ui_view_set_event_cb(ui_view *view, ui_view_event_type_e event_type, ui_view_event_cb event_cb, void *user_data) { if (!validate_view(view)) return false; + if (event_type < UI_VIEW_EVENT_ROTATE || event_type >= UI_VIEW_EVENT_LAST) + { + LOGE("This view(%p) event_type is invalid(%d)", view, event_type); + return false; + } auto event_attr = dynamic_cast(view); if (!event_attr) @@ -176,11 +181,8 @@ EAPI bool ui_view_set_event_callbacks(ui_view *view, ui_view_event_callback_s *e return false; } - if (event_callback) - { - event_attr->event_callback = *event_callback; - } - event_attr->event_data = data; + event_attr->event_cb[event_type] = event_cb; + event_attr->event_data[event_type] = user_data; return true; } @@ -257,10 +259,10 @@ EAPI const char *ui_view_get_transition_style(ui_view *view) return view->getTransitionStyle(); } -EAPI const ui_menu *ui_view_get_menu(ui_view *view) +EAPI ui_menu *ui_view_get_menu(ui_view *view) { if (!validate_view(view)) return nullptr; - return view->getMenu(); + return const_cast(view->getMenu()); } EAPI const char *ui_view_get_name(ui_view *view) diff --git a/src/lib/interface/UiIfaceView.cpp b/src/lib/interface/UiIfaceView.cpp index dcbaae7..7868867 100644 --- a/src/lib/interface/UiIfaceView.cpp +++ b/src/lib/interface/UiIfaceView.cpp @@ -184,7 +184,7 @@ bool UiIfaceViewImpl::setAvailableRotations(const int *rotations, unsigned int c return false; } - for (auto i = 0; i < count; i++) { + for (unsigned int i = 0; i < count; i++) { this->_rotations[i] = rotations[i]; }