3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/ChildInsertPosition.h"
7#include "mc/client/gui/controls/UIComponent.h"
14namespace Json {
class Value; }
21 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::UIControlFactory>> mControlFactory;
22 ::ll::TypedStorage<8, 32, ::std::string> mFactoryName;
23 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::std::string>> mControlIdToTemplateLookup;
24 ::ll::TypedStorage<8, 24, ::std::vector<::std::pair<::std::string const, ::Json::Value const>>> mVariables;
25 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::UIControl>> mControlTemplate;
26 ::ll::TypedStorage<8, 24, ::std::vector<::std::weak_ptr<::UIControl>>> mProgeny;
27 ::ll::TypedStorage<1, 1, bool> mFactoryIsChild;
28 ::ll::TypedStorage<4, 4, int> mMaxSize;
29 ::ll::TypedStorage<4, 4, ::ui::ChildInsertPosition> mInsertPosition;
39 virtual ::std::unique_ptr<::UIComponent> clone(::UIControl& cloneOwner)
const ;
41 virtual void reset() ;
43 virtual ~FactoryComponent() ;
49 MCAPI FactoryComponent(::UIControl& owner, ::std::weak_ptr<::UIControlFactory> factoryPtr);
51 MCAPI
void _prepareControlForDestruction(::std::shared_ptr<::UIControl> control);
55 MCAPI ::std::weak_ptr<::UIControl> create(::UIPropertyBag
const& properties,
bool ensureCreation);
57 MCAPI
void destroy(::std::string
const& name);
59 MCAPI
void destroyAll();
61 MCAPI
void destroyAllStartingAtIndex(uint index);
67 MCAPI
void* $ctor(::UIControl& owner, ::std::weak_ptr<::UIControlFactory> factoryPtr);
79 MCAPI ::std::unique_ptr<::UIComponent> $clone(::UIControl& cloneOwner)
const;
Definition FactoryComponent.h:5
static MCAPI void ** $vftable()
Definition UIComponent.h:5
Definition UIControlFactory.h:5
Definition UIPropertyBag.h:5