efl/src/lib/elementary/efl_ui_focus_object.eo

87 lines
3.3 KiB
Plaintext

import eina_types;
mixin Efl.Ui.Focus.Object
{
[[Functions of focusable objects.
@since 1.22
]]
methods {
@property focus_geometry {
[[The geometry (that is, the bounding rectangle) used to calculate the
relationship with other objects.]]
get {}
values {
rect : Eina.Rect; [[The geometry to use.]]
}
}
@property focus {
get {
[[Returns whether the widget is currently focused or not.]]
}
set @protected {
[[This is called by the manager and should never be called by
anyone else.
The function emits the focus state events, if focus is
different to the previous state.
]]
}
values {
focus : bool; [[The focused state of the 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.
]]
get {}
values {
manager : Efl.Ui.Focus.Manager; [[The manager object]]
}
}
@property focus_parent {
[[Describes which logical parent is used by this object.]]
get {}
values {
logical_parent : Efl.Ui.Focus.Object; [[The focus parent.]]
}
}
@property child_focus @protected {
[[Indicates if a child of this object has focus set to true.]]
values {
child_focus : bool; [[$true if a child has focus.]]
}
}
setup_order {
[[Tells the object that its children will be queried soon by the focus manager.
Overwrite this to update the order of the children. Deleting items in this call will
result in undefined behaviour and may cause your system to crash.
]]
}
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.]]
}
on_focus_update @protected {
[[Virtual function handling focus in/out events on the widget]]
return: bool; [[$true if this widget can handle focus, $false otherwise]]
}
}
implements {
@empty .focus_geometry;
@empty .setup_order_non_recursive;
@empty .focus_manager;
@empty .focus_parent;
@empty .on_focus_update;
}
events {
focus,changed : bool; [[Emitted if the focus state has changed.]]
focus_manager,changed: Efl.Ui.Focus.Manager; [[Emitted when a new manager is
the parent for this object.]]
focus_parent,changed: Efl.Ui.Focus.Object; [[Emitted when a new logical
parent should be used.]]
child_focus,changed: bool; [[Emitted if child_focus has changed.]]
focus_geometry,changed: Eina.Rect; [[Emitted if focus geometry of this object has changed.]]
}
}