forked from enlightenment/efl
330 lines
10 KiB
Plaintext
330 lines
10 KiB
Plaintext
struct @extern Evas.Textblock.Cursor;
|
|
struct @extern Evas.Textblock.Style;
|
|
struct Evas.Textblock.Node_Format;
|
|
|
|
class Evas.Textblock (Evas.Object)
|
|
{
|
|
legacy_prefix: evas_object_textblock;
|
|
eo_prefix: evas_obj_textblock;
|
|
methods {
|
|
@property text_markup {
|
|
set {
|
|
[[Sets the tetxblock's text to the markup text.
|
|
|
|
Note: assumes text does not include the unicode object
|
|
replacement char (0xFFFC)
|
|
]]
|
|
}
|
|
get {
|
|
[[Get the markup of the object.]]
|
|
}
|
|
values {
|
|
text: const(char)*; [[The markup text to use.]]
|
|
}
|
|
}
|
|
@property valign {
|
|
set {
|
|
[[Sets the vertical alignment of text within the textblock object
|
|
as a whole.
|
|
|
|
Normally alignment is 0.0 (top of object). Values given should
|
|
be between 0.0 and 1.0 (1.0 bottom of object, 0.5 being
|
|
vertically centered etc.).
|
|
|
|
@since 1.1
|
|
]]
|
|
}
|
|
get {
|
|
[[Gets the vertical alignment of a textblock
|
|
|
|
@since 1.1
|
|
]]
|
|
}
|
|
values {
|
|
align: double; [[The alignment set for the object.]]
|
|
}
|
|
}
|
|
@property bidi_delimiters {
|
|
set {
|
|
[[Sets the BiDi delimiters used in the textblock.
|
|
|
|
BiDi delimiters are use 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.
|
|
|
|
@since 1.1
|
|
]]
|
|
}
|
|
get {
|
|
[[Gets the BiDi delimiters used in the textblock.
|
|
|
|
BiDi delimiters are use 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.
|
|
|
|
@since 1.1
|
|
]]
|
|
}
|
|
values {
|
|
delim: const(char)*; [[A null terminated string of delimiters, e.g ",|" or $null if empty.]]
|
|
}
|
|
}
|
|
@property replace_char {
|
|
set {
|
|
[[Set the "replacement character" to use for the given textblock object.]]
|
|
}
|
|
values {
|
|
ch: const(char)*; [[The charset name.]]
|
|
}
|
|
}
|
|
@property legacy_newline {
|
|
set {
|
|
[[Sets newline mode. When true, newline character will behave
|
|
as a paragraph separator.
|
|
|
|
@since 1.1
|
|
]]
|
|
}
|
|
get {
|
|
[[Gets newline mode. When true, newline character behaves
|
|
as a paragraph separator.
|
|
|
|
@since 1.1
|
|
]]
|
|
}
|
|
values {
|
|
mode: bool; [[$true for legacy mode, $false otherwise.]]
|
|
}
|
|
}
|
|
@property style {
|
|
set {
|
|
[[Set the objects style to $ts.]]
|
|
}
|
|
get {
|
|
[[Get the style of an object.]]
|
|
}
|
|
values {
|
|
ts: const(Evas.Textblock.Style)*; [[The style.]]
|
|
}
|
|
}
|
|
@property node_format_first {
|
|
get {
|
|
[[Gets the first format node.]]
|
|
legacy: evas_textblock_node_format_first_get;
|
|
}
|
|
values {
|
|
format: const(Evas.Textblock.Node_Format)*;
|
|
}
|
|
}
|
|
@property size_formatted {
|
|
get {
|
|
[[Get 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.
|
|
]]
|
|
}
|
|
values {
|
|
w: Evas.Coord; [[The width of the object.]]
|
|
h: Evas.Coord; [[The height of the object.]]
|
|
}
|
|
}
|
|
@property node_format_last {
|
|
get {
|
|
[[Gets the last format node.]]
|
|
legacy: evas_textblock_node_format_last_get;
|
|
}
|
|
values {
|
|
format: const(Evas.Textblock.Node_Format)*;
|
|
}
|
|
}
|
|
@property cursor {
|
|
get {
|
|
[[Get the object's main cursor.]]
|
|
return: Evas.Textblock.Cursor *;
|
|
}
|
|
}
|
|
@property size_native {
|
|
get {
|
|
[[Get 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.
|
|
]]
|
|
}
|
|
values {
|
|
w: Evas.Coord; [[The width returned.]]
|
|
h: Evas.Coord; [[The height returned.]]
|
|
}
|
|
}
|
|
@property style_insets {
|
|
get {}
|
|
values {
|
|
l: Evas.Coord;
|
|
r: Evas.Coord;
|
|
t: Evas.Coord;
|
|
b: Evas.Coord;
|
|
}
|
|
}
|
|
line_number_geometry_get @const {
|
|
[[Get the geometry of a line number.]]
|
|
return: bool; [[$true on success, $false otherwise.]]
|
|
params {
|
|
@in line: int; [[The line number.]]
|
|
@out cx: Evas.Coord; [[x coord of the line.]]
|
|
@out cy: Evas.Coord; [[y coord of the line.]]
|
|
@out cw: Evas.Coord; [[w coord of the line.]]
|
|
@out ch: Evas.Coord; [[h coord of the line.]]
|
|
}
|
|
}
|
|
replace_char_get {
|
|
[[Get the "replacement character" for given textblock object.
|
|
|
|
Returns $null if no replacement character is in use.
|
|
]]
|
|
return: const(char)*; [[Replacement character or $null.]]
|
|
}
|
|
style_user_pop {
|
|
[[Del the from the top of the user style stack.
|
|
|
|
See also @.style.get.
|
|
|
|
@since 1.2
|
|
]]
|
|
}
|
|
cursor_new @const {
|
|
[[Create a new cursor, associate it to the obj and init it to point
|
|
to the start of the textblock.
|
|
|
|
Association to the object means the cursor will be updated when
|
|
the object will change.
|
|
|
|
Note: if you need speed and you know what you are doing, it's
|
|
slightly faster to just allocate the cursor yourself and not
|
|
associate it. (only people developing the actual object, and
|
|
not users of the object).
|
|
]]
|
|
return: Evas.Textblock.Cursor *; [[The new cursor.]]
|
|
}
|
|
node_format_list_get @const {
|
|
legacy: evas_textblock_node_format_list_get;
|
|
return: const(list<Evas.Object*>)*;
|
|
params {
|
|
@in anchor: const(char)*;
|
|
}
|
|
}
|
|
style_user_peek @const {
|
|
[[Get (don't remove) the style at the top of the user style stack.
|
|
|
|
See also @.style.get.
|
|
|
|
@since 1.2
|
|
]]
|
|
return: const(Evas.Textblock.Style)*; [[The style of the object.]]
|
|
}
|
|
node_format_remove_pair {
|
|
[[Remove a format node and its match.]]
|
|
legacy: evas_textblock_node_format_remove_pair;
|
|
params {
|
|
@in n: Evas.Textblock.Node_Format *;
|
|
}
|
|
}
|
|
clear {
|
|
[[Clear the textblock object.
|
|
|
|
Note: Does *NOT* free the Evas object itself.
|
|
]]
|
|
legacy: null;
|
|
}
|
|
style_user_push {
|
|
[[Push ts to the top of the user style stack.
|
|
|
|
FIXME: API is solid but currently only supports 1 style in the
|
|
stack.
|
|
|
|
The user style overrides the corresponding elements of the
|
|
regular style. This is the proper way to do theme overrides
|
|
in code.
|
|
|
|
See also @.style.set.
|
|
|
|
@since 1.2
|
|
]]
|
|
params {
|
|
@in ts: Evas.Textblock.Style *; [[The style to set.]]
|
|
}
|
|
}
|
|
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.
|
|
|
|
@since 1.15
|
|
]]
|
|
params {
|
|
@in eo_obs: Evas.Object *;
|
|
}
|
|
return: bool; [[$true on success, $false otherwise.]]
|
|
}
|
|
obstacle_del {
|
|
[[Removes $eo_obs from observation during text layout.
|
|
|
|
@since 1.15
|
|
]]
|
|
params {
|
|
@in eo_obs: Evas.Object *;
|
|
}
|
|
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.
|
|
|
|
@since 1.15
|
|
]]
|
|
}
|
|
}
|
|
implements {
|
|
Eo.Base.constructor;
|
|
Eo.Base.destructor;
|
|
Eo.Base.dbg_info_get;
|
|
}
|
|
}
|