3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/CardinalDirection.h"
7#include "mc/client/gui/screens/RecentFocusVector.h"
8#include "mc/deps/core/utility/pub_sub/Publisher.h"
23 ::ll::TypedStorage<4, 8, ::glm::vec2> mSize;
24 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::UIControl>>> mFocusControls;
25 bool mFocusActive : 1;
26 bool mFocusResetFlag : 1;
27 bool mFindClosestControl : 1;
28 bool mFocusPositionCaptured : 1;
29 bool mNeedsDefaultFocusUpdate : 1;
30 bool mIncludeMagnetControls : 1;
32 ::ll::TypedStorage<1, 1, bool> mScrollToFocusedControlIfClipped;
33 bool mHoverNothing : 1;
34 ::ll::TypedStorage<4, 4, int> mFocusedControlIndex;
35 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::UIControl>> mFocusedControl;
36 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::UIControl>> mPreviousFocusedControl;
37 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::UIControl>> mLostFocusControl;
38 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::UIControl>> mCurrentModalRoot;
39 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::UIControl>> mCurrentFocusContainer;
40 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::UIControl>> mRootOfFocusTree;
41 ::ll::TypedStorage<8, 32, ::RecentFocusVector> mRecentFocusList;
42 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::FocusManagerProxy>> mProxy;
43 ::ll::TypedStorage<8, 32, ::std::string> mPendingFocusControlID;
44 ::ll::TypedStorage<4, 4, int> mPendingFocusControlIndex;
45 ::ll::TypedStorage<1, 1, bool> mHasPendingFocusControl;
46 ::ll::TypedStorage<8, 32, ::std::string> mPendingFocusCollectionIndexName;
50 ::Bedrock::PubSub::Publisher<
51 void(::std::weak_ptr<::UIControl>, ::std::weak_ptr<::UIControl>),
52 ::Bedrock::PubSub::ThreadModel::SingleThreaded,
62 MCNAPI ::std::shared_ptr<::UIControl>
67 ::std::vector<::std::shared_ptr<::UIControl>>
const& controls
80 ::std::vector<::std::shared_ptr<::UIControl>>
const& controls,
99 ::std::map<::std::vector<::std::shared_ptr<::UIControl>>*, ::std::vector<::std::shared_ptr<::UIControl>>>&
Definition FocusManagerProxy.h:5
Definition FocusManager.h:5
MCAPI void addControl(::UIControl &control)
MCAPI void _setFocusControlFromIndex(int focusControlIndex, bool overrideLastFocus)
MCAPI ::std::shared_ptr<::UIControl > _getLastGoodFocusedControl(::std::shared_ptr<::UIControl > oldFocusedControl)
MCAPI bool setFocusControl(::UIControl const &control, bool allowDefault)
MCAPI void _updateRootOfFocusTree()
MCAPI::SweepResult _sweepForControlDirectional(::SweepDescription const &desc, ::std::vector<::std::shared_ptr<::UIControl > > const &controls, bool hasWrapped)
MCAPI void _setFocusControlInternal(::UIControl const &control, bool allowDefault, bool overrideLastFocus)
MCAPI void setFocusedControlToLostFocus()
MCAPI::SweepResult _getControlAtFocusPoint(::SweepDescription const &desc, ::std::vector<::std::shared_ptr<::UIControl > > const &controls)
MCAPI void removeControl(::UIControl &control, ::std::map<::std::vector<::std::shared_ptr<::UIControl > > *, ::std::vector<::std::shared_ptr<::UIControl > > > &controlsToRemove)
MCAPI void _updateLostFocusControlList(::std::weak_ptr<::UIControl > control)
MCAPI void clearFocusTreeState()
MCAPI ::std::shared_ptr<::UIControl > _findFocusContainerControlFor(::std::shared_ptr<::UIControl > forControl) const
MCAPI void defaultFocus()
MCAPI void setModalRoot(::std::shared_ptr<::UIControl > &control)
MCAPI void updateDefaultFocusIfNeeded()
MCAPI bool updatePendingFocusControl()
MCAPI void _sweepForClosestControl(::std::shared_ptr<::UIControl > focusedControl)
MCAPI void _sweepToNextFocusObject(::ui::CardinalDirection direction, bool overrideOrigin, ::glm::vec2 const &overridePos)
MCAPI void validateFocusControl()
Definition SingleThreaded.h:7
Definition SweepDescription.h:5
Definition SweepResult.h:5