PRO spd_ui_close_window, info
ids=info.windowMenus->GetIds()
result = "Yes"
IF N_Elements(ids) EQ 1 THEN begin
Result = DIALOG_MESSAGE("Do you want to close the last remaining page?", $
TITLE="Close Page", DIALOG_PARENT=info.master, /CENTER, /QUESTION, /DEFAULT_NO)
ENDIF
IF result EQ "Yes" THEN BEGIN
IF info.marking EQ 0 && info.rubberbanding EQ 0 THEN BEGIN
info.ctrl=0
error=0
windowObjs = info.windowStorage->GetObjects()
prevNumWin = N_Elements(windowObjs)
activeWindow = info.windowStorage->GetActive()
activeWindow->GetProperty, Name=activeName
result = info.windowStorage->RemoveObject(activeWindow)
IF RESULT EQ -1 THEN BEGIN
statusMessage = 'An error occurred closing the page. ' + name + ' has not been closed.'
info.statusBar->Update, statusMessage
ENDIF ELSE BEGIN
activeWindow = info.windowStorage->GetActive()
IF ~Obj_Valid(activeWindow) THEN BEGIN
info.windowMenus->Remove, activeName
info.windowMenus->Update, info.windowStorage
result=info.windowStorage->Add(Settings=info.pageSettings)
activeWindow=info.windowStorage->GetActive()
activeWindow[0]->GetProperty, Name=name
info.windowMenus->Add, name
info.windowMenus->Update, info.windowStorage
ENDIF ELSE BEGIN
info.windowMenus->Remove, activeName
info.windowMenus->Update, info.windowStorage
ENDELSE
spd_ui_orientation_update,info.drawObject,info.windowStorage
windowObjs = info.windowStorage->GetObjects()
IF N_Elements(windowObjs) LE 1 && activeName EQ 'Page: 1' && prevNumWin EQ 1 THEN BEGIN
statusMessage = activeName + ' has been cleared'
ENDIF ELSE BEGIN
statusMessage = activeName + ' has been closed'
ENDELSE
info.statusBar->Update, statusMessage
info.drawObject->update,info.windowStorage, info.loadedData
info.drawObject->draw
info.scrollbar->update
ENDELSE
ENDIF
ENDIF
END