void BasicContainer::Add(WidgetPtr widget) { mWidgets.push_back(widget); if (mInternalFocusHandler == NULL) { widget->_setFocusHandler(_getFocusHandler()); } else { widget->_setFocusHandler(mInternalFocusHandler); } widget->_setParent(shared_from_this()); widget->addDeathListener(this); }
void Gui::SetTop( WidgetPtr top ) { if (mTop != NULL) { mTop->_setFocusHandler(FocusHandlerPtr()); } if (top != NULL) { top->_setFocusHandler(mFocusHandler); } mTop = top; }
void BasicContainer::Remove(WidgetPtr widget) { WidgetListIterator iter; for (iter = mWidgets.begin(); iter != mWidgets.end(); iter++) { if (*iter == widget) { mWidgets.erase(iter); widget->_setFocusHandler(FocusHandlerPtr()); widget->_setParent(WidgetPtr()); widget->removeDeathListener(this); return; } } throw GCN_EXCEPTION("There is no such widget in this container."); }