efl/src/lib/elementary/efl_ui_focus_object.eo

88 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 {
[[Whether the widget is currently focused or not.]]
get {
}
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 an @Efl.Ui.Focus.Manager will not
have this focus manager as this object, but rather the focus manager
where that is registered in.
]]
get {}
values {
manager : Efl.Ui.Focus.Manager; [[The manager object.]]
}
}
@property focus_parent {
[[The logical parent 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 have a chance 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.]]
}
}