2016-10-27 07:48:36 -07:00
|
|
|
struct Efl.Canvas.Text.Style; [[EFL text style data structure]]
|
2016-05-24 06:11:03 -07:00
|
|
|
|
2016-12-22 02:43:45 -08:00
|
|
|
class Efl.Canvas.Text (Efl.Canvas.Object, Efl.Text, Efl.Canvas.Filter.Internal)
|
2016-05-24 06:11:03 -07:00
|
|
|
{
|
2016-11-15 07:05:06 -08:00
|
|
|
[[Efl canvas text class]]
|
2016-05-24 06:11:03 -07:00
|
|
|
legacy_prefix: evas_object_textblock;
|
|
|
|
methods {
|
|
|
|
@property bidi_delimiters {
|
|
|
|
[[BiDi delimiters are used for in-paragraph separation of bidi
|
|
|
|
segments. This is useful for example in recipients fields of
|
|
|
|
e-mail clients where bidi oddities can occur when mixing RTL
|
|
|
|
and LTR.
|
|
|
|
|
2016-10-05 07:10:06 -07:00
|
|
|
@since 1.18
|
2016-05-24 06:11:03 -07:00
|
|
|
]]
|
|
|
|
set {}
|
|
|
|
get {}
|
|
|
|
values {
|
2016-10-05 07:10:06 -07:00
|
|
|
delim: string; [[A null terminated string of delimiters, e.g ",|" or $null if empty]]
|
2016-05-24 06:11:03 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
@property legacy_newline {
|
2016-11-15 07:05:06 -08:00
|
|
|
[[When $true, newline character will behave as a paragraph separator.
|
2016-05-24 06:11:03 -07:00
|
|
|
|
2016-10-05 07:10:06 -07:00
|
|
|
@since 1.18
|
2016-05-24 06:11:03 -07:00
|
|
|
]]
|
|
|
|
set {}
|
|
|
|
get {}
|
|
|
|
values {
|
2016-10-05 07:10:06 -07:00
|
|
|
mode: bool; [[$true for legacy mode, $false otherwise]]
|
2016-05-24 06:11:03 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
@property style {
|
2016-06-07 10:16:34 -07:00
|
|
|
[[The text style of the object.
|
|
|
|
|
|
|
|
$key is how you reference the style (for deletion or fetching). $NULL
|
|
|
|
as key indicates the style has the highest priority (default style).
|
|
|
|
The style priority is the order of creation, styles created first
|
|
|
|
are applied first with the exception of $NULL which is implicitly
|
|
|
|
first.
|
|
|
|
|
|
|
|
Set $style to $NULL to delete it.
|
2016-10-05 07:10:06 -07:00
|
|
|
|
|
|
|
@since 1.18
|
2016-06-07 10:16:34 -07:00
|
|
|
]]
|
2016-05-24 06:11:03 -07:00
|
|
|
set {
|
|
|
|
legacy: null;
|
|
|
|
}
|
|
|
|
get {
|
|
|
|
legacy: null;
|
|
|
|
}
|
2016-06-07 10:16:34 -07:00
|
|
|
keys {
|
|
|
|
key: string; [[The name to the style. $NULL is the default style]]
|
|
|
|
}
|
2016-05-24 06:11:03 -07:00
|
|
|
values {
|
2016-10-05 07:10:06 -07:00
|
|
|
style: string; [[The style]]
|
2016-05-24 06:11:03 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
@property size_formatted {
|
|
|
|
[[The formatted width and height.
|
|
|
|
|
|
|
|
This calculates the actual size after restricting the
|
|
|
|
textblock to the current size of the object.
|
|
|
|
|
|
|
|
The main difference between this and @.size_native.get
|
|
|
|
is that the "native" function does not wrapping into account
|
|
|
|
it just calculates the real width of the object if it was
|
|
|
|
placed on an infinite canvas, while this function gives the
|
|
|
|
size after wrapping according to the size restrictions of the
|
|
|
|
object.
|
|
|
|
|
|
|
|
For example for a textblock containing the text:
|
|
|
|
"You shall not pass!" with no margins or padding and assuming
|
|
|
|
a monospace font and a size of 7x10 char widths (for simplicity)
|
|
|
|
has a native size of 19x1 and a formatted size of 5x4.
|
2016-10-05 07:10:06 -07:00
|
|
|
|
|
|
|
@since 1.18
|
2016-05-24 06:11:03 -07:00
|
|
|
]]
|
|
|
|
get {}
|
|
|
|
values {
|
2017-05-15 01:23:11 -07:00
|
|
|
w: int; [[The width of the object.]]
|
|
|
|
h: int; [[The height of the object.]]
|
2016-05-24 06:11:03 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
@property cursor {
|
2016-10-05 07:10:06 -07:00
|
|
|
[[The object's main cursor.
|
|
|
|
|
|
|
|
@since 1.18
|
|
|
|
]]
|
2016-05-24 06:11:03 -07:00
|
|
|
get {
|
2016-11-15 07:05:06 -08:00
|
|
|
return: Efl.Canvas.Text.Cursor; [[Text cursor object]]
|
2016-05-24 06:11:03 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
@property size_native {
|
|
|
|
[[The native width and height.
|
|
|
|
|
|
|
|
This calculates the actual size without taking account the
|
|
|
|
current size of the object.
|
|
|
|
|
|
|
|
The main difference between this and @.size_formatted.get
|
|
|
|
is that the "native" function does not take wrapping into
|
|
|
|
account it just calculates the real width of the object if
|
|
|
|
it was placed on an infinite canvas, while the "formatted"
|
|
|
|
function gives the size after wrapping text according to
|
|
|
|
the size restrictions of the object.
|
|
|
|
|
|
|
|
For example for a textblock containing the text:
|
|
|
|
"You shall not pass!" with no margins or padding and assuming
|
|
|
|
a monospace font and a size of 7x10 char widths (for simplicity)
|
|
|
|
has a native size of 19x1 and a formatted size of 5x4.
|
2016-10-05 07:10:06 -07:00
|
|
|
|
|
|
|
@since 1.18
|
2016-05-24 06:11:03 -07:00
|
|
|
]]
|
|
|
|
get {}
|
|
|
|
values {
|
2017-05-15 01:23:11 -07:00
|
|
|
w: int; [[The width returned.]]
|
|
|
|
h: int; [[The height returned.]]
|
2016-05-24 06:11:03 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
@property style_insets {
|
2016-10-05 07:10:06 -07:00
|
|
|
[[Gets the left, right, top and bottom insets of the text.
|
|
|
|
|
|
|
|
The inset is any applied padding on the text.
|
|
|
|
|
|
|
|
@since 1.18
|
|
|
|
]]
|
2016-05-24 06:11:03 -07:00
|
|
|
get {}
|
|
|
|
values {
|
2017-05-15 01:23:11 -07:00
|
|
|
l: int; [[Left padding]]
|
|
|
|
r: int; [[Right padding]]
|
|
|
|
t: int; [[Top padding]]
|
|
|
|
b: int; [[Bottom padding]]
|
2016-05-24 06:11:03 -07:00
|
|
|
}
|
|
|
|
}
|
2016-06-07 10:16:34 -07:00
|
|
|
@property is_empty {
|
2016-10-05 07:10:06 -07:00
|
|
|
[[Whether the object is empty (no text) or not
|
|
|
|
|
|
|
|
@since 1.18
|
|
|
|
]]
|
2016-06-07 10:16:34 -07:00
|
|
|
get {
|
|
|
|
legacy: null;
|
|
|
|
}
|
|
|
|
values {
|
2016-11-15 07:05:06 -08:00
|
|
|
is_empty: bool; [[$true if empty, $false otherwise]]
|
2016-05-24 06:11:03 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
obstacle_add {
|
|
|
|
[[Add obstacle evas object $eo_obs to be observed during layout
|
|
|
|
of text.
|
|
|
|
|
|
|
|
The textblock does the layout of the text according to the
|
|
|
|
position of the obstacle.
|
|
|
|
|
2016-10-05 07:10:06 -07:00
|
|
|
@since 1.18
|
2016-05-24 06:11:03 -07:00
|
|
|
]]
|
|
|
|
params {
|
2016-11-15 07:05:06 -08:00
|
|
|
@in eo_obs: Efl.Canvas.Object; [[Obstacle object]]
|
2016-05-24 06:11:03 -07:00
|
|
|
}
|
|
|
|
return: bool; [[$true on success, $false otherwise.]]
|
|
|
|
}
|
|
|
|
obstacle_del {
|
|
|
|
[[Removes $eo_obs from observation during text layout.
|
|
|
|
|
2016-10-05 07:10:06 -07:00
|
|
|
@since 1.18
|
2016-05-24 06:11:03 -07:00
|
|
|
]]
|
|
|
|
params {
|
2016-11-15 07:05:06 -08:00
|
|
|
@in eo_obs: Efl.Canvas.Object; [[Obstacle object]]
|
2016-05-24 06:11:03 -07:00
|
|
|
}
|
|
|
|
return: bool; [[$true on success, $false otherwise.]]
|
|
|
|
}
|
|
|
|
obstacles_update {
|
|
|
|
[[Triggers for relayout due to obstacles' state change.
|
|
|
|
|
|
|
|
The obstacles alone don't affect the layout, until this is
|
|
|
|
called. Use this after doing changes (moving, positioning etc.)
|
|
|
|
in the obstacles that you would like to be considered in the
|
|
|
|
layout.
|
|
|
|
|
|
|
|
For example: if you have just repositioned the obstacles to
|
|
|
|
differrent coordinates relative to the textblock, you need to
|
|
|
|
call this so it will consider this new state and will relayout
|
|
|
|
the text.
|
|
|
|
|
2016-10-05 07:10:06 -07:00
|
|
|
@since 1.18
|
2016-05-24 06:11:03 -07:00
|
|
|
]]
|
|
|
|
}
|
|
|
|
@property annotation {
|
|
|
|
[[A new format for $annotation.
|
|
|
|
|
|
|
|
This will replace the format applied by $annotation with $format.
|
|
|
|
Assumes that $annotation is a handle for an existing annotation,
|
|
|
|
i.e. one that was added using @.annotation_insert to this object.
|
|
|
|
Otherwise, this will fail and return $false.
|
|
|
|
|
|
|
|
@since 1.18
|
|
|
|
]]
|
|
|
|
set {
|
|
|
|
legacy: null;
|
|
|
|
return: bool; [[$true on success, $false otherwise.]]
|
|
|
|
}
|
|
|
|
get {
|
|
|
|
legacy: null;
|
|
|
|
}
|
|
|
|
keys {
|
2016-11-03 09:05:00 -07:00
|
|
|
annotation: ptr(Efl.Canvas.Text.Annotation); [[Given annotation]]
|
2016-05-24 06:11:03 -07:00
|
|
|
}
|
|
|
|
values {
|
2016-10-05 07:10:06 -07:00
|
|
|
format: string; [[The new format for the given annotation]]
|
2016-05-24 06:11:03 -07:00
|
|
|
}
|
|
|
|
}
|
2016-06-07 10:16:34 -07:00
|
|
|
range_annotations_get {
|
2016-05-24 06:11:03 -07:00
|
|
|
[[Returns an iterator of all the handles in a range.
|
|
|
|
|
|
|
|
@since 1.18
|
|
|
|
]]
|
|
|
|
legacy: null;
|
|
|
|
params {
|
2016-10-05 07:10:06 -07:00
|
|
|
@in start: const(Efl.Canvas.Text.Cursor); [[Start of range]]
|
|
|
|
@in end: const(Efl.Canvas.Text.Cursor); [[End of range]]
|
2016-05-24 06:11:03 -07:00
|
|
|
}
|
2016-11-03 09:05:00 -07:00
|
|
|
return: free(own(iterator<ptr(Efl.Canvas.Text.Annotation)>),
|
2016-05-24 06:11:03 -07:00
|
|
|
eina_iterator_free); [[Handle of the Annotation]]
|
|
|
|
}
|
2016-10-05 07:10:06 -07:00
|
|
|
annotation_insert {
|
|
|
|
[[Inserts an annotation format in a specified range [$start, $end - 1].
|
2016-05-24 06:11:03 -07:00
|
|
|
|
2016-10-05 07:10:06 -07:00
|
|
|
The $format will be applied to the given range, and the $annotation
|
|
|
|
handle will be returned for further handling.
|
|
|
|
|
|
|
|
@since 1.18
|
2016-05-24 06:11:03 -07:00
|
|
|
]]
|
|
|
|
legacy: null;
|
|
|
|
params {
|
2016-10-05 07:10:06 -07:00
|
|
|
@in start: Efl.Canvas.Text.Cursor; [[Start of range]]
|
|
|
|
@in end: Efl.Canvas.Text.Cursor; [[End of range]]
|
2016-11-15 07:05:06 -08:00
|
|
|
@in format: string; [[Annotation format]]
|
2016-05-24 06:11:03 -07:00
|
|
|
}
|
2016-11-03 09:05:00 -07:00
|
|
|
return: ptr(Efl.Canvas.Text.Annotation); [[Handle of inserted annotation]]
|
2016-05-24 06:11:03 -07:00
|
|
|
}
|
2016-10-05 07:10:06 -07:00
|
|
|
annotation_del {
|
|
|
|
[[Deletes given annotation.
|
2016-05-24 06:11:03 -07:00
|
|
|
|
2016-10-05 07:10:06 -07:00
|
|
|
All formats applied by $annotation will be removed and it will be
|
|
|
|
deleted.
|
2016-05-24 06:11:03 -07:00
|
|
|
|
|
|
|
@since 1.18
|
|
|
|
]]
|
|
|
|
legacy: null;
|
|
|
|
params {
|
2016-11-03 09:05:00 -07:00
|
|
|
@in annotation: ptr(Efl.Canvas.Text.Annotation); [[Annotation to be
|
2016-10-05 07:10:06 -07:00
|
|
|
removed]]
|
2016-05-24 06:11:03 -07:00
|
|
|
}
|
2016-10-05 07:10:06 -07:00
|
|
|
return: bool; [[$true on success, $false otherwise.]]
|
2016-05-24 06:11:03 -07:00
|
|
|
}
|
2016-06-05 05:44:03 -07:00
|
|
|
range_geometry_get {
|
2016-10-05 07:09:59 -07:00
|
|
|
[[Get the geometry of a range in the text.
|
|
|
|
|
|
|
|
The geometry is represented as rectangles for each of the line
|
|
|
|
segments in the given range [$cur1, $cur2].
|
|
|
|
|
|
|
|
@since 1.19
|
|
|
|
]]
|
|
|
|
legacy: null;
|
|
|
|
params {
|
2016-10-05 07:10:06 -07:00
|
|
|
@in cur1: const(Efl.Canvas.Text.Cursor); [[Start of range]]
|
|
|
|
@in cur2: const(Efl.Canvas.Text.Cursor); [[End of range]]
|
2016-10-05 07:09:59 -07:00
|
|
|
}
|
|
|
|
return: free(own(iterator<Eina.Rectangle>),
|
2016-10-05 07:10:06 -07:00
|
|
|
eina_iterator_free); [[Iterator on all geoemtries of
|
|
|
|
the given range]]
|
2016-10-05 07:09:59 -07:00
|
|
|
}
|
|
|
|
range_simple_geometry_get {
|
|
|
|
[[Get the "simple" geometry of a range.
|
|
|
|
|
|
|
|
The geometry is the geometry in which rectangles in middle lines of
|
|
|
|
range are merged into one big rectangle. This is an optimized
|
|
|
|
version of @.range_geometry_get.
|
2016-05-24 06:11:03 -07:00
|
|
|
|
2016-10-05 07:10:06 -07:00
|
|
|
@since 1.19
|
2016-05-24 06:11:03 -07:00
|
|
|
]]
|
|
|
|
legacy: null;
|
|
|
|
params {
|
2016-10-05 07:10:06 -07:00
|
|
|
@in cur1: const(Efl.Canvas.Text.Cursor); [[Start of range]]
|
|
|
|
@in cur2: const(Efl.Canvas.Text.Cursor); [[End of range]]
|
2016-05-24 06:11:03 -07:00
|
|
|
}
|
|
|
|
return: free(own(iterator<Eina.Rectangle>),
|
2016-10-05 07:10:06 -07:00
|
|
|
eina_iterator_free); [[Iterator on all simple
|
|
|
|
geometries of the given range]]
|
2016-05-24 06:11:03 -07:00
|
|
|
}
|
2016-06-05 05:44:03 -07:00
|
|
|
range_delete {
|
2016-10-05 07:10:06 -07:00
|
|
|
[[Deletes the range between given cursors.
|
|
|
|
|
|
|
|
This removes all the text in given range [$start,$end].
|
|
|
|
]]
|
2016-05-24 06:11:03 -07:00
|
|
|
legacy: null;
|
|
|
|
params {
|
2016-10-05 07:10:06 -07:00
|
|
|
@in cur1: Efl.Canvas.Text.Cursor; [[Range start position]]
|
|
|
|
@in cur2: Efl.Canvas.Text.Cursor; [[Range end position]]
|
2016-05-24 06:11:03 -07:00
|
|
|
}
|
|
|
|
}
|
2016-06-05 05:44:03 -07:00
|
|
|
visible_range_get {
|
|
|
|
[[Returns the currently visible range.
|
|
|
|
|
|
|
|
The given $start and $end cursor act like an out-variables here,
|
|
|
|
as these are set to the positions of the start and the end of the
|
|
|
|
visible range in the text, respectively.
|
|
|
|
|
2016-08-12 17:50:29 -07:00
|
|
|
@since 1.18
|
2016-05-24 06:11:03 -07:00
|
|
|
]]
|
2016-10-05 07:10:06 -07:00
|
|
|
return: bool; [[$true on success, $false otherwise]]
|
2016-05-24 06:11:03 -07:00
|
|
|
params {
|
2016-10-05 07:10:06 -07:00
|
|
|
@in start: Efl.Canvas.Text.Cursor; [[Range start position]]
|
|
|
|
@in end: Efl.Canvas.Text.Cursor; [[Range end position]]
|
2016-05-24 06:11:03 -07:00
|
|
|
}
|
|
|
|
}
|
2016-06-07 10:16:34 -07:00
|
|
|
range_text_get {
|
2016-10-05 07:10:06 -07:00
|
|
|
[[Returns the text in the range between $cur1 and $cur2.
|
|
|
|
|
|
|
|
@since 1.18
|
|
|
|
]]
|
2016-06-07 10:16:34 -07:00
|
|
|
legacy: null;
|
2016-11-03 09:05:00 -07:00
|
|
|
return: own(ptr(char)); [[The text in the given range]]
|
2016-06-07 10:16:34 -07:00
|
|
|
params {
|
2016-10-05 07:10:06 -07:00
|
|
|
@in cur1: const(Efl.Canvas.Text.Cursor); [[Start of range]]
|
|
|
|
@in cur2: const(Efl.Canvas.Text.Cursor); [[End of range]]
|
2016-06-07 10:16:34 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
object_item_geometry_get {
|
2016-10-05 07:10:06 -07:00
|
|
|
[[Queries a given object item for its geometry.
|
2016-06-07 10:16:34 -07:00
|
|
|
|
|
|
|
Note that the provided annotation should be an object item type.
|
2016-10-05 07:10:06 -07:00
|
|
|
|
|
|
|
@since 1.18
|
2016-06-07 10:16:34 -07:00
|
|
|
]]
|
|
|
|
legacy: null;
|
|
|
|
params {
|
2016-11-03 09:05:00 -07:00
|
|
|
@in an: ptr(const(Efl.Canvas.Text.Annotation)); [[Given annotation to query]]
|
2017-05-15 01:23:11 -07:00
|
|
|
@out x: int; [[X coordinate of the annotation]]
|
|
|
|
@out y: int; [[Y coordinate of the annotation]]
|
|
|
|
@out w: int; [[Width of the annotation]]
|
|
|
|
@out h: int; [[Height of the annotation]]
|
2016-06-07 10:16:34 -07:00
|
|
|
}
|
|
|
|
return: bool; [[$true if given annotation is an object item, $false otherwise]]
|
|
|
|
}
|
2016-10-05 07:10:14 -07:00
|
|
|
annotation_positions_get {
|
|
|
|
[[Sets given cursors to the start and end positions of the annotation.
|
|
|
|
|
2016-11-15 07:05:06 -08:00
|
|
|
The cursors $start and $end will be set to the start and end
|
2016-10-05 07:10:14 -07:00
|
|
|
positions of the given annotation $annotation.
|
|
|
|
|
|
|
|
@since 1.18
|
|
|
|
]]
|
|
|
|
legacy: null;
|
|
|
|
params {
|
2016-11-03 09:05:00 -07:00
|
|
|
@in annotation: ptr(const(Efl.Canvas.Text.Annotation)); [[Annotation
|
2016-10-05 07:10:14 -07:00
|
|
|
handle to query]]
|
|
|
|
@in start: Efl.Canvas.Text.Cursor; [[Cursor to be set to the start
|
|
|
|
position of the annotation in the text]]
|
|
|
|
@in end: Efl.Canvas.Text.Cursor; [[Cursor to be set to the end
|
|
|
|
position of the annotation in the text]]
|
|
|
|
}
|
|
|
|
}
|
2016-05-24 06:11:03 -07:00
|
|
|
}
|
|
|
|
implements {
|
2016-08-10 07:23:04 -07:00
|
|
|
Efl.Object.constructor;
|
|
|
|
Efl.Object.destructor;
|
2016-12-27 07:37:41 -08:00
|
|
|
Efl.Canvas.Object.paragraph_direction { get; set; }
|
|
|
|
Efl.Text.text { get; set; }
|
2016-12-22 02:43:45 -08:00
|
|
|
Efl.Gfx.Filter.filter_program { get; set; }
|
2017-01-04 18:25:21 -08:00
|
|
|
Efl.Gfx.Filter.filter_data { get; set; }
|
2017-01-05 00:56:04 -08:00
|
|
|
Efl.Gfx.Filter.filter_source { get; set; }
|
2016-12-22 02:43:45 -08:00
|
|
|
Efl.Canvas.Filter.Internal.filter_dirty;
|
|
|
|
Efl.Canvas.Filter.Internal.filter_input_render;
|
|
|
|
Efl.Canvas.Filter.Internal.filter_state_prepare;
|
2016-05-24 06:11:03 -07:00
|
|
|
}
|
2016-07-11 04:18:19 -07:00
|
|
|
events {
|
2016-11-15 07:05:06 -08:00
|
|
|
changed; [[Called when the content (text or annotations) changed.]]
|
2017-01-05 22:22:54 -08:00
|
|
|
style_insets,changed; [[Called when the property @.style_insets changed.]]
|
2016-07-11 04:18:19 -07:00
|
|
|
}
|
2016-05-24 06:11:03 -07:00
|
|
|
}
|