48 template <> Gui* Singleton<Gui>::msInstance =
nullptr;
77 #ifdef MYGUI_SVN_REVISION
82 << MYGUI_SVN_REVISION);
129 mResourceManager->
load(_core);
134 mIsInitialise =
true;
137 #ifndef MYGUI_DONT_USE_OBSOLETE
142 #endif // MYGUI_DONT_USE_OBSOLETE
151 _destroyAllChildWidget();
173 delete mPointerManager;
174 delete mWidgetManager;
175 delete mInputManager;
177 delete mSubWidgetManager;
178 delete mLayerManager;
180 delete mControllerManager;
181 delete mClipboardManager;
182 delete mLayoutManager;
183 delete mDynLibManager;
184 delete mPluginManager;
185 delete mLanguageManager;
186 delete mResourceManager;
187 delete mFactoryManager;
188 delete mToolTipManager;
191 mIsInitialise =
false;
194 Widget* Gui::baseCreateWidget(
WidgetStyle _style,
const std::string& _type,
const std::string& _skin,
const IntCoord& _coord,
Align _align,
const std::string& _layer,
const std::string& _name)
197 mWidgetChild.push_back(widget);
209 for (VectorWidgetPtr::iterator iter = mWidgetChild.begin(); iter != mWidgetChild.end(); ++iter)
212 if (widget !=
nullptr)
return widget;
214 MYGUI_ASSERT(!_throw,
"Widget '" << _name <<
"' not found");
219 void Gui::_destroyChildWidget(
Widget* _widget)
221 MYGUI_ASSERT(
nullptr != _widget,
"invalid widget pointer");
223 VectorWidgetPtr::iterator iter = std::find(mWidgetChild.begin(), mWidgetChild.end(), _widget);
224 if (iter != mWidgetChild.end())
230 mWidgetChild.erase(iter);
245 void Gui::_destroyAllChildWidget()
247 while (!mWidgetChild.empty())
250 Widget* widget = mWidgetChild.back();
251 mWidgetChild.pop_back();
264 if (parent !=
nullptr)
267 _destroyChildWidget(_widget);
272 for (VectorWidgetPtr::const_iterator iter = _widgets.begin(); iter != _widgets.end(); ++iter)
279 while (_widgets.
next())
280 widgets.push_back(_widgets.
current());
284 void Gui::_unlinkWidget(
Widget* _widget)
291 VectorWidgetPtr::iterator iter = std::find(mWidgetChild.begin(), mWidgetChild.end(), _widget);
292 MYGUI_ASSERT(iter == mWidgetChild.end(),
"widget already exist");
293 mWidgetChild.push_back(_widget);
298 VectorWidgetPtr::iterator iter = std::remove(mWidgetChild.begin(), mWidgetChild.end(), _widget);
299 MYGUI_ASSERT(iter != mWidgetChild.end(),
"widget not found");
300 mWidgetChild.erase(iter);
308 Widget*
Gui::createWidgetT(
const std::string& _type,
const std::string& _skin,
int _left,
int _top,
int _width,
int _height,
Align _align,
const std::string& _layer,
const std::string& _name)
319 Widget*
Gui::createWidgetRealT(
const std::string& _type,
const std::string& _skin,
float _left,
float _top,
float _width,
float _height,
Align _align,
const std::string& _layer,
const std::string& _name)
332 _destroyChildWidget(_widget);
337 _destroyAllChildWidget();