|
@@ -36,11 +36,13 @@ namespace Compdfkit_Tools.PDFControl
|
|
|
public CPDFViewerTool FocusPDFViewTool { get;private set; }
|
|
|
|
|
|
//public event EventHandler SplitPDFViewToolCreated;
|
|
|
- public event EventHandler SelectedPDFViewToolChanged;
|
|
|
+ public event EventHandler FocusPDFViewToolChanged;
|
|
|
public event EventHandler<MouseEventObject> MouseLeftButtonDownHandler;
|
|
|
public event EventHandler<MouseEventObject> MouseLeftButtonUpHandler;
|
|
|
public event EventHandler<MouseEventObject> MouseMoveHandler;
|
|
|
public event EventHandler<MouseEventObject> MouseRightButtonDownHandler;
|
|
|
+ public event EventHandler<ComPDFKitViewer.MouseWheelZoomArgs> MouseWheelZoomHandler;
|
|
|
+ public event EventHandler DrawChanged;
|
|
|
|
|
|
//private ContextMenu RightMenu;
|
|
|
#region Properties
|
|
@@ -56,6 +58,7 @@ namespace Compdfkit_Tools.PDFControl
|
|
|
|
|
|
viewerTool = new CPDFViewerTool();
|
|
|
toolManager = new CPDFToolManager(viewerTool);
|
|
|
+ Loaded += PDFViewControl_Loaded;
|
|
|
PDFViewTool = viewerTool;
|
|
|
PDFToolManager = toolManager;
|
|
|
PDFToolManager.SetToolType(CPDFToolManager.ToolType.Viewer);
|
|
@@ -66,23 +69,27 @@ namespace Compdfkit_Tools.PDFControl
|
|
|
|
|
|
FocusPDFViewTool = viewerTool;
|
|
|
PDFView.Child = PDFViewTool;
|
|
|
+ VerticalView.Child = splitViewerTool;
|
|
|
|
|
|
PDFViewTool.SizeChanged -= PDFViewTool_SizeChanged;
|
|
|
PDFViewTool.GetCPDFViewer().MouseWheelZoomHandler -= PDFViewControl_MouseWheelZoomHandler;
|
|
|
+ PDFViewTool.DrawChanged -= PDFViewTool_DrawChanged;
|
|
|
PDFToolManager.MouseLeftButtonDownHandler -= PDFToolManager_MouseLeftButtonDownHandler;
|
|
|
PDFToolManager.MouseLeftButtonUpHandler -= PDFToolManager_MouseLeftButtonUpHandler;
|
|
|
PDFToolManager.MouseMoveHandler -= PDFToolManager_MouseMoveHandler;
|
|
|
- PDFToolManager.MouseRightButtonDownHandler -= PDFToolManager_MouseRightButtonDownHandler;
|
|
|
+ PDFToolManager.AnnotDefaultEditedHandler -= PDFToolManager_AnnotDefaultEditedHandler;
|
|
|
|
|
|
PDFViewTool.SizeChanged += PDFViewTool_SizeChanged;
|
|
|
PDFViewTool.GetCPDFViewer().MouseWheelZoomHandler += PDFViewControl_MouseWheelZoomHandler;
|
|
|
+ PDFViewTool.DrawChanged += PDFViewTool_DrawChanged;
|
|
|
PDFToolManager.MouseLeftButtonDownHandler += PDFToolManager_MouseLeftButtonDownHandler;
|
|
|
PDFToolManager.MouseLeftButtonUpHandler += PDFToolManager_MouseLeftButtonUpHandler;
|
|
|
PDFToolManager.MouseMoveHandler += PDFToolManager_MouseMoveHandler;
|
|
|
- PDFToolManager.MouseRightButtonDownHandler += PDFToolManager_MouseRightButtonDownHandler;
|
|
|
+ PDFToolManager.AnnotDefaultEditedHandler += PDFToolManager_AnnotDefaultEditedHandler;
|
|
|
|
|
|
splitViewerTool.SizeChanged -= SplitViewerTool_SizeChanged;
|
|
|
splitViewerTool.GetCPDFViewer().MouseWheelZoomHandler -= SplitPDFViewControl_MouseWheelZoomHandler;
|
|
|
+ splitViewerTool.DrawChanged -= PDFViewTool_DrawChanged;
|
|
|
splitToolManager.MouseLeftButtonDownHandler -= PDFToolManager_MouseLeftButtonDownHandler;
|
|
|
splitToolManager.MouseLeftButtonUpHandler -= PDFToolManager_MouseLeftButtonUpHandler;
|
|
|
splitToolManager.MouseMoveHandler -= PDFToolManager_MouseMoveHandler;
|
|
@@ -90,16 +97,32 @@ namespace Compdfkit_Tools.PDFControl
|
|
|
|
|
|
splitViewerTool.SizeChanged += SplitViewerTool_SizeChanged;
|
|
|
splitViewerTool.GetCPDFViewer().MouseWheelZoomHandler += SplitPDFViewControl_MouseWheelZoomHandler;
|
|
|
+ splitViewerTool.DrawChanged += PDFViewTool_DrawChanged;
|
|
|
splitToolManager.MouseLeftButtonDownHandler += PDFToolManager_MouseLeftButtonDownHandler;
|
|
|
splitToolManager.MouseLeftButtonUpHandler += PDFToolManager_MouseLeftButtonUpHandler;
|
|
|
splitToolManager.MouseMoveHandler += PDFToolManager_MouseMoveHandler;
|
|
|
- splitToolManager.MouseRightButtonDownHandler += PDFToolManager_MouseRightButtonDownHandler;
|
|
|
+ splitToolManager.AnnotDefaultEditedHandler += PDFToolManager_AnnotDefaultEditedHandler;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private void PDFToolManager_AnnotDefaultEditedHandler(object sender, EventArgs e)
|
|
|
+ {
|
|
|
+ UpdateAnnotFrame();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void PDFViewControl_Loaded(object sender, RoutedEventArgs e)
|
|
|
+ {
|
|
|
+ RemoveSplitViewerTool();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void PDFViewTool_DrawChanged(object sender, EventArgs e)
|
|
|
+ {
|
|
|
+ DrawChanged?.Invoke(sender,e);
|
|
|
}
|
|
|
|
|
|
public ContextMenu GetRightMenu()
|
|
|
{
|
|
|
- FocusPDFViewTool.ContextMenu?.Items.Clear();
|
|
|
- return FocusPDFViewTool.ContextMenu;
|
|
|
+ return FocusPDFViewTool.ContextMenu;
|
|
|
}
|
|
|
|
|
|
public void SetRightMenu(ContextMenu contextMenu)
|
|
@@ -129,12 +152,12 @@ namespace Compdfkit_Tools.PDFControl
|
|
|
|
|
|
private void PDFViewTool_SizeChanged(object sender, SizeChangedEventArgs e)
|
|
|
{
|
|
|
- PDFViewTool?.GetCPDFViewer()?.UpDateRenderFrame();
|
|
|
+ PDFViewTool.GetCPDFViewer().UpDateRenderFrame();
|
|
|
}
|
|
|
|
|
|
private void SplitViewerTool_SizeChanged(object sender, SizeChangedEventArgs e)
|
|
|
{
|
|
|
- splitViewerTool?.GetCPDFViewer()?.UpDateRenderFrame();
|
|
|
+ splitViewerTool.GetCPDFViewer().UpDateRenderFrame();
|
|
|
}
|
|
|
|
|
|
public void InitDocument(string Path)
|
|
@@ -156,6 +179,8 @@ namespace Compdfkit_Tools.PDFControl
|
|
|
|
|
|
private void PDFViewControl_MouseWheelZoomHandler(object sender, ComPDFKitViewer.MouseWheelZoomArgs e)
|
|
|
{
|
|
|
+ FocusPDFViewTool = PDFViewTool;
|
|
|
+ FocusPDFViewToolChanged?.Invoke(this, EventArgs.Empty);
|
|
|
if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl))
|
|
|
{
|
|
|
e.IsZoom = true;
|
|
@@ -164,10 +189,13 @@ namespace Compdfkit_Tools.PDFControl
|
|
|
PDFViewTool.GetCPDFViewer().SetZoom(CheckZoomLevel(zoom, Convert.ToBoolean(e.WheelBehavior)));
|
|
|
PDFViewTool?.GetCPDFViewer()?.UpDateRenderFrame();
|
|
|
}
|
|
|
+ MouseWheelZoomHandler?.Invoke(this, e);
|
|
|
}
|
|
|
|
|
|
private void SplitPDFViewControl_MouseWheelZoomHandler(object sender, ComPDFKitViewer.MouseWheelZoomArgs e)
|
|
|
{
|
|
|
+ FocusPDFViewTool = splitViewerTool;
|
|
|
+ FocusPDFViewToolChanged?.Invoke(this, EventArgs.Empty);
|
|
|
if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl))
|
|
|
{
|
|
|
e.IsZoom = true;
|
|
@@ -176,6 +204,7 @@ namespace Compdfkit_Tools.PDFControl
|
|
|
splitViewerTool.GetCPDFViewer().SetZoom(CheckZoomLevel(zoom, Convert.ToBoolean(e.WheelBehavior)));
|
|
|
splitViewerTool?.GetCPDFViewer()?.UpDateRenderFrame();
|
|
|
}
|
|
|
+ MouseWheelZoomHandler?.Invoke(this, e);
|
|
|
}
|
|
|
|
|
|
public void SetSplitViewMode(SplitMode splitMode)
|
|
@@ -209,11 +238,11 @@ namespace Compdfkit_Tools.PDFControl
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
- UpdateFrame();
|
|
|
+ UpdateRenderFrame();
|
|
|
UpdateAnnotFrame();
|
|
|
}
|
|
|
|
|
|
- public void UpdateFrame()
|
|
|
+ public void UpdateRenderFrame()
|
|
|
{
|
|
|
viewerTool?.GetCPDFViewer()?.UpDateRenderFrame();
|
|
|
splitViewerTool?.GetCPDFViewer()?.UpDateRenderFrame();
|
|
@@ -261,7 +290,12 @@ namespace Compdfkit_Tools.PDFControl
|
|
|
{
|
|
|
viewerTool?.GetCPDFViewer()?.SetDrawModes(drawMode.DrawMode);
|
|
|
splitViewerTool?.GetCPDFViewer()?.SetDrawModes(drawMode.DrawMode);
|
|
|
- UpdateFrame();
|
|
|
+ if (drawMode.DrawMode == DrawModes.Custom)
|
|
|
+ {
|
|
|
+ viewerTool?.GetCPDFViewer().SetPDFBackground(drawMode.CustomColor);
|
|
|
+ splitViewerTool?.GetCPDFViewer().SetPDFBackground(drawMode.CustomColor);
|
|
|
+ }
|
|
|
+ UpdateRenderFrame();
|
|
|
}
|
|
|
|
|
|
public void SetStampMouseImage(byte[] imageArray,int imageWidth,int imageHeight)
|
|
@@ -302,7 +336,7 @@ namespace Compdfkit_Tools.PDFControl
|
|
|
|
|
|
private void RemoveSplitViewerTool()
|
|
|
{
|
|
|
- UpdateFrame();
|
|
|
+ UpdateRenderFrame();
|
|
|
VerticalSplitter.Visibility = Visibility.Collapsed;
|
|
|
HorizontalSplitter.Visibility = Visibility.Collapsed;
|
|
|
VerticalView.Visibility = Visibility.Collapsed;
|
|
@@ -315,6 +349,20 @@ namespace Compdfkit_Tools.PDFControl
|
|
|
HorizontalView.Child = null;
|
|
|
}
|
|
|
|
|
|
+ private void PDFView_GotFocus(object sender, RoutedEventArgs e)
|
|
|
+ {
|
|
|
+ switch((sender as Border).Tag)
|
|
|
+ {
|
|
|
+ case "ViewerTool":
|
|
|
+ FocusPDFViewTool = viewerTool;
|
|
|
+ break;
|
|
|
+ case "SplitViewerTool":
|
|
|
+ FocusPDFViewTool = splitViewerTool;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ FocusPDFViewToolChanged?.Invoke(this,EventArgs.Empty);
|
|
|
+ }
|
|
|
+
|
|
|
#region Private Command Methods
|
|
|
private double CheckZoomLevel(double zoom, bool IsGrowth)
|
|
|
{
|
|
@@ -359,7 +407,7 @@ namespace Compdfkit_Tools.PDFControl
|
|
|
FocusPDFViewTool = splitViewerTool;
|
|
|
break;
|
|
|
}
|
|
|
- SelectedPDFViewToolChanged?.Invoke(this, EventArgs.Empty);
|
|
|
+ //SelectedPDFViewToolChanged?.Invoke(this, EventArgs.Empty);
|
|
|
}
|
|
|
}
|
|
|
}
|