Implements the focus groups. More...
#include <kanzi/core.ui/input/focus_scope.hpp>
Public Member Functions | |
FocusGroup (Node &root) | |
Constructor. | |
FocusScopeType | getType () const override |
Returns the type of the focus scope. | |
Public Member Functions inherited from kanzi::FocusScope | |
bool | canFocusEnter () const |
Returns whether the focus can enter the focus scope. | |
bool | canFocusLeave () const |
Returns whether the focus can leave the focus scope. | |
bool | canGetLastFocused () const |
Returns whether the focus scope node can be the last-focused node of its owning focus scope. | |
NodeSharedPtr | findNodeToRecoverFocusWhenScopeChangeTo (FocusScopePtr &newScopeInfo) const |
Finds a node to which Kanzi tries to set the focus after this focus scope changes to newScopeInfo and the scope type change itself did not restore focus to any node. | |
FocusChainNode | findNodeToRestoreFocusOn () |
Finds a focusable node to which tryRestoreScopeFocusedNode() restores the focus when called with Direction set to Next and Reason set to Force. | |
FocusChainNode | getFocus () const |
Returns the focus node of a focus scope. | |
FocusChainSharedPtr | getFocusChainSnapshot () |
Returns a snapshot of the focus chain of a focus scope. | |
FocusChainSharedPtr | getFocusChainSnapshot (bool onlyEffectivelyVisible) |
Returns a snapshot of the focus chain of a focus scope. | |
FocusNavigationManipulatorSharedPtr | getFocusNavigationManipulator () const |
Returns the focus navigation manipulator of a focus scope. | |
virtual OverlayScope * | getOverlayScope () const |
Returns the overlay scope that owns the focus scope. | |
virtual FocusScope * | getParent () const |
If a focus scope has a parent focus scope, returns the parent focus scope. | |
Node & | getRoot () const |
Returns the focus scope node. | |
bool | isAttached () const |
Returns whether a focus scope node is attached. | |
bool | isFocusChainEmpty () const |
Returns whether the focus chain of a focus scope is empty. | |
bool | isFocusChainEmpty (bool onlyEffectivelyVisible) const |
Returns whether the focus chain of a focus scope is empty. | |
virtual bool | isNodeInScope (const Node &node) const |
Returns whether a node is in a focus scope. | |
void | setFocusNavigationManipulator (FocusNavigationManipulatorSharedPtr newManipulator) |
Sets the focus navigation manipulator of the focus scope. | |
FocusChainNode | tryMoveFocusInScope (FocusChainDirection direction) |
Tries to set the focus to a node relative to the current focus node of the focus scope using the focus chain navigation. | |
FocusChainNode | tryRestoreScopeFocusedNode (Node *currentFocus, FocusReason reason, FocusChainDirection direction) |
Tries to restore the focus to the last-focused node of a focus scope. | |
Node::VisitorResult | visitFocusChain (FocusScopeVisitor &visitor) |
Visits the focus chain of the focus scope, and calls the visitor on each node. | |
Node::VisitorResult | visitFocusScope (FocusScopeVisitor &visitor) |
Visits the focusable nodes of the focus scope, including nested focus scope nodes. | |
virtual | ~FocusScope () |
Destructor. | |
FocusChainIndex | getLastFocused () const |
Returns the focus chain index of the last-focused node of a focus scope. | |
void | setLastFocused (const FocusChainIndex &lastFocus) |
Sets the focus chain index of the last-focused node of the focus scope. | |
void | clearLastFocused () |
Clears the focus chain index of the last-focused node of a focus scope. | |
FocusChainNode | getLastFocusedNode () const |
Returns the last-focused node of a focus scope. | |
FocusChainNode | setLastFocusedNode (const Node &lastFocused) |
Sets the last-focused node of a focus scope. | |
void | clearLastFocusedNode () |
Set the Node::FocusedProperty value to false, Node::FocusStateProperty to FocusState::NoFocus, and clears the last-focused node of a focus scope. | |
Additional Inherited Members | |
Public Types inherited from kanzi::FocusScope | |
using | FocusChainSharedPtr |
The focus chain pointer type. | |
Static Public Member Functions inherited from kanzi::FocusScope | |
static FocusScopePtr | create (FocusScopeType type, Node &rootNode) |
Creates an instance of a focus scope type, with the rootNode as the focus scope node. | |
static FocusScopePtr | create (Node &rootNode) |
Creates a focus scope type instance with the rootNode as the root of the focus scope. | |
static void | swapScope (FocusScopePtr &newScopeInfo, FocusScopePtr &nodeScopeInfo) |
Safely swaps the focus scope info nodeScopeInfo of a node with the newScopeInfo. | |
Protected Member Functions inherited from kanzi::FocusScope | |
void | focusNavigationHandler (FocusManager::MoveFocusMessageArguments &args) |
Navigates the focus in a scope. | |
FocusScope (Node &scopeNode, ScopeFlag flags) | |
Constructor. | |
void | invalidateFocusChain () |
Invalidates the focus chain of the focus scope, including the focus chain snapshots of its nested focus scopes. | |
virtual void | joinScope (FocusScope &target) |
Joins the last-focused node of this scope with the target focus scope, if the last-focused node of the target scope is the scope node of this focus scope. | |
void | notifyInvalidateFocusChain () override |
Kanzi calls this method to invalidate the focus chain snapshots of the focus scope. | |
void | notifyNodeAttached (Node &node) override |
FocusManager calls this method when a node is attached to the node tree. | |
void | notifyNodeDetached (Node &node) override |
FocusManager calls this method to notify that a node from the scope is detached. | |
virtual void | notifyScopeTypeChange (FocusScope &oldScopeData) |
Notifies that the focus scope type of this scope changed from oldScopeData. | |
virtual void | splitScope (FocusScope *target, FocusChainNode targetLastFocusedNode) |
Splits the last-focused node of a target scope with this focus scope. | |
void | swapScopeData (FocusScope &other) |
Swaps the focus scope data of this scope with the focus scope data of the source scope. | |
Implements the focus groups.
|
explicit |
Constructor.
|
inlineoverridevirtual |
Returns the type of the focus scope.
Implements kanzi::FocusScope.