~~Title: Efl.Ui.Focus.Manager_Root_Focus~~ ====== Efl.Ui.Focus.Manager_Root_Focus (class) ====== ===== Description ===== %%This class ensures that the root is at least focusable, if nothing else is focusable.%% {{page>:develop:api-include:efl:ui:focus:manager_root_focus:description&nouser&nolink&nodate}} ===== Inheritance ===== => [[:develop:api:efl:ui:focus:manager_calc|Efl.Ui.Focus.Manager_Calc]] //(class)// => [[:develop:api:efl:object|Efl.Object]] //(class)// ++++ Full hierarchy | * [[:develop:api:efl:ui:focus:manager_calc|Efl.Ui.Focus.Manager_Calc]] //(class)// * [[:develop:api:efl:object|Efl.Object]] //(class)// * [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] //(interface)// ++++ ===== Members ===== **[[:develop:api:efl:ui:focus:manager_root_focus:property:border_elements|border_elements]]** //**(get)**//// [Overridden from [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]]]//\\ > Eina_Iterator *efl_ui_focus_manager_border_elements_get(const Eo *obj); \\ **[[:develop:api:efl:ui:focus:manager_root_focus:property:canvas_object|canvas_object]]** //**(get, set)**//\\ > %%The default replacement object to use when there is no focusable object inside the manager. You can change this object by setting this value to something else. %%''null''%% means that the same value as %%[[:develop:api:efl:ui:focus:manager:property:root|Efl.Ui.Focus.Manager.root]]%% will be used.%% Efl_Canvas_Object *efl_ui_focus_manager_root_focus_canvas_object_get(const Eo *obj); void efl_ui_focus_manager_root_focus_canvas_object_set(Eo *obj, Efl_Canvas_Object *canvas_object); \\ **[[:develop:api:efl:ui:focus:manager_root_focus:method:constructor|constructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\ > %%Implement this method to provide optional initialization code for your object.%% Efl_Object *efl_constructor(Eo *obj); \\ **[[:develop:api:efl:ui:focus:manager_root_focus:method:destructor|destructor]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\ > %%Implement this method to provide deinitialization code for your object if you need it.%% void efl_destructor(Eo *obj); \\ **[[:develop:api:efl:ui:focus:manager_root_focus:method:fetch|fetch]]**// [Overridden from [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]]]//\\ > %%Fetches the data from a registered node.%% Efl_Ui_Focus_Relations *efl_ui_focus_manager_fetch(Eo *obj, Efl_Ui_Focus_Object *child); \\ **[[:develop:api:efl:ui:focus:manager_root_focus:method:finalize|finalize]]**// [Overridden from [[:develop:api:efl:object|Efl.Object]]]//\\ > %%Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.%% Efl_Object *efl_finalize(Eo *obj); \\ **[[:develop:api:efl:ui:focus:manager_root_focus:method:logical_end|logical_end]]**// [Overridden from [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]]]//\\ > %%Returns the last logical object.%% Efl_Ui_Focus_Manager_Logical_End_Detail efl_ui_focus_manager_logical_end(Eo *obj); \\ **[[:develop:api:efl:ui:focus:manager_root_focus:property:manager_focus|manager_focus]]** //**(get, set)**//// [Overridden from [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]]]//\\ > %%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); \\ **[[:develop:api:efl:ui:focus:manager_root_focus:method:move|move]]**// [Overridden from [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]]]//\\ > %%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); \\ **[[:develop:api:efl:ui:focus:manager_root_focus:method:register|register]]**// [Overridden from [[:develop:api:efl:ui:focus:manager_calc|Efl.Ui.Focus.Manager_Calc]]]//\\ > %%Registers a new item in the graph.%% Eina_Bool efl_ui_focus_manager_calc_register(Eo *obj, Efl_Ui_Focus_Object *child, Efl_Ui_Focus_Object *parent, Efl_Ui_Focus_Manager *redirect); \\ **[[:develop:api:efl:ui:focus:manager_root_focus:method:register_logical|register_logical]]**// [Overridden from [[:develop:api:efl:ui:focus:manager_calc|Efl.Ui.Focus.Manager_Calc]]]//\\ > %%Registers a new logical item in the graph.%% Eina_Bool efl_ui_focus_manager_calc_register_logical(Eo *obj, Efl_Ui_Focus_Object *child, Efl_Ui_Focus_Object *parent, Efl_Ui_Focus_Manager *redirect); \\ **[[:develop:api:efl:ui:focus:manager_root_focus:method:request_move|request_move]]**// [Overridden from [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]]]//\\ > %%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); \\ **[[:develop:api:efl:ui:focus:manager_root_focus:method:unregister|unregister]]**// [Overridden from [[:develop:api:efl:ui:focus:manager_calc|Efl.Ui.Focus.Manager_Calc]]]//\\ > %%Unregister the given item from the focus graph.%% void efl_ui_focus_manager_calc_unregister(Eo *obj, Efl_Ui_Focus_Object *child); \\ **[[:develop:api:efl:ui:focus:manager_root_focus:property:viewport_elements|viewport_elements]]** //**(get)**//// [Overridden from [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]]]//\\ > Eina_Iterator *efl_ui_focus_manager_viewport_elements_get(const Eo *obj, Eina_Rect viewport); \\ ==== Inherited ==== ^ [[:develop:api:efl:object|Efl.Object]] ^^^ | | **[[:develop:api:efl:object:property:allow_parent_unref|allow_parent_unref]]** //**(get, set)**// | %%Allow an object to be deleted by unref even if it has a parent.%% | | | **[[:develop:api:efl:object:method:children_iterator_new|children_iterator_new]]** | %%Get an iterator on all children.%% | | | **[[:develop:api:efl:object:property:comment|comment]]** //**(get, set)**// | %%A human readable comment for the object.%% | | | **[[:develop:api:efl:object:method:composite_attach|composite_attach]]** | %%Make an object a composite object of another.%% | | | **[[:develop:api:efl:object:method:composite_detach|composite_detach]]** | %%Detach a composite object from another object.%% | | | **[[:develop:api:efl:object:method:composite_part_is|composite_part_is]]** | %%Check if an object is part of a composite object.%% | | | **[[:develop:api:efl:object:method:debug_name_override|debug_name_override]]** | %%Build a read-only name for this object used for debugging.%% | | | **[[:develop:api:efl:object:method:event_callback_forwarder_del|event_callback_forwarder_del]]** | %%Remove an event callback forwarder for a specified event and object.%% | | | **[[:develop:api:efl:object:method:event_callback_forwarder_priority_add|event_callback_forwarder_priority_add]]** | %%Add an event callback forwarder that will make this object emit an event whenever another object (%%''source''%%) emits it. The event is said to be forwarded from %%''source''%% to this object.%% | | | **[[:develop:api:efl:object:method:event_callback_stop|event_callback_stop]]** | %%Stop the current callback call.%% | | | **[[:develop:api:efl:object:method:event_freeze|event_freeze]]** | %%Freeze events of this object.%% | | | **[[:develop:api:efl:object:property:event_freeze_count|event_freeze_count]]** //**(get)**// | | | ''static'' | **[[:develop:api:efl:object:method:event_global_freeze|event_global_freeze]]** | %%Globally freeze events for ALL EFL OBJECTS.%% | | ''static'' | **[[:develop:api:efl:object:property:event_global_freeze_count|event_global_freeze_count]]** //**(get)**// | | | ''static'' | **[[:develop:api:efl:object:method:event_global_thaw|event_global_thaw]]** | %%Globally thaw events for ALL EFL OBJECTS.%% | | | **[[:develop:api:efl:object:method:event_thaw|event_thaw]]** | %%Thaw events of object.%% | | | **[[:develop:api:efl:object:property:finalized|finalized]]** //**(get)**// | | | | **[[:develop:api:efl:object:method:invalidate|invalidate]]** | %%Implement this method to perform special actions when your object loses its parent, if you need to.%% | | | **[[:develop:api:efl:object:property:invalidated|invalidated]]** //**(get)**// | | | | **[[:develop:api:efl:object:property:invalidating|invalidating]]** //**(get)**// | | | | **[[:develop:api:efl:object:property:name|name]]** //**(get, set)**// | %%The name of the object.%% | | | **[[:develop:api:efl:object:method:name_find|name_find]]** | %%Find a child object with the given name and return it.%% | | | **[[:develop:api:efl:object:property:parent|parent]]** //**(get, set)**// | %%The parent of an object.%% | | | **[[:develop:api:efl:object:method:provider_register|provider_register]]** | %%Will register a manager of a specific class to be answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% | | | **[[:develop:api:efl:object:method:provider_unregister|provider_unregister]]** | %%Will unregister a manager of a specific class that was previously registered and answered by %%[[:develop:api:efl:object:method:provider_find|Efl.Object.provider_find]]%%.%% | ^ [[:develop:api:efl:ui:focus:manager_calc|Efl.Ui.Focus.Manager_Calc]] ^^^ | | **[[:develop:api:efl:ui:focus:manager_calc:method:dirty_logic_freeze|dirty_logic_freeze]]** | %%Disables the cache invalidation when an object is moved.%% | | | **[[:develop:api:efl:ui:focus:manager_calc:method:dirty_logic_unfreeze|dirty_logic_unfreeze]]** | %%Enables the cache invalidation when an object is moved.%% | | | **[[:develop:api:efl:ui:focus:manager_calc:method:pop_history_stack|pop_history_stack]]** | %%Removes the uppermost history element, and focuses the previous one.%% | | | **[[:develop:api:efl:ui:focus:manager_calc:method:provider_find|provider_find]]** | %%Searches upwards in the object tree for a provider which knows the given class/interface.%% | | | **[[:develop:api:efl:ui:focus:manager_calc:property:redirect|redirect]]** //**(get, set)**// | %%Add another manager to serve the move requests.%% | | | **[[:develop:api:efl:ui:focus:manager_calc:method:request_subchild|request_subchild]]** | %%Returns the widget in the direction next.%% | | | **[[:develop:api:efl:ui:focus:manager_calc:method:reset_history|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.%% | | | **[[:develop:api:efl:ui:focus:manager_calc:property:root|root]]** //**(get, set)**// | %%Root node for all logical sub-trees.%% | | | **[[:develop:api:efl:ui:focus:manager_calc:method:setup_on_first_touch|setup_on_first_touch]]** | %%Called when this manager is set as redirect.%% | | | **[[:develop:api:efl:ui:focus:manager_calc:method:update_children|update_children]]** | %%Sets the list of children to a different order.%% | | | **[[:develop:api:efl:ui:focus:manager_calc:method:update_order|update_order]]** | %%Sets the list of children to a different order.%% | | | **[[:develop:api:efl:ui:focus:manager_calc:method:update_parent|update_parent]]** | %%Sets a new logical parent for the given child.%% | | | **[[:develop:api:efl:ui:focus:manager_calc:method:update_redirect|update_redirect]]** | %%Sets a new redirect object for the given child.%% | ===== Events ===== ==== Inherited ==== ^ [[:develop:api:efl:object|Efl.Object]] ^^^ | | **[[:develop:api:efl:object:event:del|del]]** | %%Object is being deleted. See %%[[:develop:api:efl:object:method:destructor|Efl.Object.destructor]]%%.%% | | | **[[:develop:api:efl:object:event:destruct|destruct]]** | %%Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.%% | | | **[[:develop:api:efl:object:event:invalidate|invalidate]]** | %%Object is being invalidated and losing its parent. See %%[[:develop:api:efl:object:method:invalidate|Efl.Object.invalidate]]%%.%% | | | **[[:develop:api:efl:object:event:noref|noref]]** | %%Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.%% | | | **[[:develop:api:efl:object:event:ownership_shared|ownership,shared]]** | %%Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.%% | | | **[[:develop:api:efl:object:event:ownership_unique|ownership,unique]]** | %%Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.%% | ^ [[:develop:api:efl:ui:focus:manager|Efl.Ui.Focus.Manager]] ^^^ | | **[[:develop:api:efl:ui:focus:manager:event:coords_dirty|coords,dirty]]** | %%Cached relationship calculation results have been invalidated.%% | | | **[[:develop:api:efl:ui:focus:manager:event:dirty_logic_freeze_changed|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.%% | | | **[[:develop:api:efl:ui:focus:manager:event:flush_pre|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.%% | | | **[[:develop:api:efl:ui:focus:manager:event:manager_focus_changed|manager_focus,changed]]** | %%The manager_focus property has changed. The previously focused object is passed as an event argument.%% | | | **[[:develop:api:efl:ui:focus:manager:event:redirect_changed|redirect,changed]]** | %%Redirect object has changed, the old manager is passed as an event argument.%% |