LeviLamina
Loading...
Searching...
No Matches
ViewInputHandler.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/gui/oreui/input/InputSource.h"
7#include "mc/common/SubClientId.h"
8#include "mc/deps/core/utility/NonOwnerPointer.h"
9#include "mc/deps/core/utility/pub_sub/Subscription.h"
10#include "mc/external/gameface/cohtml/ControlType.h"
11
12// auto generated forward declare list
13// clang-format off
14class IGameController;
15class IOptionRegistry;
16class KeyboardAction;
17class KeyboardManager;
18class MouseAction;
19class RectangleArea;
22namespace OreUI { class GamepadInputHandler; }
23namespace OreUI { class TextInputHandler; }
24namespace OreUI { class TouchInputHandler; }
25namespace cohtml { class View; }
26// clang-format on
27
28namespace OreUI {
29
30class ViewInputHandler {
31public:
32 // ViewInputHandler inner types define
33 enum class SupportedClients : int {
34 Primary = 0,
35 All = 1,
36 };
37
38public:
39 // member variables
40 // NOLINTBEGIN
41 ::ll::TypedStorage<1, 1, ::SubClientId> mSubClientId;
42 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::OreUI::TouchInputHandler>> mTouchInputHandler;
43 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::OreUI::TextInputHandler>> mTextInputHandler;
44 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::OreUI::GamepadInputHandler>> mGamepadInputHandler;
45 ::ll::TypedStorage<8, 8, ::KeyboardManager&> mKeyboardManager;
46 ::ll::TypedStorage<8, 8, ::cohtml::View&> mView;
47 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::ControllerIDtoClientMap>> mControllerToClientMap;
48 ::ll::TypedStorage<1, 1, bool> mShouldIgnoreBedrockInput;
49 ::ll::TypedStorage<1, 1, bool> mEmulateTouchInput;
50 ::ll::TypedStorage<1, 1, bool> mIsPointerDown;
51 ::ll::TypedStorage<1, 1, bool const> mIsPrimaryClient;
52 ::ll::TypedStorage<1, 1, bool> mIsFullKeyboard;
53 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mIsFullKeyboardSubscription;
54 ::ll::TypedStorage<1, 1, bool> mInvertMouse;
55 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mInvertMouseSubscription;
56 // NOLINTEND
57
58public:
59 // prevent constructor by default
60 ViewInputHandler& operator=(ViewInputHandler const&);
61 ViewInputHandler(ViewInputHandler const&);
62 ViewInputHandler();
63
64public:
65 // member functions
66 // NOLINTBEGIN
67 MCAPI ViewInputHandler(
68 ::SubClientId subClientId,
69 ::std::unique_ptr<::OreUI::TextInputHandler> textInputHandler,
70 ::std::unique_ptr<::OreUI::TouchInputHandler> touchInputHandler,
71 ::std::unique_ptr<::OreUI::GamepadInputHandler> gamepadInputHandler,
72 ::KeyboardManager& keyboardManager,
73 ::cohtml::View& view,
74 ::Bedrock::NotNullNonOwnerPtr<::ControllerIDtoClientMap> controllerIdToClientMap,
75 bool isPrimaryClient,
76 ::IOptionRegistry& options
77 );
78
79 MCAPI void deactivateTextInput();
80
81 MCAPI ::std::optional<::RectangleArea> getTextInputCaretArea();
82
83 MCAPI ::std::optional<::RectangleArea> getTextInputControlArea();
84
85 MCAPI void handleInput(::OreUI::InputSource inputSource, ::MouseAction const& mouseAction);
86
87 MCAPI void handleKeyboardInput(::OreUI::InputSource inputSource, ::KeyboardAction const& keyboardAction);
88
89 MCAPI bool isTextInputActive() const;
90
91 MCAPI void onCaretRectChanged(int x, int y, uint width, uint height);
92
93 MCAPI void onTextInputTypeChanged(::cohtml::TextInputControlType::ControlType type);
94
95 MCAPI void setCaretLocation(int location);
96
97 MCAPI void setTextBoxState(::OreUI::InputSource inputSource, ::TextBoxStateChange const& stateChange);
98
99 MCAPI bool shouldHandleGamepad(::std::shared_ptr<::IGameController> gamePad);
100
101 MCAPI ~ViewInputHandler();
102 // NOLINTEND
103
104public:
105 // constructor thunks
106 // NOLINTBEGIN
107 MCAPI void* $ctor(
108 ::SubClientId subClientId,
109 ::std::unique_ptr<::OreUI::TextInputHandler> textInputHandler,
110 ::std::unique_ptr<::OreUI::TouchInputHandler> touchInputHandler,
111 ::std::unique_ptr<::OreUI::GamepadInputHandler> gamepadInputHandler,
112 ::KeyboardManager& keyboardManager,
113 ::cohtml::View& view,
114 ::Bedrock::NotNullNonOwnerPtr<::ControllerIDtoClientMap> controllerIdToClientMap,
115 bool isPrimaryClient,
116 ::IOptionRegistry& options
117 );
118 // NOLINTEND
119
120public:
121 // destructor thunk
122 // NOLINTBEGIN
123 MCAPI void $dtor();
124 // NOLINTEND
125};
126
127} // namespace OreUI
Definition IGameController.h:5
Definition IOptionRegistry.h:5
Definition KeyboardAction.h:5
Definition KeyboardManager.h:5
Definition MouseAction.h:5
Definition GamepadInputHandler.h:7
Definition TextInputHandler.h:7
Definition TouchInputHandler.h:7
Definition ViewInputHandler.h:7
Definition RectangleArea.h:5
Definition View.h:7
Definition ControllerIDtoClientMap.h:5
Definition TextBoxStateChange.h:5