3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/ViewRequest.h"
7#include "mc/client/gui/screens/controllers/SettingsScreenControllerBase.h"
8#include "mc/client/input/KeyboardType.h"
9#include "mc/deps/input/InputBindingMode.h"
10#include "mc/deps/input/InputMode.h"
11#include "mc/options/option_types/OptionID.h"
36 ::ll::TypedStorage<8, 32, ::std::string> mAction;
37 ::ll::TypedStorage<8, 32, ::std::string> mIcon;
38 ::ll::TypedStorage<8, 24, ::std::vector<int>> mKeys;
39 ::ll::TypedStorage<1, 1, bool> mActive;
40 ::ll::TypedStorage<4, 4, int> mLayoutIndex;
68 ::ll::TypedStorage<8, 24, ::std::vector<::ControlsSettingsScreenController::BindingInfo>> mBindings;
69 ::ll::TypedStorage<8, 32, ::std::string> mGridDimensionName;
70 ::ll::TypedStorage<8, 32, ::std::string> mCollectionName;
76 MCAPI ~BindingInfoCollection();
89 ::ll::TypedStorage<4, 4, ::KeyboardType const> mType;
90 ::ll::TypedStorage<8, 8, ::KeyboardRemappingLayout&> mLayout;
91 ::ll::TypedStorage<8, 88, ::ControlsSettingsScreenController::KeyboardLayoutInfo::BindingInfoCollection>
93 ::ll::TypedStorage<8, 88, ::ControlsSettingsScreenController::KeyboardLayoutInfo::BindingInfoCollection>
95 ::ll::TypedStorage<8, 88, ::ControlsSettingsScreenController::KeyboardLayoutInfo::BindingInfoCollection>
101 KeyboardLayoutInfo& operator=(KeyboardLayoutInfo
const&);
102 KeyboardLayoutInfo(KeyboardLayoutInfo
const&);
103 KeyboardLayoutInfo();
108 MCAPI KeyboardLayoutInfo(::ControlsSettingsScreenController::KeyboardLayoutInfo&&);
110 MCAPI KeyboardLayoutInfo(
112 ::KeyboardRemappingLayout& layout,
113 ::std::string gridDimensionName,
114 ::std::string collectionName,
115 ::std::string keyboardTypeString
118 MCAPI ~KeyboardLayoutInfo();
124 MCAPI
void* $ctor(::ControlsSettingsScreenController::KeyboardLayoutInfo&&);
128 ::KeyboardRemappingLayout& layout,
129 ::std::string gridDimensionName,
130 ::std::string collectionName,
131 ::std::string keyboardTypeString
145 ::ll::TypedStorage<8, 8, ::GamePadRemappingLayout&> mGamepadLayout;
146 ::ll::TypedStorage<8, 24, ::std::vector<::ControlsSettingsScreenController::BindingInfo>> mGamepadBindings;
147 ::ll::TypedStorage<4, 4, ::KeyboardType> mCurrentKeyboardType;
148 ::ll::TypedStorage<8, 24, ::std::vector<::ControlsSettingsScreenController::KeyboardLayoutInfo>>
149 mKeyboardLayoutInformation;
150 ::ll::TypedStorage<4, 4, int> mSelectedIndex;
151 ::ll::TypedStorage<4, 4, ::InputBindingMode> mActiveBindingMode;
152 ::ll::TypedStorage<8, 8, ::std::vector<::std::string>
const&> mDisabledInputMappings;
153 ::ll::TypedStorage<1, 1, bool> mCustomizeControlsDisableHover;
154 ::ll::TypedStorage<8, 320, ::std::array<::std::string, 10>> mCommandMacroCommands;
159 ControlsSettingsScreenController& operator=(ControlsSettingsScreenController
const&);
160 ControlsSettingsScreenController(ControlsSettingsScreenController
const&);
161 ControlsSettingsScreenController();
166 virtual ~ControlsSettingsScreenController() ;
168 virtual void _registerControllerCallbacks();
170 virtual void onTerminate() ;
172 virtual bool canExit() ;
178 MCAPI ControlsSettingsScreenController(
179 ::std::shared_ptr<::MainMenuScreenModel> model,
180 ::std::vector<::std::string>
const& disabledInputMappings
183 MCAPI ::ui::ViewRequest _bindRawInputEvent(::RawInputScreenEventData& rawInputData);
185 MCAPI
bool _canSetCommandMacroCommandAtIndex(
187 ::ControlsSettingsScreenController::KeyboardLayoutInfo& layout
190 MCAPI
void _generateBindingInfo(
191 ::std::vector<::ControlsSettingsScreenController::BindingInfo>& bindings,
192 ::RemappingLayout& layout,
193 uint layoutStartIndex
196 MCAPI
void _generateKeyboardBindingInfo(
197 ::ControlsSettingsScreenController::KeyboardLayoutInfo& keyboardInfo,
198 uint layoutStartIndex
201 MCAPI ::std::string _getBindingText(
202 ::std::vector<::ControlsSettingsScreenController::BindingInfo>& bindings,
204 ::RemappingLayout& layout
207 MCAPI ::InputBindingMode _getBindingTypeByCollectionName(::std::string
const& collectionName)
const;
209 MCAPI
int _getIndexAdjustmentOffsetFromCollectionGroup(::std::string
const& collectionGroup,
int gridIndex);
211 MCAPI ::ui::ViewRequest _handleBindingButtonEvent(::UIPropertyBag* bag);
213 MCAPI
bool _handleGamepadRawInputEvent(::RawInputScreenEventData& rawInputData);
215 MCAPI
void _handleKeyboardRawInputEvent(::RawInputScreenEventData& rawInputData);
217 MCAPI ::ui::ViewRequest _handleResetBinding(::UIPropertyBag* bag);
219 MCAPI
void _initKeyboardLayoutInformation(::MainMenuScreenModel
const& model);
221 MCAPI
bool _isInControlCustomization()
const;
224 _mapRawInputToLayout(::RemappingLayout& layout,
int keymappingIndex, ::RawInputScreenEventData& rawInputData);
226 MCAPI
void _registerBinds();
228 MCAPI
void _registerEvents();
230 MCAPI ::ui::ViewRequest _resetAllBindingsToDefault(::InputMode inputMode);
232 MCAPI
void _setCommandMacroCommandAtIndex(
int collectionIndex, ::std::string command);
235 setUpCallbacksForBooleanInputOption(::OptionID optionID, ::InputMode inputMode, ::std::string
const& toggleName);
238 setUpCallbacksForFloatInputOption(::OptionID optionID, ::InputMode inputMode, ::std::string
const& sliderName);
244 MCAPI static ::std::function<::std::string(::std::string
const&,
float,
bool)>& floatSliderLabellerAsInt();
246 MCAPI static ::std::function<::std::string(::std::string
const&,
float,
bool)>& floatSliderLabellerAsPercentInt();
253 $ctor(::std::shared_ptr<::MainMenuScreenModel> model, ::std::vector<::std::string>
const& disabledInputMappings);
265 MCAPI
void $_registerControllerCallbacks();
267 MCAPI
void $onTerminate();
269 MCAPI
bool $canExit();
Definition ControlsSettingsScreenController.h:5
static MCAPI void ** $vftableForScreenController()
static MCAPI void ** $vftableForEnableNonOwnerReferences()
Definition GamePadRemappingLayout.h:5
Definition KeyboardRemappingLayout.h:5
Definition MainMenuScreenModel.h:5
Definition RemappingLayout.h:5
Definition SettingsScreenControllerBase.h:5
Definition UIPropertyBag.h:5
Definition ControlsSettingsScreenController.h:14
Definition ControlsSettingsScreenController.h:24
Definition ControlsSettingsScreenController.h:16