Interface for managing focus objects.
This interface is built in order to support movement of the focus property in a set of widgets. The movement of the focus property can happen in a tree manner, or a graph manner. The movement is also keeping track of the history of focused elements. The tree interpretation differentiates between logical and regular widgets: Logical widgets (typically containers) cannot receive focus, whereas Regular ones (like buttons) can.
Eina_Iterator *efl_ui_focus_manager_border_elements_get(const Eo *obj);
Disables the cache invalidation when an object is moved.
void efl_ui_focus_manager_dirty_logic_freeze(Eo *obj);
Enables the cache invalidation when an object is moved.
void efl_ui_focus_manager_dirty_logic_unfreeze(Eo *obj);
Fetches the data from a registered node.
Efl_Ui_Focus_Relations *efl_ui_focus_manager_fetch(Eo *obj, Efl_Ui_Focus_Object *child);
Returns the last logical object.
manager_focus (get, set)
The element which is currently focused by this manager.
Efl_Ui_Focus_Object *efl_ui_focus_manager_focus_get(const Eo *obj); void efl_ui_focus_manager_focus_set(Eo *obj, Efl_Ui_Focus_Object *focus);
Moves the focus in the given direction to the next regular widget.
Efl_Ui_Focus_Object *efl_ui_focus_manager_move(Eo *obj, Efl_Ui_Focus_Direction direction);
Removes the uppermost history element, and focuses the previous one.
void efl_ui_focus_manager_pop_history_stack(Eo *obj);
redirect (get, set)
Add another manager to serve the move requests.
Efl_Ui_Focus_Manager *efl_ui_focus_manager_redirect_get(const Eo *obj); void efl_ui_focus_manager_redirect_set(Eo *obj, Efl_Ui_Focus_Manager *redirect);
Returns the object in the
Efl_Ui_Focus_Object *efl_ui_focus_manager_request_move(Eo *obj, Efl_Ui_Focus_Direction direction, Efl_Ui_Focus_Object *child, Eina_Bool logical);
Returns the widget in the direction next.
Efl_Ui_Focus_Object *efl_ui_focus_manager_request_subchild(Eo *obj, Efl_Ui_Focus_Object *root);
Resets the history stack of this manager object. This means the uppermost element will be unfocused, and all other elements will be removed from the remembered list.
void efl_ui_focus_manager_reset_history(Eo *obj);
root (get, set)
Root node for all logical sub-trees.
Efl_Ui_Focus_Object *efl_ui_focus_manager_root_get(const Eo *obj); Eina_Bool efl_ui_focus_manager_root_set(Eo *obj, Efl_Ui_Focus_Object *root);
Called when this manager is set as redirect.
void efl_ui_focus_manager_setup_on_first_touch(Eo *obj, Efl_Ui_Focus_Direction direction, Efl_Ui_Focus_Object *entry);
Eina_Iterator *efl_ui_focus_manager_viewport_elements_get(const Eo *obj, Eina_Rect viewport);
Cached relationship calculation results have been invalidated.
Called when this focus manager is frozen or thawed, even_info being
trueindicates that it is now frozen,
falseindicates that it is thawed.
After this event, the manager object will calculate relations in the graph. Can be used to add / remove children in a lazy fashion.
The manager_focus property has changed. The previously focused object is passed as an event argument.
Redirect object has changed, the old manager is passed as an event argument.