안녕하세요...
BasicUIApplication sample 에서
more option 과 rotary 를 혼합하여 테스트 중 입니다.
1) more option 을 누르기 전 : 베젤을 좌,우로 움직이면 eext_rotary_object_event_callback_add 에서
정의된 Eext_Rotary_Event_Cb로 이벤트를 받을 수 있었습니다.
2) more option 을 누른 후 : back 버튼 누른 후 다시 1번과 동일하게 베젤을 좌,우로 이동 시 정의된 Eext_Rotary_Event_Cb로 이벤트가 오지않으며,
오직,,,more option 상태에서만 Eext_Rotary_Event_Cb로 이벤트가 받아지고 있습니다.
위 같이 eext_more_option_add 와 eext_rotary_object_event_callback_add 을 같이 사용하여,
more option을 누른 후에도 more option의 item을 베젤을 통해 이벤트를 받고 싶으며,
또한, more option이 아닌 경우에도 베젤을 통해 이벤트를 받고 싶습니다. 방법 좀 부탁드립니다.....
혹여, 제가 테스트 했던 소스를 붙여 보도록 하겠습니다.
static void
create_base_gui(appdata_s *ad)
{
char edj_path[PATH_MAX] = {0, };
/* Window */
ad->win = elm_win_util_standard_add(PACKAGE, PACKAGE);
elm_win_conformant_set(ad->win, EINA_TRUE);
elm_win_autodel_set(ad->win, EINA_TRUE);
if (elm_win_wm_rotation_supported_get(ad->win)) {
int rots[4] = { 0, 90, 180, 270 };
elm_win_wm_rotation_available_rotations_set(ad->win, (const int *)(&rots), 4);
}
evas_object_smart_callback_add(ad->win, "delete,request", win_delete_request_cb, NULL);
/* Conformant */
ad->conform = elm_conformant_add(ad->win);
elm_win_indicator_mode_set(ad->win, ELM_WIN_INDICATOR_SHOW);
elm_win_indicator_opacity_set(ad->win, ELM_WIN_INDICATOR_OPAQUE);
evas_object_size_hint_weight_set(ad->conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_win_resize_object_add(ad->win, ad->conform);
evas_object_show(ad->conform);
evas_object_show(ad->win);
ad->circle_surface = eext_circle_surface_conformant_add(ad->conform);
ad->layout = elm_layout_add(ad->conform);
elm_layout_theme_set(ad->layout, "layout", "application", "default");
evas_object_size_hint_weight_set(ad->layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_show(ad->layout);
elm_object_content_set(ad->conform, ad->layout);
ad->nf = elm_naviframe_add(ad->layout);
elm_object_part_content_set(ad->layout, "elm.swallow.content", ad->nf);
evas_object_show(ad->nf);
app_get_resource(EDJ_FILE, edj_path, (int)PATH_MAX);
ad->layout = elm_layout_add(ad->win);
elm_layout_file_set(ad->layout, edj_path, "main");
evas_object_size_hint_weight_set(ad->layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
eext_object_event_callback_add(ad->layout, EEXT_CALLBACK_BACK, layout_back_cb, ad);
evas_object_show(ad->layout);
elm_object_part_text_set(ad->layout, "main.view.title", "Hello EFL");
elm_object_content_set(ad->layout, ad->nf);
Evas_Object *more_option = eext_more_option_add(ad->layout);
for (int i = 0; i < 16; ++i) {
if (i == 0)
_creat_page(more_option, i);
else
_creat_page(more_option, i);
}
elm_object_part_content_set(ad->layout, "main.view.more", more_option);
elm_naviframe_item_push(ad->nf , "More Option Demo", NULL, NULL, ad->layout, "empty");
rotary_init(ad);
}
void
rotary_init(appdata_s *ad)
{
eext_rotary_object_event_callback_add(ad->layout, _rotary_cb, ad);
eext_rotary_object_event_activated_set(ad->layout, EINA_TRUE);
}