Example #1
0
/**
*  @brief
*    Destructor
*/
Widget::~Widget()
{
	// Delete child widgets
	/* // Do not, since all widgets are automatically added to the destroy-list after an OnDestroy-message
	List<Widget*> lstChildren = m_lstChildren;
	for (uint32 i=0; i<lstChildren.GetNumOfElements(); i++) {
		delete lstChildren[i];
	}
	*/

	// Destroy modifiers
	for (uint32 i=0; i<m_lstModifiers.GetNumOfElements(); i++) {
		// Detach and delete modifier
		Modifier *pModifier = m_lstModifiers[i];
		pModifier->Detach();
		delete pModifier;
	}

	// Delete widget implementation
	if (m_pWidgetImpl) delete m_pWidgetImpl;
}