summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Hacohen <tom@stosb.com>2016-06-13 08:34:22 +0100
committerTom Hacohen <tom@stosb.com>2016-06-13 08:34:22 +0100
commita88e93196c0259bbbed021407b578a961dec1d60 (patch)
tree4ee01ace235cffcc424616335f2497cf3f38b04c
parent121e586ca0f65bf5fb2e38ad8019645c1709768b (diff)
downloadefl-a88e93196c0259bbbed021407b578a961dec1d60.tar.gz
Ui internal: Emit an event for selection changed.
-rw-r--r--src/lib/elementary/efl_ui_internal_text_interactive.c24
1 files changed, 17 insertions, 7 deletions
diff --git a/src/lib/elementary/efl_ui_internal_text_interactive.c b/src/lib/elementary/efl_ui_internal_text_interactive.c
index 76d0c93c47..a319eafcd4 100644
--- a/src/lib/elementary/efl_ui_internal_text_interactive.c
+++ b/src/lib/elementary/efl_ui_internal_text_interactive.c
@@ -549,15 +549,22 @@ _sel_enable(Evas_Textblock_Cursor *c EINA_UNUSED,
}
static void
-_emit_sel_state(Efl_Ui_Internal_Text_Interactive_Data *en)
+_emit_sel_state(Efl_Ui_Internal_Text_Interactive *obj, Efl_Ui_Internal_Text_Interactive_Data *en)
{
+ Efl_Ui_Text_Interactive_Selection_Info info = {0};
+
if (efl_canvas_text_cursor_equal(en->sel_start, en->sel_end))
{
- // _emit("selection,reset", en->rp->part->name);
+ info.start = info.end = NULL;
+
+ eo_event_callback_call(obj, EFL_UI_TEXT_INTERACTIVE_EVENT_SELECTION_CHANGED, &info);
}
else
{
- // _emit("selection,changed", en->rp->part->name);
+ info.start = en->sel_start;
+ info.end = en->sel_end;
+
+ eo_event_callback_call(obj, EFL_UI_TEXT_INTERACTIVE_EVENT_SELECTION_CHANGED, &info);
}
}
@@ -577,7 +584,7 @@ _sel_extend(Evas_Textblock_Cursor *c, Evas_Object *o, Efl_Ui_Internal_Text_Inter
free(en->selection);
en->selection = NULL;
}
- _emit_sel_state(en);
+ _emit_sel_state(o, en);
}
static void
@@ -596,11 +603,11 @@ _sel_preextend(Evas_Textblock_Cursor *c, Evas_Object *o, Efl_Ui_Internal_Text_In
free(en->selection);
en->selection = NULL;
}
- _emit_sel_state(en);
+ _emit_sel_state(o, en);
}
static void
-_sel_clear(Evas_Textblock_Cursor *c EINA_UNUSED, Evas_Object *o EINA_UNUSED, Efl_Ui_Internal_Text_Interactive_Data *en)
+_sel_clear(Evas_Textblock_Cursor *c EINA_UNUSED, Evas_Object *o, Efl_Ui_Internal_Text_Interactive_Data *en)
{
en->had_sel = EINA_FALSE;
if (en->sel_start)
@@ -628,7 +635,10 @@ _sel_clear(Evas_Textblock_Cursor *c EINA_UNUSED, Evas_Object *o EINA_UNUSED, Efl
if (en->have_selection)
{
en->have_selection = EINA_FALSE;
- // _emit("selection,cleared", en->rp->part->name);
+ Efl_Ui_Text_Interactive_Selection_Info info = {0};
+ info.start = info.end = NULL;
+
+ eo_event_callback_call(o, EFL_UI_TEXT_INTERACTIVE_EVENT_SELECTION_CHANGED, &info);
}
}