forked from enlightenment/efl
147 lines
5.4 KiB
Plaintext
147 lines
5.4 KiB
Plaintext
enum Efl.Ui.Focus.Direction {
|
|
[[Those values are describing a direction from the position of view from
|
|
one item.
|
|
|
|
@since 1.20
|
|
]]
|
|
right = 0, [[Coordinate-wise the next element on the right-hand side]]
|
|
left = 1, [[Coordinate-wise the next element on the left-hand side]]
|
|
down = 2, [[Coordinate-wise the next element downward]]
|
|
up = 3, [[Coorinate-wise the next element upwards]]
|
|
next = 4, [[Logically-wise the next item in the logical tree]]
|
|
prev = 5, [[Logically-wise the prev item in the logical tree]]
|
|
last = 6 [[Last value for this enum, do not use]]
|
|
}
|
|
|
|
struct Efl.Ui.Focus.Relations {
|
|
[[Structure holding the graph of relations between focussable objects.
|
|
|
|
@since 1.20
|
|
]]
|
|
right : list<Efl.Ui.Focus.Object>; [[List of objects on the right side]]
|
|
left : list<Efl.Ui.Focus.Object>; [[[List of objects on the left side]]
|
|
top : list<Efl.Ui.Focus.Object>; [[[List of objects above]]
|
|
down : list<Efl.Ui.Focus.Object>; [[[List of objects below]]
|
|
next : Efl.Ui.Focus.Object; [[[Next object]]
|
|
prev : Efl.Ui.Focus.Object; [[Previous object]]
|
|
type : string; [[Object type]]
|
|
parent : Efl.Ui.Focus.Object; [[Parent object]]
|
|
redirect : Efl.Ui.Focus.Manager; [[Redirect manager]]
|
|
}
|
|
|
|
interface Efl.Ui.Focus.Manager {
|
|
[[Calculates the directions of Efl.Ui.Focus.Direction
|
|
|
|
Each registered item will get a other registered object into each
|
|
direction, you can get those items for the currently focused item if
|
|
you call request move.
|
|
|
|
@since 1.20
|
|
]]
|
|
methods {
|
|
move {
|
|
[[Move the focus into the given direction.
|
|
|
|
This call flushes all changes.
|
|
This means all changes between the last flush and now are computed
|
|
]]
|
|
params {
|
|
direction : Efl.Ui.Focus.Direction; [[The direction to move to]]
|
|
}
|
|
return : Efl.Ui.Focus.Object; [[The element which is now focused]]
|
|
}
|
|
request_move {
|
|
[[Returns the object which would be the next object to focus in the
|
|
given direction.
|
|
]]
|
|
params {
|
|
direction : Efl.Ui.Focus.Direction; [[Direction to move focus]]
|
|
}
|
|
return : Efl.Ui.Focus.Object; [[Next object to focus]]
|
|
}
|
|
focus {
|
|
[[Make the given object the currently focused object in this manager.
|
|
|
|
The object has to be part of this manager object.
|
|
If you want to focus something in the redirect manager, just call
|
|
the function on the redirect manager.
|
|
]]
|
|
params {
|
|
focus : Efl.Ui.Focus.Object @nonull; [[The object to be focused. Pass the root to get the first available none logical registered child focused]]
|
|
}
|
|
}
|
|
focused {
|
|
[[Return the currently focused element of this manager.]]
|
|
return : Efl.Ui.Focus.Object; [[The object that has focus.]]
|
|
}
|
|
@property redirect {
|
|
[[Add a another manager to serve the move requests.
|
|
|
|
If this value is set, all move requests are redirected to this
|
|
manager object. Set it to $null once nothing should be redirected
|
|
anymore.
|
|
]]
|
|
values {
|
|
redirect : Efl.Ui.Focus.Manager; [[The redirect manager.]]
|
|
}
|
|
}
|
|
@property border_elements {
|
|
[[The list of elements which are at the border of the graph.
|
|
|
|
This means one of the relations right,left or down,up are not set.
|
|
This call flushes all changes. See @Efl.Ui.Focus.Manager.move
|
|
]]
|
|
get {}
|
|
values {
|
|
border_elements : iterator<Efl.Ui.Focus.Object>; [[An iterator
|
|
over the border objects.]]
|
|
}
|
|
}
|
|
@property root {
|
|
[[Root node for all logical subtrees.
|
|
|
|
This property can only be set once.
|
|
]]
|
|
set {
|
|
return : bool;
|
|
}
|
|
|
|
get {
|
|
|
|
}
|
|
|
|
values {
|
|
root : Efl.Ui.Focus.Object @nonull; [[Will be registered into
|
|
this manager object.]]
|
|
}
|
|
}
|
|
fetch {
|
|
[[This will fetch the data from a registered node.
|
|
|
|
Be aware this function will trigger all dirty nodes to be computed
|
|
]]
|
|
params {
|
|
child : Efl.Ui.Focus.Object; [[The child object to inspect.]]
|
|
}
|
|
return : own(ptr(Efl.Ui.Focus.Relations)); [[The list of relations
|
|
starting from $child.]]
|
|
}
|
|
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.
|
|
]]
|
|
return : Efl.Ui.Focus.Object; [[Last object]]
|
|
}
|
|
}
|
|
events {
|
|
redirect,changed : Efl.Ui.Focus.Manager; [[Emitted when the redirect
|
|
object has changed, the old manager is passed as event info]]
|
|
flush,pre; [[Emitted once the graph calculationg will be performed]]
|
|
coords,dirty; [[Emitted once the graph is dirty, this means there are
|
|
potential changes in border_elements you want to know about]]
|
|
focused : Efl.Ui.Focus.Object; [[Emitted if the manager has focused an
|
|
object]]
|
|
}
|
|
}
|