public PDFHighlightLayer(PDFDocument pdf_document, int page) { WPFDoEvents.AssertThisCodeIsRunningInTheUIThread(); this.pdf_document = pdf_document; this.page = page; InitializeComponent(); Background = Brushes.Transparent; Cursor = Cursors.Pen; drag_area_tracker = new DragAreaTracker(this, false); drag_area_tracker.OnDragStarted += drag_area_tracker_OnDragStarted; drag_area_tracker.OnDragInProgress += drag_area_tracker_OnDragInProgress; drag_area_tracker.OnDragComplete += drag_area_tracker_OnDragComplete; text_selection_manager = new TextSelectionManager(); SizeChanged += PDFHighlightLayer_SizeChanged; SetLeft(ObjHighlightRenderer, 0); SetTop(ObjHighlightRenderer, 0); text_layer_selection_mode = TextLayerSelectionMode.Sentence; CurrentColourNumber = 0; Loaded += PDFHighlightLayer_Loaded; //Unloaded += PDFHighlightLayer_Unloaded; Dispatcher.ShutdownStarted += Dispatcher_ShutdownStarted; }
public PDFTextSentenceLayer(PDFRendererControlStats pdf_renderer_control_stats, int page) { this.pdf_renderer_control_stats = pdf_renderer_control_stats; this.page = page; InitializeComponent(); Focusable = true; KeyboardNavigation.SetDirectionalNavigation(this, KeyboardNavigationMode.Once); Background = Brushes.Transparent; Cursor = Cursors.IBeam; SizeChanged += PDFTextSentenceLayer_SizeChanged; drag_area_tracker = new DragAreaTracker(this, false); drag_area_tracker.OnDragStarted += drag_area_tracker_OnDragStarted; drag_area_tracker.OnDragInProgress += drag_area_tracker_OnDragInProgress; drag_area_tracker.OnDragComplete += drag_area_tracker_OnDragComplete; text_selection_manager = new TextSelectionManager(); PreviewMouseDown += PDFTextSentenceLayer_PreviewMouseDown; PreviewKeyDown += PDFTextLayer_PreviewKeyDown; RequestBringIntoView += PDFTextSentenceLayer_RequestBringIntoView; text_layer_selection_mode = TextLayerSelectionMode.Sentence; }
public PDFHighlightLayer(PDFRendererControlStats pdf_renderer_control_stats, int page) { this.pdf_renderer_control_stats = pdf_renderer_control_stats; this.page = page; InitializeComponent(); this.Background = Brushes.Transparent; this.Cursor = Cursors.Pen; drag_area_tracker = new DragAreaTracker(this, false); drag_area_tracker.OnDragStarted += drag_area_tracker_OnDragStarted; drag_area_tracker.OnDragInProgress += drag_area_tracker_OnDragInProgress; drag_area_tracker.OnDragComplete += drag_area_tracker_OnDragComplete; text_selection_manager = new TextSelectionManager(); this.SizeChanged += PDFHighlightLayer_SizeChanged; SetLeft(ObjHighlightRenderer, 0); SetTop(ObjHighlightRenderer, 0); this.text_layer_selection_mode = TextLayerSelectionMode.Sentence; this.CurrentColourNumber = 0; this.Loaded += PDFHighlightLayer_Loaded; }
public PDFTextSentenceLayer(PDFRendererControl pdf_renderer_control, int page) { WPFDoEvents.AssertThisCodeIsRunningInTheUIThread(); this.pdf_renderer_control = new WeakReference <PDFRendererControl>(pdf_renderer_control); this.page = page; InitializeComponent(); Focusable = true; KeyboardNavigation.SetDirectionalNavigation(this, KeyboardNavigationMode.Once); Background = Brushes.Transparent; Cursor = Cursors.IBeam; SizeChanged += PDFTextSentenceLayer_SizeChanged; drag_area_tracker = new DragAreaTracker(this, false); drag_area_tracker.OnDragStarted += drag_area_tracker_OnDragStarted; drag_area_tracker.OnDragInProgress += drag_area_tracker_OnDragInProgress; drag_area_tracker.OnDragComplete += drag_area_tracker_OnDragComplete; text_selection_manager = new TextSelectionManager(); PreviewMouseDown += PDFTextSentenceLayer_PreviewMouseDown; PreviewKeyDown += PDFTextLayer_PreviewKeyDown; RequestBringIntoView += PDFTextSentenceLayer_RequestBringIntoView; text_layer_selection_mode = TextLayerSelectionMode.Sentence; //Unloaded += PDFTextSentenceLayer_Unloaded; Dispatcher.ShutdownStarted += Dispatcher_ShutdownStarted; }
protected virtual void Dispose(bool disposing) { Logging.Debug("PDFTextSentenceLayer::Dispose({0}) @{1}", disposing, dispose_count); try { if (null != drag_area_tracker) { WPFDoEvents.InvokeInUIThread(() => { try { foreach (var el in Children) { IDisposable node = el as IDisposable; if (null != node) { node.Dispose(); } } } catch (Exception ex) { Logging.Error(ex); } try { ClearChildren(); Children.Clear(); } catch (Exception ex) { Logging.Error(ex); } drag_area_tracker.OnDragStarted -= drag_area_tracker_OnDragStarted; drag_area_tracker.OnDragInProgress -= drag_area_tracker_OnDragInProgress; drag_area_tracker.OnDragComplete -= drag_area_tracker_OnDragComplete; }, Dispatcher); } // Clear the references for sanity's sake pdf_renderer_control_stats = null; drag_area_tracker = null; text_selection_manager = null; DataContext = null; } catch (Exception ex) { Logging.Error(ex); } ++dispose_count; //base.Dispose(disposing); // parent only throws an exception (intentionally), so depart from best practices and don't call base.Dispose(bool) }
protected virtual void Dispose(bool disposing) { Logging.Debug("PDFTextSentenceLayer::Dispose({0}) @{1}", disposing, dispose_count); WPFDoEvents.InvokeInUIThread(() => { WPFDoEvents.SafeExec(() => { if (dispose_count == 0) { foreach (var el in Children) { IDisposable node = el as IDisposable; if (null != node) { node.Dispose(); } } } }); WPFDoEvents.SafeExec(() => { ClearChildren(); Children.Clear(); }); WPFDoEvents.SafeExec(() => { if (drag_area_tracker != null) { drag_area_tracker.OnDragStarted -= drag_area_tracker_OnDragStarted; drag_area_tracker.OnDragInProgress -= drag_area_tracker_OnDragInProgress; drag_area_tracker.OnDragComplete -= drag_area_tracker_OnDragComplete; } Dispatcher.ShutdownStarted -= Dispatcher_ShutdownStarted; }); WPFDoEvents.SafeExec(() => { // Clear the references for sanity's sake pdf_renderer_control = null; drag_area_tracker = null; text_selection_manager = null; }); WPFDoEvents.SafeExec(() => { DataContext = null; }); ++dispose_count; //base.Dispose(disposing); // parent only throws an exception (intentionally), so depart from best practices and don't call base.Dispose(bool) }); }
protected virtual void Dispose(bool disposing) { Logging.Debug("PDFAnnotationLayer::Dispose({0}) @{1}", disposing, dispose_count); WPFDoEvents.InvokeInUIThread(() => { WPFDoEvents.SafeExec(() => { foreach (var el in Children) { IDisposable node = el as IDisposable; if (null != node) { node.Dispose(); } } }); WPFDoEvents.SafeExec(() => { Children.Clear(); }); WPFDoEvents.SafeExec(() => { WizardDPs.ClearPointOfInterest(this); }); WPFDoEvents.SafeExec(() => { if (drag_area_tracker != null) { drag_area_tracker.OnDragComplete -= drag_area_tracker_OnDragComplete; } Dispatcher.ShutdownStarted -= Dispatcher_ShutdownStarted; }); WPFDoEvents.SafeExec(() => { // Clear the references for sanity's sake pdf_document = null; drag_area_tracker = null; }); WPFDoEvents.SafeExec(() => { DataContext = null; }); ++dispose_count; //base.Dispose(disposing); // parent only throws an exception (intentionally), so depart from best practices and don't call base.Dispose(bool) }); }
public PDFCameraLayer(PDFRendererControlStats pdf_renderer_control_stats, int page) { this.pdf_renderer_control_stats = pdf_renderer_control_stats; this.page = page; InitializeComponent(); this.Background = Brushes.Transparent; this.Cursor = Cursors.Cross; drag_area_tracker = new DragAreaTracker(this); drag_area_tracker.OnDragComplete += drag_area_tracker_OnDragComplete; }
protected virtual void Dispose(bool disposing) { Logging.Debug("PDFHighlightLayer::Dispose({0}) @{1}", disposing, dispose_count); WPFDoEvents.SafeExec(() => { foreach (var el in Children) { IDisposable node = el as IDisposable; if (null != node) { node.Dispose(); } } }, must_exec_in_UI_thread: true); WPFDoEvents.SafeExec(() => { Children.Clear(); }, must_exec_in_UI_thread: true); WPFDoEvents.SafeExec(() => { if (drag_area_tracker != null) { drag_area_tracker.OnDragStarted -= drag_area_tracker_OnDragStarted; drag_area_tracker.OnDragInProgress -= drag_area_tracker_OnDragInProgress; drag_area_tracker.OnDragComplete -= drag_area_tracker_OnDragComplete; } }, must_exec_in_UI_thread: true); WPFDoEvents.SafeExec(() => { // Clear the references for sanity's sake pdf_renderer_control_stats = null; drag_area_tracker = null; text_selection_manager = null; }); WPFDoEvents.SafeExec(() => { DataContext = null; }); ++dispose_count; //base.Dispose(disposing); // parent only throws an exception (intentionally), so depart from best practices and don't call base.Dispose(bool) }
public PDFAnnotationLayer(PDFDocument pdf_document, int page) { WPFDoEvents.AssertThisCodeIsRunningInTheUIThread(); this.pdf_document = pdf_document; this.page = page; InitializeComponent(); // Wizard if (1 == page) { WizardDPs.SetPointOfInterest(this, "PDFReadingAnnotationLayer"); } Background = Brushes.Transparent; Cursor = Cursors.Cross; SizeChanged += PDFAnnotationLayer_SizeChanged; drag_area_tracker = new DragAreaTracker(this); drag_area_tracker.OnDragComplete += drag_area_tracker_OnDragComplete; // Add all the already existing annotations foreach (PDFAnnotation pdf_annotation in pdf_document.GetAnnotations()) { if (pdf_annotation.Page == this.page) { if (!pdf_annotation.Deleted) { Logging.Info("Loading annotation on page {0}", page); PDFAnnotationItem pdf_annotation_item = new PDFAnnotationItem(this, pdf_annotation); pdf_annotation_item.ResizeToPage(ActualWidth, ActualHeight); Children.Add(pdf_annotation_item); } else { Logging.Info("Not loading deleted annotation on page {0}", page); } } } //Unloaded += PDFAnnotationLayer_Unloaded; Dispatcher.ShutdownStarted += Dispatcher_ShutdownStarted; }
public PDFCameraLayer(PDFDocument pdf_document, int page) { WPFDoEvents.AssertThisCodeIsRunningInTheUIThread(); this.pdf_document = pdf_document; this.page = page; InitializeComponent(); Background = Brushes.Transparent; Cursor = Cursors.Cross; drag_area_tracker = new DragAreaTracker(this); drag_area_tracker.OnDragComplete += drag_area_tracker_OnDragComplete; //Unloaded += PDFCameraLayer_Unloaded; Dispatcher.ShutdownStarted += Dispatcher_ShutdownStarted; }
public PDFAnnotationLayer(PDFRendererControlStats pdf_renderer_control_stats, int page) { this.pdf_renderer_control_stats = pdf_renderer_control_stats; this.page = page; InitializeComponent(); // Wizard if (1 == page) { WizardDPs.SetPointOfInterest(this, "PDFReadingAnnotationLayer"); } Background = Brushes.Transparent; Cursor = Cursors.Cross; SizeChanged += PDFAnnotationLayer_SizeChanged; drag_area_tracker = new DragAreaTracker(this); drag_area_tracker.OnDragComplete += drag_area_tracker_OnDragComplete; // Add all the already existing annotations foreach (PDFAnnotation pdf_annotation in pdf_renderer_control_stats.pdf_document.GetAnnotations()) { if (pdf_annotation.Page == this.page) { if (!pdf_annotation.Deleted) { Logging.Info("Loading annotation on page {0}", page); PDFAnnotationItem pdf_annotation_item = new PDFAnnotationItem(this, pdf_annotation, pdf_renderer_control_stats); pdf_annotation_item.ResizeToPage(ActualWidth, ActualHeight); Children.Add(pdf_annotation_item); } else { Logging.Info("Not loading deleted annotation on page {0}", page); } } } }