if(elm_atspi_bridge_utils_is_screen_reader_enabled())
{
evas_object_smart_callback_call(mold->rotary_selector, "more,option,opened", NULL);
- elm_atspi_accessible_can_highlight_set(mold->cue_access_object, EINA_FALSE);
- evas_object_show(mold->rotary_selector);
}
//
}
if(elm_atspi_bridge_utils_is_screen_reader_enabled())
{
evas_object_smart_callback_call(mold->rotary_selector, "more,option,closed", NULL);
- if (!mold->more_option_panel_hidden_is)
- {
- if (mold->cue_access_object)
- elm_atspi_accessible_can_highlight_set(mold->cue_access_object, EINA_TRUE);
- mold->more_option_panel_hidden_is = EINA_TRUE;
- }
}
//
}
Eext_More_Option_Data *mold = data;
- elm_layout_signal_emit(mold->panel, "cue,hide", "elm");
-
// accessibility
- if (mold->cue_access_object) {
- elm_atspi_accessible_can_highlight_set(mold->cue_access_object, EINA_FALSE);
- }
- mold->more_option_panel_hidden_is = EINA_FALSE;
+ elm_layout_signal_emit(mold->panel, "cue,hide", "elm");
//
}
// accessibility
elm_layout_signal_emit(mold->panel, "cue,show", "elm");
- if (mold->cue_access_object) {
- elm_atspi_accessible_can_highlight_set(mold->cue_access_object, EINA_TRUE);
- }
- mold->more_option_panel_hidden_is = EINA_TRUE;
//
}
elm_access_action_cb_set(mold->cue_access_object, ELM_ACCESS_ACTION_ACTIVATE, _access_action_cb, mold);
evas_object_data_set(mold->more_option, "_cue_access_object", mold->cue_access_object);
-
- if (mold->more_option_panel_hidden_is) {
- elm_atspi_accessible_can_highlight_set(mold->cue_access_object, EINA_TRUE);
- } else {
- elm_atspi_accessible_can_highlight_set(mold->cue_access_object, EINA_FALSE);
- }
}
}
else
elm_atspi_accessible_reading_info_type_set(mold->cue_access_object, ELM_ACCESSIBLE_READING_INFO_TYPE_NAME);
elm_access_action_cb_set(mold->cue_access_object, ELM_ACCESS_ACTION_ACTIVATE, _access_action_cb, mold);
evas_object_data_set(mold->more_option, "_cue_access_object", mold->cue_access_object);
-
- mold->more_option_panel_hidden_is = elm_panel_hidden_get(mold->panel);
- if (mold->more_option_panel_hidden_is) {
- elm_atspi_accessible_can_highlight_set(mold->cue_access_object, EINA_TRUE);
- } else {
- elm_atspi_accessible_can_highlight_set(mold->cue_access_object, EINA_FALSE);
- }
}
//
else if (before_item && !after_item)
elm_atspi_accessible_relationship_append(before_item->base.obj, ELM_ATSPI_RELATION_FLOWS_TO, before_item->base.obj);
+ evas_object_smart_callback_del(find_item->base.obj, "clicked",_accessibility_item_btn_clicked_cb);
+ evas_object_smart_callback_del(find_item->base.obj, "atspi,highlighted", _accessibility_item_btn_highlighted_cb);
+ elm_atspi_accessible_gesture_cb_set(find_item->base.obj, NULL, NULL);
}
//
_item_update_animation_run(rsd);
+ /* Accessibility */
+ _accessibility_item_chain_end_set(rsd);
+ //
+
return;
}
_item_selected_signal_send(rsd, previous_item_index, rsd->selected_index);
if (last_index < rsd->selected_index)
{
- _page_animation_run(rsd, EINA_TRUE);
_selector_update(rsd, EINA_TRUE, EINA_TRUE);
}
else
_item_selected_signal_send(rsd, previous_item_index, rsd->selected_index);
if (first_index > rsd->selected_index)
{
- _page_animation_run(rsd, EINA_FALSE);
_selector_update(rsd, EINA_TRUE, EINA_TRUE);
}
else
}
}
-void _accessibility_page_change(Eext_Rotary_Selector_Data *rsd, int previous_item_index, Eina_Bool dir)
-{
- _item_selected_signal_send(rsd, previous_item_index, rsd->selected_index);
- _page_animation_run(rsd, dir);
- _selector_update(rsd, EINA_TRUE, EINA_TRUE);
-}
-
static void
_rotary_selector_moreoption_opened_cb(void *data, Evas_Object *obj, void *event_info)
{
return EINA_FALSE;
if (rsd->previous_page_animator || rsd->next_page_animator)
- return EINA_TRUE;
+ return EINA_FALSE;
+ Eina_List *l;
+ Eext_Rotary_Selector_Item *item = NULL;
+ EINA_LIST_FOREACH(rsd->item_list,l,item)
+ {
+ if (item->base.obj == obj)
+ break;
+ }
+ if (!item)
+ return EINA_FALSE;
+
+ switch (gesture_info.type)
+ {
+ case ELM_ATSPI_GESTURE_ONE_FINGER_FLICK_LEFT:
+ if (item->index % (_ROTARY_SELECTOR_PAGE_ITEM_MAX) == 0 && item->index - 1 > 0)
+ {
+ rsd->selected_index = item->index - 1;
+ _page_animation_run(rsd, EINA_FALSE);
+ _selector_update(rsd, EINA_TRUE, EINA_TRUE);
+ Eext_Rotary_Selector_Item *_item = _item_get(rsd, rsd->selected_index);
+ if (_item)
+ {
+ rsd->accessible_need_highlight_obj = _item->base.obj;
+ return EINA_TRUE;
+ }
+ }
+ break;
+ case ELM_ATSPI_GESTURE_ONE_FINGER_FLICK_RIGHT:
+ if (item->index % (_ROTARY_SELECTOR_PAGE_ITEM_MAX) == _ROTARY_SELECTOR_PAGE_ITEM_MAX - 1 && rsd->selected_index < rsd->item_count - 1)
+ {
+ rsd->selected_index = item->index + 1;
+ _page_animation_run(rsd, EINA_TRUE);
+ _selector_update(rsd, EINA_TRUE, EINA_TRUE);
+ Eext_Rotary_Selector_Item *_item = _item_get(rsd, rsd->selected_index);
+ if (_item)
+ {
+ rsd->accessible_need_highlight_obj = _item->base.obj;
+ return EINA_TRUE;
+ }
+ }
+ break;
+ }
return EINA_FALSE;
}