efl.text_markup: move cursor-related methods to efl.text_markup_interactive

many users of the markup property are not interactive text cases, so splitting
off the interactive methods resolves a number of unimplemented method issues

ref T5719

Differential Revision: https://phab.enlightenment.org/D7787
This commit is contained in:
Mike Blumenkrantz 2019-01-28 11:10:40 -05:00 committed by Marcel Hollerbach
parent 31794a18e1
commit 9aca866fd1
14 changed files with 47 additions and 34 deletions

View File

@ -34,6 +34,7 @@ efl_eolian_files = \
lib/efl/interfaces/efl_text_cursor.eo \ lib/efl/interfaces/efl_text_cursor.eo \
lib/efl/interfaces/efl_text_annotate.eo \ lib/efl/interfaces/efl_text_annotate.eo \
lib/efl/interfaces/efl_text_markup.eo \ lib/efl/interfaces/efl_text_markup.eo \
lib/efl/interfaces/efl_text_markup_interactive.eo \
lib/efl/interfaces/efl_text_markup_util.eo \ lib/efl/interfaces/efl_text_markup_util.eo \
lib/efl/interfaces/efl_gfx_stack.eo \ lib/efl/interfaces/efl_gfx_stack.eo \
lib/efl/interfaces/efl_gfx_view.eo \ lib/efl/interfaces/efl_gfx_view.eo \

View File

