3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/oreui/input/FocusDirection.h"
7#include "mc/client/gui/oreui/input/GamepadButton.h"
8#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
28 enum class FocusNodeKind : uchar {
37 ::ll::TypedStorage<4, 4, uint> id;
38 ::ll::TypedStorage<4, 4, uint> parentId;
39 ::ll::TypedStorage<1, 1, ::OreUI::FocusNavigationController::FocusNodeKind> kind;
40 ::ll::TypedStorage<2, 2, ushort> columns;
41 ::ll::TypedStorage<2, 2, ushort> rows;
42 ::ll::TypedStorage<1, 1, bool> hasExplicitCell;
43 ::ll::TypedStorage<2, 2, ushort> cellRow;
44 ::ll::TypedStorage<2, 2, ushort> cellCol;
45 ::ll::TypedStorage<2, 2, ushort> colSpan;
46 ::ll::TypedStorage<2, 2, ushort> rowSpan;
47 ::ll::TypedStorage<4, 4, int> order;
48 ::ll::TypedStorage<1, 1, bool> disabled;
49 ::ll::TypedStorage<1, 1, bool> hidden;
50 ::ll::TypedStorage<1, 1, bool> shouldBindFocus;
58 ::ll::TypedStorage<4, 4, uint> id;
59 ::ll::TypedStorage<4, 4, uint> restoreId;
67 ::ll::TypedStorage<4, 32, ::OreUI::FocusNavigationController::FocusNodeDesc> desc;
68 ::ll::TypedStorage<8, 8, uint64> seq;
76 ::ll::TypedStorage<4, 4, uint> id;
77 ::ll::TypedStorage<2, 2, ushort> row;
78 ::ll::TypedStorage<2, 2, ushort> col;
79 ::ll::TypedStorage<2, 2, ushort> colSpan;
80 ::ll::TypedStorage<2, 2, ushort> rowSpan;
84 using FocusNodeId = uint;
89 ::ll::TypedStorage<8, 8, ::OreUI::FocusNavigationBinding*> mBinding;
90 ::ll::TypedStorage<8, 64, ::std::unordered_map<uint, ::OreUI::FocusNavigationController::Node>> mNodes;
91 ::ll::TypedStorage<8, 64, ::std::unordered_map<uint, ::std::vector<uint>>> mChildren;
92 ::ll::TypedStorage<4, 4, uint> mFocused;
93 ::ll::TypedStorage<4, 4, uint> mLastNotifiedFocused;
94 ::ll::TypedStorage<8, 24, ::std::vector<::OreUI::FocusNavigationController::FocusBinding>> mFocusBindingStack;
95 ::ll::TypedStorage<8, 8, uint64> mNextSeq;
96 ::ll::TypedStorage<2, 2, ushort> mDesiredRow;
97 ::ll::TypedStorage<2, 2, ushort> mDesiredCol;
102 FocusNavigationController();
109 MCNAPI ::std::vector<::OreUI::FocusNavigationController::Placement>
_computePlacements(uint gridId)
const;
111 MCNAPI uint
_descendToLeaf(uint nodeId, ::OreUI::FocusDirection enterDirection)
const;
117 MCNAPI uint
_navigate(::OreUI::FocusDirection direction);
125 MCNAPI
void activate(::OreUI::GamepadButton button);
135 MCNAPI uint
navigate(::OreUI::FocusDirection direction);
Definition FocusNavigationBinding.h:7
Definition FocusNavigationController.h:7
MCAPI void _unlinkFromParent(uint id)
MCAPI void * $ctor(::OreUI::FocusNavigationBinding &binding)
MCAPI void activate(::OreUI::GamepadButton button)
MCAPI FocusNavigationController(::OreUI::FocusNavigationBinding &binding)
MCAPI void requestFocus(uint id)
MCAPI ::std::vector<::OreUI::FocusNavigationController::Placement > _computePlacements(uint gridId) const
MCAPI uint setFocus(uint id)
MCAPI void addNode(::OreUI::FocusNavigationController::FocusNodeDesc const &desc)
MCAPI void _updateFocusBinding(uint id, bool shouldBindFocus)
static MCAPI void ** $vftable()
MCAPI void removeNode(uint id)
MCAPI bool _isValidFocusPath(uint id) const
MCAPI uint _navigate(::OreUI::FocusDirection direction)
MCAPI void _linkToParent(uint id)
MCAPI void updateNode(::OreUI::FocusNavigationController::FocusNodeDesc const &desc)
MCAPI uint navigate(::OreUI::FocusDirection direction)
MCAPI void _restoreReleasedFocus(::OreUI::FocusNavigationController::FocusBinding const &previous)
MCAPI uint _descendToLeaf(uint nodeId, ::OreUI::FocusDirection enterDirection) const
MCAPI bool isWithinFocusBinding(uint id) const
Definition FocusNavigationController.h:20
Definition FocusNavigationController.h:24
Definition FocusNavigationController.h:26
Definition FocusNavigationController.h:22