* Fix re-order animation when it doesn't end correctly.
* Improve elm map module loading to onlt init the module needed
when searching and not all modules.
-
-2012-09-03 Shinwoo Kim (kimcinoo)
-
- * Add in more access subsystem features like activation cb.
-
}
EAPI void
-_elm_access_activate_hook_set(Elm_Access_Info *ac,
- Elm_Access_Activate_Cb func,
- void *data)
-{
- if (!ac) return;
- ac->activate = func;
- ac->activate_data = data;
-}
-
-EAPI void
_elm_access_highlight_object_activate(Evas_Object *obj)
{
Evas_Object *highlight_obj;
highlight_obj = elm_widget_focused_object_get(obj);
-
- Elm_Access_Info *ac = evas_object_data_get(highlight_obj, "_elm_access");
- if (!ac) return;
-
- if (ac->activate)
- ac->activate(highlight_obj, ac->activate_data);
+ elm_widget_activate(highlight_obj);
}
EAPI char *
evas_object_size_hint_min_set(obj, minw, minh);
}
+static void
+_elm_button_smart_activate(Evas_Object *obj)
+{
+ evas_object_smart_callback_call(obj, SIG_CLICKED, NULL);
+ elm_layout_signal_emit(obj, "elm,anim,activate", "elm");
+}
+
/* FIXME: replicated from elm_layout just because button's icon spot
* is elm.swallow.content, not elm.swallow.icon. Fix that whenever we
* can changed the theme API */
}
static void
-_access_activate_cb(Evas_Object *obj, void *data __UNUSED__)
-{
- evas_object_smart_callback_call(obj, SIG_CLICKED, NULL);
- elm_layout_signal_emit(obj, "elm,anim,activate", "elm");
-}
-
-static void
_elm_button_smart_add(Evas_Object *obj)
{
EVAS_SMART_DATA_ALLOC(obj, Elm_Button_Smart_Data);
(_elm_access_object_get(obj), ELM_ACCESS_INFO, _access_info_cb, NULL);
_elm_access_callback_set
(_elm_access_object_get(obj), ELM_ACCESS_STATE, _access_state_cb, priv);
- _elm_access_activate_hook_set
- (_elm_access_object_get(obj), _access_activate_cb, NULL);
elm_widget_can_focus_set(obj, EINA_TRUE);
ELM_CONTAINER_CLASS(sc)->content_set = _elm_button_smart_content_set;
ELM_LAYOUT_CLASS(sc)->sizing_eval = _elm_button_smart_sizing_eval;
+ ELM_WIDGET_CLASS(sc)->activate = _elm_button_smart_activate;
ELM_LAYOUT_CLASS(sc)->content_aliases = _content_aliases;
ELM_LAYOUT_CLASS(sc)->text_aliases = _text_aliases;
return sd->focus_order;
}
+EAPI void
+elm_widget_activate(Evas_Object *obj)
+{
+ API_ENTRY return;
+
+ if (!sd->api->activate) return;
+
+ sd->api->activate(obj);
+}
+
/**
* @internal
*
*/
#define ELM_WIDGET_SMART_CLASS_INIT(smart_class_init) \
{smart_class_init, ELM_WIDGET_SMART_CLASS_VERSION, NULL, NULL, NULL, NULL, \
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}
/**
* @def ELM_WIDGET_SMART_CLASS_INIT_NULL
Evas_Object *sobj); /**< 'Virtual' function handling sub objects being removed */
void (*access)(Evas_Object *obj,
Eina_Bool is_access); /**< 'Virtual' function on the widget being set access */
+ void (*activate)(Evas_Object *obj); /**< 'Virtual' function to activate widget */
} Elm_Widget_Smart_Class;
/**
typedef char *(*Elm_Access_Content_Cb)(void *data, Evas_Object *obj, Elm_Widget_Item *item);
typedef void (*Elm_Access_On_Highlight_Cb)(void *data);
-typedef void (*Elm_Access_Activate_Cb)(Evas_Object *obj, void *data);
struct _Elm_Access_Item
{
Ecore_Timer *delay_timer;
void *on_highlight_data;
Elm_Access_On_Highlight_Cb on_highlight;
- void *activate_data;
- Elm_Access_Activate_Cb activate;
};
EAPI void _elm_access_clear(Elm_Access_Info *ac);
EAPI void _elm_access_widget_item_register(Elm_Widget_Item *item);
EAPI void _elm_access_widget_item_unregister(Elm_Widget_Item *item);
EAPI void _elm_access_on_highlight_hook_set(Elm_Access_Info *ac, Elm_Access_On_Highlight_Cb func, void *data);
-EAPI void _elm_access_activate_hook_set(Elm_Access_Info *ac, Elm_Access_Activate_Cb func, void *data);
EAPI void _elm_access_highlight_object_activate(Evas_Object *obj);
/**< put this as the first member in your widget item struct */
EAPI void elm_widget_focus_tree_unfocusable_handle(Evas_Object *obj);
EAPI void elm_widget_focus_disabled_handle(Evas_Object *obj);
EAPI unsigned int elm_widget_focus_order_get(const Evas_Object *obj);
+EAPI void elm_widget_activate(Evas_Object *obj);
EAPI void elm_widget_text_part_set(Evas_Object *obj, const char *part, const char *label);
EAPI const char *elm_widget_text_part_get(const Evas_Object *obj, const char *part);
EAPI void elm_widget_domain_translatable_text_part_set(Evas_Object *obj, const char *part, const char *domain, const char *text);