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;
45 BindingInfo& operator=(BindingInfo
const&);
51 MCAPI BindingInfo(::ControlsSettingsScreenController::BindingInfo
const&);
59 MCAPI
void* $ctor(::ControlsSettingsScreenController::BindingInfo
const&);
81 ::ll::TypedStorage<8, 24, ::std::vector<::ControlsSettingsScreenController::BindingInfo>> mBindings;
82 ::ll::TypedStorage<8, 32, ::std::string> mGridDimensionName;
83 ::ll::TypedStorage<8, 32, ::std::string> mCollectionName;
89 MCAPI ~BindingInfoCollection();
102 ::ll::TypedStorage<4, 4, ::KeyboardType const> mType;
103 ::ll::TypedStorage<8, 8, ::KeyboardRemappingLayout&> mLayout;
104 ::ll::TypedStorage<8, 88, ::ControlsSettingsScreenController::KeyboardLayoutInfo::BindingInfoCollection>
106 ::ll::TypedStorage<8, 88, ::ControlsSettingsScreenController::KeyboardLayoutInfo::BindingInfoCollection>
108 ::ll::TypedStorage<8, 88, ::ControlsSettingsScreenController::KeyboardLayoutInfo::BindingInfoCollection>
114 KeyboardLayoutInfo& operator=(KeyboardLayoutInfo
const&);
115 KeyboardLayoutInfo(KeyboardLayoutInfo
const&);
116 KeyboardLayoutInfo();
121 MCAPI KeyboardLayoutInfo(
123 ::KeyboardRemappingLayout& layout,
124 ::std::string gridDimensionName,
125 ::std::string collectionName,
126 ::std::string keyboardTypeString
129 MCAPI ~KeyboardLayoutInfo();
137 ::KeyboardRemappingLayout& layout,
138 ::std::string gridDimensionName,
139 ::std::string collectionName,
140 ::std::string keyboardTypeString
154 ::ll::TypedStorage<8, 8, ::GamePadRemappingLayout&> mGamepadLayout;
155 ::ll::TypedStorage<8, 24, ::std::vector<::ControlsSettingsScreenController::BindingInfo>> mGamepadBindings;
156 ::ll::TypedStorage<4, 4, ::KeyboardType> mCurrentKeyboardType;
157 ::ll::TypedStorage<8, 24, ::std::vector<::ControlsSettingsScreenController::KeyboardLayoutInfo>>
158 mKeyboardLayoutInformation;
159 ::ll::TypedStorage<4, 4, int> mSelectedIndex;
160 ::ll::TypedStorage<4, 4, ::InputBindingMode> mActiveBindingMode;
161 ::ll::TypedStorage<8, 8, ::std::vector<::std::string>
const&> mDisabledInputMappings;
162 ::ll::TypedStorage<1, 1, bool> mCustomizeControlsDisableHover;
163 ::ll::TypedStorage<8, 320, ::std::array<::std::string, 10>> mCommandMacroCommands;
168 ControlsSettingsScreenController& operator=(ControlsSettingsScreenController
const&);
169 ControlsSettingsScreenController(ControlsSettingsScreenController
const&);
170 ControlsSettingsScreenController();
175 virtual ~ControlsSettingsScreenController() ;
177 virtual void _registerControllerCallbacks();
179 virtual void onTerminate() ;
181 virtual bool canExit() ;
187 MCAPI ControlsSettingsScreenController(
188 ::std::shared_ptr<::MainMenuScreenModel> model,
189 ::std::vector<::std::string>
const& disabledInputMappings
192 MCAPI ::ui::ViewRequest _bindRawInputEvent(::RawInputScreenEventData& rawInputData);
194 MCAPI
bool _canSetCommandMacroCommandAtIndex(
196 ::ControlsSettingsScreenController::KeyboardLayoutInfo& layout
199 MCFOLD
bool _commandMacrosAllowed()
const;
201 MCAPI
void _generateBindingInfo(
202 ::std::vector<::ControlsSettingsScreenController::BindingInfo>& bindings,
203 ::RemappingLayout& layout,
204 uint layoutStartIndex
207 MCAPI
void _generateKeyboardBindingInfo(
208 ::ControlsSettingsScreenController::KeyboardLayoutInfo& keyboardInfo,
209 uint layoutStartIndex
212 MCAPI ::std::string _getBindingText(
213 ::std::vector<::ControlsSettingsScreenController::BindingInfo>& bindings,
215 ::RemappingLayout& layout
218 MCAPI ::InputBindingMode _getBindingTypeByCollectionName(::std::string
const& collectionName)
const;
220 MCAPI
int _getIndexAdjustmentOffsetFromCollectionGroup(::std::string
const& collectionGroup,
int gridIndex);
222 MCAPI ::ui::ViewRequest _handleBindingButtonEvent(::UIPropertyBag* bag);
224 MCAPI
bool _handleGamepadRawInputEvent(::RawInputScreenEventData& rawInputData);
226 MCAPI
void _handleKeyboardRawInputEvent(::RawInputScreenEventData& rawInputData);
228 MCAPI ::ui::ViewRequest _handleResetBinding(::UIPropertyBag* bag);
230 MCAPI
void _initKeyboardLayoutInformation(::MainMenuScreenModel
const& model);
233 _mapRawInputToLayout(::RemappingLayout& layout,
int keymappingIndex, ::RawInputScreenEventData& rawInputData);
235 MCAPI
void _registerBinds();
237 MCAPI
void _registerEvents();
239 MCAPI ::ui::ViewRequest _resetAllBindingsToDefault(::InputMode inputMode);
241 MCAPI
void _setCommandMacroCommandAtIndex(
int collectionIndex, ::std::string command);
244 setUpCallbacksForBooleanInputOption(::OptionID optionID, ::InputMode inputMode, ::std::string
const& toggleName);
247 setUpCallbacksForFloatInputOption(::OptionID optionID, ::InputMode inputMode, ::std::string
const& sliderName);
253 MCAPI static ::std::function<::std::string(::std::string
const&,
float,
bool)>& floatSliderLabellerAsInt();
255 MCAPI static ::std::function<::std::string(::std::string
const&,
float,
bool)>& floatSliderLabellerAsPercentInt();
262 $ctor(::std::shared_ptr<::MainMenuScreenModel> model, ::std::vector<::std::string>
const& disabledInputMappings);
274 MCAPI
void $_registerControllerCallbacks();
276 MCAPI
void $onTerminate();
278 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