public void Dispose() { guiManager.SaveUIConfiguration -= guiManager_SaveUIConfiguration; guiManager.LoadUIConfiguration -= guiManager_LoadUIConfiguration; guiManager.MainGUIShown -= guiManager_MainGUIShown; guiManager.MainGUIHidden -= guiManager_MainGUIHidden; IDisposableUtil.DisposeIfNotNull(teethMover); IDisposableUtil.DisposeIfNotNull(bookmarks); IDisposableUtil.DisposeIfNotNull(bookmarksController); IDisposableUtil.DisposeIfNotNull(taskMenuAd); IDisposableUtil.DisposeIfNotNull(viewsGui); if (selectionModeTask != null) { selectionModeTask.Dispose(); } if (selectionOperatorTask != null) { selectionOperatorTask.Dispose(); } if (cameraMovementModeTask != null) { cameraMovementModeTask.Dispose(); } options.Dispose(); anatomyFinder.Dispose(); chooseSceneDialog.Dispose(); aboutDialog.Dispose(); if (sequencePlayer != null) { sequencePlayer.Dispose(); } guiManager.removeLinkFromChain(taskbarLink); IDisposableUtil.DisposeIfNotNull(buyScreens); IDisposableUtil.DisposeIfNotNull(taskbar); IDisposableUtil.DisposeIfNotNull(taskMenu); }