MCPcopy Create free account
hub / github.com/MyGUI/mygui / _destroyChildWidget

Method _destroyChildWidget

MyGUIEngine/src/MyGUI_Widget.cpp:411–439  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

409 }
410
411 void Widget::_destroyChildWidget(Widget* _widget)
412 {
413 MYGUI_ASSERT(nullptr != _widget, "invalid widget pointer");
414
415 if (mParent != nullptr && mParent->getClientWidget() == this)
416 mParent->onWidgetDestroy(_widget);
417
418 onWidgetDestroy(_widget);
419
420 VectorWidgetPtr::iterator iter = std::find(mWidgetChild.begin(), mWidgetChild.end(), _widget);
421 if (iter != mWidgetChild.end())
422 {
423 // сохраняем указатель
424 MyGUI::Widget* widget = *iter;
425
426 // удаляем из списка
427 mWidgetChild.erase(iter);
428
429 // отписываем от всех
430 WidgetManager::getInstance().unlinkFromUnlinkers(_widget);
431
432 // непосредственное удаление
433 WidgetManager::getInstance()._deleteWidget(widget);
434 }
435 else
436 {
437 MYGUI_EXCEPT("Widget '" << _widget->getName() << "' not found");
438 }
439 }
440
441 // удаляет всех детей
442 void Widget::_destroyAllChildWidget()

Callers

nothing calls this directly

Calls 7

getClientWidgetMethod · 0.80
unlinkFromUnlinkersMethod · 0.80
_deleteWidgetMethod · 0.80
onWidgetDestroyMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
eraseMethod · 0.45

Tested by

no test coverage detected