protected virtual void Dispose(bool disposing) { if (disposing) { if (_dynamicRenderEventPublisher != null) { _dynamicRenderEventPublisher.Cancel(); _dynamicRenderEventPublisher.Dispose(); _dynamicRenderEventPublisher = null; } if (_vtkRenderWindow != null) { _vtkRenderWindow.Dispose(); _vtkRenderWindow = null; } if (_vtkRenderer != null) { _vtkRenderer.Dispose(); _vtkRenderer = null; } if (_sceneGraphRoot != null) { _sceneGraphRoot.Dispose(); _sceneGraphRoot = null; } if (_imageBuffer != null) { _imageBuffer.Dispose(); _imageBuffer = null; } if (_overlayBuffer != null) { _overlayBuffer.Dispose(); _overlayBuffer = null; } if (_finalBuffer != null) { _finalBuffer.Dispose(); _finalBuffer = null; } } }
public override void Stop() { base.Stop(); if (_delaySetFileStoreDirectory != null) { _delaySetFileStoreDirectory.Cancel(); _delaySetFileStoreDirectory.Dispose(); _delaySetFileStoreDirectory = null; } if (_activityMonitor != null) { _activityMonitor.IsConnectedChanged -= ActivityMonitorOnIsConnectedChanged; _activityMonitor.Dispose(); } }
/// <summary> /// Called by the view layer so that the <see cref="PrintTileController"/> can process the <paramref name="message"/>. /// </summary> public bool ProcessMessage(object message) { // if the user does anything other than mouse tracking, cancel any pending delayed context menu events if (!(message is TrackMousePositionMessage)) { // we allow mouse tracking because of the small movement tolerance _delayedContextMenuRequestPublisher.Cancel(); } if (message is LostFocusMessage) { this.CaptureMouseWheelHandler = null; return(true); } else if (message is KeyboardButtonDownPreview) { //Right now, we can't determine what these keystrokes are going to do, so we just release mouse wheel capture. KeyboardButtonDownPreview preview = message as KeyboardButtonDownPreview; if (preview.Shortcut.KeyData != XKeys.None) { this.CaptureMouseWheelHandler = null; } return(false); } else if (message is MouseButtonMessage) { return(ProcessMouseButtonMessage(message as MouseButtonMessage)); } else if (message is TrackMousePositionMessage) { return(ProcessTrackMessage(message as TrackMousePositionMessage)); } if (message is MouseWheelMessage) { bool returnValue = ProcessMouseWheelMessage(message as MouseWheelMessage); TrackCurrentPosition(); return(returnValue); } if (_tile.PresentationImage != null) { if (message is KeyboardButtonMessage) { bool returnValue = ProcessKeyboardMessage(message as KeyboardButtonMessage); TrackCurrentPosition(); return(returnValue); } else if (message is ReleaseCaptureMessage) { ReleaseCapture(true); TrackCurrentPosition(); return(true); } else if (message is MouseLeaveMessage) { _tile.PresentationImage.FocussedGraphic = null; } } else { // We should respond to keyboard even when there's no presentation image. if (message is KeyboardButtonMessage) { bool returnValue = ProcessKeyboardMessage(message as KeyboardButtonMessage); return(returnValue); } } return(false); }