50 Gui* Gui::msInstance =
nullptr;
124 if ( _core.empty() == false ) mResourceManager->
load(_core);
130 mIsInitialise =
true;
135 if (!mIsInitialise)
return;
138 _destroyAllChildWidget();
159 delete mPointerManager;
160 delete mWidgetManager;
161 delete mInputManager;
163 delete mSubWidgetManager;
164 delete mLayerManager;
166 delete mControllerManager;
167 delete mClipboardManager;
168 delete mLayoutManager;
169 delete mDynLibManager;
170 delete mPluginManager;
171 delete mLanguageManager;
172 delete mResourceManager;
173 delete mFactoryManager;
180 mIsInitialise =
false;
191 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)
194 mWidgetChild.push_back(widget);
202 for (VectorWidgetPtr::iterator iter = mWidgetChild.begin(); iter!=mWidgetChild.end(); ++iter)
205 if (widget !=
nullptr)
return widget;
207 MYGUI_ASSERT(!_throw,
"Widget '" << _name <<
"' not found");
212 void Gui::_destroyChildWidget(
Widget* _widget)
214 MYGUI_ASSERT(
nullptr != _widget,
"invalid widget pointer");
216 VectorWidgetPtr::iterator iter = std::find(mWidgetChild.begin(), mWidgetChild.end(), _widget);
217 if (iter != mWidgetChild.end())
223 *iter = mWidgetChild.back();
224 mWidgetChild.pop_back();
236 void Gui::_destroyAllChildWidget()
238 while (!mWidgetChild.empty())
241 Widget* widget = mWidgetChild.back();
242 mWidgetChild.pop_back();
256 return mResourceManager->
load(_file);
289 void Gui::_unlinkWidget(
Widget* _widget)
294 void Gui::_linkChildWidget(Widget* _widget)
296 VectorWidgetPtr::iterator iter = std::find(mWidgetChild.begin(), mWidgetChild.end(), _widget);
297 MYGUI_ASSERT(iter == mWidgetChild.end(),
"widget already exist");
298 mWidgetChild.push_back(_widget);
301 void Gui::_unlinkChildWidget(Widget* _widget)
303 VectorWidgetPtr::iterator iter = std::remove(mWidgetChild.begin(), mWidgetChild.end(), _widget);
304 MYGUI_ASSERT(iter != mWidgetChild.end(),
"widget not found");
305 mWidgetChild.erase(iter);
310 IntSize oldViewSize = mViewSize;
314 for (VectorWidgetPtr::iterator iter = mWidgetChild.begin(); iter!=mWidgetChild.end(); ++iter)