docs: Fix typos and wrap EO files to 120 chars

As per our style guide:
https://www.enlightenment.org/contrib/docs/eo-guide.md
This commit is contained in:
Xavi Artigas 2019-09-02 16:24:26 +02:00
parent 0b6e8f71f1
commit dc05cbbee8
75 changed files with 566 additions and 332 deletions

View File

@ -45,9 +45,12 @@ abstract Efl.App extends Efl.Loop implements Efl.Core.Command_Line
resume: void; [[Called before a window is rendered after a pause event]]
standby: void; [[Called when the application's windows are all destroyed]]
terminate: void; [[Called before starting the shutdown of the application]]
signal,usr1: void; [[System specific, but on unix maps to SIGUSR1 signal to the process - only called on main loop object]]
signal,usr2: void; [[System specific, but on unix maps to SIGUSR2 signal to the process - only called on main loop object]]
signal,hup: void; [[System specific, but on unix maps to SIGHUP signal to the process - only called on main loop object]]
signal,usr1: void; [[System specific, but on unix maps to SIGUSR1 signal to the process -
only called on main loop object]]
signal,usr2: void; [[System specific, but on unix maps to SIGUSR2 signal to the process -
only called on main loop object]]
signal,hup: void; [[System specific, but on unix maps to SIGHUP signal to the process -
only called on main loop object]]
}
implements {
Efl.Task.priority { get; set; }

View File

@ -1,4 +1,5 @@
class @beta Efl.Appthread extends Efl.Loop implements Efl.ThreadIO, Efl.Io.Reader, Efl.Io.Writer, Efl.Io.Closer, Efl.Core.Command_Line
class @beta Efl.Appthread extends Efl.Loop
implements Efl.ThreadIO, Efl.Io.Reader, Efl.Io.Writer, Efl.Io.Closer, Efl.Core.Command_Line
{
[[ ]]
methods {

View File

@ -1,7 +1,8 @@
mixin @beta Efl.Core.Command_Line {
[[A mixin that implements standard functions for command lines.
This object parses the command line that gets passed, later the object can be accessed via accessor or the string directly.
This object parses the command line that gets passed, later the object can be accessed via accessor or the string
directly.
]]
methods {
@property command {
@ -64,9 +65,10 @@ mixin @beta Efl.Core.Command_Line {
}
}
@property command_string {
[[ Use a string to fill this object
[[Use a string to fill this object
The string will be split at every unescaped ' ', every resulting substring will be a new argument to the command line.
The string will be split at every unescaped ' ', every resulting substring will be a new argument to the
command line.
]]
set {
return : bool; [[On success $true, $false otherwise]]

View File

@ -4,7 +4,8 @@ class @beta Efl.Core.Env extends Efl.Object implements Efl.Duplicate {
A object of this type alone does not apply the object to the system.
For getting the value into the system, see @Efl.Core.Proc_Env.
A object can be forked, which will only copy its values, changes to the returned object will not change the object where it is forked off.
A object can be forked, which will only copy its values, changes to the returned object will not change the object
where it is forked off.
]]
methods {
@property env {

View File

@ -2,7 +2,8 @@ function @beta EflFilterModel {
[[EflFilterModel function]]
params {
parent: Efl.Filter_Model; [[This object can be used to know when to cancel the future.]]
child: Efl.Model; [[You must reference this object for the duration of your use of it as the caller will not do that for you.]]
child: Efl.Model; [[You must reference this object for the duration of your use of it as the caller will not do
that for you.]]
}
return: future<bool>; [[$true if the model should be kept.]]
};
@ -28,4 +29,4 @@ class @beta Efl.Filter_Model extends Efl.Composite_Model
constructors {
.filter_set;
}
}
}

View File

@ -59,7 +59,8 @@ class @beta Efl.Io.Buffered_Stream extends Efl.Loop_Consumer implements Efl.Io.R
[[Constructor-only property to set buffer limit. 0 is unlimited]]
}
values {
max_queue_size_input: size; [[Defines a maximum buffer size for incoming data or 0 to allow an unlimited amount of bytes]]
max_queue_size_input: size; [[Defines a maximum buffer size for incoming data or 0 to allow an
unlimited amount of bytes]]
}
}
@ -74,12 +75,15 @@ class @beta Efl.Io.Buffered_Stream extends Efl.Loop_Consumer implements Efl.Io.R
[[Constructor-only property to set buffer limit. 0 is unlimited]]
}
values {
max_queue_size_output: size; [[Defines a maximum buffer size for output data, or 0 to allow unlimited amount of bytes. If limited, @Efl.Io.Writer.write will take less data than requested.]]
max_queue_size_output: size; [[Defines a maximum buffer size for output data, or 0 to allow unlimited
amount of bytes. If limited, @Efl.Io.Writer.write will take less data
than requested.]]
}
}
@property line_delimiter {
[[If set incoming data will be checked for the delimiter and "line" events. The line may include the delimiter, unless it's end-of-stream in @.max_queue_size_input has been reached.]]
[[If set incoming data will be checked for the delimiter and "line" events. The line may include the
delimiter, unless it's end-of-stream in @.max_queue_size_input has been reached.]]
get { }
set {
[[Changes line delimiter to use. If empty no delimiter is to be used]]
@ -100,7 +104,8 @@ class @beta Efl.Io.Buffered_Stream extends Efl.Loop_Consumer implements Efl.Io.R
greater-than zero. Defaults to inactive.
]]
values {
seconds: double; [[Number of inactive seconds to timeout this object. If zero or less it will be disabled.]]
seconds: double; [[Number of inactive seconds to timeout this object. If zero or less it will be
disabled.]]
}
}
@ -162,7 +167,9 @@ class @beta Efl.Io.Buffered_Stream extends Efl.Loop_Consumer implements Efl.Io.R
]]
get { }
values {
slice: Eina.Slice; [[Slice of the current buffer, may be invalidated if @Efl.Io.Writer.write, @Efl.Io.Closer.close or @Efl.Io.Reader.read are called. It is the full slice available for reading.]]
slice: Eina.Slice; [[Slice of the current buffer, may be invalidated if @Efl.Io.Writer.write,
@Efl.Io.Closer.close or @Efl.Io.Reader.read are called. It is the full
slice available for reading.]]
}
}
@ -216,7 +223,7 @@ class @beta Efl.Io.Buffered_Stream extends Efl.Loop_Consumer implements Efl.Io.R
otherwise and more calls to flush must be made.
If the @.inner_io implements @Efl.Io.Closer and it
is closed or the wrapper itself's closed, this
is closed or the wrapper itself is closed, this
function will do nothing and return $true.
Note: this function may block the main loop execution
@ -226,7 +233,8 @@ class @beta Efl.Io.Buffered_Stream extends Efl.Loop_Consumer implements Efl.Io.R
"write,finished" event.
]]
params {
may_block: bool; [[If $true, then @Efl.Io.Reader.can_read and @Efl.Io.Writer.can_write are not checked and the call may block.]]
may_block: bool; [[If $true, then @Efl.Io.Reader.can_read and @Efl.Io.Writer.can_write are not checked
and the call may block.]]
ignore_line_delimiter: bool; [[Forces flush ignoring line delimiters]]
}
return: bool(true); [[$true if all data was sent, $false otherwise]]
@ -240,7 +248,9 @@ class @beta Efl.Io.Buffered_Stream extends Efl.Loop_Consumer implements Efl.Io.R
error: Eina.Error; [[An error has occurred and I/O has stopped]]
progress: void; [[Property @.progress changed]]
slice,changed: void; [[The read-slice returned by @.slice may have changed.]]
line: ptr(const(Eina.Slice)); [[If @.line_delimiter is set, will be emitted with current line. The memory is only valid during event callback dispatched and should not be modified. Note that the line slice may not be inside @.slice.]]
line: ptr(const(Eina.Slice)); [[If @.line_delimiter is set, will be emitted with current line. The memory is
only valid during event callback dispatched and should not be modified.
Note that the line slice may not be inside @.slice.]]
}
implements {

View File

@ -85,7 +85,7 @@ class @beta Efl.Io.Copier extends Efl.Loop_Consumer implements Efl.Io.Closer {
that in order to attempt to write a full line at a time,
including the delimiter. Exceptions may be if the
@.source object emitted "eos" and there is no trailing
delimiter (ie: missing trailing newline in files) or if the
delimiter (i.e: missing trailing newline in files) or if the
@.buffer_limit is reached.
Once @Efl.Io.Reader.eos is $true or "eos" event happen,
@ -184,7 +184,9 @@ class @beta Efl.Io.Copier extends Efl.Loop_Consumer implements Efl.Io.Closer {
}
@property line_delimiter {
[[If there is a line delimiter, reads will buffer/queue up to the line delimiter before calling @Efl.Io.Writer.write on the @.destination and the event line is emitted with the current line. The line may include the delimiter unless it's end-of-stream on @.source or @.buffer_limit was reached.]]
[[If there is a line delimiter, reads will buffer/queue up to the line delimiter before calling
@Efl.Io.Writer.write on the @.destination and the event line is emitted with the current line.
The line may include the delimiter unless it's end-of-stream on @.source or @.buffer_limit was reached.]]
get { }
set {
[[Changes line delimiter to use. If empty, no delimiter is to be used]]
@ -264,7 +266,8 @@ class @beta Efl.Io.Copier extends Efl.Loop_Consumer implements Efl.Io.Closer {
values {
read: uint64 @optional; [[Amount of bytes read from source]]
written: uint64 @optional; [[Amount of bytes written to destination]]
total: uint64 @optional; [[If @.source is an Efl.Io.Sizer, its total size. Otherwise 0 to report unknown size]]
total: uint64 @optional; [[If @.source is an @Efl.Io.Sizer, its total size. Otherwise 0 to
report unknown size]]
}
}
@ -279,7 +282,8 @@ class @beta Efl.Io.Copier extends Efl.Loop_Consumer implements Efl.Io.Closer {
greater-than zero. Defaults to inactive.
]]
values {
seconds: double; [[Number inactive seconds to timeout this copier. If zero or less, it will be disabled.]]
seconds: double; [[Number inactive seconds to timeout this copier. If zero or less, it will be
disabled.]]
}
}
@ -294,7 +298,8 @@ class @beta Efl.Io.Copier extends Efl.Loop_Consumer implements Efl.Io.Closer {
get { }
set @protected { }
values {
done: bool; [[If $true, source is "eos" and all data was written to "destination". If $false, it's still pending some more copies]]
done: bool; [[If $true, source is "eos" and all data was written to "destination". If $false, it's
still pending some more copies]]
}
}
@ -351,7 +356,8 @@ class @beta Efl.Io.Copier extends Efl.Loop_Consumer implements Efl.Io.Closer {
"done" event.
]]
params {
may_block: bool; [[If $true, then @Efl.Io.Reader.can_read and @Efl.Io.Writer.can_write are not checked and the call may block.]]
may_block: bool; [[If $true, then @Efl.Io.Reader.can_read and @Efl.Io.Writer.can_write are not checked
and the call may block.]]
ignore_line_delimiter: bool; [[Forces flush ignoring line delimiters]]
}
return: bool(true); [[$true on success, $false otherwise]]
@ -362,8 +368,10 @@ class @beta Efl.Io.Copier extends Efl.Loop_Consumer implements Efl.Io.Closer {
done: void; [[All available data was copied from source to destination]]
error: Eina.Error; [[An error happened and the copy stopped]]
progress: void; [[Total size changed or Data was read/written]]
data: ptr(const(Eina.Slice)); [[When data is read to internal buffer, it's emitted in this event. The memory is only valid during event callback dispatched and should not be modified.]]
line: ptr(const(Eina.Slice)); [[If @.line_delimiter is set, will be emitted with current line. The memory is only valid during event callback dispatched and should not be modified.]]
data: ptr(const(Eina.Slice)); [[When data is read to internal buffer, it's emitted in this event. The memory
is only valid during event callback dispatched and should not be modified.]]
line: ptr(const(Eina.Slice)); [[If @.line_delimiter is set, will be emitted with current line. The memory is
only valid during event callback dispatched and should not be modified.]]
}
implements {

View File

@ -1,4 +1,6 @@
class @beta Efl.Io.File extends Efl.Loop_Fd implements Efl.File, Efl.Io.Reader_Fd, Efl.Io.Writer_Fd, Efl.Io.Closer_Fd, Efl.Io.Sizer_Fd, Efl.Io.Positioner_Fd {
class @beta Efl.Io.File extends Efl.Loop_Fd
implements Efl.File, Efl.Io.Reader_Fd, Efl.Io.Writer_Fd, Efl.Io.Closer_Fd, Efl.Io.Sizer_Fd,
Efl.Io.Positioner_Fd {
[[File access (open, close, read, write, lseek, ftruncate)
@Efl.Io.Closer.close_on_exec and

View File

@ -4,7 +4,8 @@ struct Efl.Loop_Arguments {
@since 1.22
]]
argv: const(array<const(stringshare)>); [[Array with loop arguments]]
initialization: bool; [[Set to $true when the program should initialize its internal state. This happen once per process instance.]]
initialization: bool; [[Set to $true when the program should initialize its internal state.
This happens once per process instance.]]
}
abstract Efl.Loop extends Efl.Task
@ -69,8 +70,10 @@ abstract Efl.Loop extends Efl.Task
[[You should never need/call this, unless you are implementing a custom
tick source for an animator.
Note: The time point must match whatever zero time you get from ecore_time_get() and @.time.get() (same 0 point).
What this point is is undefined, so unless your source uses the same 0 time, then you may have to adjust and do some guessing.
Note: The time point must match whatever zero time you get from ecore_time_get() and @.time.get()
(same 0 point).
What this point is is undefined, so unless your source uses the same 0 time, then you may have to adjust
and do some guessing.
]]
}
get {
@ -106,12 +109,17 @@ abstract Efl.Loop extends Efl.Task
events {
idle,enter @restart: void; [[Event occurs once the main loop enters the idle state.]]
idle,exit @restart: void; [[Event occurs once the main loop exits the idle state.]]
idle @restart: void; [[Event occurs once the main loop is idle. If you keep listening on this event it may increase the burden on your CPU.]]
idle @restart: void; [[Event occurs once the main loop is idle. If you keep listening on this event it may
increase the burden on your CPU.]]
arguments: Efl.Loop_Arguments; [[Event happens when args are provided to the loop by args_add().]]
poll,high: void; [[Event occurs multiple times per second. The exact tick is undefined and can be adjusted system wide.]]
poll,medium: void; [[Event occurs multiple times per minute. The exact tick is undefined and can be adjusted system wide.]]
poll,low: void; [[Event occurs multiple times every 15 minutes. The exact tick is undefined and can be adjusted system wide.]]
quit: void; [[Event occurs when the loop was requested to quit externally e.g. by a ctrl+c signal or a request from a parent loop/thread to have the child exit.]]
poll,high: void; [[Event occurs multiple times per second. The exact tick is undefined and can be adjusted
system-wide.]]
poll,medium: void; [[Event occurs multiple times per minute. The exact tick is undefined and can be adjusted
system-wide.]]
poll,low: void; [[Event occurs multiple times every 15 minutes. The exact tick is undefined and can be adjusted
system-wide.]]
quit: void; [[Event occurs when the loop was requested to quit externally e.g. by a ctrl+c signal or a request
from a parent loop/thread to have the child exit.]]
}
implements {
Efl.Object.constructor;

View File

@ -20,7 +20,8 @@ class @beta Efl.Loop_Handler extends Efl.Object
set { }
get { }
values {
flags: Efl.Loop_Handler_Flags; [[ The flags that indicate what kind of I/O should be listened for like read, write or error channels. ]]
flags: Efl.Loop_Handler_Flags; [[The flags that indicate what kind of I/O should be listened for like
read, write or error channels. ]]
}
}
@property fd {

View File

@ -3,12 +3,13 @@ abstract @beta Efl.Loop_Model extends Efl.Loop_Consumer implements Efl.Model
data: null;
methods {
volatile_make {
[[To be called when a Child model is created by @Efl.Model.children_slice_get by the one creating the child object.
[[To be called when a Child model is created by @Efl.Model.children_slice_get by the one creating the
child object.
This function is used to properly define the lifecycle of the new Child Model object
and make sure that once it has 0 ref except its parent Model, it will be destroyed.
This function should only be called once per child. It is useful for @Efl.Model who
have a lot of children and shouldn't keep more than what is used in memory.]]
This function is used to properly define the lifecycle of the new Child Model object
and make sure that once it has 0 ref except its parent Model, it will be destroyed.
This function should only be called once per child. It is useful for @Efl.Model who
have a lot of children and shouldn't keep more than what is used in memory.]]
}
}
implements {

View File

@ -5,12 +5,14 @@ class @beta Efl.Select_Model extends Efl.Boolean_Model
selected_get {
[[Get an iterator of all the selected child of this model.
]]
return: iterator<uint64>; [[The iterator give indexes of selected child. It is valid until any change is made on the model.]]
return: iterator<uint64>; [[The iterator gives indices of selected children.
It is valid until any change is made on the model.]]
}
unselected_get {
[[Get an iterator of all the child of this model that are not selected.
]]
return: iterator<uint64>; [[The iterator give indexes of unselected child. It is valid until any change is made on the model.]]
return: iterator<uint64>; [[The iterator gives indices of unselected children.
It is valid until any change is made on the model.]]
}
@property single_selection {
[[Define if we support only one exclusive selection at a time when set to $true.

View File

@ -1,4 +1,5 @@
class @beta Efl.Thread extends Efl.Task implements Efl.ThreadIO, Efl.Io.Reader, Efl.Io.Writer, Efl.Io.Closer, Efl.Core.Command_Line
class @beta Efl.Thread extends Efl.Task
implements Efl.ThreadIO, Efl.Io.Reader, Efl.Io.Writer, Efl.Io.Closer, Efl.Core.Command_Line
{
methods {
}

View File

@ -19,27 +19,34 @@ function @beta EflViewModelPropertySet {
class @beta Efl.View_Model extends Efl.Composite_Model
{
[[Efl model providing helpers for custom properties used when linking a model to a view and you need to generate/adapt values for display.
[[Efl model providing helpers for custom properties used when linking a model to a view and you need to
generate/adapt values for display.
There is two ways to use this class, you can either inherit from it and have a custom constructor for example. Or you can just instantiate
it and manually define your property on it via callbacks.
There is two ways to use this class, you can either inherit from it and have a custom constructor for example.
Or you can just instantiate it and manually define your property on it via callbacks.
]]
methods {
property_string_add {
[[Adds a synthetic string property, generated from a $definition string and other properties in the model.
The $definition string, similar to how $printf works, contains ${} placeholders that are replaced by the actual value of the property inside the placeholder tags when the synthetic property is retrieved.
For example, a numeric property $length might be strange to use as a label, since it will only display a number. However, a synthetic string can be generated with the definition "Length ${length}." which renders more nicely and does not require any more code by the user of the property.
The $definition string, similar to how $printf works, contains ${} placeholders that are replaced by the
actual value of the property inside the placeholder tags when the synthetic property is retrieved.
For example, a numeric property $length might be strange to use as a label, since it will only display a
number. However, a synthetic string can be generated with the definition "Length ${length}." which renders
more nicely and does not require any more code by the user of the property.
$not_ready and $on_error strings can be given to be used when the data is not ready or there is some error, respectively. These strings do accept placeholder tags.
$not_ready and $on_error strings can be given to be used when the data is not ready or there is some error,
respectively. These strings do accept placeholder tags.
See @.property_string_del
]]
params {
name: string; [[The name for the new synthetic property.]]
definition: string; [[The definition string for the new synthetic property.]]
not_ready: string; [[The text to be used if any of the properties used in $definition is not ready yet. If set to $null, no check against EAGAIN will be done.]]
on_error: string; [[The text to be used if any of the properties used in $definition is in error. It takes precedence over $not_ready. If set to $null, no error checks are performed.]]
not_ready: string; [[The text to be used if any of the properties used in $definition is not ready yet.
If set to $null, no check against EAGAIN will be done.]]
on_error: string; [[The text to be used if any of the properties used in $definition is in error. It takes
precedence over $not_ready. If set to $null, no error checks are performed.]]
}
return: Eina.Error;
}
@ -54,7 +61,8 @@ class @beta Efl.View_Model extends Efl.Composite_Model
return: Eina.Error;
}
property_logic_add {
[[Add callbacks that will be triggered when someone ask for the specified property name when getting or setting a property.
[[Add callbacks that will be triggered when someone ask for the specified property name when getting or
setting a property.
A get or set should at least be provided for this call to succeed.
@ -62,14 +70,18 @@ class @beta Efl.View_Model extends Efl.Composite_Model
]]
params {
property: string; [[The property to bind on to.]]
get: EflViewModelPropertyGet; [[Define the get callback called when the @Efl.Model.property.get is called with the above property name.]]
set: EflViewModelPropertySet; [[Define the set callback called when the @Efl.Model.property.set is called with the above property name.]]
binded: iterator<string>; [[Iterator of property name to bind with this defined property see @.property_bind.]]
get: EflViewModelPropertyGet; [[Define the get callback called when the @Efl.Model.property.get is called
with the above property name.]]
set: EflViewModelPropertySet; [[Define the set callback called when the @Efl.Model.property.set is called
with the above property name.]]
binded: iterator<string>; [[Iterator of property name to bind with this defined property see
@.property_bind.]]
}
return: Eina.Error;
}
property_logic_del {
[[Delete previously added callbacks that were triggered when someone asked for the specified property name when getting or setting a property.
[[Delete previously added callbacks that were triggered when someone asked for the specified property name
when getting or setting a property.
A get or set should at least be provided for this call to succeed.
@ -102,7 +114,7 @@ class @beta Efl.View_Model extends Efl.Composite_Model
}
}
@property children_bind {
[[Define if we will intercept all childrens object reference and
[[Define if we will intercept all children object reference and
bind them through the ViewModel with the same property logic as this
one. Be careful of recursivity.

View File

@ -48,8 +48,10 @@ class @beta Efl.Net.Control.Technology extends Efl.Loop_Consumer {
set { }
values {
enabled: bool; [[When to enable or disable tethering for this technology.]]
identifier: string @optional; [[The name to identify the tethering. For WiFi this will translate to an SSID.]]
passphrase: string @optional; [[The passphrase for tethering access. For WiFi this will translate to WPA passphrase.]]
identifier: string @optional; [[The name to identify the tethering. For WiFi this will translate to an
SSID.]]
passphrase: string @optional; [[The passphrase for tethering access. For WiFi this will translate to
WPA passphrase.]]
}
}

View File

@ -1,8 +1,9 @@
class @beta Efl.Net.Socket_Fd extends Efl.Loop_Fd implements Efl.Io.Reader_Fd, Efl.Io.Writer_Fd, Efl.Io.Closer_Fd, Efl.Net.Socket {
[[A base implementation for sockets over filedescriptors (fd)
class @beta Efl.Net.Socket_Fd extends Efl.Loop_Fd
implements Efl.Io.Reader_Fd, Efl.Io.Writer_Fd, Efl.Io.Closer_Fd, Efl.Net.Socket {
[[A base implementation for sockets over file descriptors (fd)
This is the common class and takes an existing FD, usually
created by an dialer or server.
created by an dialler or server.
@Efl.Io.Closer.close_on_exec and
@Efl.Io.Closer.close_on_invalidate are respected and default to

View File

@ -183,7 +183,7 @@ interface @beta Efl.Gfx.Image
making frames and decorations. You would most probably also be
using a filled image (as in @Efl.Gfx.Fill.fill_auto) to use as a frame.
The default value is @Efl.Gfx.Border_Fill_Mode.default, ie. render
The default value is @Efl.Gfx.Border_Fill_Mode.default, i.e. render
and scale the center area, respecting its transparency.
]]
set {}
@ -208,8 +208,10 @@ interface @beta Efl.Gfx.Image
}
get {}
values {
horizontal: iterator<ptr(Efl.Gfx.Image_Stretch_Region)>; [[Representation of area that are stretchable in the image horizontal space.]]
vertical: iterator<ptr(Efl.Gfx.Image_Stretch_Region)>; [[Representation of area that are stretchable in the image vertical space.]]
horizontal: iterator<ptr(Efl.Gfx.Image_Stretch_Region)>; [[Representation of areas that are stretchable in
the image horizontal space.]]
vertical: iterator<ptr(Efl.Gfx.Image_Stretch_Region)>; [[Representation of areas that are stretchable in
the image vertical space.]]
}
}
@property image_size {

View File

@ -8,7 +8,7 @@ enum Efl.Gfx.Image_Orientation
Directional values ($up, $down, $left, $right) indicate the final direction in
which the top of the image will be facing (e.g. a picture of a house will have
its roof pointing to the right if the $right orientation is used).
Flipping values ($flip_horizontal and $flip_vertical) can be additionaly added
Flipping values ($flip_horizontal and $flip_vertical) can be additionally added
to produce a mirroring in each axis.
Not to be confused with @Efl.Ui.Layout_Orientation which is meant for widgets, rather
than images and canvases. This enum is used to rotate images, videos and
@ -19,10 +19,12 @@ enum Efl.Gfx.Image_Orientation
right = 1, [[Orient right, rotate 90 degrees clock-wise.]]
down = 2, [[Orient down, rotate 180 degrees.]]
left = 3, [[Orient left, rotate 270 degrees clock-wise.]]
rotation_bitmask = 3, [[Bitmask that can be used to isolate rotation values, that is, $none, $up, $down, $left and $right.]]
rotation_bitmask = 3, [[Bitmask that can be used to isolate rotation values, that is, $none, $up, $down, $left and
$right.]]
flip_horizontal = 4, [[Mirror horizontally. Can be added to the other values.]]
flip_vertical = 8, [[Mirror vertically. Can be added to the other values.]]
flip_bitmask = 12 [[Bitmask that can be used to isolate flipping values, that is, $flip_vertical and $flip_horizontal.]]
flip_bitmask = 12 [[Bitmask that can be used to isolate flipping values, that is, $flip_vertical and
$flip_horizontal.]]
}
interface Efl.Gfx.Image_Orientable

View File

@ -1,4 +1,5 @@
class @beta Efl.Io.Buffer extends Efl.Object implements Efl.Io.Reader, Efl.Io.Writer, Efl.Io.Closer, Efl.Io.Sizer, Efl.Io.Positioner {
class @beta Efl.Io.Buffer extends Efl.Object
implements Efl.Io.Reader, Efl.Io.Writer, Efl.Io.Closer, Efl.Io.Sizer, Efl.Io.Positioner {
[[Generic In-memory buffer of data to be used as I/O.
This class offers both input and output, which can be used at
@ -118,7 +119,9 @@ class @beta Efl.Io.Buffer extends Efl.Object implements Efl.Io.Reader, Efl.Io.Wr
]]
get { }
values {
slice: Eina.Slice; [[Slice of the current buffer, may be invalidated if @Efl.Io.Writer.write, @Efl.Io.Closer.close or @Efl.Io.Sizer.resize are called. It is the full slice, not a partial one starting at current position.]]
slice: Eina.Slice; [[Slice of the current buffer, may be invalidated if @Efl.Io.Writer.write,
@Efl.Io.Closer.close or @Efl.Io.Sizer.resize are called.
It is the full slice, not a partial one starting at current position.]]
}
}
@ -137,7 +140,8 @@ class @beta Efl.Io.Buffer extends Efl.Object implements Efl.Io.Reader, Efl.Io.Wr
events {
position_read,changed: void; [[Notifies @.position_read changed]]
position_write,changed: void; [[Notifies @.position_write changed]]
reallocated: void; [[Notifies the internal buffer was reallocated, thus whatever was returned by @.slice becomes invalid]]
reallocated: void; [[Notifies the internal buffer was reallocated, thus whatever was returned by @.slice
becomes invalid.]]
}
implements {

View File

@ -52,7 +52,9 @@ class @beta Efl.Io.Queue extends Efl.Object implements Efl.Io.Reader, Efl.Io.Wri
]]
get { }
values {
slice: Eina.Slice; [[Slice of the current buffer, may be invalidated if @Efl.Io.Writer.write, @Efl.Io.Closer.close or @Efl.Io.Reader.read are called. It is the full slice available for reading.]]
slice: Eina.Slice; [[Slice of the current buffer, may be invalidated if @Efl.Io.Writer.write,
@Efl.Io.Closer.close or @Efl.Io.Reader.read are called.
It is the full slice available for reading.]]
}
}

View File

@ -29,7 +29,9 @@ interface Efl.Io.Reader {
You can understand this method as read(2) libc function.
]]
params {
@inout rw_slice: rw_slice<ubyte>; [[Provides a pre-allocated memory to be filled up to rw_slice.len. It will be populated and the length will be set to the actually used amount of bytes, which can be smaller than the request.]]
@inout rw_slice: rw_slice<ubyte>; [[Provides a pre-allocated memory to be filled up to rw_slice.len.
It will be populated and the length will be set to the actually
used amount of bytes, which can be smaller than the request.]]
}
return: Eina.Error; [[0 on succeed, a mapping of errno otherwise]]
}

View File

@ -29,8 +29,12 @@ interface Efl.Io.Writer {
You can understand this method as write(2) libc function.
]]
params {
@inout slice: slice<ubyte>; [[Provides a pre-populated memory to be used up to slice.len. The returned slice will be adapted as length will be set to the actually used amount of bytes, which can be smaller than the request.]]
@out remaining: slice<ubyte> @optional; [[Convenience to output the remaining parts of slice that was not written. If the full slice was written, this will be a slice of zero-length.]]
@inout slice: slice<ubyte>; [[Provides a pre-populated memory to be used up to slice.len.
The returned slice will be adapted as length will be set to the actually
used amount of bytes, which can be smaller than the request.]]
@out remaining: slice<ubyte> @optional; [[Convenience to output the remaining parts of slice that were
not written. If the full slice was written, this will be a
slice of zero-length.]]
}
return: Eina.Error; [[0 on succeed, a mapping of errno otherwise]]
}

View File

@ -22,7 +22,7 @@ interface @beta Efl.Model
get {
[[Get properties from model.
properties_get is due to provide callers a way the fetch the
Properties_get is due to provide callers a way the fetch the
current properties implemented/used by the model. The event
@[Efl.Model.properties,changed] will be raised to notify
listeners of any modifications in the properties.
@ -51,7 +51,8 @@ interface @beta Efl.Model
See @.property.get, @[Efl.Model.properties,changed]
]]
return: future<any_value_ptr>; [[Return an error in case the property could not be set, the value that was set otherwise.]]
return: future<any_value_ptr>; [[Return an error in case the property could not be set,
or the value that was set otherwise.]]
}
get {
[[Retrieve the value of a given property name.
@ -75,7 +76,7 @@ interface @beta Efl.Model
@.property.get can return an error with code EAGAIN when it doesn't have any
meaningful value. To make life easier, this future will resolve when
the error:EAGAIN disapears. Either into a failed future in case the error
the error:EAGAIN disappears. Either into a failed future in case the error
code changed to something else or a success with the value of the property
whenever the property finally changes.
@ -85,7 +86,8 @@ interface @beta Efl.Model
params {
@in property: string; [[Property name.]]
}
return: future<any_value_ptr>; [[Future to be resolved when the property changes to anything other than error:EAGAIN]]
return: future<any_value_ptr>; [[Future to be resolved when the property changes to anything other than
error:EAGAIN]]
}
children_slice_get {
[[Get children slice OR full range.

View File

@ -1,5 +1,5 @@
struct @beta Efl.Ui.Factory_Item_Created_Event {
[[EFL Ui Factory event structure provided when an item was just created.]]
[[EFL UI Factory event structure provided when an item was just created.]]
model: Efl.Model; [[The model already set on the new item.]]
item: Efl.Gfx.Entity; [[The item that was just created.]]
}
@ -11,10 +11,11 @@ interface @beta Efl.Ui.Factory extends Efl.Ui.Property_Bind, Efl.Ui.Factory_Bind
create @protected {
[[Create a UI object from the necessary properties in the specified model.
Note: This is the function you need to implement for a custom factory, but if you want to use a factory, you should rely on @Efl.Ui.View_Factory.create_with_event.]]
Note: This is the function you need to implement for a custom factory, but if you want to use a factory,
you should rely on @Efl.Ui.View_Factory.create_with_event.]]
params {
models: iterator<Efl.Model>; [[Efl iterator providing the model to be associated to the new item. It should remain valid until the end of the function call.]]
models: iterator<Efl.Model>; [[Efl iterator providing the model to be associated to the new item.
It should remain valid until the end of the function call.]]
parent: Efl.Gfx.Entity; [[Efl canvas]]
}
return: future<Efl.Gfx.Entity>; [[Created UI object]]
@ -26,9 +27,11 @@ interface @beta Efl.Ui.Factory extends Efl.Ui.Property_Bind, Efl.Ui.Factory_Bind
}
}
building @const {
[[This function is called during the creation of an UI object between the @Efl.Object.constructor and @Efl.Object.finalize call.
[[This function is called during the creation of an UI object between the @Efl.Object.constructor and
@Efl.Object.finalize call.
Note: if the @Efl.Ui.Factory does keep a cache of object, this won't be called when object are pulled out of the cache.]]
Note: If the @Efl.Ui.Factory does keep a cache of objects, this won't be called when objects are pulled out
of the cache.]]
params {
ui_view: Efl.Gfx.Entity; [[The UI object being created.]]
}

View File

@ -1,6 +1,7 @@
mixin @beta Efl.Ui.Layout_Orientable_Readonly extends Efl.Ui.Layout_Orientable
{
implements {
Efl.Ui.Layout_Orientable.orientation { set; [[This will always print an error saying that this is a readonly object.]] }
Efl.Ui.Layout_Orientable.orientation { set; [[This will always print an error saying that this is a read-only
object.]] }
}
}

View File

@ -25,7 +25,10 @@ interface @beta Efl.Ui.Property_Bind
}
}
events {
properties,changed: Efl.Ui.Property_Event; [[Event dispatched when a property on the object has changed due to an user interaction on the object that a model could be interested in.]]
property,bound: stringshare; [[Event dispatched when a property on the object is bound to a model. This is useful to not overgenerate event.]]
properties,changed: Efl.Ui.Property_Event; [[Event dispatched when a property on the object has changed due to
a user interaction on the object that a model could be interested
in.]]
property,bound: stringshare; [[Event dispatched when a property on the object is bound to a model.
This is useful to avoid generating too many events.]]
}
}

View File

@ -25,9 +25,9 @@ interface @beta Efl.Ui.Range_Interactive extends Efl.Ui.Range_Display
}
events {
steady: void; [[Called when the widget's value has changed and has remained unchanged for 0.2s.
This allows filtering out unwanted "noise" from the widget if you are only
interested in its final position.
Use this event instead of @[Efl.Ui.Range_Display.changed] if you are going to perform a costly operation
on its handler. ]]
This allows filtering out unwanted "noise" from the widget if you are only
interested in its final position.
Use this event instead of @[Efl.Ui.Range_Display.changed] if you are going to perform a costly
operation on its handler. ]]
}
}

View File

@ -4,10 +4,14 @@ class @beta Efl.Ui.View_Factory
data: null;
methods {
create_with_event @static {
[[Create a UI object from the necessary properties in the specified model and generate the created event on the factory when the object is done building. This function must be use by all @Efl.Ui.View that need to create object. They should not use @Efl.Ui.Factory.create directly.]]
[[Create a UI object from the necessary properties in the specified model and generate the created event on
the factory when the object is done building. This function must be use by all @Efl.Ui.View that need to
create object. They should not use @Efl.Ui.Factory.create directly.]]
params {
factory: Efl.Ui.Factory; [[The factory to use for requesting the new object from and generating the created event onto.]]
models: iterator<Efl.Model>; [[Efl iterator providing the model to be associated to the new item. It should remain valid until the end of the function call.]]
factory: Efl.Ui.Factory; [[The factory to use for requesting the new object from and generating the created
event onto.]]
models: iterator<Efl.Model>; [[Efl iterator providing the model to be associated to the new item. It should
remain valid until the end of the function call.]]
parent: Efl.Gfx.Entity; [[Efl canvas]]
}
return: future<Efl.Gfx.Entity>; [[Created UI object]]

View File

@ -284,7 +284,7 @@ mixin @beta Efl.Access.Object requires Efl.Object
}
}
@property role_name @protected @beta {
[[Gets human-readable string indentifying object accessibility role.]]
[[Gets human-readable string identifying object accessibility role.]]
get {
}
values {
@ -292,11 +292,12 @@ mixin @beta Efl.Access.Object requires Efl.Object
}
}
@property attributes @protected @beta {
[[Gets key-value pairs indentifying object extra attributes. Must be free by a user.]]
[[Gets key-value pairs identifying object extra attributes. Must be free by a user.]]
get {
}
values {
attributes: list<ptr(Efl.Access.Attribute) @owned> @owned; [[List of object attributes, Must be freed by the user]]
attributes: list<ptr(Efl.Access.Attribute) @owned> @owned; [[List of object attributes.
Must be freed by the user]]
}
}
attribute_append {

View File

@ -55,7 +55,9 @@ interface @beta Efl.Access.Text
offset: int; [[Position in text.]]
}
values {
character: Eina.Unicode; [[Character at offset. 0 when out-of bounds offset has been given. Codepoints between DC80 and DCFF indicates that string includes invalid UTF8 chars.]]
character: Eina.Unicode; [[Character at offset. 0 when out-of bounds offset has been given.
Codepoints between DC80 and DCFF indicate that string includes invalid
UTF8 chars.]]
}
}
@property string @protected @beta {
@ -64,8 +66,10 @@ interface @beta Efl.Access.Text
}
keys {
granularity: Efl.Access.Text_Granularity; [[Text granularity]]
start_offset: ptr(int); [[Offset indicating start of string according to given granularity. -1 in case of error.]]
end_offset: ptr(int); [[Offset indicating end of string according to given granularity. -1 in case of error.]]
start_offset: ptr(int); [[Offset indicating start of string according to given granularity.
-1 in case of error.]]
end_offset: ptr(int); [[Offset indicating end of string according to given granularity.
-1 in case of error.]]
}
values {
string: mstring @owned; [[Newly allocated UTF-8 encoded string. Must be free by a user.]]
@ -136,7 +140,8 @@ interface @beta Efl.Access.Text
}
keys {
offset: int; [[Offset]]
screen_coords: bool; [[If $true, x and y values will be relative to screen origin, otherwise relative to canvas]]
screen_coords: bool; [[If $true, x and y values will be relative to screen origin,
otherwise relative to canvas]]
}
values {
rect: Eina.Rect; [[Extents rectangle]]
@ -155,7 +160,8 @@ interface @beta Efl.Access.Text
get {
}
keys {
screen_coords: bool; [[If $true, x and y values will be relative to screen origin, otherwise relative to canvas]]
screen_coords: bool; [[If $true, x and y values will be relative to screen origin,
otherwise relative to canvas]]
x: int; [[X coordinate]]
y: int; [[Y coordinate]]
}
@ -168,7 +174,8 @@ interface @beta Efl.Access.Text
get {
}
keys {
screen_coords: bool; [[If $true, x and y values will be relative to screen origin, otherwise relative to canvas]]
screen_coords: bool; [[If $true, x and y values will be relative to screen origin,
otherwise relative to canvas]]
rect: Eina.Rect; [[Bounding box]]
xclip: Efl.Access.Text_Clip_Type; [[xclip]]
yclip: Efl.Access.Text_Clip_Type; [[yclip]]
@ -183,7 +190,8 @@ interface @beta Efl.Access.Text
return: bool; [[$true if range extents, $false otherwise]]
}
keys {
screen_coords: bool; [[If $true, x and y values will be relative to screen origin, otherwise relative to canvas]]
screen_coords: bool; [[If $true, x and y values will be relative to screen origin,
otherwise relative to canvas]]
start_offset: int; [[Start offset]]
end_offset: int; [[End offset]]
}

View File

@ -3,24 +3,26 @@ enum Efl.Ui.Animation_View_State
{
[[State of animation view]]
not_ready, [[Animation is not ready to play. (Probably, it didn't file set yet or failed to read file.]]
play, [[Animation is on playing. see @Efl.Ui.Animation_View.play]]
play_back, [[Animation is on playing back (rewinding). see @Efl.Ui.Animation_View.play_back]]
pause, [[Animation has been paused. To continue animation, call @Efl.Ui.Animation_View.resume. see @Efl.Ui.Animation_View.pause]]
stop [[Animation view successfully loaded a file then readied for playing. Otherwise after finished animation or stopped forcely by request. see @Efl.Ui.Animation_View.stop]]
play, [[Animation is playing. See @Efl.Ui.Animation_View.play.]]
play_back, [[Animation is playing back (rewinding). See @Efl.Ui.Animation_View.play_back.]]
pause, [[Animation has been paused. To continue animation call @Efl.Ui.Animation_View.resume.
See @Efl.Ui.Animation_View.pause.]]
stop [[Animation view successfully loaded a file then readied for playing.
Otherwise after finished animation or stopped forcibly by request. See @Efl.Ui.Animation_View.stop.]]
}
class @beta Efl.Ui.Animation_View extends Efl.Ui.Widget implements Efl.Gfx.View, Efl.File
{
[[Elementary Animation view class.
Animation view is designed to show and play animation of
vector graphics based content. It hides all efl_canvas_vg details
vector graphics based content. It hides all @Efl.Canvas.Vg.Object details
but just open an API to read vector data from file. Also, it implements
details of animation control methods of Vector.
Vector data could contain static or animatable vector elements including
animation infomation. Currently approved vector data file format is svg, json and eet.
Only json(known for Lottie file as well) and eet could contains animation infomation,
currently Animation_View is supporting.
animation information. Available vector data file formats are SVG, JSON and EET.
@Efl.Ui.Animation_View currently only supports the animation information contained in
JSON (known as Lottie file as well) and EET files.
]]
event_prefix: efl_ui_animation_view;
methods {
@ -59,7 +61,7 @@ class @beta Efl.Ui.Animation_View extends Efl.Ui.Widget implements Efl.Gfx.View,
get {
}
values {
auto_repeat: bool; [[Loop mode, Defalut is $false.]]
auto_repeat: bool; [[Loop mode, Default is $false.]]
}
}
@property speed {
@ -168,7 +170,7 @@ class @beta Efl.Ui.Animation_View extends Efl.Ui.Widget implements Efl.Gfx.View,
stop {
[[Stop playing animation.
Stop animation instatly regardless of it's status and reset to
Stop animation instantly regardless of its status and reset to
show first frame of animation. Even though current animation is paused,
the animation status will be stopped.
]]
@ -186,7 +188,7 @@ class @beta Efl.Ui.Animation_View extends Efl.Ui.Widget implements Efl.Gfx.View,
}
@property state {
[[Current animation view state.
see @Efl.Ui.Animation_View_State
See @Efl.Ui.Animation_View_State
]]
get{
}
@ -196,13 +198,13 @@ class @beta Efl.Ui.Animation_View extends Efl.Ui.Widget implements Efl.Gfx.View,
}
is_playing_back {
[[Returns the status whether current animation is on playing forward or backward.
warning: If animation view is not on playing, it will return $false.
Note: If animation view is not on playing, it will return $false.
]]
return: bool; [[$true, if animation on playing back, $false otherwise.]]
}
@property frame_count {
[[The index of end frame of the animation view, if it's animated.
note : frame number starts with 0.
Note : frame number starts with 0.
]]
get {
}

View File

@ -1,4 +1,5 @@
class @beta Efl.Ui.Bg extends Efl.Ui.Layout_Base implements Efl.File, Efl.Gfx.Color, Efl.Gfx.Image, Efl.Gfx.Image_Load_Controller
class @beta Efl.Ui.Bg extends Efl.Ui.Layout_Base
implements Efl.File, Efl.Gfx.Color, Efl.Gfx.Image, Efl.Gfx.Image_Load_Controller
{
[[The bg (background) widget is used for setting (solid) background decorations
for a window (unless it has transparency enabled) or for any container object. It

View File

@ -1,22 +1,24 @@
class @beta Efl.Ui.Caching_Factory extends Efl.Ui.Widget_Factory
{
[[Efl Ui Factory that provides object caching.
[[Efl UI Factory that provides object caching.
This factory handles caching of one type of object that must be an @Efl.Gfx.Entity with an @Efl.Ui.View interface defined.
This factory will rely on its parent class @Efl.Ui.Widget_Factory for creating the subset of class that match @Efl.Ui.Widget
interface.
This factory handles caching of one type of object that must be an @Efl.Gfx.Entity with an @Efl.Ui.View interface
defined.
This factory will rely on its parent class @Efl.Ui.Widget_Factory for creating the subset of class that match the
@Efl.Ui.Widget interface.
The factory will automatically empties the cache when the application goes into pause.
Creating objects is costly and time consuming, keeping a few on hand for when you next will need them helps a lot.
This is what this factory caching infrastructure provides. It will create the object from the class defined on it and
set the parent and the model as needed for all created items. The View has to release the Item using the
This is what this factory caching infrastructure provides. It will create the object from the class defined on it
and set the parent and the model as needed for all created items. The View has to release the Item using the
release function of the Factory interface for all of this to work properly.
The cache might decide to flush itself when the application event pause is triggered.
]]
methods {
@property memory_limit {
[[Define the maxium size in Bytes that all the object waiting on standby in the cache take. They must provide the @Efl.Cached.Item interface for an accurate accounting.]]
[[Define the maximum size in Bytes that all the objects waiting on standby in the cache can take.
They must provide the @Efl.Cached.Item interface for an accurate accounting.]]
get {}
set {}
values {

View File

@ -16,7 +16,8 @@ enum @beta Efl.Ui.Calendar_Weekday
last [[Sentinel value to indicate last enum field during iteration]]
}
class @beta Efl.Ui.Calendar extends Efl.Ui.Layout_Base implements Efl.Ui.Focus.Composition, Efl.Access.Widget.Action, Efl.Ui.Format
class @beta Efl.Ui.Calendar extends Efl.Ui.Layout_Base
implements Efl.Ui.Focus.Composition, Efl.Access.Widget.Action, Efl.Ui.Format
{
[[Calendar widget

View File

@ -1,4 +1,6 @@
class @beta Efl.Ui.Check extends Efl.Ui.Layout_Base implements Efl.Access.Widget.Action, Efl.Text, Efl.Content, Efl.Input.Clickable, Efl.Ui.Selectable
class @beta Efl.Ui.Check extends Efl.Ui.Layout_Base
implements Efl.Access.Widget.Action, Efl.Text, Efl.Content, Efl.Input.Clickable,
Efl.Ui.Selectable
{
[[Check widget

View File

@ -1,26 +1,28 @@
mixin @beta Efl.Ui.Focus.Composition requires Efl.Ui.Widget {
[[This defines the inheriting widget as Composition widget.
A composition widget is a widget that's the logical parent of another set of widgets which can be used for interaction.
A composition widget is a widget that's the logical parent of another set of widgets
which can be used for interaction.
]]
methods {
@property composition_elements @protected {
[[Set the order of elements that will be used for composition
Elements of the list can be either an Efl.Ui.Widget, an Efl.Ui.Focus.Object or an Efl.Gfx.
Elements of the list can be either an @Efl.Ui.Widget, an @Efl.Ui.Focus.Object or an @Efl.Gfx.Entity.
If the element is an Efl.Gfx.Entity, then the geometry is used as focus geometry, the focus property is redirected to the evas focus property. The mixin will take care of registration.
If the element is an @Efl.Ui.Widget nothing is done and the widget is simply part of the order.
If the element is an Efl.Ui.Focus.Object, then the mixin will take care of registering the element.
If the element is an @Efl.Ui.Focus.Object, then the mixin will take care of registering the element.
If the element is a Efl.Ui.Widget nothing is done and the widget is simply part of the order.
If the element is an @Efl.Gfx.Entity, then the geometry is used as focus geometry,
the focus property is redirected to the evas focus property. The mixin will take care of registration.
]]
values {
logical_order : list<Efl.Gfx.Entity> @owned; [[The order to use]]
}
}
dirty @protected {
[[ Mark this widget as dirty, the children can be considered to be changed after that call
[[Mark this widget as dirty, the children can be considered to be changed after that call
]]
}
prepare @protected {

View File

@ -1,9 +1,10 @@
mixin @beta Efl.Ui.Focus.Layer requires Efl.Ui.Widget extends Efl.Ui.Widget_Focus_Manager {
[[This defines the inheriting widget as focus layer
[[This defines the inheriting widget as focus layer.
A focus layer is the uppermost one which received input and handles all focus related events for as long as it exists and is visible. It's NOT possible to escape this layer with focus movement.
A focus layer is the uppermost one which receives input and handles all focus related events for as long as
it exists and is visible. It's NOT possible to escape this layer with focus movement.
Once the object is hidden or destroyed the focus will go back to the mainwindow, where it was before.
Once the object is hidden or destroyed the focus will go back to the main window, where it was before.
]]
methods {
@property enable @protected {
@ -15,7 +16,8 @@ mixin @beta Efl.Ui.Focus.Layer requires Efl.Ui.Widget extends Efl.Ui.Widget_Focu
@property behaviour @protected {
[[Constructor for setting the behaviour of the layer]]
values {
enable_on_visible : bool; [[$true means layer will set itself once the inheriting widget becomes visible, $false means the layer isn't enabled automatically]]
enable_on_visible : bool; [[$true means layer will set itself once the inheriting widget becomes visible,
$false means the layer isn't enabled automatically]]
cycle : bool; [[If $true the focus will cycle in the layer, if $false]]
}
}

View File

@ -22,7 +22,7 @@ struct Efl.Ui.Focus.Manager_Logical_End_Detail {
@since 1.22
]]
is_regular_end : bool; [[$true if element is registered as regular element in the @Efl.Ui.Focus.Manager obejct, $false otherwise]]
is_regular_end : bool; [[$true if element is registered as regular element in the @Efl.Ui.Focus.Manager object.]]
element : Efl.Ui.Focus.Object; [[The last element of the logical chain in the @Efl.Ui.Focus.Manager]]
}
@ -53,7 +53,8 @@ interface Efl.Ui.Focus.Manager {
[[Return the object in the $direction from $child.]]
params {
direction : Efl.Ui.Focus.Direction; [[Direction to move focus.]]
child : Efl.Ui.Focus.Object; [[The child to move from. Pass $null to indicate the currently focused child.]]
child : Efl.Ui.Focus.Object; [[The child to move from.
Pass $null to indicate the currently focused child.]]
logical : bool; [[Wether you want to have a logical node as result or a non-logical.
Note, in a @.move call no logical node will get focus.]]
}
@ -110,7 +111,7 @@ interface Efl.Ui.Focus.Manager {
}
}
@property root {
[[Root node for all logical subtrees.
[[Root node for all logical sub-trees.
This property can only be set once.
]]
@ -151,7 +152,8 @@ interface Efl.Ui.Focus.Manager {
logical_end {
[[Return the last logical object.
The returned object is the last object that would be returned if you start at the root and move the direction into next.
The returned object is the last object that would be returned if you start at the root
and move in the "next" direction.
]]
return : Efl.Ui.Focus.Manager_Logical_End_Detail; [[Last object.]]
}
@ -188,7 +190,7 @@ interface Efl.Ui.Focus.Manager {
Even if an object is moved, the focus manager will not recalculate its relations.
This can be used when you know that the set of widgets in the focus manager is
moved the same way, so the relations between the widets in the set do not change
moved the same way, so the relations between the widgets in the set do not change
and the complex calculations can be avoided.
Use @.dirty_logic_unfreeze to re-enable relationship calculation.
]]
@ -201,10 +203,15 @@ interface Efl.Ui.Focus.Manager {
}
}
events {
redirect,changed : Efl.Ui.Focus.Manager; [[Redirect object has changed, the old manager is passed as an event argument.]]
flush,pre: void; [[After this event, the manager object will calculate relations in the graph. Can be used to add / remove children in a lazy fashion.]]
redirect,changed : Efl.Ui.Focus.Manager; [[Redirect object has changed, the old manager is passed as
an event argument.]]
flush,pre: void; [[After this event, the manager object will calculate relations in the graph.
Can be used to add / remove children in a lazy fashion.]]
coords,dirty: void; [[Cached relationship calculation results have been invalidated.]]
manager_focus,changed : Efl.Ui.Focus.Object; [[The manager_focus property has changed. The previously focused object is passed as an event argument.]]
dirty_logic_freeze,changed : bool; [[Called when this focus manager is frozen or thawed, even_info being $true indicates that it is now frozen, $false indicates that it is thawed.]]
manager_focus,changed : Efl.Ui.Focus.Object; [[The manager_focus property has changed.
The previously focused object is passed as an event argument.]]
dirty_logic_freeze,changed : bool; [[Called when this focus manager is frozen or thawed,
even_info being $true indicates that it is now frozen,
$false indicates that it is thawed.]]
}
}

View File

@ -1,14 +1,13 @@
class @beta Efl.Ui.Focus.Manager_Root_Focus extends Efl.Ui.Focus.Manager_Calc {
[[ This class ensures that the root is at least focusable, if nothing else is focusable]]
[[This class ensures that the root is at least focusable, if nothing else is focusable.]]
methods {
@property canvas_object {
[[
The default replacement object for the case that there is no focusable object inside the manager is the root object.
However, you can change this by setting this value to something else.
$null is triggered as the same value as Efl.Ui.Focus.Manager.root.get
[[The default replacement object for the case that there is no focusable object inside the manager is the root
object. However, you can change this by setting this value to something else.
$null means that the same value as @Efl.Ui.Focus.Manager.root will be used.
]]
values {
canvas_object : Efl.Canvas.Object; [[Canvas object]]
canvas_object : Efl.Canvas.Object; [[Canvas object.]]
}
}
}

View File

@ -1,7 +1,7 @@
interface Efl.Ui.Focus.Manager_Window_Root {
[[ A interface to indicate the end of a focus chain.
[[An interface to indicate the end of a focus chain.
Focusmanagers are ensuring that if they give focus to something, that they are registered in the upper focus manager.
Focus managers are ensuring that if they give focus to something, that is registered in the upper focus manager.
The most upper focus manager does not need to do that, and can implement this interface to indicate that.
@since 1.22

View File

@ -33,7 +33,9 @@ mixin Efl.Ui.Focus.Object
}
@property focus_manager {
[[This is the focus manager where this focus object is registered in.
The element which is the $root of a Efl.Ui.Focus.Manager will not have this focus manager as this object, but rather the second focus manager where it is registered in.
The element which is the $root of a Efl.Ui.Focus.Manager will not
have this focus manager as this object, but rather the second focus
manager where it is registered in.
]]
get {}
values {
@ -60,7 +62,8 @@ mixin Efl.Ui.Focus.Object
]]
}
setup_order_non_recursive @protected {
[[This is called when @.setup_order is called, but only on the first call, additional recursive calls to @.setup_order will not call this function again.]]
[[This is called when @.setup_order is called, but only on the first call,
additional recursive calls to @.setup_order will not call this function again.]]
}
on_focus_update @protected {
[[Virtual function handling focus in/out events on the widget]]

View File

@ -44,7 +44,8 @@ mixin @beta Efl.Ui.Format requires Efl.Object
or an @Efl.Ui.Spin can hold numbers 1 to 7, but display the strings "Monday" thru "Sunday".
This conversion can be controlled through the @.format_func, @.format_values and @.format_string properties.
Only one of them needs to be set. When more than one is set @.format_values has the highest priority, followed by @.format_func and then @.format_string.
Only one of them needs to be set. When more than one is set @.format_values has the highest priority,
followed by @.format_func and then @.format_string.
If one mechanism fails to produce a valid string the others will be tried (if provided) in descending
order of priority.
If no user-provided mechanism works, a fallback is used that just displays the value.
@ -103,7 +104,7 @@ mixin @beta Efl.Ui.Format requires Efl.Object
string: string; [[Formatting string containing regular characters and format specifiers.]]
type: Efl.Ui.Format_String_Type(Efl.Ui.Format_String_Type.simple);
[[Type of formatting string, which controls how the
different format specifiers are to be traslated.]]
different format specifiers are to be translated.]]
}
}

View File

@ -13,7 +13,8 @@ class @beta Efl.Ui.List_View extends Efl.Ui.Layout_Base implements Efl.Ui.Scroll
{
methods {
@property homogeneous {
[[When in homogeneous mode, all items have the same height and width. Otherwise, each item's size is respected.
[[When in homogeneous mode, all items have the same height and width.
Otherwise, each item's size is respected.
]]
get {
}

View File

@ -1,18 +1,19 @@
enum @beta Efl.Ui.Select_Mode {
[[Type of multi selectable object.]]
single, [[Only single child is selected. if the child is selected,
single, [[Only single child is selected. If a child is selected,
previous selected child will be unselected.]]
single_always, [[Same as single select except, this will be selected
in every select calls though child is already been selected.]]
multi, [[allow multiple selection of children.]]
none [[Last value of select mode. child cannot be selected at all.]]
in every select call even if child is already been selected.]]
multi, [[Allow multiple selection of children.]]
none [[No child can be selected at all.]]
}
interface @beta Efl.Ui.Multi_Selectable extends Efl.Ui.Single_Selectable
{
[[Interface for getting access to a range of selected items.
The implementor of this interface provides the possibility to select multiple Selectables. (If not, only Efl.Ui.Single_Selectable should be implemented)]]
The implementor of this interface provides the possibility to select multiple Selectables.
If not, only @Efl.Ui.Single_Selectable should be implemented.]]
c_prefix: efl_ui;
methods
{

View File

@ -1,6 +1,7 @@
class @beta Efl.Ui.Navigation_Bar_Part_Back_Button extends Efl.Ui.Layout_Part implements Efl.Gfx.Entity, Efl.Text, Efl.Content
class @beta Efl.Ui.Navigation_Bar_Part_Back_Button extends Efl.Ui.Layout_Part
implements Efl.Gfx.Entity, Efl.Text, Efl.Content
{
[[Efl Ui Navigation_Bar internal part back button class]]
[[@Efl.Ui.Navigation_Bar internal part back button class.]]
data: null;
implements {
Efl.Gfx.Entity.visible { set; get; }

View File

@ -8,7 +8,7 @@ class @beta Efl.Ui.Pan extends Efl.Canvas.Group implements Efl.Content
The position of this "window" into the content can be changed using @Efl.Ui.Pan.pan_position.
This widget does not provide means for a user to change the content's position (like scroll bars).
This widget is meant to be used internally by other clases like @Efl.Ui.Scroll.Manager.
This widget is meant to be used internally by other classes like @Efl.Ui.Scroll.Manager.
]]
methods {
@property pan_position {
@ -64,7 +64,8 @@ class @beta Efl.Ui.Pan extends Efl.Canvas.Group implements Efl.Content
Efl.Canvas.Group.group_calculate;
}
events {
pan,content_position,changed: Eina.Position2D; [[The content's position has changed, its position in the event is the new position.]]
pan,content_size,changed: Eina.Size2D; [[The content's size has changed, its size in the event is the new size]]
pan,content_position,changed: Eina.Position2D; [[The content's position has changed, its position in the event
is the new position.]]
pan,content_size,changed: Eina.Size2D; [[The content's size has changed, its size in the event is the new size.]]
}
}

View File

@ -15,8 +15,9 @@ struct @beta Efl.Ui.Panel_Scroll_Info
rel_y: double; [[content scrolled position (0.0 ~ 1.0) in the panel]]
}
class @beta Efl.Ui.Panel extends Efl.Ui.Layout_Base implements Efl.Ui.Focus.Layer, Efl.Ui.Scrollable_Interactive, Efl.Content,
Efl.Access.Widget.Action
class @beta Efl.Ui.Panel extends Efl.Ui.Layout_Base
implements Efl.Ui.Focus.Layer, Efl.Ui.Scrollable_Interactive, Efl.Content,
Efl.Access.Widget.Action
{
[[Elementary panel class]]
methods {

View File

@ -1,5 +1,5 @@
class @beta Efl.Ui.Panes extends Efl.Ui.Layout_Base implements Efl.Ui.Layout_Orientable,
Efl.Input.Clickable
Efl.Input.Clickable
{
[[Elementary panes class]]
event_prefix: elm_panes;
@ -49,7 +49,8 @@ class @beta Efl.Ui.Panes extends Efl.Ui.Layout_Base implements Efl.Ui.Layout_Ori
Efl.Object.constructor;
Efl.Canvas.Group.group_calculate;
Efl.Ui.Widget.theme_apply;
Efl.Ui.Layout_Orientable.orientation { get; set; [[Only supports $vertical and $horizontal. Default is $vertical.]] }
Efl.Ui.Layout_Orientable.orientation { get; set; [[Only supports $vertical and $horizontal.
Default is $vertical.]] }
Efl.Part.part_get;
}
events {

View File

@ -1,69 +1,70 @@
enum @beta Efl.Ui.Popup_Align {
[[Popup alignment type]]
none = 0, [[Popup not aligned]]
center, [[Popup aligned to center]]
left, [[Popup aligned to left]]
right, [[Popup aligned to right]]
top, [[Popup aligned to top]]
bottom [[Popup aligned to bottom]]
[[Popup alignment type.]]
none = 0, [[Popup not aligned.]]
center, [[Popup aligned to center.]]
left, [[Popup aligned to left.]]
right, [[Popup aligned to right.]]
top, [[Popup aligned to top.]]
bottom [[Popup aligned to bottom.]]
}
class @beta Efl.Ui.Popup extends Efl.Ui.Layout_Base implements Efl.Content, Efl.Ui.Focus.Layer, Efl.Ui.Widget_Scrollable_Content
class @beta Efl.Ui.Popup extends Efl.Ui.Layout_Base implements Efl.Content, Efl.Ui.Focus.Layer,
Efl.Ui.Widget_Scrollable_Content
{
[[EFL UI popup class]]
methods {
@property align {
[[Popup alignment.]]
set {
[[ Set the popup alignment.]]
}
get {
[[ Get the current popup alignment.]]
}
values {
type: Efl.Ui.Popup_Align; [[Alignment type]]
type: Efl.Ui.Popup_Align; [[Alignment type.]]
}
}
@property closing_timeout {
[[Set the timeout seconds.
After timeout seconds, popup will be deleted automatically.
]]
set {
[[ Set the timeout seconds.
After timeout seconds, popup will be deleted automatically.
]]
}
get {
[[ Get the currently set timeout seconds.]]
}
values {
time: double; [[Timeout in seconds]]
time: double; [[Timeout in seconds.]]
}
}
@property anchor {
[[Anchor object which sets this popup's position.
If anchor object is moved or parent window is resized, the popup moves to the new position.
If anchor object is set to NULL, the popup stops following the anchor object.
When the popup is moved by using @Efl.Gfx.Entity.position.set, $anchor is set NULL.
]]
set {
[[Set anchor popup to follow an anchor object.
If anchor object is moved or parent window is resized, the anchor popup moves to the new position.
If anchor object is set to NULL, the anchor popup stops following the anchor object.
When the popup is moved by using gfx_position_set, anchor is set NULL.
]]
}
get {
[[Returns the anchor object which the popup is following.]]
}
values {
anchor: Efl.Canvas.Object; [[The object which popup is following.]]
}
}
@property align_priority {
[[Prioritized popup alignment.
In contrast to the @.align property, each alignment is tried in turn until one is found which allows
the popup to be placed in the exact requested position relative to the @.anchor.
]]
set {
[[Set the align priority of a popup.]]
}
get {
[[Get the align priority of a popup.]]
}
values {
first: Efl.Ui.Popup_Align; [[First align priority]]
second: Efl.Ui.Popup_Align; [[Second align priority]]
third: Efl.Ui.Popup_Align; [[Third align priority]]
fourth: Efl.Ui.Popup_Align; [[Fourth align priority]]
fifth: Efl.Ui.Popup_Align; [[Fifth align priority]]
first: Efl.Ui.Popup_Align; [[First alignment.]]
second: Efl.Ui.Popup_Align; [[Second alignment.]]
third: Efl.Ui.Popup_Align; [[Third alignment.]]
fourth: Efl.Ui.Popup_Align; [[Fourth alignment.]]
fifth: Efl.Ui.Popup_Align; [[Fifth alignment.]]
}
}
}

View File

@ -10,8 +10,9 @@ struct @beta Efl.Ui.Position_Manager.Object_Batch_Entity{
entity : Efl.Gfx.Entity; [[The canvas object.]]
element_depth : ubyte; [[The depth change in this returned entity.
Every Element has a depth, if the parent is $null the depth is 0.
Every step deeper into the hirachy is exactly one depth deeper.
If this depth has been different to the previous item, then this element can be seen as the group leader. The following elements with the same depth are in the same group.]]
Every step deeper into the hierarchy is exactly one depth deeper.
If this depth has been different to the previous item, then this element can be seen as the
group leader. The following elements with the same depth are in the same group.]]
depth_leader : bool; [[$true if this is the leader of a group]]
}
@ -20,8 +21,9 @@ struct @beta Efl.Ui.Position_Manager.Size_Batch_Entity{
size : Eina.Size2D; [[The size of the element.]]
element_depth : ubyte; [[The depth change in this returned entity.
Every Element has a depth, if the parent is $null the depth is 0.
Every step deeper into the hirachy is exactly one depth deeper.
If this depth has been different to the previous item, then this element can be seen as the group leader. The following elements with the same depth are in the same group.]]
Every step deeper into the hierarchy is exactly one depth deeper.
If this depth has been different to the previous item, then this element can be seen as the
group leader. The following elements with the same depth are in the same group.]]
depth_leader : bool; [[$true if this is the leader of a group]]
}
@ -34,8 +36,13 @@ struct @beta Efl.Ui.Position_Manager.Size_Batch_Result {
struct @beta Efl.Ui.Position_Manager.Size_Call_Config {
[[Struct that is returned by the function callbacks.]]
range : Efl.Ui.Position_Manager.Request_Range; [[The range of items to fill into @.memory. The length of memory must be bigger or equal to the requested items]] // This struct does not contain a @.memory field.
cache_request : bool; [[Indicate if this request is made for caching or displaying. If its for caching, the data-provider will fill in approximations, instead of doing heavy lifting from some backend. If this is not a caching call, the exact size should be requested and delivered at some later point.]]
range : Efl.Ui.Position_Manager.Request_Range; [[The range of items to fill into @.memory. The length of memory must
be bigger or equal to the requested items]]
// This struct does not contain a @.memory field.
cache_request : bool; [[Indicate if this request is made for caching or displaying.
If it's for caching, the data-provider will fill in approximations, instead of doing heavy
lifting from some back-end. If this is not a caching call, the exact size should be
requested and delivered at some later point.]]
}
struct @beta Efl.Ui.Position_Manager.Object_Batch_Result {
@ -48,8 +55,11 @@ struct @beta Efl.Ui.Position_Manager.Object_Batch_Result {
function @beta Efl.Ui.Position_Manager.Object_Batch_Callback {
[[ Function callback for getting a batch of items.]]
params {
range : Efl.Ui.Position_Manager.Request_Range; [[The range of items to fill into @.memory. The length of memory must be bigger or equal to the requested items]]
memory : rw_slice<Efl.Ui.Position_Manager.Object_Batch_Entity>; [[The slice to fill the information in, the full slice will be filled if there are enough items]]
range : Efl.Ui.Position_Manager.Request_Range; [[The range of items to fill into @.memory. The length of memory
must be bigger or equal to the requested items]]
memory : rw_slice<Efl.Ui.Position_Manager.Object_Batch_Entity>; [[The slice to fill the information in, the full
slice will be filled if there are enough items.
]]
}
return: Efl.Ui.Position_Manager.Object_Batch_Result; [[The returned stats of this function call.]]
};
@ -58,8 +68,9 @@ function @beta Efl.Ui.Position_Manager.Object_Batch_Callback {
function @beta Efl.Ui.Position_Manager.Size_Batch_Callback {
[[ Function callback for getting sizes of a batch of items.]]
params {
conf : Efl.Ui.Position_Manager.Size_Call_Config; [[The configution for this call]]
memory : rw_slice<Efl.Ui.Position_Manager.Size_Batch_Entity>; [[The slice to fill the information in, the full slice will be filled if there are enough items]]
conf : Efl.Ui.Position_Manager.Size_Call_Config; [[The configuration for this call.]]
memory : rw_slice<Efl.Ui.Position_Manager.Size_Batch_Entity>; [[The slice to fill the information in, the full
slice will be filled if there are enough items.]]
}
return: Efl.Ui.Position_Manager.Size_Batch_Result; [[The returned stats of this function call]]
};
@ -68,32 +79,49 @@ function @beta Efl.Ui.Position_Manager.Size_Batch_Callback {
interface @beta Efl.Ui.Position_Manager.Data_Access_V1 {
[[Interface for abstracting the data access of the position managers.
The idea here is that a data-provider, calls @.data_access on the positon manager object and passes the functions that are defined here. At any pointer later in time, the position manager can call these function callbacks to get sizes or objects.
A data-provider should always fill all requested items. If a item is not available $null is inserted. If a size is not available, a as-close-as-possible approximation should be inserted.
The Size callback is equipped with a parameter for if this is a caching request or not. This flag can be used to differentiate between two usecases. The size can be requested for building up a cache over all items. The size can also be requested for applying it to the object. The data-provider might needs to do heavy loading for getting the right size available, in case of a cache build up the as-close-as-possible aproximation is enough there. If it is real placement, the size should be correct.
If a size changes after it was returned due to batching, this change still should be annonced with the @Efl.Ui.Position_Manager.Entity.item_size_changed function.
The idea here is that a data-provider calls @.data_access on the position manager object and passes the functions
that are defined here. Later, the position manager can call these function callbacks to get sizes or objects.
A data-provider should always fill all requested items. If an item is not available $null should be inserted.
If a size is not available, an as-close-as-possible approximation should be inserted.
The Size callback is equipped with a parameter to specify caching requests. This flag can be used to differentiate
between two use cases: When the size is being requested to build up a cache over all items, and when the size is
being requested to apply it to the object. Since the data-provider might need to do expensive operations to find
the exact size, the as-close-as-possible approximation is usually enough when building caches.
If real object placement is happening, then real sizes must be requested.
If a size changes after it was returned due to batching, this change still should be announced with the
@Efl.Ui.Position_Manager.Entity.item_size_changed function.
The depth of the items is used to express a hierachical structure on the items themselves.
The depth of the items is used to express a hierarchical structure on the items themselves.
Any given depth might or might not have a $depth_leader.
A group is ended when there is either a lower depth, or another depth_leader.
A group is ended when there is either a lower depth, or another $depth_leader.
]]
methods {
@property data_access {
[[This gives access to items to be managed. The manager reads this information and modifies the retrieved items' positions and sizes.
[[This gives access to items to be managed. The manager reads this information and modifies the retrieved
items' positions and sizes.
$obj_access gives access to the graphical entitites to manage. Some of them might be NULL, meaning they are not yet ready to be displayed. Their size in the $size_access array will be correct, though, so other entities can still be positioned correctly.
Typically, only entities inside the viewport will be retrieved.
$obj_access gives access to the graphical entities to manage. Some of them might be $NULL, meaning they are
not yet ready to be displayed. Their size in the $size_access array will be correct, though, so other
entities can still be positioned correctly.
Typically, only entities inside the viewport will be retrieved.
$size_access gives access to the 2D sizes for the items to manage. All sizes will always be valid, and might change over time (indicated through the @Efl.Ui.Position_Manager.Entity.item_size_changed method).
The whole range might need to be traversed in order to calculate the position of all items in some arrangements.
$size_access gives access to the 2D sizes for the items to manage. All sizes will always be valid, and might
change over time (indicated through the @Efl.Ui.Position_Manager.Entity.item_size_changed method).
The whole range might need to be traversed in order to calculate the position of all items in some
arrangements.
You can access a batch of objects or sizes by calling the here passed function callbacks. Further details can be found at the function definitions.
You can access a batch of objects or sizes by calling the here passed function callbacks. Further details
can be found at the function definitions.
]]
set {
}
values {
obj_access : Efl.Ui.Position_Manager.Object_Batch_Callback; [[Function callback for canvas objects, even if the start_id is valid, the returned objects may be NULL.]]
size_access : Efl.Ui.Position_Manager.Size_Batch_Callback; [[Function callback for the size, returned values are always valid, but might be changed later on.]]
obj_access : Efl.Ui.Position_Manager.Object_Batch_Callback; [[Function callback for canvas objects, even if
the start_id is valid, the returned objects
may be NULL.]]
size_access : Efl.Ui.Position_Manager.Size_Batch_Callback; [[Function callback for the size, returned values
are always valid, but might be changed later on.
]]
size : int; [[valid size for start_id, 0 <= i < size]]
}
}

View File

@ -1,22 +1,24 @@
import efl_ui;
struct Efl.Ui.Position_Manager.Range_Update {
[[A struct containing the the updated range of visible items in this position manger.]]
[[A structure containing the updated range of visible items in this position manger.]]
start_id : uint; [[The first item that is visible]]
end_id : uint; [[The last item that is visible]]
}
interface @beta Efl.Ui.Position_Manager.Entity extends Efl.Ui.Layout_Orientable
{
[[
This abstracts the basic placement of items in a not defined form under a viewport.
[[This abstracts the basic placement of items in a not-defined form under a viewport.
The interface gets a defined set of elements that is meant to be displayed. The implementation provides a way to calculate the size that is required to display all items. Every time this absolut size of items is changed, content_size,changed is called.
The interface gets a defined set of elements that is meant to be displayed.
The implementation provides a way to calculate the size that is required to display all items.
Every time this absolute size of items is changed, @[Efl.Ui.Position_Manager.Entity.content_size,changed] is
emitted.
]]
methods {
version {
[[ Return the version of Data_Access that is used.
This object needs to implement the interface Efl.Ui.Position_Manager.Data_Access_V1 if 1 is returned. 2 if V2 (not available yet) is implemented.
[[Returns the version of Data_Access that is used.
This object needs to implement the interface @Efl.Ui.Position_Manager.Data_Access_V1 if 1 is returned.
]]
params {
max : int; [[The maximum version that is available from the data-provider.]]
@ -50,20 +52,22 @@ interface @beta Efl.Ui.Position_Manager.Entity extends Efl.Ui.Layout_Orientable
}
}
position_single_item {
[[Return the position and size of item idx
[[Return the position and size of item idx.
This method returns the size and position of the item at $idx.
Even if the item is outside the viewport, the returned rectangle must be valid. The result can be used for scrolling calculations.
Even if the item is outside the viewport, the returned rectangle must be valid.
The result can be used for scrolling calculations.
]]
params {
idx : int; [[The id for the item]]
}
return : Eina.Rect; [[Position and Size in canvas coordinations]]
return : Eina.Rect; [[Position and Size in canvas coordinates.]]
}
item_added {
[[The new item $subobj has been added at the $added_index field.
The accessor provided through @Efl.Ui.Position_Manager.Data_Access_V1.data_access will contain updated Entities.]]
The accessor provided through @Efl.Ui.Position_Manager.Data_Access_V1.data_access will contain updated
Entities.]]
params {
added_index : int;
subobj : Efl.Gfx.Entity;
@ -71,7 +75,8 @@ interface @beta Efl.Ui.Position_Manager.Entity extends Efl.Ui.Layout_Orientable
}
item_removed {
[[The item $subobj previously at position $removed_index has been removed.
The accessor provided through @Efl.Ui.Position_Manager.Data_Access_V1.data_access will contain updated Entities.
The accessor provided through @Efl.Ui.Position_Manager.Data_Access_V1.data_access will contain updated
Entities.
]]
params {
removed_index : int;
@ -87,7 +92,8 @@ interface @beta Efl.Ui.Position_Manager.Entity extends Efl.Ui.Layout_Orientable
}
}
relative_item {
[[translate the current_id, into a new id which is oriented in the $direction of $current_id. In case that there is no item, -1 is returned]]
[[Translates the $current_id, into a new id which is oriented in the $direction of $current_id.
In case that there is no item, -1 is returned]]
params {
current_id : uint; [[The id where the direction is oriented at]]
direction : Efl.Ui.Focus.Direction; [[The direction where the new id is]]
@ -96,8 +102,11 @@ interface @beta Efl.Ui.Position_Manager.Entity extends Efl.Ui.Layout_Orientable
}
}
events {
content_size,changed : Eina.Size2D; [[Emitted when the aggregate size of all items has changed. This can be used to resize an enclosing Pan object.]]
content_min_size,changed : Eina.Size2D; [[Emitted when the minimum size of all items has changed. The minimum size is the size, that this position_manager needs at *least* to display a single item.]]
content_size,changed : Eina.Size2D; [[Emitted when the aggregate size of all items has changed.
This can be used to resize an enclosing Pan object.]]
content_min_size,changed : Eina.Size2D; [[Emitted when the minimum size of all items has changed.
The minimum size is the size that this position_manager needs
to display a single item.]]
visible_range,changed : Efl.Ui.Position_Manager.Range_Update;
}
}

View File

@ -1,4 +1,6 @@
class @beta Efl.Ui.Position_Manager.Grid extends Efl.Object implements Efl.Ui.Position_Manager.Entity, Efl.Ui.Position_Manager.Data_Access_V1
class @beta Efl.Ui.Position_Manager.Grid extends Efl.Object
implements Efl.Ui.Position_Manager.Entity,
Efl.Ui.Position_Manager.Data_Access_V1
{
[[Implementation of @Efl.Ui.Position_Manager.Entity for two-dimensional grids.

View File

@ -1,8 +1,11 @@
class @beta Efl.Ui.Position_Manager.List extends Efl.Object implements Efl.Ui.Position_Manager.Entity, Efl.Ui.Position_Manager.Data_Access_V1
class @beta Efl.Ui.Position_Manager.List extends Efl.Object
implements Efl.Ui.Position_Manager.Entity,
Efl.Ui.Position_Manager.Data_Access_V1
{
[[Implementation of @Efl.Ui.Position_Manager.Entity for a list
Every item in the list will get at least his minsize applied, changes to the misize are listend to and change the layouting of all items. This supports the vertical and horizontal orientation.
Every item in the list will get at least his minsize applied, changes to the misize are listened to and change
the layout of all items. This supports the vertical and horizontal orientation.
]]
implements {
Efl.Object.destructor;

View File

@ -9,7 +9,8 @@ class @beta Efl.Ui.Radio extends Efl.Ui.Check implements Efl.Access.Widget.Actio
They are a common way to allow a user to select one option among a list.
To handle button grouping, you can either use an @Efl.Ui.Radio_Group_Impl object or use more convenient widgets like @Efl.Ui.Radio_Box.
To handle button grouping, you can either use an @Efl.Ui.Radio_Group_Impl object or
use more convenient widgets like @Efl.Ui.Radio_Box.
]]
methods {
@property state_value {

View File

@ -1,7 +1,8 @@
interface @beta Efl.Ui.Selectable {
[[Selectable interface for ui objects
[[Selectable interface for UI objects
A object implementing this can be selected. When the selected property of this object changes, the selected,changed event is emitted.
An object implementing this interface can be selected.
When the selected property of this object changes, the @[Efl.Ui.Selectable.selected,changed] event is emitted.
]]
event_prefix: efl_ui;
methods {
@ -11,11 +12,11 @@ interface @beta Efl.Ui.Selectable {
A change to this property emits the changed event.
]]
values {
selected : bool; [[The selected state of this object]]
selected : bool; [[The selected state of this object.]]
}
}
}
events {
selected,changed : bool; [[Called when the selected state has changed]]
selected,changed : bool; [[Called when the selected state has changed.]]
}
}

View File

@ -1,7 +1,8 @@
interface @beta Efl.Ui.Single_Selectable {
[[Interface for getting access to a single selected item in the implementor.
The implementor is free to allow a specific number of selectables beeing selected or not. This interface just covers always the latest selected selectable.
The implementor is free to allow a specific number of selectables being selected or not.
This interface just covers always the latest selected selectable.
]]
methods {
@property last_selected {
@ -16,8 +17,9 @@ interface @beta Efl.Ui.Single_Selectable {
@property fallback_selection {
[[A object that will be selected in case nothing is selected
A object set to this property will be selected instead of no item beeing selected. Which means, there will be always at least one element selected.
If this property is NULL, the state of "no item is selected" can be reached.
A object set to this property will be selected instead of no item being selected.
Which means, there will be always at least one element selected.
If this property is $NULL, the state of "no item is selected" can be reached.
Setting this property as a result of selection events results in undefined behavior.
]]
@ -27,6 +29,10 @@ interface @beta Efl.Ui.Single_Selectable {
}
}
events {
selection_changed : void; [[Called when there is a change in the selection state, this event will collect all the item selection change events that are happening within one loop iteration. This means, you will only get this event once, even if a lot of items have changed. If you are interested in detailed changes, subscribe to the selection,changed event of Efl.Ui.Selectable.]]
selection_changed : void; [[Emitted when there is a change in the selection state. This event will collect all
the item selection change events that are happening within one loop iteration.
This means, you will only get this event once, even if a lot of items have changed.
If you are interested in detailed changes, subscribe to the individual
@[Efl.Ui.Selectable.selected,changed] events of each item.]]
}
}

View File

@ -1,4 +1,6 @@
class @beta Efl.Ui.Spin_Button extends Efl.Ui.Spin implements Efl.Ui.Focus.Composition, Efl.Ui.Layout_Orientable, Efl.Ui.Range_Interactive, Efl.Access.Widget.Action
class @beta Efl.Ui.Spin_Button extends Efl.Ui.Spin
implements Efl.Ui.Focus.Composition, Efl.Ui.Layout_Orientable, Efl.Ui.Range_Interactive,
Efl.Access.Widget.Action
{
[[A Button Spin.
@ -20,7 +22,7 @@ class @beta Efl.Ui.Spin_Button extends Efl.Ui.Spin implements Efl.Ui.Focus.Compo
If enabled, when the user tries to increment the value
but displayed value plus step value is bigger than maximum value,
the new value will become the minimum value. When the the user tries to
the new value will become the minimum value. When the user tries to
decrement it, if the value minus step is less than minimum value,
the new displayed value will be the maximum value.
@ -55,7 +57,7 @@ class @beta Efl.Ui.Spin_Button extends Efl.Ui.Spin implements Efl.Ui.Focus.Compo
get {
}
values {
direct_text_input: bool(false); [[$true to allow users to edit it or $false to don't allow users to edit it directly.]]
direct_text_input: bool(false); [[$true to allow users to directly edit the value.]]
}
}
}

View File

@ -8,18 +8,23 @@ class @beta Efl.Ui.Spotlight.Container extends Efl.Ui.Layout_Base implements Efl
{
[[The Spotlight widget is a container for other sub-widgets, where only one sub-widget is active at any given time.
Sub-widgets are added using the @Efl.Pack_Linear interface and the active one (the one in the "spotlight") is selected using @.active_index.
Sub-widgets are added using the @Efl.Pack_Linear interface and the active one (the one in the "spotlight") is
selected using @.active_index.
The way the different sub-widgets are rendered can be customized through the @.spotlight_manager object. For example, only the active sub-widget
might be shown, or it might be shown in a central position whereas the other sub-widgets are displayed on the sides, or grayed-out.
The way the different sub-widgets are rendered can be customized through the @.spotlight_manager object.
For example, only the active sub-widget might be shown, or it might be shown in a central position whereas the
other sub-widgets are displayed on the sides, or grayed-out.
All sub-widgets are displayed with the same size, selected with @.spotlight_size.
Additionally, the transition from one sub-widget to another can be animated. This animation is also controlled by the @.spotlight_manager object.
Additionally, the transition from one sub-widget to another can be animated.
This animation is also controlled by the @.spotlight_manager object.
Also, an indicator widget can be used to show a visual cue of how many sub-widgets are there and which one is the active one.
Also, an indicator widget can be used to show a visual cue of how many sub-widgets are there and which one is the
active one.
This class can be used to create other widgets like Pagers, Tabbed pagers or Stacks, where each sub-widget represents a "page" full
of other widgets. All these cases can be implemented with a different @.spotlight_manager and use the same @Efl.Ui.Spotlight.Container.
This class can be used to create other widgets like Pagers, Tabbed pagers or Stacks, where each sub-widget
represents a "page" full of other widgets. All these cases can be implemented with a different
@.spotlight_manager and use the same @Efl.Ui.Spotlight.Container.
]]
c_prefix: efl_ui_spotlight;
methods {
@ -32,7 +37,8 @@ class @beta Efl.Ui.Spotlight.Container extends Efl.Ui.Layout_Base implements Efl
}
}
@property indicator {
[[An indicator object to use, which will display the current state of the spotlight (number of sub-widgets and active one).
[[An indicator object to use, which will display the current state of the spotlight (number of sub-widgets
and active one).
When this object is set, it is immediately updated to reflect the current state of the widget.
Its location inside the container is controlled by the @.spotlight_manager.
]]
@ -46,14 +52,17 @@ class @beta Efl.Ui.Spotlight.Container extends Efl.Ui.Layout_Base implements Efl
Changing this value might trigger an animation.
]]
values {
index: int; [[Index of the sub-widget that has the spotlight, from 0 to the number of sub-widgets - 1 (@Efl.Container.content_count - 1).]]
index: int; [[Index of the sub-widget that has the spotlight, from 0 to the number of sub-widgets - 1
(@Efl.Container.content_count - 1).]]
}
}
@property spotlight_size {
[[The size to use when displaying the Sub-Widget which has the spotlight. This is used by the @.spotlight_manager to perform the rendering.
[[The size to use when displaying the Sub-Widget which has the spotlight.
This is used by the @.spotlight_manager to perform the rendering.
Sub-Widgets other than the Active one may or may not use this size.]]
values {
size: Eina.Size2D; [[Render size for the spotlight. (-1, -1) means that all available space inside the container is used.]]
size: Eina.Size2D; [[Render size for the spotlight.
(-1, -1) means that all available space inside the container can be used.]]
}
}
push @beta {
@ -70,19 +79,28 @@ class @beta Efl.Ui.Spotlight.Container extends Efl.Ui.Layout_Base implements Efl
pop @beta {
[[Removes the sub-widget that has the spotlight from the widget.
The sub-widgets behind it naturally flow down so the next one gets the spotlight. This is the same behavior as a pop operation on a stack.
When combined with @.push you don't have to worry about @.active_index since only the first sub-widget is manipulated.
The sub-widgets behind it naturally flow down so the next one gets the spotlight.
This is the same behavior as a pop operation on a stack.
When combined with @.push you don't have to worry about @.active_index since only the first sub-widget is
manipulated.
An animation might be triggered to give the new sub-widget the spotlight, come into position and the old one disappear.
An animation might be triggered to give the new sub-widget the spotlight, come into position and the old
one disappear.
The removed sub-widget can be returned to the caller or deleted (depending on $delete_on_transition_end).
]]
params {
deletion_on_transition_end : bool; [[ if $true, then the object will be deleted before resolving the future, and a NULL pointer is the value of the future. $false if no operation should be applied to it]]
deletion_on_transition_end : bool; [[If $true, then the object will be deleted before resolving the future,
and a NULL pointer is the value of the future.
$false if no operation should be applied to it.]]
}
return : future<Efl.Gfx.Entity>; [[ This Future gets resolved when any transition animation finishes and the popped sub-widget is ready for collection.
If there is no animation, the Future resolves immediately.
If $deletion_on_transition_end is $true then this widget will destroy the popped sub-widget and the Future will contain no Value. Otherwise, the caller becomes the owner of the sub-widget contained in the Future and must dispose of it appropriately. ]]
return : future<Efl.Gfx.Entity>; [[This Future gets resolved when any transition animation finishes and the
popped sub-widget is ready for collection.
If there is no animation, the Future resolves immediately.
If $deletion_on_transition_end is $true then this widget will destroy the
popped sub-widget and the Future will contain no Value.
Otherwise, the caller becomes the owner of the sub-widget contained in the
Future and must dispose of it appropriately. ]]
}
}
events {

View File

@ -1,16 +1,18 @@
abstract @beta Efl.Ui.Spotlight.Indicator extends Efl.Object {
[[Object used by @Efl.Ui.Spotlight.Container to render an indication of the active widgets's position among
[[Object used by @Efl.Ui.Spotlight.Container to render an indication of the active widgets' position among
the rest of the container's widgets.
An example would be Android's little dots in the home screen.
]]
methods {
bind @pure_virtual {
[[This method is called the first time an @Efl.Ui.Spotlight.Indicator is assigned to an @Efl.Ui.Spotlight.Container, binding them together.
[[This method is called the first time an @Efl.Ui.Spotlight.Indicator is assigned to an
@Efl.Ui.Spotlight.Container, binding them together.
This call can be used to setup the indicator part of the $spotlight.
The Active View of the container (if there is any) will be informed to the indicator by a later call to @.position_update.
The Active View of the container (if there is any) will be informed to the indicator by a later call to
@.position_update.
]]
params {
spotlight : Efl.Ui.Spotlight.Container; [[The container to bind this indicator to.]]
@ -39,16 +41,18 @@ abstract @beta Efl.Ui.Spotlight.Indicator extends Efl.Object {
}
}
position_update @pure_virtual {
[[This method tells the indicator that @Efl.Ui.Spotlight.Container.active_index has changed in the bound container.
[[This method tells the indicator that @Efl.Ui.Spotlight.Container.active_index has changed in the bound
container.
$position ranges from -1 to the number of views in the bound container (@Efl.Container.content_count).
Notice this allows moving to a position before the first view or past the last view, which might happen if the view
is thumb-scrolled out-of-bounds. Indicators can choose to render these out-of-bounds positions or not.
Notice this allows moving to a position before the first view or past the last view, which might happen if the
view is thumb-scrolled out-of-bounds. Indicators can choose to render these out-of-bounds positions or not.
Fractional values indicate positions in-between two views and should be respected to obtain a smooth transition.
Fractional values indicate positions in-between two views and should be respected to obtain smooth transitions.
]]
params {
position : double; [[The index of the active view, or a value in-between views if a transition is currently playing.]]
position : double; [[The index of the active view, or a value in-between views if a transition is currently
playing.]]
}
}
}

View File

@ -1,19 +1,26 @@
abstract @beta Efl.Ui.Spotlight.Manager extends Efl.Object {
[[Manager object used by @Efl.Ui.Spotlight.Container to handle rendering and animation of its sub-widgets, and user interaction.
[[Manager object used by @Efl.Ui.Spotlight.Container to handle rendering and animation of its sub-widgets,
and user interaction.
For instance, changes to the current sub-widget in the spotlight (@Efl.Ui.Spotlight.Container.active_index) can be animated with a transition.
This object can also handle user interaction. For example, dragging the sub-widget to one side to get to a different sub-widget (like an smartphone home screen).
For instance, changes to the current sub-widget in the spotlight (@Efl.Ui.Spotlight.Container.active_index) can be
animated with a transition.
This object can also handle user interaction. For example, dragging the sub-widget to one side to get to a
different sub-widget (like an smartphone home screen).
Such user interactions should end up setting a new @Efl.Ui.Spotlight.Container.active_index.
During a transition, the evolution of the current position should be exposed by emitting $pos_update events.
]]
methods {
bind @pure_virtual {
[[This method is called the first time an @Efl.Ui.Spotlight.Manager is assigned to an @Efl.Ui.Spotlight.Container, binding them together.
The manager can read the current content of the container, subscribe to events, or do any initialization it requires.
[[This method is called the first time an @Efl.Ui.Spotlight.Manager is assigned to an
@Efl.Ui.Spotlight.Container, binding them together.
The manager can read the current content of the container, subscribe to events, or do any initialization it
requires.
]]
params {
spotlight : Efl.Ui.Spotlight.Container; [[The container to bind the manager to.]]
group : Efl.Canvas.Group; [[The graphical group where the views should be added with @Efl.Canvas.Group.group_member_add and removed with @Efl.Canvas.Group.group_member_remove.]]
group : Efl.Canvas.Group; [[The graphical group where the views should be added with
@Efl.Canvas.Group.group_member_add and removed with
@Efl.Canvas.Group.group_member_remove.]]
}
}
content_add @pure_virtual {
@ -48,7 +55,8 @@ abstract @beta Efl.Ui.Spotlight.Manager extends Efl.Object {
}
}
@property size @pure_virtual {
[[Will be called whenever the @Efl.Ui.Spotlight.Container.spotlight_size changes so the @Efl.Ui.Spotlight.Manager can update itself.]]
[[Will be called whenever the @Efl.Ui.Spotlight.Container.spotlight_size changes so the
@Efl.Ui.Spotlight.Manager can update itself.]]
set {
}
values {
@ -63,9 +71,10 @@ abstract @beta Efl.Ui.Spotlight.Manager extends Efl.Object {
}
}
events {
pos_update : double; [[Index of the sub-widget currently being displayed. Fractional values indicate a position in-between sub-widgets.
For instance, when transitioning from sub-widget 2 to sub-widget 3, this event should be emitted with monotonically
increasing values ranging from 2.0 to 3.0.
Animations can perform any movement they want, but the reported $pos_update must move in the same direction.]]
pos_update : double; [[Index of the sub-widget currently being displayed. Fractional values indicate a position
in-between sub-widgets. For instance, when transitioning from sub-widget 2 to sub-widget 3,
this event should be emitted with monotonically increasing values ranging from 2.0 to 3.0.
Animations can perform any movement they want, but the reported $pos_update must move in
the same direction.]]
}
}

View File

@ -5,14 +5,15 @@ class @beta Efl.Ui.Tab_Page extends Efl.Ui.Layout_Base implements Efl.Content
@property tab_bar_item {
[[Get this page represented as a @Efl.Ui.Tab_Bar_Default_Item
The object returned here will reflect all the properties from the part here. Properties will be automatically updated.
This property is unique per @Efl.Ui.Tab_Page
The object returned here will reflect all the properties from the part here.
Properties will be automatically updated.
This property is unique per @Efl.Ui.Tab_Page.
]]
get {
}
values {
item : Efl.Ui.Tab_Bar_Default_Item; [[The @Efl.Ui.Tab_Bar_Default_Item for the tab bar]]
item : Efl.Ui.Tab_Bar_Default_Item; [[The @Efl.Ui.Tab_Bar_Default_Item for the tab bar.]]
}
}
}

View File

@ -215,7 +215,7 @@ class @beta Efl.Ui.Text extends Efl.Ui.Layout_Base implements Efl.Input.Clickabl
]]
}
values {
enabled: bool; [[If $enabled is $true, the return key is automatically disabled when the entry has no text.]]
enabled: bool; [[If $true, the return key is automatically disabled when the entry has no text.]]
}
}
@property item_factory {
@ -227,7 +227,8 @@ class @beta Efl.Ui.Text extends Efl.Ui.Layout_Base implements Efl.Input.Clickabl
}
}
input_panel_show {
[[Show the input panel (virtual keyboard) based on the input panel property of entry such as layout, autocapital types and so on.
[[Show the input panel (virtual keyboard) based on the input panel property of entry such as layout,
autocapital types and so on.
Note that input panel is shown or hidden automatically according to the focus state of entry widget.
This API can be used in the case of manually controlling by using @.input_panel_enabled.set(en, $false).

View File

@ -30,7 +30,8 @@ class @beta Efl.Ui.Timepicker extends Efl.Ui.Layout_Base
get {
}
values {
is_24hour: bool; [[$true to display the 24 hour time, $false to display 12 hour time including AM/PM button.]]
is_24hour: bool; [[$true to display the 24 hour time,
$false to display 12 hour time including AM/PM label.]]
}
}
}

View File

@ -72,7 +72,7 @@ abstract Efl.Ui.Widget extends Efl.Canvas.Group implements Efl.Access.Object,
[[Returns the current cursor style name.]]
}
values {
style: string; [[A specific style to use, eg. default,
style: string; [[A specific style to use, e.g. default,
transparent, ....]]
}
}
@ -111,7 +111,8 @@ abstract Efl.Ui.Widget extends Efl.Canvas.Group implements Efl.Access.Object,
@property disabled {
[[Whether the widget is enabled (accepts and reacts to user inputs).
The property works counted, this means, whenever n-caller set the value to $true, n-caller have to set it to $false in order to get it out of the disabled state again.
The property is counted, this is, if it is set n times to $true,
it has to be set n times to $false in order to get it out of the disabled state again.
Each widget may handle the disabled state differently, but overall
disabled widgets shall not respond to any input events. This is
@ -193,7 +194,7 @@ abstract Efl.Ui.Widget extends Efl.Canvas.Group implements Efl.Access.Object,
Note: Objects which are meant to be interacted with by input events
are created able to be focused, by default. All the others are not.
This property's default value depends on the widget (eg. a box is
This property's default value depends on the widget (e.g. a box is
not focusable, but a button is).
]]
set {
@ -383,10 +384,13 @@ abstract Efl.Ui.Widget extends Efl.Canvas.Group implements Efl.Access.Object,
focus_state_apply @protected {
[[Apply a new focus state on the widget.
This method is called internally by @Efl.Ui.Widget. Override it to change how a widget interacts with its focus manager.
If a widget desires to change the applied configuration, it has to modify $configured_state in addition to any internal changes.
This method is called internally by @Efl.Ui.Widget.
Override it to change how a widget interacts with its focus manager.
If a widget desires to change the applied configuration,
it has to modify $configured_state in addition to any internal changes.
The default implementation (when this method is not overridden) applies $configured_state using the $manager contained inside.
The default implementation (when this method is not overridden) applies $configured_state using
the $manager contained inside.
]]
params {
@in current_state : Efl.Ui.Widget_Focus_State;

View File

@ -752,7 +752,8 @@ class Efl.Ui.Win extends Efl.Ui.Widget implements Efl.Canvas.Scene, Efl.Access.W
@property win_rotation @beta {
[[The rotation of this window
The value will automatically change when the WM of this window changes its rotation. This rotation is automatically applied to all @Efl.Ui.Layout objects.
The value will automatically change when the Window Manager of this window changes its rotation.
This rotation is automatically applied to all @Efl.Ui.Layout objects.
]]
set {
}

View File

@ -1,4 +1,5 @@
class @beta Efl.Canvas.Video extends Efl.Canvas.Group implements Efl.File, Efl.Player, Efl.Gfx.Image, Efl.Gfx.Image_Load_Controller
class @beta Efl.Canvas.Video extends Efl.Canvas.Group
implements Efl.File, Efl.Player, Efl.Gfx.Image, Efl.Gfx.Image_Load_Controller
{
[[Efl canvas video class]]
methods {

View File

@ -406,12 +406,14 @@ abstract Efl.Object
[[Will register a manager of a specific class to be answered by eo.provider_find.]]
params {
@in klass: const(Efl.Class); [[The class provided by the registered provider.]]
@in provider: const(Efl.Object); [[The provider for the newly registered class that has to provide that said Efl.Class.]]
@in provider: const(Efl.Object); [[The provider for the newly registered class that has to provide that
said Efl.Class.]]
}
return: bool; [[$true if successfully register, $false otherwise.]]
}
provider_unregister {
[[Will unregister a manager of a specific class that was previously registered and answered by eo.provider_find.]]
[[Will unregister a manager of a specific class that was previously registered and answered by
eo.provider_find.]]
params {
@in klass: const(Efl.Class); [[The class provided by the provider to unregister for.]]
@in provider: const(Efl.Object); [[The provider for the registered class to unregister.]]
@ -426,7 +428,8 @@ abstract Efl.Object
events {
del @hot: void; [[Object is being deleted. See @.destructor.]]
invalidate @hot: void; [[Object is being invalidated and losing its parent. See @.invalidate.]]
noref @hot: void; [[Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.]]
noref @hot: void; [[Object has lost its last reference, only parent relationship is keeping it alive.
Advanced usage.]]
ownership,unique @hot: void; [[Object has lost a reference and only one is left. It has just one owner now.
Triggered whenever the refcount goes from two to one.]]
ownership,shared @hot: void; [[Object has acquired a second reference. It has multiple owners now.

View File

@ -32,7 +32,7 @@ class @beta Efl.Canvas.Animation extends Efl.Object implements Efl.Playable
get {
}
values {
mode: Efl.Canvas.Animation_Repeat_Mode; [[Repeat mode. EFL_ANIMATION_REPEAT_MODE_RESTART restarts animation when the animation ends and EFL_ANIMATION_REPEAT_MODE_REVERSE reverses animation when the animation ends.]]
mode: Efl.Canvas.Animation_Repeat_Mode; [[Repeat mode.]]
}
}
@property repeat_count {
@ -42,7 +42,7 @@ class @beta Efl.Canvas.Animation extends Efl.Object implements Efl.Playable
get {
}
values {
count: int; [[Repeat count. EFL_ANIMATION_REPEAT_INFINITE repeats animation infinitely.]]
count: int; [[Repeat count. -1 repeats animation infinitely.]]
}
}
@property start_delay {
@ -52,7 +52,7 @@ class @beta Efl.Canvas.Animation extends Efl.Object implements Efl.Playable
get {
}
values {
sec: double; [[Delay time, in seconds, from when the animation starts until the animation is animated]]
sec: double; [[Delay time, in seconds, from when the animation starts until the animation is animated.]]
}
}
@property interpolator {
@ -62,7 +62,7 @@ class @beta Efl.Canvas.Animation extends Efl.Object implements Efl.Playable
get {
}
values {
interpolator: Efl.Interpolator; [[Interpolator which indicates interpolation function. Efl_Interpolator is required.]]
interpolator: Efl.Interpolator; [[Interpolator which indicates interpolation function.]]
}
}
animation_apply {

View File

@ -17,7 +17,8 @@ class @beta Efl.Canvas.Animation_Player extends Efl.Object implements Efl.Player
get {
}
values {
auto_del: bool; [[$true to delete animation object automatically when animation is finished or animation is cancelled, $false otherwise.]]
auto_del: bool; [[$true to delete animation object automatically when animation is finished or animation is
cancelled, $false otherwise.]]
}
}
@property target {

View File

@ -13,9 +13,12 @@ class @beta Efl.Canvas.Animation_Rotate extends Efl.Canvas.Animation
values {
from_degree: double; [[Rotation degree when animation starts]]
to_degree: double; [[Rotation degree when animation ends]]
pivot: Efl.Canvas.Object; [[Pivot object for the center point. If the pivot object is NULL, then the object is rotated on itself.]]
cx: double; [[X relative coordinate of the center point. The left end is 0.0 and the right end is 1.0 (the center is 0.5).]]
cy: double; [[Y relative coordinate of the center point. The top end is 0.0 and the bottom end is 1.0 (the center is 0.5).]]
pivot: Efl.Canvas.Object; [[Pivot object for the center point.
If the pivot object is NULL, then the object is rotated on itself.]]
cx: double; [[X relative coordinate of the center point.
The left end is 0.0 and the right end is 1.0 (the center is 0.5).]]
cy: double; [[Y relative coordinate of the center point.
The top end is 0.0 and the bottom end is 1.0 (the center is 0.5).]]
}
}
@property rotate_absolute {

View File

@ -15,9 +15,12 @@ class @beta Efl.Canvas.Animation_Scale extends Efl.Canvas.Animation
from_scale_y: double; [[Scale factor along y axis when animation starts]]
to_scale_x: double; [[Scale factor along x axis when animation ends]]
to_scale_y: double; [[Scale factor along y axis when animation ends]]
pivot: Efl.Canvas.Object; [[Pivot object for the center point. If the pivot object is NULL, then the object is scaled on itself.]]
cx: double; [[X relative coordinate of the center point. The left end is 0.0 and the right end is 1.0 (the center is 0.5).]]
cy: double; [[Y relative coordinate of the center point. The top end is 0.0 and the bottom end is 1.0 (the center is 0.5).]]
pivot: Efl.Canvas.Object; [[Pivot object for the center point. If the pivot object is NULL, then the object
is scaled on itself.]]
cx: double; [[X relative coordinate of the center point. The left end is 0.0 and the right end is 1.0
(the center is 0.5).]]
cy: double; [[Y relative coordinate of the center point. The top end is 0.0 and the bottom end is 1.0
(the center is 0.5).]]
}
}
@property scale_absolute {

View File

@ -72,7 +72,7 @@ abstract Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.Entity,
Please do not assume that @Efl.Gfx.Render_Op.copy mode can be
used to "poke" holes in a window (to see through it), as only the
compositor can ensure that. Copy mode should only be used with
otherwise opaque widgets or inside non-window surfaces (eg. a
otherwise opaque widgets or inside non-window surfaces (e.g. a
transparent background inside a buffer canvas).
]]
set {
@ -232,7 +232,8 @@ abstract Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.Entity,
Note: The old focus APIs still work, however they will only act on the default seat.
]]
params {
@in seat: Efl.Input.Device; [[The seat that should be added to the focus list. Use $null for the default seat.]]
@in seat: Efl.Input.Device; [[The seat that should be added to the focus list. Use $null for the default
seat.]]
}
return: bool; [[$true if the focus has been set or $false otherwise.]]
}
@ -241,7 +242,8 @@ abstract Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.Entity,
[[ Remove a seat from the focus list.
]]
params {
@in seat: Efl.Input.Device; [[The seat that should be removed from the focus list. Use $null for the default seat.]]
@in seat: Efl.Input.Device; [[The seat that should be removed from the focus list. Use $null for the
default seat.]]
}
return: bool; [[$true if the seat was removed from the focus list or $false otherwise.]]
}

View File

@ -1,6 +1,7 @@
import eina_types;
abstract @beta Efl.Canvas.Vg.Node extends Efl.Object implements Efl.Gfx.Entity, Efl.Gfx.Color, Efl.Gfx.Stack, Efl.Duplicate, Efl.Gfx.Path
abstract @beta Efl.Canvas.Vg.Node extends Efl.Object
implements Efl.Gfx.Entity, Efl.Gfx.Color, Efl.Gfx.Stack, Efl.Duplicate, Efl.Gfx.Path
{
[[Efl vector graphics abstract class]]
methods {

View File

@ -30,7 +30,8 @@ mixin @beta Efl.Input.Clickable
button_state_reset @protected {
[[This aborts the internal state after a press call.
This will stop the timer for longpress. And set the state of the clickable mixin back into the unpressed state.
This will stop the timer for longpress and set the state of the clickable mixin back into the unpressed
state.
]]
params {
button : uint;
@ -56,8 +57,11 @@ mixin @beta Efl.Input.Clickable
}
}
events {
clicked: Efl.Input.Clickable_Clicked; [[Called when object is in sequence pressed and unpressed, by the primary button]]
clicked,any: Efl.Input.Clickable_Clicked; [[Called when object is in sequence pressed and unpressed by any button. The button that triggered the event can be found in the event information.]]
clicked: Efl.Input.Clickable_Clicked; [[Called when object is in sequence pressed and unpressed by the primary
button]]
clicked,any: Efl.Input.Clickable_Clicked; [[Called when object is in sequence pressed and unpressed by any
button. The button that triggered the event can be found in the event
information.]]
pressed: int; [[Called when the object is pressed, event_info is the button that got pressed]]
unpressed: int; [[Called when the object is no longer pressed, event_info is the button that got pressed]]
longpressed: int; [[Called when the object receives a long press, event_info is the button that got pressed]]

View File

@ -34,7 +34,7 @@ class Efl.Input.Pointer extends Efl.Object implements Efl.Input.Event, Efl.Input
with the other methods of this class.
]]
set {
return: bool; [[$false if the value could not be set (eg. delta).]]
return: bool; [[$false if the value could not be set.]]
}
get {}
keys {
@ -103,9 +103,11 @@ class Efl.Input.Pointer extends Efl.Object implements Efl.Input.Event, Efl.Input
}
}
@property touch_id {
[[TThe ID associated with this pointer.
[[The ID associated with this pointer.
In case there are multiple pointers (for example when multiple fingers are touching the screen) this number uniquely identifies each pointer, for as long as it is present. This is, when a finger is lifted its ID can be later reused by another finger touching the screen.
In case there are multiple pointers (for example when multiple fingers are touching the screen) this number
uniquely identifies each pointer, for as long as it is present. This is, when a finger is lifted its ID can
be later reused by another finger touching the screen.
]]
values {
id: int; [[An ID uniquely identifying this pointer among the currently present pointers.]]