2019-02-14 08:37:02 -08:00
|
|
|
class @beta Efl.Canvas.Layout_Part_Invalid extends Efl.Canvas.Layout_Part implements Efl.Content,
|
2019-05-24 09:30:31 -07:00
|
|
|
Efl.Pack_Linear, Efl.Ui.Layout_Orientable_Readonly,
|
2018-04-06 03:28:01 -07:00
|
|
|
Efl.Pack_Table, Efl.Text,
|
Efl.Text.Cursor
Summary:
Implementation of new cursor text object.
This Patch Contains :
1- Remove Efl.Text.Cursor & Efl.Text_Markup_Interactive interfaces and replace them with one Class Efl.Text.Cursor
=> there are some modifications on cursor methods
2- Update all related classes to use Efl.Text.Cursor object instead of the old interfaces
3- If class uses Efl.Text_Cursor_Cursor (handle), mainly annotation it will stay as it is until we update other annotations into attribute_factory
4- Add main cursor property into efl.text.interactive
5- Add cursor_new method in efl.ui.text (I think we may move it into efl.text.interactive interface)
There still some parts that need discussion: especially cursor movement functionality, I prefer to move function with Enum, instead of special function for each movement.
```
enum @beta Efl.Text.Cursor_Move_Type
{
[[Text cursor movement types]]
char_next, [[Advances to the next character]]
char_prev, [[Advances to the previous character]]
cluster_next, [[Advances to the next grapheme cluster]]
cluster_prev, [[Advances to the previous grapheme cluster]]
paragraph_start, [[Advances to the first character in this paragraph]]
paragraph_end, [[Advances to the last character in this paragraph]]
word_start, [[Advance to current word start]]
word_end, [[Advance to current word end]]
line_start, [[Advance to current line first character]]
line_end, [[Advance to current line last character]]
paragraph_first, [[Advance to current paragraph first character]]
paragraph_last, [[Advance to current paragraph last character]]
paragraph_next, [[Advances to the start of the next text node]]
paragraph_prev [[Advances to the end of the previous text node]]
}
move {
[[Move the cursor]]
params {
@in type: Efl.Text.Cursor_Move_Type; [[The type of movement]]
}
return: bool; [[True if actually moved]]
}
```
or old way:
```
char_next {
[[Advances to the next character]]
// FIXME: Make the number of characters we moved by? Useful for all the other functions
return: bool; [[True if actually moved]]
}
char_prev {
[[Advances to the previous character]]
return: bool; [[True if actually moved]]
}
char_delete {
[[Deletes a single character from position pointed by given cursor.]]
}
cluster_next {
[[Advances to the next grapheme cluster]]
return: bool; [[True if actually moved]]
}
cluster_prev {
[[Advances to the previous grapheme cluster]]
return: bool; [[True if actually moved]]
}
// FIXME: paragraph_end is inconsistent with word_end. The one goes to the last character and the other after the last character.
paragraph_start {
[[Advances to the first character in this paragraph]]
return: bool; [[True if actually moved]]
}
paragraph_end {
[[Advances to the last character in this paragraph]]
return: bool; [[True if actually moved]]
}
word_start {
[[Advance to current word start]]
return: bool; [[True if actually moved]]
}
word_end {
[[Advance to current word end]]
return: bool; [[True if actually moved]]
}
line_start {
[[Advance to current line first character]]
return: bool; [[True if actually moved]]
}
line_end {
[[Advance to current line last character]]
return: bool; [[True if actually moved]]
}
paragraph_first {
[[Advance to current paragraph first character]]
return: bool; [[True if actually moved]]
}
paragraph_last {
[[Advance to current paragraph last character]]
return: bool; [[True if actually moved]]
}
paragraph_next {
[[Advances to the start of the next text node]]
return: bool; [[True if actually moved]]
}
paragraph_prev {
[[Advances to the end of the previous text node]]
return: bool; [[True if actually moved]]
}
```
Reviewers: woohyun, tasn, segfaultxavi
Reviewed By: woohyun
Subscribers: a.srour, bu5hm4n, segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10542
2019-11-22 00:35:54 -08:00
|
|
|
Efl.Text_Markup
|
2018-01-15 23:02:33 -08:00
|
|
|
{
|
|
|
|
[[Common class for part proxy objects for @Efl.Canvas.Layout.
|
|
|
|
|
|
|
|
As an @Efl.Part implementation class, all objects of this class are meant
|
|
|
|
to be used for one and only one function call. In pseudo-code, the use
|
|
|
|
of object of this type looks like the following:
|
|
|
|
rect = layout.part("somepart").geometry_get();
|
|
|
|
]]
|
|
|
|
data: null;
|
|
|
|
implements {
|
|
|
|
// Efl.Canvas.Layout.Part
|
2018-04-05 05:31:49 -07:00
|
|
|
Efl.Canvas.Layout_Part.state { get; }
|
2020-03-16 05:53:03 -07:00
|
|
|
Efl.Canvas.Layout_Part_Type_Provider.part_type { get; }
|
2018-04-05 01:47:26 -07:00
|
|
|
Efl.Gfx.Entity.geometry { get; }
|
2018-01-15 23:02:33 -08:00
|
|
|
Efl.Ui.Drag.drag_value { set; get; }
|
|
|
|
Efl.Ui.Drag.drag_size { set; get; }
|
|
|
|
Efl.Ui.Drag.drag_dir { get; }
|
|
|
|
Efl.Ui.Drag.drag_step { set; get; }
|
|
|
|
Efl.Ui.Drag.drag_step_move;
|
|
|
|
Efl.Ui.Drag.drag_page { set; get; }
|
|
|
|
Efl.Ui.Drag.drag_page_move;
|
2018-04-05 05:31:49 -07:00
|
|
|
// Efl.Canvas.Layout_Part_Swallow & External
|
2018-01-15 23:02:33 -08:00
|
|
|
Efl.Content.content { get; set; }
|
|
|
|
Efl.Content.content_unset;
|
2018-04-05 05:31:49 -07:00
|
|
|
// Efl.Canvas.Layout_Part_Text
|
2018-01-15 23:02:33 -08:00
|
|
|
Efl.Text.text { set; get; }
|
2018-04-06 04:30:40 -07:00
|
|
|
Efl.Text_Markup.markup { get; set; }
|
2018-04-05 05:31:49 -07:00
|
|
|
// Efl.Canvas.Layout_Part_Box
|
2018-01-15 23:02:33 -08:00
|
|
|
Efl.Container.content_iterate;
|
|
|
|
Efl.Container.content_count;
|
|
|
|
Efl.Pack.pack_clear;
|
|
|
|
Efl.Pack.unpack_all;
|
|
|
|
Efl.Pack.unpack;
|
|
|
|
Efl.Pack.pack;
|
2018-04-06 03:28:01 -07:00
|
|
|
Efl.Pack_Linear.pack_begin;
|
|
|
|
Efl.Pack_Linear.pack_end;
|
|
|
|
Efl.Pack_Linear.pack_before;
|
|
|
|
Efl.Pack_Linear.pack_after;
|
|
|
|
Efl.Pack_Linear.pack_at;
|
|
|
|
Efl.Pack_Linear.pack_content_get;
|
|
|
|
Efl.Pack_Linear.pack_unpack_at;
|
|
|
|
Efl.Pack_Linear.pack_index_get;
|
2019-05-24 09:30:31 -07:00
|
|
|
Efl.Ui.Layout_Orientable.orientation { get; [[Returns $default if unknown.]] }
|
2018-04-05 05:31:49 -07:00
|
|
|
// Efl.Canvas.Layout_Part_Table
|
2018-04-06 03:28:01 -07:00
|
|
|
Efl.Pack_Table.pack_table;
|
|
|
|
Efl.Pack_Table.table_content_get;
|
|
|
|
Efl.Pack_Table.table_contents_get;
|
2019-08-27 03:46:03 -07:00
|
|
|
Efl.Pack_Table.table_cell_column { get; set; }
|
|
|
|
Efl.Pack_Table.table_cell_row { get; set; }
|
2018-04-06 03:28:01 -07:00
|
|
|
Efl.Pack_Table.table_size { get; }
|
|
|
|
Efl.Pack_Table.table_columns { get; }
|
|
|
|
Efl.Pack_Table.table_rows { get; }
|
2018-01-15 23:02:33 -08:00
|
|
|
}
|
|
|
|
}
|