elc_fileselector_entry, elm_bubble: porting evas smart callbacks to eo

This commit is contained in:
Avi Levin 2015-05-17 10:37:49 +03:00 committed by Daniel Zaoui
parent 10045491aa
commit ca37a84db0
4 changed files with 66 additions and 51 deletions

View File

@ -43,28 +43,31 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] =
}; };
#undef ELM_PRIV_FILESELECTOR_ENTRY_SIGNALS #undef ELM_PRIV_FILESELECTOR_ENTRY_SIGNALS
#define SIG_FWD(name) \ #define SIG_FWD(name, event) \
static void \ static Eina_Bool \
_##name##_fwd(void *data, Evas_Object * obj EINA_UNUSED, void *event_info) \ _##name##_fwd(void *data, \
Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void *event_info EINA_UNUSED)\
{ \ { \
evas_object_smart_callback_call(data, SIG_##name, event_info); \ eo_do(data, eo_event_callback_call(event, event_info)); \
\
return EINA_TRUE; \
} }
SIG_FWD(CHANGED) SIG_FWD(CHANGED, ELM_FILESELECTOR_ENTRY_EVENT_CHANGED)
SIG_FWD(PRESS) SIG_FWD(PRESS, ELM_FILESELECTOR_ENTRY_EVENT_PRESS)
SIG_FWD(LONGPRESSED) SIG_FWD(LONGPRESSED, EVAS_CLICKABLE_INTERFACE_EVENT_LONGPRESSED)
SIG_FWD(CLICKED) SIG_FWD(CLICKED, EVAS_CLICKABLE_INTERFACE_EVENT_CLICKED)
SIG_FWD(CLICKED_DOUBLE) SIG_FWD(CLICKED_DOUBLE, EVAS_CLICKABLE_INTERFACE_EVENT_CLICKED_DOUBLE)
SIG_FWD(FOCUSED) SIG_FWD(FOCUSED, ELM_LAYOUT_EVENT_FOCUSED)
SIG_FWD(UNFOCUSED) SIG_FWD(UNFOCUSED, ELM_LAYOUT_EVENT_UNFOCUSED)
SIG_FWD(SELECTION_PASTE) SIG_FWD(SELECTION_PASTE, EVAS_SELECTABLE_INTERFACE_EVENT_SELECTION_PASTE)
SIG_FWD(SELECTION_COPY) SIG_FWD(SELECTION_COPY, EVAS_SELECTABLE_INTERFACE_EVENT_SELECTION_COPY)
SIG_FWD(SELECTION_CUT) SIG_FWD(SELECTION_CUT, EVAS_SELECTABLE_INTERFACE_EVENT_SELECTION_CUT)
SIG_FWD(UNPRESSED) SIG_FWD(UNPRESSED, EVAS_CLICKABLE_INTERFACE_EVENT_UNPRESSED)
#undef SIG_FWD #undef SIG_FWD
static void static Eina_Bool
_FILE_CHOSEN_fwd(void *data, _FILE_CHOSEN_fwd(void *data,
Evas_Object *obj EINA_UNUSED, Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED,
void *event_info) void *event_info)
{ {
const char *file = event_info; const char *file = event_info;
@ -73,15 +76,18 @@ _FILE_CHOSEN_fwd(void *data,
ELM_FILESELECTOR_ENTRY_DATA_GET(data, sd); ELM_FILESELECTOR_ENTRY_DATA_GET(data, sd);
s = elm_entry_utf8_to_markup(file); s = elm_entry_utf8_to_markup(file);
if (!s) return; if (!s) return EINA_TRUE;
elm_object_text_set(sd->entry, s); elm_object_text_set(sd->entry, s);
free(s); free(s);
evas_object_smart_callback_call(data, SIG_FILE_CHOSEN, event_info); eo_do(data, eo_event_callback_call
(ELM_FILESELECTOR_ENTRY_EVENT_FILE_CHOSEN, event_info));
return EINA_TRUE;
} }
static void static Eina_Bool
_ACTIVATED_fwd(void *data, _ACTIVATED_fwd(void *data,
Evas_Object *obj EINA_UNUSED, Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED,
void *event_info) void *event_info)
{ {
const char *file; const char *file;
@ -90,7 +96,10 @@ _ACTIVATED_fwd(void *data,
file = elm_object_text_get(sd->entry); file = elm_object_text_get(sd->entry);
elm_fileselector_path_set(sd->button, file); elm_fileselector_path_set(sd->button, file);
evas_object_smart_callback_call(data, SIG_ACTIVATED, event_info); eo_do(data, eo_event_callback_call
(ELM_FILESELECTOR_ENTRY_EVENT_ACTIVATED, event_info));
return EINA_TRUE;
} }
EOLIAN static void EOLIAN static void
@ -284,11 +293,11 @@ _elm_fileselector_entry_evas_object_smart_add(Eo *obj, Elm_Fileselector_Entry_Da
elm_fileselector_expandable_set elm_fileselector_expandable_set
(priv->button, _elm_config->fileselector_expand_enable); (priv->button, _elm_config->fileselector_expand_enable);
#define SIG_FWD(name) \ #define SIG_FWD(name, event) \
evas_object_smart_callback_add(priv->button, SIG_##name, _##name##_fwd, obj) eo_do(priv->button, eo_event_callback_add(event, _##name##_fwd, obj))
SIG_FWD(CLICKED); SIG_FWD(CLICKED, EVAS_CLICKABLE_INTERFACE_EVENT_CLICKED);
SIG_FWD(UNPRESSED); SIG_FWD(UNPRESSED, EVAS_CLICKABLE_INTERFACE_EVENT_UNPRESSED);
SIG_FWD(FILE_CHOSEN); SIG_FWD(FILE_CHOSEN, ELM_FILESELECTOR_ENTRY_EVENT_FILE_CHOSEN);
#undef SIG_FWD #undef SIG_FWD
priv->entry = elm_entry_add(obj); priv->entry = elm_entry_add(obj);
@ -298,19 +307,19 @@ _elm_fileselector_entry_evas_object_smart_add(Eo *obj, Elm_Fileselector_Entry_Da
elm_entry_single_line_set(priv->entry, EINA_TRUE); elm_entry_single_line_set(priv->entry, EINA_TRUE);
elm_entry_editable_set(priv->entry, EINA_TRUE); elm_entry_editable_set(priv->entry, EINA_TRUE);
#define SIG_FWD(name) \ #define SIG_FWD(name, event) \
evas_object_smart_callback_add(priv->entry, SIG_##name, _##name##_fwd, obj) eo_do(priv->entry, eo_event_callback_add(event, _##name##_fwd, obj))
SIG_FWD(CHANGED); SIG_FWD(CHANGED, ELM_FILESELECTOR_ENTRY_EVENT_CHANGED);
SIG_FWD(ACTIVATED); SIG_FWD(ACTIVATED, ELM_FILESELECTOR_ENTRY_EVENT_ACTIVATED);
SIG_FWD(PRESS); SIG_FWD(PRESS, ELM_FILESELECTOR_ENTRY_EVENT_PRESS);
SIG_FWD(LONGPRESSED); SIG_FWD(LONGPRESSED, EVAS_CLICKABLE_INTERFACE_EVENT_LONGPRESSED);
SIG_FWD(CLICKED); SIG_FWD(CLICKED, EVAS_CLICKABLE_INTERFACE_EVENT_CLICKED);
SIG_FWD(CLICKED_DOUBLE); SIG_FWD(CLICKED_DOUBLE, EVAS_CLICKABLE_INTERFACE_EVENT_CLICKED_DOUBLE);
SIG_FWD(FOCUSED); SIG_FWD(FOCUSED, ELM_LAYOUT_EVENT_FOCUSED);
SIG_FWD(UNFOCUSED); SIG_FWD(UNFOCUSED, ELM_LAYOUT_EVENT_UNFOCUSED);
SIG_FWD(SELECTION_PASTE); SIG_FWD(SELECTION_PASTE, EVAS_SELECTABLE_INTERFACE_EVENT_SELECTION_PASTE);
SIG_FWD(SELECTION_COPY); SIG_FWD(SELECTION_COPY, EVAS_SELECTABLE_INTERFACE_EVENT_SELECTION_COPY);
SIG_FWD(SELECTION_CUT); SIG_FWD(SELECTION_CUT, EVAS_SELECTABLE_INTERFACE_EVENT_SELECTION_CUT);
#undef SIG_FWD #undef SIG_FWD
if (!elm_layout_theme_set if (!elm_layout_theme_set

View File

@ -70,7 +70,7 @@ _on_mouse_up(void *data,
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
return; return;
evas_object_smart_callback_call(data, SIG_CLICKED, NULL); eo_do(data, eo_event_callback_call(EVAS_CLICKABLE_INTERFACE_EVENT_CLICKED, NULL));
} }
/* overriding layout's focus_next() in order to just cycle through the /* overriding layout's focus_next() in order to just cycle through the

View File

@ -1,4 +1,5 @@
class Elm.Fileselector_Entry (Elm.Layout, Elm_Interface_Fileselector) class Elm.Fileselector_Entry (Elm.Layout, Elm_Interface_Fileselector,
Evas.Clickable_Interface, Evas.Selectable_Interface)
{ {
eo_prefix: elm_obj_fileselector_entry; eo_prefix: elm_obj_fileselector_entry;
methods { methods {
@ -122,6 +123,9 @@ class Elm.Fileselector_Entry (Elm.Layout, Elm_Interface_Fileselector)
language,changed; language,changed;
access,changed; access,changed;
changed; changed;
activated;
file,chosen;
press;
} }
} }

View File

@ -3731,15 +3731,15 @@ _elm_scroll_pan_resized_cb(void *data,
} }
/* even external pan objects get this */ /* even external pan objects get this */
static void static Eina_Bool
_elm_scroll_pan_changed_cb(void *data, _elm_scroll_pan_changed_cb(void *data,
Evas_Object *obj EINA_UNUSED, Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED,
void *event_info EINA_UNUSED) void *event_info EINA_UNUSED)
{ {
Evas_Coord w = 0, h = 0; Evas_Coord w = 0, h = 0;
Elm_Scrollable_Smart_Interface_Data *sid = data; Elm_Scrollable_Smart_Interface_Data *sid = data;
if (!sid->pan_obj) return; if (!sid->pan_obj) return EINA_TRUE;
eo_do(sid->pan_obj, elm_obj_pan_content_size_get(&w, &h)); eo_do(sid->pan_obj, elm_obj_pan_content_size_get(&w, &h));
if ((w != sid->content_info.w) || (h != sid->content_info.h)) if ((w != sid->content_info.w) || (h != sid->content_info.h))
@ -3753,6 +3753,8 @@ _elm_scroll_pan_changed_cb(void *data,
sid->content_info.resized = EINA_TRUE; sid->content_info.resized = EINA_TRUE;
_elm_scroll_wanted_region_set(sid->obj); _elm_scroll_wanted_region_set(sid->obj);
} }
return EINA_TRUE;
} }
static void static void
@ -3794,8 +3796,8 @@ _elm_interface_scrollable_content_set(Eo *obj, Elm_Scrollable_Smart_Interface_Da
{ {
o = _elm_pan_add(evas_object_evas_get(obj)); o = _elm_pan_add(evas_object_evas_get(obj));
sid->pan_obj = o; sid->pan_obj = o;
evas_object_smart_callback_add eo_do(o, eo_event_callback_add
(o, SIG_CHANGED, _elm_scroll_pan_changed_cb, sid); (ELM_PAN_EVENT_CHANGED, _elm_scroll_pan_changed_cb, sid));
evas_object_event_callback_add(o, EVAS_CALLBACK_RESIZE, evas_object_event_callback_add(o, EVAS_CALLBACK_RESIZE,
_elm_scroll_pan_resized_cb, sid); _elm_scroll_pan_resized_cb, sid);
edje_object_part_swallow(sid->edje_obj, "elm.swallow.content", o); edje_object_part_swallow(sid->edje_obj, "elm.swallow.content", o);
@ -3822,8 +3824,8 @@ _elm_interface_scrollable_extern_pan_set(Eo *obj, Elm_Scrollable_Smart_Interface
if (sid->pan_obj) if (sid->pan_obj)
{ {
evas_object_smart_callback_del eo_do(sid->pan_obj, eo_event_callback_del(
(sid->pan_obj, SIG_CHANGED, _elm_scroll_pan_changed_cb); ELM_PAN_EVENT_CHANGED, _elm_scroll_pan_changed_cb, sid));
evas_object_event_callback_del(sid->pan_obj, EVAS_CALLBACK_RESIZE, evas_object_event_callback_del(sid->pan_obj, EVAS_CALLBACK_RESIZE,
_elm_scroll_pan_resized_cb); _elm_scroll_pan_resized_cb);
} }
@ -3850,8 +3852,8 @@ _elm_interface_scrollable_extern_pan_set(Eo *obj, Elm_Scrollable_Smart_Interface
sid->pan_obj = pan; sid->pan_obj = pan;
sid->extern_pan = EINA_TRUE; sid->extern_pan = EINA_TRUE;
evas_object_smart_callback_add eo_do(sid->pan_obj, eo_event_callback_add
(sid->pan_obj, SIG_CHANGED, _elm_scroll_pan_changed_cb, sid); (ELM_PAN_EVENT_CHANGED, _elm_scroll_pan_changed_cb, sid));
evas_object_event_callback_add(sid->pan_obj, EVAS_CALLBACK_RESIZE, evas_object_event_callback_add(sid->pan_obj, EVAS_CALLBACK_RESIZE,
_elm_scroll_pan_resized_cb, sid); _elm_scroll_pan_resized_cb, sid);
edje_object_part_swallow edje_object_part_swallow