3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/CardinalDirection.h"
7#include "mc/client/gui/controls/FocusNavigationMode.h"
8#include "mc/client/gui/controls/UIComponent.h"
9#include "mc/client/gui/screens/RecentFocusVector.h"
21 ::ll::TypedStorage<8, 32, ::RecentFocusVector> mRecentFocusList;
22 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::UIControl>> mLastFocusedControl;
23 ::ll::TypedStorage<8, 64, ::std::unordered_map<::ui::CardinalDirection, ::FocusNavigationMode>>
24 mDirectionalFocusOverrides;
25 ::ll::TypedStorage<8, 64, ::std::unordered_map<::ui::CardinalDirection, ::std::vector<::FocusContainerCustomData>>>
26 mFocusContainerCustomOverrides;
27 ::ll::TypedStorage<8, 24, ::std::vector<::std::weak_ptr<::UIControl const>>> mSubFocusContainers;
28 ::ll::TypedStorage<1, 1, bool> mUseLastFocus;
29 ::ll::TypedStorage<1, 1, bool> mWrappingAllowed;
34 FocusContainerComponent();
39 virtual ~FocusContainerComponent() ;
41 virtual ::std::unique_ptr<::UIComponent> clone(::UIControl& cloneOwner)
const ;
43 virtual void reset() ;
49 MCAPI
explicit FocusContainerComponent(::UIControl& owner);
51 MCAPI ::std::_Vector_const_iterator<::std::_Vector_val<::std::_Simple_types<::std::weak_ptr<::UIControl const>>>>
52 _findSubFocusContainer(::std::shared_ptr<::UIControl const> focusContainerControl)
const;
54 MCAPI ::FocusContainerComponent* _getParentFocusContainer();
56 MCAPI
void addFocusContainerDataToDirection(::ui::CardinalDirection dir, ::FocusContainerCustomData
const& data);
58 MCAPI
void addRecentFocusControl(::std::weak_ptr<::UIControl> weakControl);
60 MCAPI
void addSubFocusContainer(::std::shared_ptr<::UIControl const> focusContainerControl);
62 MCAPI ::std::shared_ptr<::UIControl> gainFocus(
bool includeMagnetControls);
64 MCAPI
bool getFocusContainerDataFromDirection(
65 ::ui::CardinalDirection dir,
66 ::std::vector<::FocusContainerCustomData>& outData
69 MCAPI ::std::string getFocusNavigationModeName(::ui::CardinalDirection dir)
const;
71 MCAPI ::std::shared_ptr<::UIControl> getLastFocusedControl();
73 MCAPI ::std::string getLastFocusedControlName()
const;
75 MCAPI ::std::shared_ptr<::UIControl> getLastGoodFocusedControl(::std::shared_ptr<::UIControl> lastFocusedControl);
77 MCFOLD
bool getUseLastFocus()
const;
79 MCAPI
void initialize();
81 MCAPI
bool isAncestorFocusContainer(::FocusContainerComponent& focusContainerComp)
const;
84 isFocusNavigationModeContained(::ui::CardinalDirection dir, ::FocusContainerComponent* toFocusContainerComp)
const;
86 MCAPI
bool isFocusNavigationModeCustom(::ui::CardinalDirection dir)
const;
88 MCAPI
bool isFocusNavigationModeStop(::ui::CardinalDirection dir)
const;
90 MCFOLD
bool isWrappingAllowed()
const;
92 MCAPI
void loseFocus(::std::weak_ptr<::UIControl> lastControl);
94 MCAPI
void removeInvalidSubFocusContainer();
96 MCAPI
void setFocusNavigationModeOverride(::ui::CardinalDirection dir, ::std::string
const& str);
98 MCAPI
void setLastFocusedControl(::std::weak_ptr<::UIControl> control);
100 MCFOLD
void setUseLastFocus(
bool useLastFocus);
102 MCAPI
void setWrappingAllowed(
bool isAllowed);
108 MCAPI
void* $ctor(::UIControl& owner);
120 MCAPI ::std::unique_ptr<::UIComponent> $clone(::UIControl& cloneOwner)
const;
Definition FocusContainerComponent.h:5
static MCAPI void ** $vftable()
Definition UIComponent.h:5
Definition FocusContainerCustomData.h:5