forked from enlightenment/efl
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:
parent
31794a18e1
commit
9aca866fd1
|
@ -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 \
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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; }
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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]]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -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',
|
||||||
|
|
|
@ -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 */
|
||||||
|
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue