void ActiveWindow::Hide() { EventDispatch* dispatch = EventDispatch::GetInstance(); if (dispatch) { dispatch->Unregister(this); focus = false; } ListIter<View> v_iter = view_list; while (++v_iter) { View* view = v_iter.value(); view->OnHide(); } ListIter<ActiveWindow> c_iter = children; while (++c_iter) { ActiveWindow* child = c_iter.value(); child->Hide(); } shown = false; }