@ -71,7 +71,7 @@ EDJE_PART_INVALID_VOID(efl_text_cursor_line_jump_by, _efl_canvas_layout_part_inv
EDJE_PART_INVALID_VOID(efl_text_cursor_copy, _efl_canvas_layout_part_invalid_efl_text_cursor_cursor_copy, Efl_Text_Cursor_Cursor *dst, const Efl_Text_Cursor_Cursor *src) EDJE_PART_INVALID_VOID(efl_text_cursor_copy, _efl_canvas_layout_part_invalid_efl_text_cursor_cursor_copy, Efl_Text_Cursor_Cursor *dst, const Efl_Text_Cursor_Cursor *src)
EDJE_PART_INVALID_CONST(Eina_Unicode, 0, efl_text_cursor_content_get, _efl_canvas_layout_part_invalid_efl_text_cursor_cursor_content_get, const Efl_Text_Cursor_Cursor *cur) EDJE_PART_INVALID_CONST(Eina_Unicode, 0, efl_text_cursor_content_get, _efl_canvas_layout_part_invalid_efl_text_cursor_cursor_content_get, const Efl_Text_Cursor_Cursor *cur)
EDJE_PART_INVALID_CONST(Eina_Bool, 0, efl_text_cursor_geometry_get, _efl_canvas_layout_part_invalid_efl_text_cursor_cursor_geometry_get, const Efl_Text_Cursor_Cursor *cur, Efl_Text_Cursor_Type ctype, int *cx, int *cy, int *cw, int *ch, int *cx2, int *cy2, int *cw2, int *ch2) EDJE_PART_INVALID_CONST(Eina_Bool, 0, efl_text_cursor_geometry_get, _efl_canvas_layout_part_invalid_efl_text_cursor_cursor_geometry_get, const Efl_Text_Cursor_Cursor *cur, Efl_Text_Cursor_Type ctype, int *cx, int *cy, int *cw, int *ch, int *cx2, int *cy2, int *cw2, int *ch2)
EDJE_PART_INVALID_VOID(efl_text_markup_cursor_markup_insert, _efl_canvas_layout_part_invalid_efl_text_markup_cursor_markup_insert, Efl_Text_Cursor_Cursor *cur, const char *markup) EDJE_PART_INVALID_VOID(efl_text_markup_interactive_cursor_markup_insert, _efl_canvas_layout_part_invalid_efl_text_markup_interactive_cursor_markup_insert, Efl_Text_Cursor_Cursor *cur, const char *markup)
EDJE_PART_INVALID(Eina_Iterator *, 0, efl_content_iterate, _efl_canvas_layout_part_invalid_efl_container_content_iterate) EDJE_PART_INVALID(Eina_Iterator *, 0, efl_content_iterate, _efl_canvas_layout_part_invalid_efl_container_content_iterate)
EDJE_PART_INVALID(int, 0, efl_content_count, _efl_canvas_layout_part_invalid_efl_container_content_count) EDJE_PART_INVALID(int, 0, efl_content_count, _efl_canvas_layout_part_invalid_efl_container_content_count)
EDJE_PART_INVALID(Eina_Bool, 0, efl_content_remove, _efl_canvas_layout_part_invalid_efl_container_content_remove, Efl_Gfx_Entity *content) EDJE_PART_INVALID(Eina_Bool, 0, efl_content_remove, _efl_canvas_layout_part_invalid_efl_container_content_remove, Efl_Gfx_Entity *content)

View File

@ -187,7 +187,7 @@ _efl_canvas_layout_part_text_efl_text_cursor_cursor_geometry_get(const Eo *obj,
} }
EOLIAN static void EOLIAN static void
_efl_canvas_layout_part_text_efl_text_markup_cursor_markup_insert(Eo *obj, _efl_canvas_layout_part_text_efl_text_markup_interactive_cursor_markup_insert(Eo *obj,
void *_pd EINA_UNUSED, Efl_Text_Cursor_Cursor *cur EINA_UNUSED, void *_pd EINA_UNUSED, Efl_Text_Cursor_Cursor *cur EINA_UNUSED,
const char *text) const char *text)
{ {

View File

@ -1,7 +1,7 @@
class Efl.Canvas.Layout_Part_Invalid extends Efl.Canvas.Layout_Part implements Efl.Content, class Efl.Canvas.Layout_Part_Invalid extends Efl.Canvas.Layout_Part implements Efl.Content,
Efl.Pack_Linear, Efl.Ui.Direction_Readonly, Efl.Pack_Linear, Efl.Ui.Direction_Readonly,
Efl.Pack_Table, Efl.Text, Efl.Pack_Table, Efl.Text,
Efl.Text_Markup Efl.Text_Markup, Efl.Text_Markup_Interactive
{ {
[[Common class for part proxy objects for @Efl.Canvas.Layout. [[Common class for part proxy objects for @Efl.Canvas.Layout.
@ -31,6 +31,7 @@ class Efl.Canvas.Layout_Part_Invalid extends Efl.Canvas.Layout_Part implements E
// Efl.Canvas.Layout_Part_Text // Efl.Canvas.Layout_Part_Text
Efl.Text.text { set; get; } Efl.Text.text { set; get; }
Efl.Text_Markup.markup { get; set; } Efl.Text_Markup.markup { get; set; }
Efl.Text_Markup_Interactive.cursor_markup_insert;
Efl.Text_Cursor.text_cursor { get; } Efl.Text_Cursor.text_cursor { get; }
Efl.Text_Cursor.cursor_paragraph_first; Efl.Text_Cursor.cursor_paragraph_first;
Efl.Text_Cursor.cursor_paragraph_last; Efl.Text_Cursor.cursor_paragraph_last;
@ -44,7 +45,6 @@ class Efl.Canvas.Layout_Part_Invalid extends Efl.Canvas.Layout_Part implements E
Efl.Text_Cursor.cursor_copy; Efl.Text_Cursor.cursor_copy;
Efl.Text_Cursor.cursor_content { get; } Efl.Text_Cursor.cursor_content { get; }
Efl.Text_Cursor.cursor_geometry { get; } Efl.Text_Cursor.cursor_geometry { get; }
Efl.Text_Markup.cursor_markup_insert;
// Efl.Canvas.Layout_Part_Box // Efl.Canvas.Layout_Part_Box
Efl.Container.content_iterate; Efl.Container.content_iterate;
Efl.Container.content_count; Efl.Container.content_count;

View File

@ -11,7 +11,7 @@ enum Efl.Canvas.Layout_Part_Text_Expand
} }
class Efl.Canvas.Layout_Part_Text extends Efl.Canvas.Layout_Part implements Efl.Text, class Efl.Canvas.Layout_Part_Text extends Efl.Canvas.Layout_Part implements Efl.Text,
Efl.Text_Markup, Efl.Text_Format, Efl.Text_Font, Efl.Text_Style Efl.Text_Markup, Efl.Text_Markup_Interactive, Efl.Text_Format, Efl.Text_Font, Efl.Text_Style
{ {
[[Represents a TEXT part of a layout [[Represents a TEXT part of a layout
@ -36,6 +36,7 @@ Efl.Text_Markup, Efl.Text_Format, Efl.Text_Font, Efl.Text_Style
implements { implements {
Efl.Text.text { set; get; } Efl.Text.text { set; get; }
Efl.Text_Markup.markup { get; set; } Efl.Text_Markup.markup { get; set; }
Efl.Text_Markup_Interactive.cursor_markup_insert;
Efl.Text_Cursor.text_cursor { get; } Efl.Text_Cursor.text_cursor { get; }
Efl.Text_Cursor.cursor_paragraph_first; Efl.Text_Cursor.cursor_paragraph_first;
Efl.Text_Cursor.cursor_paragraph_last; Efl.Text_Cursor.cursor_paragraph_last;
@ -49,7 +50,6 @@ Efl.Text_Markup, Efl.Text_Format, Efl.Text_Font, Efl.Text_Style
Efl.Text_Cursor.cursor_copy; Efl.Text_Cursor.cursor_copy;
Efl.Text_Cursor.cursor_content { get; } Efl.Text_Cursor.cursor_content { get; }
Efl.Text_Cursor.cursor_geometry { get; } Efl.Text_Cursor.cursor_geometry { get; }
Efl.Text_Markup.cursor_markup_insert;
Efl.Text_Format.ellipsis { set; get; } Efl.Text_Format.ellipsis { set; get; }
Efl.Text_Format.wrap { set; get; } Efl.Text_Format.wrap { set; get; }
Efl.Text_Font.font { set; get; } Efl.Text_Font.font { set; get; }

View File

@ -182,6 +182,7 @@ typedef Efl_Gfx_Path_Command_Type Efl_Gfx_Path_Command;
#include "interfaces/efl_text_cursor.eo.h" #include "interfaces/efl_text_cursor.eo.h"
#include "interfaces/efl_text_annotate.eo.h" #include "interfaces/efl_text_annotate.eo.h"
#include "interfaces/efl_text_markup.eo.h" #include "interfaces/efl_text_markup.eo.h"
#include "interfaces/efl_text_markup_interactive.eo.h"
#include "interfaces/efl_text_markup_util.eo.h" #include "interfaces/efl_text_markup_util.eo.h"
EAPI void efl_observable_tuple_free(Efl_Observable_Tuple *tuple); EAPI void efl_observable_tuple_free(Efl_Observable_Tuple *tuple);

View File

@ -27,6 +27,7 @@
#include "interfaces/efl_text_cursor.eo.c" #include "interfaces/efl_text_cursor.eo.c"
#include "interfaces/efl_text_annotate.eo.c" #include "interfaces/efl_text_annotate.eo.c"
#include "interfaces/efl_text_markup.eo.c" #include "interfaces/efl_text_markup.eo.c"
#include "interfaces/efl_text_markup_interactive.eo.c"
#include "interfaces/efl_gfx_entity.eo.c" #include "interfaces/efl_gfx_entity.eo.c"
#include "interfaces/efl_gfx_buffer.eo.c" #include "interfaces/efl_gfx_buffer.eo.c"

View File

@ -1,4 +1,4 @@
interface Efl.Text_Markup extends Efl.Text_Cursor { interface Efl.Text_Markup {
[[Markup data that populates the text object's style and format [[Markup data that populates the text object's style and format
@since 1.21 @since 1.21
@ -10,24 +10,6 @@ interface Efl.Text_Markup extends Efl.Text_Cursor {
markup: string; [[The markup-text representation set to this text.]] markup: string; [[The markup-text representation set to this text.]]
} }
} }
@property markup_range {
[[Markup of a given range in the text]]
values {
markup: mstring @owned; [[The markup-text representation set to
this text of a given range]]
}
keys {
start: ptr(Efl.Text_Cursor_Cursor);
end: ptr(Efl.Text_Cursor_Cursor);
}
}
cursor_markup_insert {
[[Inserts a markup text to the text object in a given cursor position]]
params {
cur: ptr(Efl.Text_Cursor_Cursor); [[Cursor position to insert markup]]
@in markup: string; [[The markup text to insert]]
}
}
} }
} }

View File

@ -0,0 +1,27 @@
interface Efl.Text_Markup_Interactive extends Efl.Text_Cursor {
[[Markup data that populates the text object's style and format
@since 1.22
]]
methods {
@property markup_range {
[[Markup of a given range in the text]]
values {
markup: mstring @owned; [[The markup-text representation set to
this text of a given range]]
}
keys {
start: ptr(Efl.Text_Cursor_Cursor);
end: ptr(Efl.Text_Cursor_Cursor);
}
}
cursor_markup_insert {
[[Inserts a markup text to the text object in a given cursor position]]
params {
cur: ptr(Efl.Text_Cursor_Cursor); [[Cursor position to insert markup]]
@in markup: string; [[The markup text to insert]]
}
}
}
}

View File

@ -59,6 +59,7 @@ pub_eo_files = [
'efl_text_cursor.eo', 'efl_text_cursor.eo',
'efl_text_annotate.eo', 'efl_text_annotate.eo',
'efl_text_markup.eo', 'efl_text_markup.eo',
'efl_text_markup_interactive.eo',
'efl_text_markup_util.eo', 'efl_text_markup_util.eo',
'efl_gfx_stack.eo', 'efl_gfx_stack.eo',
'efl_gfx_view.eo', 'efl_gfx_view.eo',

View File

@ -610,7 +610,7 @@ _selection_data_cb(void *data EINA_UNUSED, Eo *obj,
cur = efl_text_cursor_get(obj, EFL_TEXT_CURSOR_GET_MAIN); cur = efl_text_cursor_get(obj, EFL_TEXT_CURSOR_GET_MAIN);
if (sel_data->format == EFL_UI_SELECTION_FORMAT_MARKUP) if (sel_data->format == EFL_UI_SELECTION_FORMAT_MARKUP)
{ {
efl_text_markup_cursor_markup_insert(obj, cur, buf); efl_text_markup_interactive_cursor_markup_insert(obj, cur, buf);
} }
else // TEXT else // TEXT
{ {
@ -1161,7 +1161,7 @@ _selection_store(Efl_Ui_Selection_Type seltype,
EFL_UI_TEXT_DATA_GET(obj, sd); EFL_UI_TEXT_DATA_GET(obj, sd);
efl_text_interactive_selection_cursors_get(obj, &start, &end); efl_text_interactive_selection_cursors_get(obj, &start, &end);
sel = efl_text_markup_range_get(obj, start, end); sel = efl_text_markup_interactive_markup_range_get(obj, start, end);
if ((!sel) || (!sel[0])) return; /* avoid deleting our own selection */ if ((!sel) || (!sel[0])) return; /* avoid deleting our own selection */

View File

@ -5,7 +5,7 @@ struct Efl.Canvas.Text_Style; [[EFL text style data structure]]
class Efl.Canvas.Text extends Efl.Canvas.Object implements Efl.Text, class Efl.Canvas.Text extends Efl.Canvas.Object implements Efl.Text,
Efl.Canvas.Filter.Internal, Efl.Text_Font, Efl.Canvas.Filter.Internal, Efl.Text_Font,
Efl.Text_Style, Efl.Text_Format, Efl.Text_Cursor, Efl.Text_Style, Efl.Text_Format, Efl.Text_Cursor,
Efl.Text_Annotate, Efl.Text_Markup, Efl.Ui.I18n Efl.Text_Annotate, Efl.Text_Markup, Efl.Text_Markup_Interactive, Efl.Ui.I18n
{ {
[[Efl canvas text class]] [[Efl canvas text class]]
legacy_prefix: evas_object_textblock; legacy_prefix: evas_object_textblock;
@ -353,8 +353,8 @@ class Efl.Canvas.Text extends Efl.Canvas.Object implements Efl.Text,
Efl.Text_Annotate.cursor_item_annotation { get; } Efl.Text_Annotate.cursor_item_annotation { get; }
Efl.Text_Annotate.cursor_item_insert; Efl.Text_Annotate.cursor_item_insert;
Efl.Text_Markup.markup { set; get; } Efl.Text_Markup.markup { set; get; }
Efl.Text_Markup.cursor_markup_insert; Efl.Text_Markup_Interactive.cursor_markup_insert;
Efl.Text_Markup.markup_range { get;} Efl.Text_Markup_Interactive.markup_range { get;}
Efl.Gfx.Entity.scale { set; } Efl.Gfx.Entity.scale { set; }
} }
events { events {

View File

@ -7890,7 +7890,7 @@ evas_object_textblock_text_markup_prepend(Efl_Text_Cursor_Cursor *cur, const cha
} }
EOLIAN static void EOLIAN static void
_efl_canvas_text_efl_text_markup_cursor_markup_insert(Eo *eo_obj, _efl_canvas_text_efl_text_markup_interactive_cursor_markup_insert(Eo *eo_obj,
Efl_Canvas_Text_Data *o EINA_UNUSED, Efl_Canvas_Text_Data *o EINA_UNUSED,
Efl_Text_Cursor_Cursor *cur, const char *markup) Efl_Text_Cursor_Cursor *cur, const char *markup)
{ {
@ -11422,7 +11422,7 @@ _evas_textblock_cursor_range_text_markup_get(const Efl_Text_Cursor_Cursor *cur1,
} }
EOLIAN char * EOLIAN char *
_efl_canvas_text_efl_text_markup_markup_range_get(const Eo *eo_obj, _efl_canvas_text_efl_text_markup_interactive_markup_range_get(const Eo *eo_obj,
Efl_Canvas_Text_Data *o EINA_UNUSED, Efl_Text_Cursor_Cursor *start, Efl_Canvas_Text_Data *o EINA_UNUSED, Efl_Text_Cursor_Cursor *start,
Efl_Text_Cursor_Cursor *end) Efl_Text_Cursor_Cursor *end)
{ {

View File

@ -4632,14 +4632,14 @@ EFL_START_TEST(efl_canvas_text_markup)
efl_text_cursor_position_set(txt, start, 1); efl_text_cursor_position_set(txt, start, 1);
efl_text_cursor_position_set(txt, end, 2); efl_text_cursor_position_set(txt, end, 2);
res = efl_text_markup_range_get(txt, start, end); res = efl_text_markup_interactive_markup_range_get(txt, start, end);
ck_assert_str_eq(res, "<br>"); ck_assert_str_eq(res, "<br>");
free(res); free(res);
efl_text_set(txt, "a\u2029bc\ndef\n\u2029"); efl_text_set(txt, "a\u2029bc\ndef\n\u2029");
efl_text_cursor_position_set(txt, start, 2); efl_text_cursor_position_set(txt, start, 2);
efl_text_cursor_position_set(txt, end, 5); efl_text_cursor_position_set(txt, end, 5);
res = efl_text_markup_range_get(txt, start, end); res = efl_text_markup_interactive_markup_range_get(txt, start, end);
ck_assert_str_eq(res, "bc<br>"); ck_assert_str_eq(res, "bc<br>");
free(res); free(res);