JXDockWidget::~JXDockWidget() { const JXDockManager::CloseDockMode mode = (JXGetDockManager())->GetCloseDockMode(); if (itsWindowList != NULL && mode == JXDockManager::kUndockWindows) { // can't call UndockAll() because that calls UpdateMinSize() const JSize count = itsWindowList->GetElementCount(); for (JIndex i=1; i<=count; i++) { JXWindow* w = itsWindowList->NthElement(i); StopListening(w); w->Undock(); } delete itsWindowList; } else if (itsWindowList != NULL) { assert( mode == JXDockManager::kCloseWindows ); const JSize count = itsWindowList->GetElementCount(); for (JIndex i=1; i<=count; i++) { JXWindow* w = itsWindowList->NthElement(i); StopListening(w); w->Close(); } delete itsWindowList; } }
JBoolean JXDockWidget::CloseAll() { if (itsWindowList != NULL) { JXDisplay* display = GetDisplay(); Display* xDisplay = display->GetXDisplay(); const JSize count = itsWindowList->GetElementCount(); for (JIndex i=count; i>=1; i--) { JXWindow* w = itsWindowList->NthElement(i); StopListening(w); Window xWindow = w->GetXWindow(); if (w->Close()) { if (JXDisplay::WindowExists(display, xDisplay, xWindow)) { w->Undock(); } else if ((JXGetApplication())->DisplayExists(xDisplay)) { itsTabGroup->DeleteTab(i); itsWindowList->RemoveElement(i); } else { return kJFalse; } } else { UpdateMinSize(); return kJFalse; } } delete itsWindowList; itsWindowList = NULL; UpdateMinSize(); } return kJTrue; }
void JXDockWidget::UndockAll() { if (itsWindowList != NULL) { const JSize count = itsWindowList->GetElementCount(); for (JIndex i=1; i<=count; i++) { itsTabGroup->DeleteTab(1); JXWindow* w = itsWindowList->NthElement(i); StopListening(w); w->Undock(); } itsWindowList->RemoveAll(); delete itsWindowList; itsWindowList = NULL; UpdateMinSize(); } }