summaryrefslogtreecommitdiff
path: root/src/lib/elementary/elm_entry.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/elementary/elm_entry.c')
-rw-r--r--src/lib/elementary/elm_entry.c294
1 files changed, 194 insertions, 100 deletions
diff --git a/src/lib/elementary/elm_entry.c b/src/lib/elementary/elm_entry.c
index 854f234029..a6ccaa5980 100644
--- a/src/lib/elementary/elm_entry.c
+++ b/src/lib/elementary/elm_entry.c
@@ -2,12 +2,15 @@
# include "elementary_config.h"
#endif
-#define EFL_ACCESS_PROTECTED
+#define EFL_LAYOUT_CALC_PROTECTED
+#define EFL_ACCESS_OBJECT_PROTECTED
#define EFL_ACCESS_TEXT_PROTECTED
#define EFL_ACCESS_EDITABLE_TEXT_PROTECTED
#define ELM_LAYOUT_PROTECTED
#define EFL_UI_FOCUS_OBJECT_PROTECTED
+#define EFL_UI_WIDGET_FOCUS_MANAGER_PROTECTED 1
#define EFL_ACCESS_WIDGET_ACTION_PROTECTED
+#define EFL_PART_PROTECTED
#include <Elementary.h>
#include <Elementary_Cursor.h>
@@ -793,7 +796,7 @@ _get_drop_format(Evas_Object *obj)
/* we can't reuse layout's here, because it's on entry_edje only */
EOLIAN static Eina_Bool
-_elm_entry_elm_widget_on_disabled_update(Eo *obj, Elm_Entry_Data *sd, Eina_Bool disabled)
+_elm_entry_efl_ui_widget_on_disabled_update(Eo *obj, Elm_Entry_Data *sd, Eina_Bool disabled)
{
const char *emission;
@@ -853,19 +856,20 @@ _elm_entry_background_switch(Evas_Object *from_edje, Evas_Object *to_edje)
/* we can't issue the layout's theming code here, cause it assumes an
* unique edje object, always */
EOLIAN static Efl_Ui_Theme_Apply
-_elm_entry_elm_widget_theme_apply(Eo *obj, Elm_Entry_Data *sd)
+_elm_entry_efl_ui_widget_theme_apply(Eo *obj, Elm_Entry_Data *sd)
{
const char *str;
const char *t;
const char *stl_user;
const char *style = elm_widget_style_get(obj);
Efl_Ui_Theme_Apply theme_apply;
+ int cursor_pos;
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_FAILED);
// Note: We are skipping elm_layout here! This is by design.
// This assumes the following inheritance: my_class -> layout -> widget ...
- theme_apply = efl_ui_widget_theme_apply(efl_cast(obj, ELM_WIDGET_CLASS));
+ theme_apply = efl_ui_widget_theme_apply(efl_cast(obj, EFL_UI_WIDGET_CLASS));
if (!theme_apply) return EFL_UI_THEME_APPLY_FAILED;
evas_event_freeze(evas_object_evas_get(obj));
@@ -877,7 +881,7 @@ _elm_entry_elm_widget_theme_apply(Eo *obj, Elm_Entry_Data *sd)
edje_object_scale_set
(wd->resize_obj,
- efl_gfx_scale_get(obj) * elm_config_scale_get());
+ efl_gfx_entity_scale_get(obj) * elm_config_scale_get());
_mirrored_set(obj, efl_ui_mirrored_get(obj));
@@ -897,6 +901,8 @@ _elm_entry_elm_widget_theme_apply(Eo *obj, Elm_Entry_Data *sd)
edje_object_part_text_style_user_push(sd->entry_edje, "elm.text", stl_user);
eina_stringshare_del(stl_user);
+ cursor_pos = sd->cursor_pos;
+
elm_object_text_set(obj, t);
eina_stringshare_del(t);
@@ -927,11 +933,10 @@ _elm_entry_elm_widget_theme_apply(Eo *obj, Elm_Entry_Data *sd)
edje_object_part_text_prediction_hint_set
(sd->entry_edje, "elm.text", sd->prediction_hint);
- // elm_entry_cursor_pos_set -> cursor,changed -> widget_show_region_set
- // -> smart_objects_calculate will call all smart calculate functions,
- // and one of them can delete elm_entry.
evas_object_ref(obj);
+ if (cursor_pos) elm_entry_cursor_pos_set(obj, cursor_pos);
+
if (efl_ui_focus_object_focus_get(obj))
{
edje_object_signal_emit(sd->entry_edje, "elm,action,focus", "elm");
@@ -948,7 +953,7 @@ _elm_entry_elm_widget_theme_apply(Eo *obj, Elm_Entry_Data *sd)
{
Efl_Ui_Theme_Apply ok = EFL_UI_THEME_APPLY_FAILED;
- elm_interface_scrollable_mirrored_set(obj, efl_ui_mirrored_get(obj));
+ efl_ui_mirrored_set(obj, efl_ui_mirrored_get(obj));
if (sd->single_line)
ok = elm_widget_theme_object_set
@@ -996,7 +1001,7 @@ _elm_entry_elm_widget_theme_apply(Eo *obj, Elm_Entry_Data *sd)
evas_event_thaw(evas_object_evas_get(obj));
evas_event_thaw_eval(evas_object_evas_get(obj));
- efl_event_callback_legacy_call(obj, EFL_UI_LAYOUT_EVENT_THEME_CHANGED, NULL);
+ efl_event_callback_legacy_call(obj, EFL_UI_LAYOUT_OBJECT_EVENT_THEME_CHANGED, NULL);
evas_object_unref(obj);
@@ -1295,12 +1300,13 @@ _elm_entry_focus_update(Eo *obj, Elm_Entry_Data *sd)
edje_object_part_text_select_none(sd->entry_edje, "elm.text");
}
}
- edje_object_signal_emit(sd->scr_edje, "validation,default", "elm");
+ if (sd->scr_edje)
+ edje_object_signal_emit(sd->scr_edje, "validation,default", "elm");
}
}
EOLIAN static Eina_Bool
-_elm_entry_elm_widget_on_focus_update(Eo *obj, Elm_Entry_Data *sd, Elm_Object_Item *item EINA_UNUSED)
+_elm_entry_efl_ui_focus_object_on_focus_update(Eo *obj, Elm_Entry_Data *sd)
{
_elm_entry_focus_update(obj, sd);
@@ -1308,7 +1314,7 @@ _elm_entry_elm_widget_on_focus_update(Eo *obj, Elm_Entry_Data *sd, Elm_Object_It
}
EOLIAN static Eina_Rect
-_elm_entry_elm_widget_interest_region_get(Eo *obj, Elm_Entry_Data *sd)
+_elm_entry_efl_ui_widget_interest_region_get(const Eo *obj, Elm_Entry_Data *sd)
{
Evas_Coord cx, cy, cw, ch;
Evas_Coord edx, edy;
@@ -1346,7 +1352,7 @@ _show_region_hook(void *data EINA_UNUSED, Evas_Object *obj, Eina_Rect r)
}
EOLIAN static Eina_Bool
-_elm_entry_elm_widget_widget_sub_object_del(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, Evas_Object *sobj)
+_elm_entry_efl_ui_widget_widget_sub_object_del(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, Evas_Object *sobj)
{
Eina_Bool ret = EINA_FALSE;
/* unfortunately entry doesn't follow the signal pattern
@@ -1511,6 +1517,7 @@ _elm_entry_entry_paste(Evas_Object *obj,
ELM_ENTRY_CHECK(obj);
ELM_ENTRY_DATA_GET(obj, sd);
+ if (!sd) return;
if (sd->cnp_mode == ELM_CNP_MODE_NO_IMAGE)
{
str = _item_tags_remove(entry);
@@ -1534,6 +1541,7 @@ _paste_cb(void *data,
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
efl_event_callback_legacy_call
(data, EFL_UI_EVENT_SELECTION_PASTE, NULL);
@@ -1553,6 +1561,7 @@ _selection_clear(void *data, Elm_Sel_Type selection)
{
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
if (!sd->have_selection) return;
if ((selection == ELM_SEL_TYPE_CLIPBOARD) ||
(selection == ELM_SEL_TYPE_PRIMARY))
@@ -1569,6 +1578,7 @@ _selection_store(Elm_Sel_Type seltype,
ELM_ENTRY_DATA_GET(obj, sd);
+ if (!sd) return;
sel = edje_object_part_text_selection_get(sd->entry_edje, "elm.text");
if ((!sel) || (!sel[0])) return; /* avoid deleting our own selection */
@@ -1586,6 +1596,7 @@ _cut_cb(void *data,
{
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
efl_event_callback_legacy_call
(data, EFL_UI_EVENT_SELECTION_CUT, NULL);
/* Store it */
@@ -1609,6 +1620,7 @@ _copy_cb(void *data,
{
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
efl_event_callback_legacy_call
(data, EFL_UI_EVENT_SELECTION_COPY, NULL);
sd->sel_mode = EINA_FALSE;
@@ -1629,6 +1641,7 @@ _hover_cancel_cb(void *data,
{
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
sd->sel_mode = EINA_FALSE;
if (!_elm_config->desktop_entry)
edje_object_part_text_select_allow_set
@@ -1659,6 +1672,7 @@ _menu_call(Evas_Object *obj)
ELM_ENTRY_DATA_GET(obj, sd);
+ if (!sd) return;
if (sd->anchor_hover.hover) return;
efl_event_callback_legacy_call(obj, ELM_ENTRY_EVENT_CONTEXT_OPEN, NULL);
@@ -1778,6 +1792,7 @@ _magnifier_create(void *data)
{
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
double scale = _elm_config->magnifier_scale;
Evas *e;
Evas_Coord w, h, mw, mh;
@@ -1822,6 +1837,7 @@ _magnifier_move(void *data)
{
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
Evas_Coord x, y, w, h;
Evas_Coord px, py, pw, ph;
Evas_Coord cx, cy, ch;
@@ -1908,6 +1924,7 @@ static void
_magnifier_hide(void *data)
{
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
edje_object_signal_emit(sd->mgf_bg, "elm,action,hide,magnifier", "elm");
elm_widget_scroll_freeze_pop(data);
evas_object_hide(sd->mgf_clip);
@@ -1917,6 +1934,7 @@ static void
_magnifier_show(void *data)
{
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
edje_object_signal_emit(sd->mgf_bg, "elm,action,show,magnifier", "elm");
elm_widget_scroll_freeze_push(data);
evas_object_show(sd->mgf_clip);
@@ -1927,6 +1945,7 @@ _long_press_cb(void *data)
{
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return ECORE_CALLBACK_CANCEL;
if (_elm_config->magnifier_enable)
{
_magnifier_create(data);
@@ -1971,6 +1990,7 @@ _mouse_down_cb(void *data,
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
if (sd->disabled) return;
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
sd->downx = ev->canvas.x;
@@ -2007,6 +2027,7 @@ _mouse_up_cb(void *data,
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
if (sd->disabled) return;
if (ev->button == 1)
{
@@ -2056,6 +2077,7 @@ _mouse_move_cb(void *data,
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
if (sd->disabled) return;
if (ev->buttons == 1)
{
@@ -2127,6 +2149,7 @@ _entry_changed_handle(void *data,
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
evas_event_freeze(evas_object_evas_get(data));
sd->changed = EINA_TRUE;
/* Reset the size hints which are no more relevant. Keep the
@@ -2197,14 +2220,14 @@ _entry_changed_user_signal_cb(void *data,
atspi_info.content = edje_info->change.insert.content;
atspi_info.pos = edje_info->change.insert.pos;
atspi_info.len = edje_info->change.insert.plain_length;
- efl_access_event_emit(EFL_ACCESS_MIXIN, data, EFL_ACCESS_TEXT_EVENT_ACCESS_TEXT_INSERTED, &atspi_info);
+ efl_access_object_event_emit(EFL_ACCESS_OBJECT_MIXIN, data, EFL_ACCESS_TEXT_EVENT_ACCESS_TEXT_INSERTED, &atspi_info);
}
else if (edje_info && !edje_info->insert)
{
atspi_info.content = edje_info->change.del.content;
atspi_info.pos = MIN(edje_info->change.del.start, edje_info->change.del.end);
atspi_info.len = MAX(edje_info->change.del.start, edje_info->change.del.end) - atspi_info.pos;
- efl_access_event_emit(EFL_ACCESS_MIXIN, data, EFL_ACCESS_TEXT_EVENT_ACCESS_TEXT_REMOVED, &atspi_info);
+ efl_access_object_event_emit(EFL_ACCESS_OBJECT_MIXIN, data, EFL_ACCESS_TEXT_EVENT_ACCESS_TEXT_REMOVED, &atspi_info);
}
}
}
@@ -2229,7 +2252,7 @@ _entry_preedit_changed_signal_cb(void *data,
atspi_info.content = text;
atspi_info.pos = edje_info->change.insert.pos;
atspi_info.len = edje_info->change.insert.plain_length;
- efl_access_event_emit(EFL_ACCESS_MIXIN,
+ efl_access_object_event_emit(EFL_ACCESS_OBJECT_MIXIN,
data,
EFL_ACCESS_TEXT_EVENT_ACCESS_TEXT_INSERTED,
&atspi_info);
@@ -2293,13 +2316,15 @@ _entry_selection_none_signal_cb(void *data,
elm_entry_select_none(data);
}
-static inline Eina_Bool
-_entry_win_is_wl(Evas_Object *obj)
-{
- Evas_Object *win = _entry_win_get(obj);
- /* primary selection does not exist (yet) */
- return win && elm_win_wl_window_get(win);
-}
+// XXX: still try primary selection even if on wl in case it's
+// supported
+//static inline Eina_Bool
+//_entry_win_is_wl(Evas_Object *obj)
+//{
+// Evas_Object *win = _entry_win_get(obj);
+// /* primary selection does not exist (yet) */
+// return win && elm_win_wl_window_get(win);
+//}
static void
_entry_selection_changed_signal_cb(void *data,
@@ -2309,14 +2334,17 @@ _entry_selection_changed_signal_cb(void *data,
{
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
sd->have_selection = EINA_TRUE;
efl_event_callback_legacy_call
(data, EFL_UI_EVENT_SELECTION_CHANGED, NULL);
- if (!_entry_win_is_wl(data))
+ // XXX: still try primary selection even if on wl in case it's
+ // supported
+// if (!_entry_win_is_wl(data))
_selection_store(ELM_SEL_TYPE_PRIMARY, data);
_update_selection_handler(data);
if (_elm_config->atspi_mode)
- efl_access_event_emit(EFL_ACCESS_MIXIN, data, EFL_ACCESS_TEXT_EVENT_ACCESS_TEXT_SELECTION_CHANGED, NULL);
+ efl_access_object_event_emit(EFL_ACCESS_OBJECT_MIXIN, data, EFL_ACCESS_TEXT_EVENT_ACCESS_TEXT_SELECTION_CHANGED, NULL);
}
static void
@@ -2327,12 +2355,15 @@ _entry_selection_cleared_signal_cb(void *data,
{
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
if (!sd->have_selection) return;
sd->have_selection = EINA_FALSE;
efl_event_callback_legacy_call
(data, EFL_UI_EVENT_SELECTION_CLEARED, NULL);
- if (!_entry_win_is_wl(data))
+ // XXX: still try primary selection even if on wl in case it's
+ // supported
+// if (!_entry_win_is_wl(data))
{
if (sd->cut_sel)
{
@@ -2361,11 +2392,14 @@ _entry_paste_request_signal_cb(void *data,
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
Elm_Sel_Type type = (emission[sizeof("ntry,paste,request,")] == '1') ?
ELM_SEL_TYPE_PRIMARY : ELM_SEL_TYPE_CLIPBOARD;
if (!sd->editable) return;
- if ((type == ELM_SEL_TYPE_PRIMARY) && _entry_win_is_wl(data)) return;
+ // XXX: still try primary selection even if on wl in case it's
+ // supported
+// if ((type == ELM_SEL_TYPE_PRIMARY) && _entry_win_is_wl(data)) return;
efl_event_callback_legacy_call
(data, EFL_UI_EVENT_SELECTION_PASTE, NULL);
@@ -2410,6 +2444,7 @@ _entry_cursor_changed_signal_cb(void *data,
const char *source EINA_UNUSED)
{
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
sd->cursor_pos = edje_object_part_text_cursor_pos_get
(sd->entry_edje, "elm.text", EDJE_CURSOR_MAIN);
sd->cur_changed = EINA_TRUE;
@@ -2420,7 +2455,7 @@ _entry_cursor_changed_signal_cb(void *data,
efl_event_callback_legacy_call(data, ELM_ENTRY_EVENT_CURSOR_CHANGED, NULL);
if (_elm_config->atspi_mode)
- efl_access_event_emit(EFL_ACCESS_MIXIN, data, EFL_ACCESS_TEXT_EVENT_ACCESS_TEXT_CARET_MOVED, NULL);
+ efl_access_object_event_emit(EFL_ACCESS_OBJECT_MIXIN, data, EFL_ACCESS_TEXT_EVENT_ACCESS_TEXT_CARET_MOVED, NULL);
}
static void
@@ -2432,7 +2467,7 @@ _entry_cursor_changed_manual_signal_cb(void *data,
efl_event_callback_legacy_call
(data, ELM_ENTRY_EVENT_CURSOR_CHANGED_MANUAL, NULL);
if (_elm_config->atspi_mode)
- efl_access_event_emit(EFL_ACCESS_MIXIN, data, EFL_ACCESS_TEXT_EVENT_ACCESS_TEXT_CARET_MOVED, NULL);
+ efl_access_object_event_emit(EFL_ACCESS_OBJECT_MIXIN, data, EFL_ACCESS_TEXT_EVENT_ACCESS_TEXT_CARET_MOVED, NULL);
}
static void
@@ -2480,6 +2515,7 @@ _entry_anchor_down_signal_cb(void *data,
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
p = emission + sizeof("nchor,mouse,down,");
ei.button = strtol(p, &p2, 10);
ei.name = p2 + 1;
@@ -2503,6 +2539,7 @@ _entry_anchor_up_signal_cb(void *data,
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
p = emission + sizeof("nchor,mouse,up,");
ei.button = strtol(p, &p2, 10);
ei.name = p2 + 1;
@@ -2522,6 +2559,7 @@ _anchor_hover_del_cb(void *data,
{
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
ELM_SAFE_FREE(sd->anchor_hover.pop, evas_object_del);
evas_object_event_callback_del_full
(sd->anchor_hover.hover, EVAS_CALLBACK_DEL, _anchor_hover_del_cb, obj);
@@ -2543,6 +2581,7 @@ _entry_hover_anchor_clicked_do(Evas_Object *obj,
ELM_ENTRY_DATA_GET(obj, sd);
+ if (!sd) return;
if (sd->hoversel) return;
ei.anchor_info = info;
@@ -2622,6 +2661,7 @@ _entry_anchor_clicked_signal_cb(void *data,
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
p = emission + sizeof("nchor,mouse,clicked,");
ei.button = strtol(p, &p2, 10);
ei.name = p2 + 1;
@@ -2654,6 +2694,7 @@ _entry_anchor_in_signal_cb(void *data,
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
ei.name = emission + sizeof("nchor,mouse,in,");
ei.button = 0;
ei.x = ei.y = ei.w = ei.h = 0;
@@ -2674,6 +2715,7 @@ _entry_anchor_out_signal_cb(void *data,
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
ei.name = emission + sizeof("nchor,mouse,out,");
ei.button = 0;
ei.x = ei.y = ei.w = ei.h = 0;
@@ -2690,7 +2732,10 @@ _entry_key_enter_signal_cb(void *data,
const char *emission EINA_UNUSED,
const char *source EINA_UNUSED)
{
- efl_event_callback_legacy_call(data, ELM_ENTRY_EVENT_ACTIVATED, NULL);
+ ELM_ENTRY_DATA_GET(data, sd);
+
+ if (sd->single_line)
+ efl_event_callback_legacy_call(data, ELM_ENTRY_EVENT_ACTIVATED, NULL);
}
static void
@@ -2699,7 +2744,10 @@ _entry_key_escape_signal_cb(void *data,
const char *emission EINA_UNUSED,
const char *source EINA_UNUSED)
{
- efl_event_callback_legacy_call(data, ELM_ENTRY_EVENT_ABORTED, NULL);
+ ELM_ENTRY_DATA_GET(data, sd);
+
+ if (sd->single_line)
+ efl_event_callback_legacy_call(data, ELM_ENTRY_EVENT_ABORTED, NULL);
}
static void
@@ -2754,6 +2802,7 @@ _item_get(void *data,
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return NULL;
EINA_LIST_FOREACH(sd->item_providers, l, ip)
{
o = ip->func(ip->data, data, item);
@@ -2873,6 +2922,7 @@ _markup_filter_cb(void *data,
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
EINA_LIST_FOREACH(sd->markup_filters, l, tf)
{
tf->func(tf->data, data, text);
@@ -2891,6 +2941,7 @@ _text_append_idler(void *data)
ELM_ENTRY_DATA_GET(obj, sd);
+ if (!sd) return ECORE_CALLBACK_CANCEL;
evas_event_freeze(evas_object_evas_get(obj));
ELM_SAFE_FREE(sd->text, eina_stringshare_del);
sd->changed = EINA_TRUE;
@@ -3168,6 +3219,7 @@ _entry_text_append(Evas_Object* obj, const char* entry, Eina_Bool set)
if (!entry) return;
ELM_ENTRY_DATA_GET(obj, sd);
+ if (!sd) return;
len = strlen(entry);
if (sd->append_text_left)
@@ -3324,6 +3376,7 @@ _access_info_cb(void *data EINA_UNUSED, Evas_Object *obj)
ELM_ENTRY_DATA_GET(obj, sd);
+ if (!sd) return NULL;
if (sd->password) return NULL;
txt = elm_widget_access_info_get(obj);
@@ -3341,6 +3394,7 @@ _access_state_cb(void *data EINA_UNUSED, Evas_Object *obj)
ELM_ENTRY_DATA_GET(obj, sd);
+ if (!sd) return NULL;
ret = NULL;
buf = eina_strbuf_new();
@@ -3437,6 +3491,7 @@ _elm_entry_resize_internal(Evas_Object *obj)
{
ELM_ENTRY_DATA_GET(obj, sd);
+ if (!sd) return;
if (sd->line_wrap)
{
elm_layout_sizing_eval(obj);
@@ -3473,6 +3528,7 @@ _selection_handlers_offset_calc(Evas_Object *obj, Evas_Object *handler, Evas_Coo
ELM_ENTRY_DATA_GET(obj, sd);
+ if (!sd) return;
evas_object_geometry_get(sd->entry_edje, &ex, &ey, NULL, NULL);
edje_object_part_text_cursor_geometry_get(sd->entry_edje, "elm.text",
&cx, &cy, &cw, &ch);
@@ -3502,6 +3558,7 @@ _start_handler_mouse_down_cb(void *data,
{
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
Evas_Event_Mouse_Down *ev = event_info;
int start_pos, end_pos, main_pos, pos;
@@ -3536,6 +3593,7 @@ _start_handler_mouse_up_cb(void *data,
{
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
sd->start_handler_down = EINA_FALSE;
if (_elm_config->magnifier_enable)
_magnifier_hide(data);
@@ -3554,6 +3612,7 @@ _start_handler_mouse_move_cb(void *data,
{
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
if (!sd->start_handler_down) return;
Evas_Event_Mouse_Move *ev = event_info;
Evas_Coord ex, ey;
@@ -3585,6 +3644,7 @@ _end_handler_mouse_down_cb(void *data,
{
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
Evas_Event_Mouse_Down *ev = event_info;
int pos, start_pos, end_pos, main_pos;
@@ -3619,6 +3679,7 @@ _end_handler_mouse_up_cb(void *data,
{
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
sd->end_handler_down = EINA_FALSE;
if (_elm_config->magnifier_enable)
_magnifier_hide(data);
@@ -3637,6 +3698,7 @@ _end_handler_mouse_move_cb(void *data,
{
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
if (!sd->end_handler_down) return;
Evas_Event_Mouse_Move *ev = event_info;
Evas_Coord ex, ey;
@@ -3667,6 +3729,7 @@ _entry_on_size_evaluate_signal(void *data,
const char *source EINA_UNUSED)
{
ELM_ENTRY_DATA_GET(data, sd);
+ if (!sd) return;
sd->cur_changed = EINA_TRUE;
elm_entry_calc_force(data);
}
@@ -3955,13 +4018,13 @@ _elm_entry_efl_canvas_group_group_del(Eo *obj, Elm_Entry_Data *sd)
}
EOLIAN static void
-_elm_entry_efl_gfx_position_set(Eo *obj, Elm_Entry_Data *sd, Eina_Position2D pos)
+_elm_entry_efl_gfx_entity_position_set(Eo *obj, Elm_Entry_Data *sd, Eina_Position2D pos)
{
if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, pos.x, pos.y))
return;
- efl_gfx_position_set(efl_super(obj, MY_CLASS), pos);
- efl_gfx_position_set(sd->hit_rect, pos);
+ efl_gfx_entity_position_set(efl_super(obj, MY_CLASS), pos);
+ efl_gfx_entity_position_set(sd->hit_rect, pos);
if (sd->hoversel) _hoversel_position(obj);
@@ -3970,25 +4033,25 @@ _elm_entry_efl_gfx_position_set(Eo *obj, Elm_Entry_Data *sd, Eina_Position2D pos
}
EOLIAN static void
-_elm_entry_efl_gfx_size_set(Eo *obj, Elm_Entry_Data *sd, Eina_Size2D sz)
+_elm_entry_efl_gfx_entity_size_set(Eo *obj, Elm_Entry_Data *sd, Eina_Size2D sz)
{
if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_RESIZE, 0, sz.w, sz.h))
return;
- efl_gfx_size_set(sd->hit_rect, sz);
+ efl_gfx_entity_size_set(sd->hit_rect, sz);
if (sd->have_selection)
_update_selection_handler(obj);
- efl_gfx_size_set(efl_super(obj, MY_CLASS), sz);
+ efl_gfx_entity_size_set(efl_super(obj, MY_CLASS), sz);
}
EOLIAN static void
-_elm_entry_efl_gfx_visible_set(Eo *obj, Elm_Entry_Data *sd, Eina_Bool vis)
+_elm_entry_efl_gfx_entity_visible_set(Eo *obj, Elm_Entry_Data *sd, Eina_Bool vis)
{
if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_VISIBLE, 0, vis))
return;
- efl_gfx_visible_set(efl_super(obj, MY_CLASS), vis);
+ efl_gfx_entity_visible_set(efl_super(obj, MY_CLASS), vis);
if (sd->have_selection)
{
@@ -4016,9 +4079,10 @@ elm_entry_add(Evas_Object *parent)
static void
_cb_added(void *data EINA_UNUSED, const Efl_Event *ev)
{
- const Efl_Callback_Array_Item *event = ev->info;
+ const Efl_Callback_Array_Item_Full *event = ev->info;
ELM_ENTRY_DATA_GET(ev->object, sd);
+ // XXX: BUG - not walking the array until a NULL entry
if (event->desc == ELM_ENTRY_EVENT_VALIDATE)
sd->validators++;
}
@@ -4026,9 +4090,10 @@ _cb_added(void *data EINA_UNUSED, const Efl_Event *ev)
static void
_cb_deleted(void *data EINA_UNUSED, const Efl_Event *ev)
{
- const Efl_Callback_Array_Item *event = ev->info;
+ const Efl_Callback_Array_Item_Full *event = ev->info;
ELM_ENTRY_DATA_GET(ev->object, sd);
+ // XXX: BUG - not walking the array until a NULL entry
if (event->desc == ELM_ENTRY_EVENT_VALIDATE)
sd->validators--;
return;
@@ -4041,7 +4106,7 @@ _elm_entry_efl_object_constructor(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED)
obj = efl_constructor(efl_super(obj, MY_CLASS));
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
- efl_access_role_set(obj, EFL_ACCESS_ROLE_ENTRY);
+ efl_access_object_role_set(obj, EFL_ACCESS_ROLE_ENTRY);
efl_event_callback_add(obj, EFL_EVENT_CALLBACK_ADD, _cb_added, NULL);
efl_event_callback_add(obj, EFL_EVENT_CALLBACK_DEL, _cb_deleted, NULL);
@@ -4102,7 +4167,7 @@ _elm_entry_single_line_set(Eo *obj, Elm_Entry_Data *sd, Eina_Bool single_line)
}
EOLIAN static Eina_Bool
-_elm_entry_single_line_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_single_line_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
return sd->single_line;
}
@@ -4126,7 +4191,7 @@ _elm_entry_password_set(Eo *obj, Elm_Entry_Data *sd, Eina_Bool password)
sd->line_wrap = ELM_WRAP_NONE;
elm_entry_input_hint_set(obj, ((sd->input_hints & ~ELM_INPUT_HINT_AUTO_COMPLETE) | ELM_INPUT_HINT_SENSITIVE_DATA));
_entry_selection_callbacks_unregister(obj);
- efl_access_role_set(obj, EFL_ACCESS_ROLE_PASSWORD_TEXT);
+ efl_access_object_role_set(obj, EFL_ACCESS_ROLE_PASSWORD_TEXT);
}
else
{
@@ -4139,19 +4204,25 @@ _elm_entry_password_set(Eo *obj, Elm_Entry_Data *sd, Eina_Bool password)
elm_entry_input_hint_set(obj, ((sd->input_hints | ELM_INPUT_HINT_AUTO_COMPLETE) & ~ELM_INPUT_HINT_SENSITIVE_DATA));
_entry_selection_callbacks_register(obj);
- efl_access_role_set(obj, EFL_ACCESS_ROLE_ENTRY);
+ efl_access_object_role_set(obj, EFL_ACCESS_ROLE_ENTRY);
}
efl_ui_widget_theme_apply(obj);
}
EOLIAN static Eina_Bool
-_elm_entry_password_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_password_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
return sd->password;
}
EAPI void
+elm_entry_calc_force(Evas_Object *obj)
+{
+ efl_layout_calc_force(obj);
+}
+
+EAPI void
elm_entry_entry_set(Evas_Object *obj,
const char *entry)
{
@@ -4192,14 +4263,14 @@ _elm_entry_is_empty(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
}
EOLIAN static Evas_Object*
-_elm_entry_textblock_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_textblock_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
return (Evas_Object *)edje_object_part_object_get
(sd->entry_edje, "elm.text");
}
EOLIAN static void
-_elm_entry_calc_force(Eo *obj, Elm_Entry_Data *sd)
+_elm_entry_efl_layout_calc_calc_force(Eo *obj, Elm_Entry_Data *sd)
{
edje_object_calc_force(sd->entry_edje);
sd->changed = EINA_TRUE;
@@ -4207,7 +4278,7 @@ _elm_entry_calc_force(Eo *obj, Elm_Entry_Data *sd)
}
EOLIAN static const char*
-_elm_entry_selection_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_selection_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
if ((sd->password)) return NULL;
return edje_object_part_text_selection_get(sd->entry_edje, "elm.text");
@@ -4221,7 +4292,7 @@ _elm_entry_selection_handler_disabled_set(Eo *obj EINA_UNUSED, Elm_Entry_Data *s
}
EOLIAN static Eina_Bool
-_elm_entry_selection_handler_disabled_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_selection_handler_disabled_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
return sd->sel_handler_disabled;
}
@@ -4246,7 +4317,7 @@ _elm_entry_line_wrap_set(Eo *obj, Elm_Entry_Data *sd, Elm_Wrap_Type wrap)
}
EOLIAN static Elm_Wrap_Type
-_elm_entry_line_wrap_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_line_wrap_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
return sd->line_wrap;
}
@@ -4282,7 +4353,7 @@ _elm_entry_editable_set(Eo *obj, Elm_Entry_Data *sd, Eina_Bool editable)
}
EOLIAN static Eina_Bool
-_elm_entry_editable_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_editable_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
return sd->editable;
}
@@ -4351,7 +4422,7 @@ _elm_entry_select_region_set(Eo *obj, Elm_Entry_Data *sd, int start, int end)
}
EOLIAN static void
-_elm_entry_select_region_get(Eo *obj, Elm_Entry_Data *sd, int *start, int *end)
+_elm_entry_select_region_get(const Eo *obj, Elm_Entry_Data *sd, int *start, int *end)
{
if (!elm_entry_selection_get(obj))
{
@@ -4367,7 +4438,7 @@ _elm_entry_select_region_get(Eo *obj, Elm_Entry_Data *sd, int *start, int *end)
}
EOLIAN static Eina_Bool
-_elm_entry_cursor_geometry_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h)
+_elm_entry_textblock_cursor_geometry_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h)
{
edje_object_part_text_cursor_geometry_get
(sd->entry_edje, "elm.text", x, y, w, h);
@@ -4443,21 +4514,21 @@ _elm_entry_cursor_selection_end(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
}
EOLIAN static Eina_Bool
-_elm_entry_cursor_is_format_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_cursor_is_format_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
return edje_object_part_text_cursor_is_format_get
(sd->entry_edje, "elm.text", EDJE_CURSOR_MAIN);
}
EOLIAN static Eina_Bool
-_elm_entry_cursor_is_visible_format_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_cursor_is_visible_format_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
return edje_object_part_text_cursor_is_visible_format_get
(sd->entry_edje, "elm.text", EDJE_CURSOR_MAIN);
}
EOLIAN static char*
-_elm_entry_cursor_content_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_textblock_cursor_content_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
return edje_object_part_text_cursor_content_get
(sd->entry_edje, "elm.text", EDJE_CURSOR_MAIN);
@@ -4472,7 +4543,7 @@ _elm_entry_cursor_pos_set(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd, int pos)
}
EOLIAN static int
-_elm_entry_cursor_pos_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_cursor_pos_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
return edje_object_part_text_cursor_pos_get
(sd->entry_edje, "elm.text", EDJE_CURSOR_MAIN);
@@ -4538,7 +4609,7 @@ _elm_entry_context_menu_disabled_set(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd, Ei
}
EOLIAN static Eina_Bool
-_elm_entry_context_menu_disabled_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_context_menu_disabled_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
return !sd->context_menu;
}
@@ -4898,7 +4969,7 @@ elm_entry_file_get(const Evas_Object *obj, const char **file, Elm_Text_Format *f
}
EOLIAN static void
-_elm_entry_efl_file_file_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd, const char **file, const char **group)
+_elm_entry_efl_file_file_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd, const char **file, const char **group)
{
if (file) *file = sd->file;
if (group) *group = NULL;
@@ -4920,7 +4991,7 @@ _elm_entry_autosave_set(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd, Eina_Bool auto_
}
EOLIAN static Eina_Bool
-_elm_entry_autosave_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_autosave_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
return sd->auto_save;
}
@@ -4973,7 +5044,7 @@ _elm_entry_cnp_mode_set(Eo *obj, Elm_Entry_Data *sd, Elm_Cnp_Mode cnp_mode)
}
EOLIAN static Elm_Cnp_Mode
-_elm_entry_cnp_mode_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_cnp_mode_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
return sd->cnp_mode;
}
@@ -5064,7 +5135,7 @@ _elm_entry_scrollable_set(Eo *obj, Elm_Entry_Data *sd, Eina_Bool scroll)
}
EOLIAN static Eina_Bool
-_elm_entry_scrollable_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_scrollable_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
return sd->scroll;
}
@@ -5165,7 +5236,7 @@ _elm_entry_input_panel_layout_set(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd, Elm_I
}
EOLIAN static Elm_Input_Panel_Layout
-_elm_entry_input_panel_layout_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_input_panel_layout_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
return sd->input_panel_layout;
}
@@ -5184,7 +5255,7 @@ _elm_entry_input_panel_layout_variation_set(Eo *obj EINA_UNUSED, Elm_Entry_Data
}
EOLIAN static int
-_elm_entry_input_panel_layout_variation_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_input_panel_layout_variation_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
return sd->input_panel_layout_variation;
}
@@ -5198,7 +5269,7 @@ _elm_entry_autocapital_type_set(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd, Elm_Aut
}
EOLIAN static Elm_Autocapital_Type
-_elm_entry_autocapital_type_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_autocapital_type_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
return sd->autocapital_type;
}
@@ -5212,7 +5283,7 @@ _elm_entry_prediction_allow_set(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd, Eina_Bo
}
EOLIAN static Eina_Bool
-_elm_entry_prediction_allow_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_prediction_allow_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
return sd->prediction_allow;
}
@@ -5227,7 +5298,7 @@ _elm_entry_input_hint_set(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd, Elm_Input_Hin
}
EOLIAN static Elm_Input_Hints
-_elm_entry_input_hint_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_input_hint_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
return sd->input_hints;
}
@@ -5244,6 +5315,20 @@ _elm_entry_prediction_hint_set(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd, const ch
(sd->entry_edje, "elm.text", prediction_hint);
}
+EOLIAN static Eina_Bool
+_elm_entry_prediction_hint_hash_set(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd, const char *key, const char *value)
+{
+ return edje_object_part_text_prediction_hint_hash_set
+ (sd->entry_edje, "elm.text", key, value);
+}
+
+EOLIAN static Eina_Bool
+_elm_entry_prediction_hint_hash_del(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd, const char *key)
+{
+ return edje_object_part_text_prediction_hint_hash_del
+ (sd->entry_edje, "elm.text", key);
+}
+
EOLIAN static void
_elm_entry_imf_context_reset(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
@@ -5259,7 +5344,7 @@ _elm_entry_input_panel_enabled_set(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd, Eina
}
EOLIAN static Eina_Bool
-_elm_entry_input_panel_enabled_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_input_panel_enabled_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
return sd->input_panel_enable;
}
@@ -5286,7 +5371,7 @@ _elm_entry_input_panel_language_set(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd, Elm
}
EOLIAN static Elm_Input_Panel_Lang
-_elm_entry_input_panel_language_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_input_panel_language_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
return sd->input_panel_lang;
}
@@ -5322,7 +5407,7 @@ _elm_entry_input_panel_return_key_type_set(Eo *obj EINA_UNUSED, Elm_Entry_Data *
}
EOLIAN static Elm_Input_Panel_Return_Key_Type
-_elm_entry_input_panel_return_key_type_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_input_panel_return_key_type_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
return sd->input_panel_return_key_type;
}
@@ -5337,7 +5422,7 @@ _elm_entry_input_panel_return_key_disabled_set(Eo *obj EINA_UNUSED, Elm_Entry_Da
}
EOLIAN static Eina_Bool
-_elm_entry_input_panel_return_key_disabled_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_input_panel_return_key_disabled_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
return sd->input_panel_return_key_disabled;
}
@@ -5359,13 +5444,13 @@ _elm_entry_input_panel_show_on_demand_set(Eo *obj EINA_UNUSED, Elm_Entry_Data *s
}
EOLIAN static Eina_Bool
-_elm_entry_input_panel_show_on_demand_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_input_panel_show_on_demand_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
return sd->input_panel_show_on_demand;
}
EOLIAN static void*
-_elm_entry_imf_context_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_imf_context_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
if (!sd) return NULL;
@@ -5399,7 +5484,7 @@ _elm_entry_anchor_hover_parent_set(Eo *obj, Elm_Entry_Data *sd, Evas_Object *par
}
EOLIAN static Evas_Object*
-_elm_entry_anchor_hover_parent_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_anchor_hover_parent_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
return sd->anchor_hover.hover_parent;
}
@@ -5411,7 +5496,7 @@ _elm_entry_anchor_hover_style_set(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd, const
}
EOLIAN static const char*
-_elm_entry_anchor_hover_style_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_anchor_hover_style_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
return sd->anchor_hover.hover_style;
}
@@ -5440,7 +5525,7 @@ _activate(Evas_Object *obj)
}
EOLIAN static Eina_Bool
-_elm_entry_elm_widget_on_access_activate(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, Efl_Ui_Activate act)
+_elm_entry_efl_ui_widget_on_access_activate(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, Efl_Ui_Activate act)
{
if (act != EFL_UI_ACTIVATE_DEFAULT) return EINA_FALSE;
_activate(obj);
@@ -5458,7 +5543,7 @@ _elm_entry_select_allow_set(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd, Eina_Bool a
}
EOLIAN static Eina_Bool
-_elm_entry_select_allow_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
+_elm_entry_select_allow_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd)
{
return sd->sel_allow;
}
@@ -5472,7 +5557,7 @@ _elm_entry_class_constructor(Efl_Class *klass)
// ATSPI Accessibility
EOLIAN static Eina_Unicode
-_elm_entry_efl_access_text_character_get(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, int offset)
+_elm_entry_efl_access_text_character_get(const Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, int offset)
{
char *txt;
int idx = 0;
@@ -5494,7 +5579,7 @@ _elm_entry_efl_access_text_character_get(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSE
}
EOLIAN static int
-_elm_entry_efl_access_text_character_count_get(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED)
+_elm_entry_efl_access_text_character_count_get(const Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED)
{
char *txt;
int ret = -1;
@@ -5509,7 +5594,7 @@ _elm_entry_efl_access_text_character_count_get(Eo *obj, Elm_Entry_Data *_pd EINA
}
EOLIAN static char*
-_elm_entry_efl_access_text_string_get(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, Efl_Access_Text_Granularity granularity, int *start_offset, int *end_offset)
+_elm_entry_efl_access_text_string_get(const Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, Efl_Access_Text_Granularity granularity, int *start_offset, int *end_offset)
{
Evas_Textblock_Cursor *cur = NULL, *cur2 = NULL;
Evas_Object *tblk;
@@ -5594,7 +5679,7 @@ fail:
}
EOLIAN static char*
-_elm_entry_efl_access_text_text_get(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, int start_offset, int end_offset)
+_elm_entry_efl_access_text_access_text_get(const Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, int start_offset, int end_offset)
{
Evas_Textblock_Cursor *cur = NULL, *cur2 = NULL;
Evas_Object *tblk;
@@ -5634,7 +5719,7 @@ fail:
}
EOLIAN static int
-_elm_entry_efl_access_text_caret_offset_get(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED)
+_elm_entry_efl_access_text_caret_offset_get(const Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED)
{
return elm_entry_cursor_pos_get(obj);
}
@@ -5647,13 +5732,13 @@ _elm_entry_efl_access_text_caret_offset_set(Eo *obj, Elm_Entry_Data *_pd EINA_UN
}
EOLIAN static int
-_elm_entry_efl_access_text_selections_count_get(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED)
+_elm_entry_efl_access_text_selections_count_get(const Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED)
{
return elm_entry_selection_get(obj) ? 1 : 0;
}
EOLIAN static void
-_elm_entry_efl_access_text_selection_get(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, int selection_number, int *start_offset, int *end_offset)
+_elm_entry_efl_access_text_access_selection_get(const Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, int selection_number, int *start_offset, int *end_offset)
{
if (selection_number != 0) return;
@@ -5661,7 +5746,7 @@ _elm_entry_efl_access_text_selection_get(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSE
}
EOLIAN static Eina_Bool
-_elm_entry_efl_access_text_selection_set(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, int selection_number, int start_offset, int end_offset)
+_elm_entry_efl_access_text_access_selection_set(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, int selection_number, int start_offset, int end_offset)
{
if (selection_number != 0) return EINA_FALSE;
@@ -5687,13 +5772,13 @@ _elm_entry_efl_access_text_selection_add(Eo *obj, Elm_Entry_Data *pd EINA_UNUSED
}
EOLIAN static Eina_List*
-_elm_entry_efl_access_text_bounded_ranges_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *_pd EINA_UNUSED, Eina_Bool screen_coods EINA_UNUSED, Eina_Rect rect EINA_UNUSED, Efl_Access_Text_Clip_Type xclip EINA_UNUSED, Efl_Access_Text_Clip_Type yclip EINA_UNUSED)
+_elm_entry_efl_access_text_bounded_ranges_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *_pd EINA_UNUSED, Eina_Bool screen_coods EINA_UNUSED, Eina_Rect rect EINA_UNUSED, Efl_Access_Text_Clip_Type xclip EINA_UNUSED, Efl_Access_Text_Clip_Type yclip EINA_UNUSED)
{
return NULL;
}
EOLIAN static int
-_elm_entry_efl_access_text_offset_at_point_get(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, Eina_Bool screen_coods, int x, int y)
+_elm_entry_efl_access_text_offset_at_point_get(const Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, Eina_Bool screen_coods, int x, int y)
{
Evas_Object *txtblk;
Evas_Textblock_Cursor *cur;
@@ -5727,7 +5812,7 @@ _elm_entry_efl_access_text_offset_at_point_get(Eo *obj, Elm_Entry_Data *_pd EINA
}
EOLIAN static Eina_Bool
-_elm_entry_efl_access_text_character_extents_get(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, int offset, Eina_Bool screen_coods, Eina_Rect *rect)
+_elm_entry_efl_access_text_character_extents_get(const Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, int offset, Eina_Bool screen_coods, Eina_Rect *rect)
{
Evas_Object *txtblk;
Evas_Textblock_Cursor *cur;
@@ -5759,7 +5844,7 @@ _elm_entry_efl_access_text_character_extents_get(Eo *obj, Elm_Entry_Data *_pd EI
}
EOLIAN static Eina_Bool
-_elm_entry_efl_access_text_range_extents_get(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, Eina_Bool screen_coods, int start_offset, int end_offset, Eina_Rect *rect)
+_elm_entry_efl_access_text_range_extents_get(const Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, Eina_Bool screen_coods, int start_offset, int end_offset, Eina_Rect *rect)
{
Evas_Object *txtblk;
Evas_Textblock_Cursor *cur1, *cur2;
@@ -5837,7 +5922,7 @@ _textblock_node_format_to_atspi_text_attr(const Evas_Object_Textblock_Node_Forma
}
EOLIAN static Eina_Bool
-_elm_entry_efl_access_text_attribute_get(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, const char *attr_name EINA_UNUSED, int *start_offset, int *end_offset, char **value)
+_elm_entry_efl_access_text_attribute_get(const Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, const char *attr_name EINA_UNUSED, int *start_offset, int *end_offset, char **value)
{
Evas_Object *txtblk;
Evas_Textblock_Cursor *cur1, *cur2;
@@ -5885,7 +5970,7 @@ _elm_entry_efl_access_text_attribute_get(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSE
}
EOLIAN static Eina_List*
-_elm_entry_efl_access_text_attributes_get(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, int *start_offset, int *end_offset)
+_elm_entry_efl_access_text_text_attributes_get(const Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, int *start_offset, int *end_offset)
{
Evas_Object *txtblk;
Evas_Textblock_Cursor *cur1, *cur2;
@@ -5927,7 +6012,7 @@ _elm_entry_efl_access_text_attributes_get(Eo *obj, Elm_Entry_Data *_pd EINA_UNUS
}
EOLIAN static Eina_List*
-_elm_entry_efl_access_text_default_attributes_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *_pd EINA_UNUSED)
+_elm_entry_efl_access_text_default_attributes_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *_pd EINA_UNUSED)
{
Evas_Object *txtblk;
Eina_List *ret = NULL;
@@ -5952,7 +6037,7 @@ _elm_entry_efl_access_text_default_attributes_get(Eo *obj EINA_UNUSED, Elm_Entry
}
EOLIAN static Eina_Bool
-_elm_entry_efl_access_editable_text_content_set(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, const char *content)
+_elm_entry_efl_access_editable_text_text_content_set(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED, const char *content)
{
elm_entry_entry_set(obj, content);
return EINA_TRUE;
@@ -6025,10 +6110,10 @@ _elm_entry_efl_access_editable_text_cut(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED
}
EOLIAN static Efl_Access_State_Set
-_elm_entry_efl_access_state_set_get(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED)
+_elm_entry_efl_access_object_state_set_get(const Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED)
{
Efl_Access_State_Set ret;
- ret = efl_access_state_set_get(efl_super(obj, ELM_ENTRY_CLASS));
+ ret = efl_access_object_state_set_get(efl_super(obj, ELM_ENTRY_CLASS));
if (elm_entry_editable_get(obj))
STATE_TYPE_SET(ret, EFL_ACCESS_STATE_EDITABLE);
@@ -6037,10 +6122,10 @@ _elm_entry_efl_access_state_set_get(Eo *obj, Elm_Entry_Data *_pd EINA_UNUSED)
}
EOLIAN static const char*
-_elm_entry_efl_access_name_get(Eo *obj, Elm_Entry_Data *sd)
+_elm_entry_efl_access_object_i18n_name_get(const Eo *obj, Elm_Entry_Data *sd)
{
const char *name;
- name = efl_access_name_get(efl_super(obj, ELM_ENTRY_CLASS));
+ name = efl_access_object_i18n_name_get(efl_super(obj, ELM_ENTRY_CLASS));
if (name && strncmp("", name, 1)) return name;
if (sd->password) return NULL;
@@ -6060,7 +6145,7 @@ _action_activate(Evas_Object *obj, const char *params EINA_UNUSED)
}
EOLIAN const Efl_Access_Action_Data *
-_elm_entry_efl_access_widget_action_elm_actions_get(Eo *obj EINA_UNUSED, Elm_Entry_Data *sd EINA_UNUSED)
+_elm_entry_efl_access_widget_action_elm_actions_get(const Eo *obj EINA_UNUSED, Elm_Entry_Data *sd EINA_UNUSED)
{
static Efl_Access_Action_Data atspi_actions[] = {
{ "activate", "activate", NULL, _action_activate },
@@ -6069,6 +6154,15 @@ _elm_entry_efl_access_widget_action_elm_actions_get(Eo *obj EINA_UNUSED, Elm_Ent
return &atspi_actions[0];
}
+EOLIAN static Efl_Ui_Focus_Manager*
+_elm_entry_efl_ui_widget_focus_manager_focus_manager_create(Eo *obj, Elm_Entry_Data *pd EINA_UNUSED, Efl_Ui_Focus_Object *root)
+{
+ return efl_add(EFL_UI_FOCUS_MANAGER_CALC_CLASS, obj,
+ efl_ui_focus_manager_root_set(efl_added, root)
+ );
+}
+
+
/* Efl.Part begin */
ELM_PART_OVERRIDE(elm_entry, ELM_ENTRY, Elm_Entry_Data)