Efl.Ui.Focus.Manager (interface)

Description

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.

Since 1.22

Members

border_elements (get)

Eina_Iterator *efl_ui_focus_manager_border_elements_get(const Eo *obj);


dirty_logic_freeze

Disables the cache invalidation when an object is moved.
void efl_ui_focus_manager_dirty_logic_freeze(Eo *obj);


dirty_logic_unfreeze

Enables the cache invalidation when an object is moved.
void efl_ui_focus_manager_dirty_logic_unfreeze(Eo *obj);


fetch

Fetches the data from a registered node.
Efl_Ui_Focus_Relations *efl_ui_focus_manager_fetch(Eo *obj, Efl_Ui_Focus_Object *child);


logical_end

Returns the last logical object.
Efl_Ui_Focus_Manager_Logical_End_Detail efl_ui_focus_manager_logical_end(Eo *obj);


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);


move

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);


pop_history_stack

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);


request_move

Returns the object in the direction from child.
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);


request_subchild

Returns the widget in the direction next.
Efl_Ui_Focus_Object *efl_ui_focus_manager_request_subchild(Eo *obj, Efl_Ui_Focus_Object *root);


reset_history

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);


setup_on_first_touch

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);


viewport_elements (get)

Eina_Iterator *efl_ui_focus_manager_viewport_elements_get(const Eo *obj, Eina_Rect viewport);


Events

coords,dirty

Cached relationship calculation results have been invalidated.
EFL_UI_FOCUS_MANAGER_EVENT_COORDS_DIRTY(void)


dirty_logic_freeze,changed

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.
EFL_UI_FOCUS_MANAGER_EVENT_DIRTY_LOGIC_FREEZE_CHANGED(Eina_Bool)


flush,pre

After this event, the manager object will calculate relations in the graph. Can be used to add / remove children in a lazy fashion.
EFL_UI_FOCUS_MANAGER_EVENT_FLUSH_PRE(void)


manager_focus,changed

The manager_focus property has changed. The previously focused object is passed as an event argument.
EFL_UI_FOCUS_MANAGER_EVENT_MANAGER_FOCUS_CHANGED(Efl_Ui_Focus_Object *)


redirect,changed

Redirect object has changed, the old manager is passed as an event argument.
EFL_UI_FOCUS_MANAGER_EVENT_REDIRECT_CHANGED(Efl_Ui_Focus_Manager *)