37 mSingletonHolder(this)
89 mResourceManager->
load(_core);
97#ifndef MYGUI_DONT_USE_OBSOLETE
111 _destroyAllChildWidget();
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();
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()
bool load(const std::string &_file)
const IntSize & getTextureSize(const std::string &_texture, bool _cache=true)
Enumerator< VectorWidgetPtr > EnumeratorWidgetPtr
types::TCoord< int > IntCoord
std::vector< Widget * > VectorWidgetPtr