LeviLamina
Loading...
Searching...
No Matches
FocusContainerComponent.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
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"
10
11// auto generated forward declare list
12// clang-format off
13class UIControl;
15// clang-format on
16
18public:
19 // member variables
20 // NOLINTBEGIN
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;
30 // NOLINTEND
31
32public:
33 // prevent constructor by default
34 FocusContainerComponent();
35
36public:
37 // virtual functions
38 // NOLINTBEGIN
39 virtual ~FocusContainerComponent() /*override*/;
40
41 virtual ::std::unique_ptr<::UIComponent> clone(::UIControl& cloneOwner) const /*override*/;
42
43 virtual void reset() /*override*/;
44 // NOLINTEND
45
46public:
47 // member functions
48 // NOLINTBEGIN
49 MCAPI explicit FocusContainerComponent(::UIControl& owner);
50
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;
53
54 MCAPI ::FocusContainerComponent* _getParentFocusContainer();
55
56 MCAPI void addFocusContainerDataToDirection(::ui::CardinalDirection dir, ::FocusContainerCustomData const& data);
57
58 MCAPI void addRecentFocusControl(::std::weak_ptr<::UIControl> weakControl);
59
60 MCAPI void addSubFocusContainer(::std::shared_ptr<::UIControl const> focusContainerControl);
61
62 MCAPI ::std::shared_ptr<::UIControl> gainFocus(bool includeMagnetControls);
63
64 MCAPI bool getFocusContainerDataFromDirection(
65 ::ui::CardinalDirection dir,
66 ::std::vector<::FocusContainerCustomData>& outData
67 ) const;
68
69 MCAPI ::std::string getFocusNavigationModeName(::ui::CardinalDirection dir) const;
70
71 MCAPI ::std::shared_ptr<::UIControl> getLastFocusedControl();
72
73 MCAPI ::std::string getLastFocusedControlName() const;
74
75 MCAPI ::std::shared_ptr<::UIControl> getLastGoodFocusedControl(::std::shared_ptr<::UIControl> lastFocusedControl);
76
77 MCFOLD bool getUseLastFocus() const;
78
79 MCAPI void initialize();
80
81 MCAPI bool isAncestorFocusContainer(::FocusContainerComponent& focusContainerComp) const;
82
83 MCAPI bool
84 isFocusNavigationModeContained(::ui::CardinalDirection dir, ::FocusContainerComponent* toFocusContainerComp) const;
85
86 MCAPI bool isFocusNavigationModeCustom(::ui::CardinalDirection dir) const;
87
88 MCAPI bool isFocusNavigationModeStop(::ui::CardinalDirection dir) const;
89
90 MCFOLD bool isWrappingAllowed() const;
91
92 MCAPI void loseFocus(::std::weak_ptr<::UIControl> lastControl);
93
94 MCAPI void removeInvalidSubFocusContainer();
95
96 MCAPI void setFocusNavigationModeOverride(::ui::CardinalDirection dir, ::std::string const& str);
97
98 MCAPI void setLastFocusedControl(::std::weak_ptr<::UIControl> control);
99
100 MCFOLD void setUseLastFocus(bool useLastFocus);
101
102 MCAPI void setWrappingAllowed(bool isAllowed);
103 // NOLINTEND
104
105public:
106 // constructor thunks
107 // NOLINTBEGIN
108 MCAPI void* $ctor(::UIControl& owner);
109 // NOLINTEND
110
111public:
112 // destructor thunk
113 // NOLINTBEGIN
114 MCAPI void $dtor();
115 // NOLINTEND
116
117public:
118 // virtual function thunks
119 // NOLINTBEGIN
120 MCAPI ::std::unique_ptr<::UIComponent> $clone(::UIControl& cloneOwner) const;
121
122 MCAPI void $reset();
123 // NOLINTEND
124
125public:
126 // vftables
127 // NOLINTBEGIN
128 MCNAPI static void** $vftable();
129 // NOLINTEND
130};
Definition FocusContainerComponent.h:5
static MCAPI void ** $vftable()
Definition UIComponent.h:5
Definition UIControl.h:5
Definition FocusContainerCustomData.h:5