37 mSingletonHolder(this)
68 mResourceManager->initialise();
69 mLayerManager->initialise();
70 mWidgetManager->initialise();
71 mInputManager->initialise();
72 mSubWidgetManager->initialise();
73 mSkinManager->initialise();
74 mFontManager->initialise();
75 mControllerManager->initialise();
76 mPointerManager->initialise();
77 mClipboardManager->initialise();
78 mLayoutManager->initialise();
79 mDynLibManager->initialise();
80 mPluginManager->initialise();
81 mLanguageManager->initialise();
82 mFactoryManager->initialise();
83 mToolTipManager->initialise();
89 mResourceManager->load(_core);
97#ifndef MYGUI_DONT_USE_OBSOLETE
111 _destroyAllChildWidget();
114 mPointerManager->shutdown();
115 mInputManager->shutdown();
116 mSkinManager->shutdown();
117 mSubWidgetManager->shutdown();
118 mLayerManager->shutdown();
119 mFontManager->shutdown();
120 mControllerManager->shutdown();
121 mClipboardManager->shutdown();
122 mLayoutManager->shutdown();
123 mPluginManager->shutdown();
124 mDynLibManager->shutdown();
125 mLanguageManager->shutdown();
126 mResourceManager->shutdown();
127 mFactoryManager->shutdown();
128 mToolTipManager->shutdown();
131 mWidgetManager->shutdown();
133 delete mPointerManager;
134 delete mWidgetManager;
135 delete mInputManager;
137 delete mSubWidgetManager;
138 delete mLayerManager;
140 delete mControllerManager;
141 delete mClipboardManager;
142 delete mLayoutManager;
143 delete mDynLibManager;
144 delete mPluginManager;
145 delete mLanguageManager;
146 delete mResourceManager;
147 delete mFactoryManager;
148 delete mToolTipManager;
154 mIsInitialise =
false;
157 Widget* Gui::baseCreateWidget(
159 std::string_view _type,
160 std::string_view _skin,
163 std::string_view _layer,
164 std::string_view _name)
167 .
createWidget(_style, _type, _skin, _coord,
nullptr,
nullptr, _name);
168 mWidgetChild.push_back(widget);
180 for (
const auto& iter : mWidgetChild)
183 if (widget !=
nullptr)
186 MYGUI_ASSERT(!_throw,
"Widget '" << _name <<
"' not found");
191 void Gui::_destroyChildWidget(
Widget* _widget)
193 MYGUI_ASSERT(
nullptr != _widget,
"invalid widget pointer");
195 VectorWidgetPtr::iterator iter = std::find(mWidgetChild.begin(), mWidgetChild.end(), _widget);
196 if (iter != mWidgetChild.end())
202 mWidgetChild.erase(iter);
217 void Gui::_destroyAllChildWidget()
219 while (!mWidgetChild.empty())
222 Widget* widget = mWidgetChild.back();
223 mWidgetChild.pop_back();
226 mWidgetManager->unlinkFromUnlinkers(widget);
236 if (parent !=
nullptr)
239 _destroyChildWidget(_widget);
244 for (
auto* widget : _widgets)
251 while (_widgets.
next())
252 widgets.push_back(_widgets.
current());
256 void Gui::_unlinkWidget(
Widget* _widget)
263 VectorWidgetPtr::iterator iter = std::find(mWidgetChild.begin(), mWidgetChild.end(), _widget);
264 MYGUI_ASSERT(iter == mWidgetChild.end(),
"widget already exist");
265 mWidgetChild.push_back(_widget);
270 VectorWidgetPtr::iterator iter = std::remove(mWidgetChild.begin(), mWidgetChild.end(), _widget);
271 MYGUI_ASSERT(iter != mWidgetChild.end(),
"widget not found");
272 mWidgetChild.erase(iter);
276 std::string_view _type,
277 std::string_view _skin,
280 std::string_view _layer,
281 std::string_view _name)
287 std::string_view _type,
288 std::string_view _skin,
294 std::string_view _layer,
295 std::string_view _name)
301 std::string_view _type,
302 std::string_view _skin,
305 std::string_view _layer,
306 std::string_view _name)
313 static_cast<int>(_coord.
left * size.
width),
314 static_cast<int>(_coord.
top * size.
height),
323 std::string_view _type,
324 std::string_view _skin,
330 std::string_view _layer,
331 std::string_view _name)
338 static_cast<int>(_left * size.
width),
339 static_cast<int>(_top * size.
height),
340 static_cast<int>(_width * size.
width),
341 static_cast<int>(_height * size.
height)),
349 std::string name{_prefix};
356 _destroyChildWidget(_widget);
361 _destroyAllChildWidget();
#define MYGUI_ASSERT(exp, dest)
#define MYGUI_EXCEPT(dest)
#define MYGUI_LOG(level, text)
#define MYGUI_VERSION_PATCH
#define MYGUI_VERSION_MAJOR
#define MYGUI_VERSION_MINOR
#define MYGUI_SINGLETON_DEFINITION(ClassName)
Manager of dynamic libraries.
T::const_reference current()
void _unlinkChildWidget(Widget *_widget)
void destroyWidget(Widget *_widget)
Widget * createWidgetRealT(std::string_view _type, std::string_view _skin, const FloatCoord &_coord, Align _align, std::string_view _layer, std::string_view _name={})
static std::string_view getClassTypeName()
void frameEvent(float _time) const
void initialise(const std::string &_core="MyGUI_Core.xml")
void destroyAllChildWidget()
void destroyWidgets(const VectorWidgetPtr &_widgets)
void _linkChildWidget(Widget *_widget)
friend class WidgetManager
Widget * findWidgetT(std::string_view _name, bool _throw=true) const
Widget * createWidgetT(std::string_view _type, std::string_view _skin, const IntCoord &_coord, Align _align, std::string_view _layer, std::string_view _name={})
void destroyChildWidget(Widget *_widget)
EventHandle_FrameEventDelegate eventFrameStart
EnumeratorWidgetPtr getEnumerator() const
static LayerManager & getInstance()
void attachToLayerNode(std::string_view _name, Widget *_item)
Plugin manager. Load/unload and register plugins.
virtual const IntSize & getViewSize() const =0
static RenderManager & getInstance()
const IntSize & getTextureSize(const std::string &_texture, bool _cache=true)
types::TCoord< float > FloatCoord
Enumerator< VectorWidgetPtr > EnumeratorWidgetPtr
types::TCoord< int > IntCoord
types::TSize< int > IntSize
std::vector< Widget * > VectorWidgetPtr