3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/controls/ComponentReceiveActionType.h"
7#include "mc/client/gui/controls/UIComponent.h"
8#include "mc/deps/input/InputMode.h"
28 enum class SelectionWheelIterateDir : uchar {
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;
44 using HoverSliceType = uint64;
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;
68 SelectionWheelComponent();
73 virtual ~SelectionWheelComponent() ;
75 virtual ::std::unique_ptr<::UIComponent> clone(::UIControl& cloneOwner)
const ;
77 virtual void reset() ;
79 virtual void reload(::UIComponent
const& rhs) ;
81 virtual ::ComponentReceiveActionType receive(
82 ::VisualTree& visualTree,
83 ::ScreenInputContext& context,
84 ::UIAnimationController& animationController,
85 ::ScreenEvent
const& screenEvent
88 virtual ::ComponentReceiveActionType receive(::ScreenEvent
const& screenEvent) ;
90 virtual void onVisibilityChanged(
bool visible) ;
92 virtual void onEnabledChanged(
bool enabled) ;
98 MCAPI
explicit SelectionWheelComponent(::UIControl& owner);
100 MCAPI
void _broadcastNewHoverSliceButtonEvent(
101 ::ScreenInputContext& context,
102 ::SelectionWheelComponent::ButtonInteractionInfo
const& buttonInteractionInfo
105 MCAPI uint64 _computeHoverSliceDeflection(::PointerMoveScreenEventData
const& moveData);
107 MCAPI
void _updateControlVisibility();
109 MCAPI
void addStateControl(::std::shared_ptr<::UIControl> control);
115 MCAPI
void* $ctor(::UIControl& owner);
127 MCAPI ::std::unique_ptr<::UIComponent> $clone(::UIControl& cloneOwner)
const;
131 MCAPI
void $reload(::UIComponent
const& rhs);
133 MCAPI ::ComponentReceiveActionType $receive(
134 ::VisualTree& visualTree,
135 ::ScreenInputContext& context,
136 ::UIAnimationController& animationController,
137 ::ScreenEvent
const& screenEvent
140 MCAPI ::ComponentReceiveActionType $receive(::ScreenEvent
const& screenEvent);
142 MCAPI
void $onVisibilityChanged(
bool visible);
144 MCAPI
void $onEnabledChanged(
bool enabled);
Definition ScreenInputContext.h:5
Definition SelectionWheelComponent.h:5
static MCAPI void ** $vftable()
Definition UIAnimationController.h:5
Definition UIComponent.h:5
Definition VisualTree.h:5
Definition PointerMoveScreenEventData.h:5
Definition ScreenEvent.h:5