/* === color class === */
void _eext_more_option_color_class_parent_set(Evas_Object *obj, Evas_Object *parent);
-extern Eina_Bool __elm_product_theme_is_loaded(void);
-
/* === internal object cb & util === */
#define MORE_OPTION_GENLIST_CONTENT_SIZE 76
return;
}
- if (__elm_product_theme_is_loaded())
- eext_rotary_object_event_activated_set(mold->circle_genlist, EINA_FALSE);
- else
- eext_rotary_object_event_activated_set(mold->rotary_selector, EINA_FALSE);
+ eext_rotary_object_event_activated_set(mold->circle_genlist, EINA_FALSE);
LOGI("Panel Status: %d",elm_panel_hidden_get(panel));
if (!elm_panel_hidden_get(panel))
{
evas_object_smart_callback_call(mold->more_option, "more,option,opened", NULL);
- if (__elm_product_theme_is_loaded())
- {
- LOGI("panel back registered");
- eext_object_event_callback_add(obj, EEXT_CALLBACK_BACK, _drawer_back_cb, mold);
- evas_object_freeze_events_set(mold->panel, EINA_FALSE);
- //Support for scrollbar show and hide
- evas_object_smart_callback_call(mold->panel, OBJECT_SHOW_INTERNAL, mold->genlist);
- //
- }
- else
- {
- eext_object_event_callback_add(obj, EEXT_CALLBACK_BACK, _drawer_back_cb, mold);
- Edje_Message_Int msg;
- msg.val = 0;
-
- Evas_Object* content_part = elm_object_part_content_get(mold->rotary_selector, "content");
- if (content_part)
- {
- edje_object_message_send(elm_layout_edje_get(content_part), EDJE_MESSAGE_INT, 0, &msg);
- }
- }
+ LOGI("panel back registered");
+ eext_object_event_callback_add(obj, EEXT_CALLBACK_BACK, _drawer_back_cb, mold);
+ evas_object_freeze_events_set(mold->panel, EINA_FALSE);
+ //Support for scrollbar show and hide
+ evas_object_smart_callback_call(mold->panel, OBJECT_SHOW_INTERNAL, mold->genlist);
+ //
//for accessibility
// signal send to rotary selector for highlighted access object
if (elm_atspi_bridge_utils_is_screen_reader_enabled())
{
- evas_object_smart_callback_call(mold->rotary_selector, "more,option,opened", NULL);
if (mold->cue_access_object)
elm_atspi_component_highlight_clear(mold->cue_access_object);
}
//
LOGI("Panel is inactive");
evas_object_smart_callback_call(mold->more_option, "more,option,closed", NULL);
- if (__elm_product_theme_is_loaded())
+
+ //ONEUI1.5(20Jun2019): Add blur timer in case blur idler is not invoked
+ if (mold->blur_timer)
{
- //ONEUI1.5(20Jun2019): Add blur timer in case blur idler is not invoked
- if (mold->blur_timer)
- {
- ecore_timer_del(mold->blur_timer);
- mold->blur_timer = NULL;
- }
- if (mold->blur_idler)
- {
- ecore_idler_del(mold->blur_idler);
- mold->blur_idler = NULL;
- }
- //
- eext_rotary_object_event_activated_set(mold->circle_genlist, EINA_FALSE);
- //ONEUI1.5(31Oct2019): For access on case, show first item when panel becomes inactive
- if (!elm_atspi_bridge_utils_is_screen_reader_enabled())
- elm_genlist_item_bring_in(elm_genlist_nth_item_get(mold->genlist, 1), ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
- else
- elm_genlist_item_show(elm_genlist_nth_item_get(mold->genlist, 1), ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
- //
- mold->effect_count = 0;
- evas_object_del(mold->blur_image);
- if (mold->effect_timer)
- {
- ecore_timer_del(mold->effect_timer);
- mold->effect_timer = NULL;
- }
- //ONEUI1.5(27May2019): Reduce tbm memory by adding surface on demand
- _more_option_genlist_surface_destroy(mold);
- //
- //Support for scrollbar show and hide
- evas_object_smart_callback_call(mold->panel, OBJECT_HIDE_INTERNAL, mold->genlist);
- //
+ ecore_timer_del(mold->blur_timer);
+ mold->blur_timer = NULL;
}
- else
+ if (mold->blur_idler)
{
- eext_rotary_object_event_activated_set(mold->rotary_selector, EINA_FALSE);
-
- Edje_Message_Int msg;
- msg.val = 1;
-
- Evas_Object* content_part = elm_object_part_content_get(mold->rotary_selector, "content");
- if (content_part)
- {
- edje_object_message_send(elm_layout_edje_get(content_part), EDJE_MESSAGE_INT, 0, &msg);
- }
-
- //item index is initialized as zero.
- if (mold->rotary_selector)
- {
- //Initialize item to zero
- Eext_Object_Item *item = eina_list_data_get(mold->item_list);
- if (item)
- {
- eext_rotary_selector_selected_item_set(mold->rotary_selector, item);
- }
- }
+ ecore_idler_del(mold->blur_idler);
+ mold->blur_idler = NULL;
}
- //for accessibility
- // signal send to rotary selector for highlighted access object
- if (elm_atspi_bridge_utils_is_screen_reader_enabled())
+ //
+ eext_rotary_object_event_activated_set(mold->circle_genlist, EINA_FALSE);
+ //ONEUI1.5(31Oct2019): For access on case, show first item when panel becomes inactive
+ if (!elm_atspi_bridge_utils_is_screen_reader_enabled())
+ elm_genlist_item_bring_in(elm_genlist_nth_item_get(mold->genlist, 1), ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
+ else
+ elm_genlist_item_show(elm_genlist_nth_item_get(mold->genlist, 1), ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
+ //
+ mold->effect_count = 0;
+ evas_object_del(mold->blur_image);
+ if (mold->effect_timer)
{
- evas_object_smart_callback_call(mold->rotary_selector, "more,option,closed", NULL);
+ ecore_timer_del(mold->effect_timer);
+ mold->effect_timer = NULL;
}
+ //ONEUI1.5(27May2019): Reduce tbm memory by adding surface on demand
+ _more_option_genlist_surface_destroy(mold);
+ //
+ //Support for scrollbar show and hide
+ evas_object_smart_callback_call(mold->panel, OBJECT_HIDE_INTERNAL, mold->genlist);
//
//ONEUI1.5(20190424):Avoid panel close by api when panel is not active.
mold->is_panel_active = EINA_FALSE;
}
mold->is_opened = EINA_TRUE;
- if (__elm_product_theme_is_loaded())
- {
- _eext_more_option_effect_create(mold);
- }
- else
- {
- eext_rotary_object_event_activated_set(mold->rotary_selector, EINA_TRUE);
- }
+ _eext_more_option_effect_create(mold);
evas_object_smart_callback_call(mold->more_option, "cue,clicked", NULL);
}
//elm_panel_orient_set(panel, ELM_PANEL_ORIENT_RIGHT);
//
elm_object_part_content_set(parent, "elm.swallow.right", panel);
- if (__elm_product_theme_is_loaded())
- {
- elm_object_signal_emit(panel, "eext,more,option,enable", "elm");
- }
+ elm_object_signal_emit(panel, "eext,more,option,enable", "elm");
evas_object_event_callback_add(panel, EVAS_CALLBACK_DEL, _panel_del_cb, NULL);
mold->blur_idler = NULL;
}
//
- if (__elm_product_theme_is_loaded())
+ if (mold->blur_image)
{
evas_object_del(mold->blur_image);
+ mold->blur_image = NULL;
}
// accessibility
evas_object_smart_callback_del(mold->more_option, "atspi,screen,reader,changed", _more_option_screen_reader_changed);
evas_object_event_callback_del(mold->more_option, EVAS_CALLBACK_SHOW, _more_option_show_cb);
evas_object_smart_callback_del(mold->more_option, SIGNAL_ACTIVATED, _rotary_activated_cb);
//ONEUI1.5(06AUG2019): Delete callbacks to avoid invalid read
- if (__elm_product_theme_is_loaded())
- evas_object_smart_callback_del(mold->genlist, "aligned,item,detected", _rotary_selector_item_selected);
- else
- {
- evas_object_smart_callback_del(mold->rotary_selector, "item,selected", _rotary_selector_item_selected);
- evas_object_smart_callback_del(mold->rotary_selector, "item,clicked", _rotary_selector_item_clicked);
- }
+ evas_object_smart_callback_del(mold->genlist, "aligned,item,detected", _rotary_selector_item_selected);
//
if (mold->item_list)
return;
}
- if (__elm_product_theme_is_loaded())
- {
- eext_rotary_object_event_activated_set(mold->circle_genlist, EINA_TRUE);
- }
- else
- {
- eext_rotary_object_event_activated_set(mold->rotary_selector, EINA_TRUE);
- }
+ eext_rotary_object_event_activated_set(mold->circle_genlist, EINA_TRUE);
}
static void
_rotary_selector_item_selected(void *data, Evas_Object *obj, void *event_info)
{
//ONEUI1.5(06AUG2019): Avoid operations for aligned item undetected case
- if (__elm_product_theme_is_loaded() && !event_info) return;
+ if (!event_info) return;
//
LOGI("Genlist Selected CB");
Eext_More_Option_Data *mold = (Eext_More_Option_Data *)data;
LOGE("INFO: mold:%p\n", mold);
return;
}
- if (__elm_product_theme_is_loaded())
+ if (eext_more_option_opened_get(mold->more_option))
{
- if (eext_more_option_opened_get(mold->more_option))
- {
- LOGI("genlist item selected");
- event_info = elm_object_item_data_get(event_info);
- evas_object_smart_callback_call(mold->more_option, "item,selected", event_info);
- }
- else
- {
- LOGE("panel is closed");
- }
+ LOGI("genlist item selected");
+ event_info = elm_object_item_data_get(event_info);
+ evas_object_smart_callback_call(mold->more_option, "item,selected", event_info);
}
else
- evas_object_smart_callback_call(mold->more_option, "item,selected", event_info);
+ {
+ LOGE("panel is closed");
+ }
}
/* === public API implementation === */
elm_layout_signal_callback_add(mold->panel, "cue,clicked", "elm", _panel_cue_clicked_cb, mold);
_eext_more_option_color_class_parent_set(mold->panel, mold->more_option);
- if (__elm_product_theme_is_loaded())
+ LOGE("genlist added");
+ mold->genlist = _eext_more_option_genlist_add(mold->more_option);
+ if (!mold->genlist)
{
- LOGE("genlist added");
- mold->genlist = _eext_more_option_genlist_add(mold->more_option);
- if (!mold->genlist)
- {
- LOGE("genlist is NULL!!");
- return NULL;
- }
- evas_object_smart_callback_add(mold->genlist, "aligned,item,detected", _rotary_selector_item_selected, mold);
- elm_object_part_content_set(mold->panel, "elm.swallow.content.blur", mold->genlist);
+ LOGE("genlist is NULL!!");
+ return NULL;
}
- else
- {
- mold->rotary_selector = eext_rotary_selector_add(mold->more_option);
- if (!mold->rotary_selector)
- {
- LOGE("rotary_selector is NULL!!");
- return NULL;
- }
- evas_object_smart_callback_add(mold->rotary_selector, "item,selected", _rotary_selector_item_selected, mold);
- evas_object_smart_callback_add(mold->rotary_selector, "item,clicked", _rotary_selector_item_clicked, mold);
- _eext_more_option_color_class_parent_set(mold->rotary_selector, mold->more_option);
+ evas_object_smart_callback_add(mold->genlist, "aligned,item,detected", _rotary_selector_item_selected, mold);
+ elm_object_part_content_set(mold->panel, "elm.swallow.content.blur", mold->genlist);
- Evas_Object *selector_content = elm_layout_add(mold->rotary_selector);
- if (!selector_content)
- {
- LOGE("selector_content is NULL!!");
- return NULL;
- }
-
- elm_layout_theme_set(selector_content, "rotary_selector", "content", "more_option");
- elm_object_part_content_set(mold->rotary_selector, "content", selector_content);
- elm_object_content_set(mold->panel, mold->rotary_selector);
- _eext_more_option_color_class_parent_set(selector_content, mold->more_option);
- }
LOGI("Panel Status: %d",elm_panel_hidden_get(mold->panel));
elm_panel_toggle(mold->panel);
mold->is_opened = !elm_panel_hidden_get(mold->panel);
{
elm_panel_orient_set(mold->panel, direction);
//ONEUI1.5(11July2019): Enable product theme when style changes
- if (__elm_product_theme_is_loaded())
- {
- elm_object_signal_emit(mold->panel, "eext,more,option,enable", "elm");
- }
+ elm_object_signal_emit(mold->panel, "eext,more,option,enable", "elm");
//
mold->direction = direction;
}
LOGE("mold is NULL!!");
return NULL;
}
- if (__elm_product_theme_is_loaded())
- item = _eext_more_option_genlist_item_append(mold->genlist);
- else
- item = eext_rotary_selector_item_append(mold->rotary_selector);
+ item = _eext_more_option_genlist_item_append(mold->genlist);
mold->item_list = eina_list_append(mold->item_list, item);
return item;
LOGE("mold is NULL!!");
return NULL;
}
- if (__elm_product_theme_is_loaded())
- item = _eext_more_option_item_prepend(mold->genlist);
- else
- item = eext_rotary_selector_item_prepend(mold->rotary_selector);
-
+ item = _eext_more_option_item_prepend(mold->genlist);
mold->item_list = eina_list_prepend(mold->item_list, item);
return item;
return NULL;
}
- if (__elm_product_theme_is_loaded())
- item = _eext_more_option_genlist_item_insert_after(mold->genlist, after);
- else
- item = eext_rotary_selector_item_insert_after(mold->rotary_selector, after);
-
+ item = _eext_more_option_genlist_item_insert_after(mold->genlist, after);
mold->item_list = eina_list_append_relative(mold->item_list, item, after);
return item;
return NULL;
}
- if (__elm_product_theme_is_loaded())
- item = _eext_more_option_genlist_item_insert_before(mold->genlist, before);
- else
- item = eext_rotary_selector_item_insert_before(mold->rotary_selector, before);
-
+ item = _eext_more_option_genlist_item_insert_before(mold->genlist, before);
mold->item_list = eina_list_prepend_relative(mold->item_list, item, before);
return item;
return;
}
- if (__elm_product_theme_is_loaded())
- {
- mold->item_list = eina_list_remove(mold->item_list, item);
- _eext_more_option_genlist_item_del(item);
- }
- else
- {
- eext_rotary_selector_item_del(item);
- mold->item_list = eina_list_remove(mold->item_list, item);
- }
+ mold->item_list = eina_list_remove(mold->item_list, item);
+ _eext_more_option_genlist_item_del(item);
}
EAPI void
return;
}
- if (__elm_product_theme_is_loaded())
- _eext_more_option_genlist_items_clear(mold->genlist);
- else
- eext_rotary_selector_items_clear(mold->rotary_selector);
-
+ _eext_more_option_genlist_items_clear(mold->genlist);
mold->item_list = eina_list_free(mold->item_list);
}
EAPI void
eext_more_option_item_part_text_set(Eext_Object_Item *item, const char *part_name, const char *text)
{
- if (__elm_product_theme_is_loaded())
- _eext_more_option_genlist_item_part_text_set(item, part_name, text);
- else
- eext_rotary_selector_item_part_text_set(item, part_name, text);
-
- return;
+ _eext_more_option_genlist_item_part_text_set(item, part_name, text);
}
EAPI void
eext_more_option_item_domain_translatable_part_text_set(Eext_Object_Item *item, const char *part_name, const char *domain, const char *text)
{
- if (__elm_product_theme_is_loaded())
- _eext_more_option_genlist_item_domain_translatable_part_text_set(item, part_name, domain, text);
- else
- eext_rotary_selector_item_domain_translatable_part_text_set(item, part_name, domain, text);
-
- return;
+ _eext_more_option_genlist_item_domain_translatable_part_text_set(item, part_name, domain, text);
}
EAPI const char *
eext_more_option_item_part_text_get(const Eext_Object_Item *item, const char *part_name)
{
- if (__elm_product_theme_is_loaded())
- return _eext_more_option_genlist_item_part_text_get(item, part_name);
- else
- return eext_rotary_selector_item_part_text_get(item, part_name);
+ return _eext_more_option_genlist_item_part_text_get(item, part_name);
}
EAPI void
eext_more_option_item_part_content_set(Eext_Object_Item *item, const char *part_name, Evas_Object *content)
{
- if (__elm_product_theme_is_loaded())
- _eext_more_option_genlist_item_part_content_set(item, part_name, EEXT_ROTARY_SELECTOR_ITEM_STATE_NORMAL, content);
- else
- eext_rotary_selector_item_part_content_set(item, part_name, EEXT_ROTARY_SELECTOR_ITEM_STATE_NORMAL, content);
-
- return;
+ _eext_more_option_genlist_item_part_content_set(item, part_name, EEXT_ROTARY_SELECTOR_ITEM_STATE_NORMAL, content);
}
EAPI Evas_Object *
eext_more_option_item_part_content_get(const Eext_Object_Item *item, const char *part_name)
{
- if (__elm_product_theme_is_loaded())
- return _eext_more_option_genlist_item_part_content_get(item, part_name, EEXT_ROTARY_SELECTOR_ITEM_STATE_NORMAL);
- else
- return eext_rotary_selector_item_part_content_get(item, part_name, EEXT_ROTARY_SELECTOR_ITEM_STATE_NORMAL);
+ return _eext_more_option_genlist_item_part_content_get(item, part_name, EEXT_ROTARY_SELECTOR_ITEM_STATE_NORMAL);
}
EAPI void
mold = _more_option_data_get(obj);
if (mold)
{
- if (__elm_product_theme_is_loaded())
+ //ONEUI1.5(20Jun2019): Add blur timer in case blur idler is not invoked
+ if (mold->blur_timer)
{
- //ONEUI1.5(20Jun2019): Add blur timer in case blur idler is not invoked
- if (mold->blur_timer)
- {
- ecore_timer_del(mold->blur_timer);
- mold->blur_timer = NULL;
- }
- if (mold->blur_idler)
- {
- ecore_idler_del(mold->blur_idler);
- mold->blur_idler = NULL;
- }
- //
- //ONEUI1.5(20190424):Avoid panel close by api when panel is not active.
- if (!opened && !mold->is_panel_active)
- {
- mold->is_opened = opened;
- return;
- }
- //
- if (elm_panel_hidden_get(mold->panel) && opened)
- {
- mold->is_opened = opened;
- _eext_more_option_effect_create(mold);
- }
- else if (!elm_panel_hidden_get(mold->panel) && !opened)
- {
- elm_panel_toggle(mold->panel);
- mold->is_opened = !elm_panel_hidden_get(mold->panel);
- }
+ ecore_timer_del(mold->blur_timer);
+ mold->blur_timer = NULL;
}
- else
+ if (mold->blur_idler)
+ {
+ ecore_idler_del(mold->blur_idler);
+ mold->blur_idler = NULL;
+ }
+ //
+ //ONEUI1.5(20190424):Avoid panel close by api when panel is not active.
+ if (!opened && !mold->is_panel_active)
+ {
+ mold->is_opened = opened;
+ return;
+ }
+ //
+ if (elm_panel_hidden_get(mold->panel) && opened)
+ {
+ mold->is_opened = opened;
+ _eext_more_option_effect_create(mold);
+ }
+ else if (!elm_panel_hidden_get(mold->panel) && !opened)
{
- if (elm_panel_hidden_get(mold->panel) && opened)
- {
- eext_rotary_object_event_activated_set(mold->rotary_selector, EINA_TRUE);
- elm_panel_toggle(mold->panel);
- mold->is_opened = !elm_panel_hidden_get(mold->panel);
- }
- else if (!elm_panel_hidden_get(mold->panel) && !opened)
- {
- elm_panel_toggle(mold->panel);
- mold->is_opened = !elm_panel_hidden_get(mold->panel);
- }
+ LOGI("Panel Status: %d",elm_panel_hidden_get(mold->panel));
+ elm_panel_toggle(mold->panel);
+ mold->is_opened = !elm_panel_hidden_get(mold->panel);
}
}
}
return NULL;
}
- if (__elm_product_theme_is_loaded())
- return _eext_more_option_genlist_items_get(mold->genlist);
- else
- return eext_rotary_selector_items_get(mold->rotary_selector);
+ return _eext_more_option_genlist_items_get(mold->genlist);
}
EAPI void
return;
}
- if (__elm_product_theme_is_loaded())
- _eext_more_option_genlist_editing_enabled_set(mold->genlist, enabled);
- else
- eext_rotary_selector_editing_enabled_set(mold->rotary_selector, enabled);
+ _eext_more_option_genlist_editing_enabled_set(mold->genlist, enabled);
}
EAPI Eina_Bool
return EINA_FALSE;
}
- if (__elm_product_theme_is_loaded())
- return _eext_more_option_genlist_editing_enabled_get(mold->genlist);
- else
- return eext_rotary_selector_editing_enabled_get(mold->rotary_selector);
+ return _eext_more_option_genlist_editing_enabled_get(mold->genlist);
}
EAPI Eina_Bool
return EINA_FALSE;
}
- if (__elm_product_theme_is_loaded())
- return _eext_more_option_genlist_add_item_enabled_get(mold->genlist);
- else
- return eext_rotary_selector_add_item_enabled_get(mold->rotary_selector);
+ return _eext_more_option_genlist_add_item_enabled_get(mold->genlist);
}
EAPI void
return;
}
- if (__elm_product_theme_is_loaded())
- return _eext_more_option_genlist_add_item_enabled_set(mold->genlist, enabled);
- else
- return eext_rotary_selector_add_item_enabled_set(mold->rotary_selector, enabled);
+ return _eext_more_option_genlist_add_item_enabled_set(mold->genlist, enabled);
}
EAPI Eina_Bool
eext_more_option_item_delete_enabled_get(const Eext_Object_Item *item)
{
- if (__elm_product_theme_is_loaded())
- return _eext_more_option_genlist_item_delete_enabled_get(item);
- else
- return eext_rotary_selector_item_delete_enabled_get(item);
+ return _eext_more_option_genlist_item_delete_enabled_get(item);
}
EAPI void
eext_more_option_item_delete_enabled_set(Eext_Object_Item *item, Eina_Bool enabled)
{
- if (__elm_product_theme_is_loaded())
- _eext_more_option_genlist_item_delete_enabled_set(item, enabled);
- else
- eext_rotary_selector_item_delete_enabled_set(item, enabled);
+ _eext_more_option_genlist_item_delete_enabled_set(item, enabled);
}
//for accessibility
case ELM_ACCESS_ACTION_ACTIVATE:
if (mold)
{
-//ONEUI1.5(12MAR2019): fixed bug(The bezel is not operated when screen-reader is on)
- if (__elm_product_theme_is_loaded())
- {
- //There are VI delays here, so turn on the is_opened flag directly
- mold->is_opened = EINA_TRUE;
- _eext_more_option_effect_create(mold);
- }
- else
- {
- eext_rotary_object_event_activated_set(mold->rotary_selector, EINA_TRUE);
- elm_panel_toggle(mold->panel);
- mold->is_opened = !elm_panel_hidden_get(mold->panel);
- }
-//
+ //There are VI delays here, so turn on the is_opened flag directly
+ mold->is_opened = EINA_TRUE;
+ //ONEUI1.5(12MAR2019): fixed bug(The bezel is not operated when screen-reader is on)
+ _eext_more_option_effect_create(mold);
+ //
}
break;
default: