LeviLamina
Loading...
Searching...
No Matches
SelectionWheelComponent.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/gui/controls/ComponentReceiveActionType.h"
7#include "mc/client/gui/controls/UIComponent.h"
8#include "mc/deps/input/InputMode.h"
9
10// auto generated forward declare list
11// clang-format off
14class UIControl;
15class VisualTree;
17struct ScreenEvent;
18// clang-format on
19
21public:
22 // SelectionWheelComponent inner types declare
23 // clang-format off
25 // clang-format on
26
27 // SelectionWheelComponent inner types define
28 enum class SelectionWheelIterateDir : uchar {
29 Left = 0,
30 Right = 1,
31 };
32
34 public:
35 // member variables
36 // NOLINTBEGIN
37 ::ll::TypedStorage<8, 8, uint64> mHoverSlice;
38 ::ll::TypedStorage<4, 4, uint> mButtonEventName;
39 ::ll::TypedStorage<1, 1, bool> mIsInteracted;
40 ::ll::TypedStorage<1, 1, bool> mIsSlotButtonPressed;
41 // NOLINTEND
42 };
43
44 using HoverSliceType = uint64;
45
46public:
47 // member variables
48 // NOLINTBEGIN
49 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::UIControl>> mWeakScreenControl;
50 ::ll::TypedStorage<8, 24, ::std::vector<::std::weak_ptr<::UIControl>>> mStateControls;
51 ::ll::TypedStorage<1, 1, bool> mConsumeEvents;
52 ::ll::TypedStorage<8, 8, uint64> mSliceCount;
53 ::ll::TypedStorage<8, 8, uint64> mHoverSlice;
54 ::ll::TypedStorage<8, 8, uint64> mLastValidHoverSlice;
55 ::ll::TypedStorage<4, 4, float> mInnerRadius;
56 ::ll::TypedStorage<4, 4, float> mOuterRadius;
57 ::ll::TypedStorage<4, 4, uint> mAnalogButtonNameId;
58 ::ll::TypedStorage<4, 4, uint> mSelectButtonNameId;
59 ::ll::TypedStorage<4, 4, uint> mHoverButtonNameId;
60 ::ll::TypedStorage<4, 4, uint> mIterateLeftNameId;
61 ::ll::TypedStorage<4, 4, uint> mIterateRightNameId;
62 ::ll::TypedStorage<8, 24, ::std::vector<uint>> mSelectSlotNameIds;
63 ::ll::TypedStorage<4, 4, ::InputMode> mInputMode;
64 // NOLINTEND
65
66public:
67 // prevent constructor by default
68 SelectionWheelComponent();
69
70public:
71 // virtual functions
72 // NOLINTBEGIN
73 virtual ~SelectionWheelComponent() /*override*/;
74
75 virtual ::std::unique_ptr<::UIComponent> clone(::UIControl& cloneOwner) const /*override*/;
76
77 virtual void reset() /*override*/;
78
79 virtual void reload(::UIComponent const& rhs) /*override*/;
80
81 virtual ::ComponentReceiveActionType receive(
82 ::VisualTree& context,
83 ::ScreenInputContext& screenEvent,
84 ::UIAnimationController&,
85 ::ScreenEvent const&
86 ) /*override*/;
87
88 virtual ::ComponentReceiveActionType receive(::ScreenEvent const& screenEvent) /*override*/;
89
90 virtual void onVisibilityChanged(bool visible) /*override*/;
91
92 virtual void onEnabledChanged(bool enabled) /*override*/;
93 // NOLINTEND
94
95public:
96 // member functions
97 // NOLINTBEGIN
98 MCAPI explicit SelectionWheelComponent(::UIControl& owner);
99
100 MCAPI void _broadcastNewHoverSliceButtonEvent(
101 ::ScreenInputContext& context,
102 ::SelectionWheelComponent::ButtonInteractionInfo const& buttonInteractionInfo
103 );
104
105 MCAPI uint64 _computeHoverSliceDeflection(::PointerMoveScreenEventData const& moveData);
106
107 MCAPI bool _isGamepadDeflectionEnabled();
108
109 MCFOLD void _setVisible(::std::weak_ptr<::UIControl> const& control, bool visible);
110
111 MCAPI void _updateControlVisibility();
112
113 MCAPI void addStateControl(::std::shared_ptr<::UIControl> control);
114
115 MCFOLD ::InputMode getInputMode() const;
116
117 MCAPI void setInputMode(::InputMode const& inputMode);
118 // NOLINTEND
119
120public:
121 // constructor thunks
122 // NOLINTBEGIN
123 MCAPI void* $ctor(::UIControl& owner);
124 // NOLINTEND
125
126public:
127 // destructor thunk
128 // NOLINTBEGIN
129 MCAPI void $dtor();
130 // NOLINTEND
131
132public:
133 // virtual function thunks
134 // NOLINTBEGIN
135 MCAPI ::std::unique_ptr<::UIComponent> $clone(::UIControl& cloneOwner) const;
136
137 MCAPI void $reset();
138
139 MCAPI void $reload(::UIComponent const& rhs);
140
141 MCAPI ::ComponentReceiveActionType
142 $receive(::VisualTree& context, ::ScreenInputContext& screenEvent, ::UIAnimationController&, ::ScreenEvent const&);
143
144 MCAPI ::ComponentReceiveActionType $receive(::ScreenEvent const& screenEvent);
145
146 MCAPI void $onVisibilityChanged(bool visible);
147
148 MCAPI void $onEnabledChanged(bool enabled);
149 // NOLINTEND
150
151public:
152 // vftables
153 // NOLINTBEGIN
154 MCNAPI static void** $vftable();
155 // NOLINTEND
156};
Definition ScreenInputContext.h:5
Definition SelectionWheelComponent.h:5
static MCAPI void ** $vftable()
Definition UIAnimationController.h:5
Definition UIComponent.h:5
Definition UIControl.h:5
Definition VisualTree.h:5
Definition PointerMoveScreenEventData.h:5
Definition ScreenEvent.h:5
Definition SelectionWheelComponent.h:15