|
@@ -20,6 +20,8 @@ using ComPDFKit.Tool.Help;
|
|
|
using ComPDFKit.Measure;
|
|
|
using System.Dynamic;
|
|
|
using System.Globalization;
|
|
|
+using System.Reflection;
|
|
|
+using static ComPDFKit.Tool.Help.ImportWin32;
|
|
|
|
|
|
namespace ComPDFKit.Tool
|
|
|
{
|
|
@@ -351,6 +353,37 @@ namespace ComPDFKit.Tool
|
|
|
return editAreaObject?.cPDFEditArea;
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// Get the index of the multi choice comment list
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="pageIndexs"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public List<CPDFEditArea> GetSelectedEditAreaListObject(ref List<int> pageIndexs)
|
|
|
+ {
|
|
|
+ List<CPDFEditArea> editAreaObjectlist = new List<CPDFEditArea>();
|
|
|
+ MultiSelectedRect multiSelectedRect = CommonHelper.FindVisualChild<MultiSelectedRect>(viewerTool.PDFViewer.GetViewForTag(viewerTool.multiSelectedRectViewTag));
|
|
|
+ if (multiSelectedRect != null && multiSelectedRect.Children.Count > 0)
|
|
|
+ {
|
|
|
+ foreach (SelectedRect selectedRect in multiSelectedRect.Children)
|
|
|
+ {
|
|
|
+ EditAreaObject editAreaObject = viewerTool.GetEditAreaObjectListForRect(selectedRect);
|
|
|
+ if (editAreaObject == null)
|
|
|
+ {
|
|
|
+ //pageIndexs.Add(-1);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if (!editAreaObjectlist.Contains(editAreaObject?.cPDFEditArea))
|
|
|
+ {
|
|
|
+ pageIndexs.Add(editAreaObject.PageIndex);
|
|
|
+ editAreaObjectlist.Add(editAreaObject?.cPDFEditArea);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return editAreaObjectlist;
|
|
|
+ }
|
|
|
+
|
|
|
public CPDFAnnotation GetCPDFAnnotation()
|
|
|
{
|
|
|
return cPDFAnnotation;
|
|
@@ -431,20 +464,20 @@ namespace ComPDFKit.Tool
|
|
|
{
|
|
|
case C_ANNOTATION_TYPE.C_ANNOTATION_WIDGET:
|
|
|
{
|
|
|
- currentParam = ParamConverter.WidgetConverter(viewerTool.GetCPDFViewer().GetDocument(), e.annotData.Annot);
|
|
|
- (e.annotData.Annot as CPDFWidget).UpdateFormAp();
|
|
|
- break;
|
|
|
+ currentParam = ParamConverter.WidgetConverter(viewerTool.GetCPDFViewer().GetDocument(), e.annotData.Annot);
|
|
|
+ (e.annotData.Annot as CPDFWidget).UpdateFormAp();
|
|
|
+ break;
|
|
|
}
|
|
|
|
|
|
default:
|
|
|
{
|
|
|
- currentParam = ParamConverter.AnnotConverter(viewerTool.GetCPDFViewer().GetDocument(), e.annotData.Annot);
|
|
|
+ currentParam = ParamConverter.AnnotConverter(viewerTool.GetCPDFViewer().GetDocument(), e.annotData.Annot);
|
|
|
if (e.annotData.AnnotType != C_ANNOTATION_TYPE.C_ANNOTATION_SOUND)
|
|
|
{
|
|
|
- e.annotData.Annot.UpdateAp();
|
|
|
+ e.annotData.Annot.UpdateAp();
|
|
|
}
|
|
|
- break;
|
|
|
- }
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
annotHistory.PreviousParam = previousParam;
|
|
@@ -506,6 +539,8 @@ namespace ComPDFKit.Tool
|
|
|
groupHistory.Histories.Add(pDFEditHistory);
|
|
|
}
|
|
|
}
|
|
|
+ //Add end edit
|
|
|
+ cPDFEditPage.EndEdit();
|
|
|
viewerTool.GetCPDFViewer().UndoManager.AddHistory(groupHistory);
|
|
|
|
|
|
viewerTool.GetCPDFViewer().UpdateRenderFrame();
|
|
@@ -735,7 +770,7 @@ namespace ComPDFKit.Tool
|
|
|
viewerTool.DrawEndSelectedMultiRect();
|
|
|
viewerTool.DrawEndPageSelectedRect();
|
|
|
if (currentToolType != ToolType.SelectedPage &&
|
|
|
- viewerTool.IsCanSave()&&
|
|
|
+ viewerTool.IsCanSave() &&
|
|
|
cPDFAnnotation?.Type != C_ANNOTATION_TYPE.C_ANNOTATION_FREETEXT)
|
|
|
{
|
|
|
viewerTool.PDFViewer.EnableZoom(true);
|
|
@@ -748,9 +783,9 @@ namespace ComPDFKit.Tool
|
|
|
{
|
|
|
viewerTool.PDFViewer.Cursor = viewerTool.Cursor = Cursors.IBeam;
|
|
|
}
|
|
|
- else if(currentToolType == ToolType.ContentEdit)
|
|
|
+ else if (currentToolType == ToolType.ContentEdit)
|
|
|
{
|
|
|
- if(createContentEditType == CPDFEditType.EditText)
|
|
|
+ if (createContentEditType == CPDFEditType.EditText)
|
|
|
viewerTool.PDFViewer.Cursor = viewerTool.Cursor = Cursors.IBeam;
|
|
|
else
|
|
|
viewerTool.PDFViewer.Cursor = viewerTool.Cursor = viewerTool.DrawMoveTest(viewerTool.GetLastSelectedRect());
|
|
@@ -759,7 +794,7 @@ namespace ComPDFKit.Tool
|
|
|
{
|
|
|
viewerTool.PDFViewer.Cursor = viewerTool.Cursor = Cursors.Arrow;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
if (currentToolType == ToolType.Customize)
|
|
|
{
|
|
|
viewerTool.CleanCustomizeTool();
|
|
@@ -823,7 +858,16 @@ namespace ComPDFKit.Tool
|
|
|
{
|
|
|
if (viewerTool.GetLastSelectedRect() != null)
|
|
|
{
|
|
|
- viewerTool.DrawEndTextEdit(viewerTool.GetLastSelectedRect());
|
|
|
+ //Crop Save Processing
|
|
|
+ if (!viewerTool.GetIsCropMode())
|
|
|
+ {
|
|
|
+ viewerTool.DrawEndTextEdit(viewerTool.GetLastSelectedRect());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //Originally saved cropping logic
|
|
|
+ }
|
|
|
+
|
|
|
editSelected = false;
|
|
|
}
|
|
|
else
|
|
@@ -872,6 +916,10 @@ namespace ComPDFKit.Tool
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ //Draw a box to select multiple boxes
|
|
|
+ Rect rectFrameSelect = viewerTool.DrawEndFrameSelect();
|
|
|
+ viewerTool.FrameSelectAddRect(rectFrameSelect);
|
|
|
+
|
|
|
e.IsCreate = true;
|
|
|
}
|
|
|
}
|
|
@@ -894,6 +942,25 @@ namespace ComPDFKit.Tool
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// Create cropping logic
|
|
|
+ /// </summary>
|
|
|
+ public void CropSelectRect()
|
|
|
+ {
|
|
|
+ if (viewerTool.GetLastSelectedRect() != null)
|
|
|
+ {
|
|
|
+ if (viewerTool.GetIsCropMode())
|
|
|
+ {
|
|
|
+ viewerTool.DrawEndTextEdit(viewerTool.GetLastSelectedRect());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ viewerTool.DrawEndSelectText();
|
|
|
+ if (viewerTool.IsCanSave())
|
|
|
+ {
|
|
|
+ cPDFAnnotation = null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private void SaveCurrentAnnot()
|
|
|
{
|
|
|
viewerTool.SetIsCanSave(true);
|
|
@@ -1025,7 +1092,7 @@ namespace ComPDFKit.Tool
|
|
|
e.IsCreate = true;
|
|
|
e.annotType = C_ANNOTATION_TYPE.C_ANNOTATION_INK;
|
|
|
e.Data = GetAnnotExpandObject(annotation);
|
|
|
- if (e.mouseButtonEventArgs!=null)
|
|
|
+ if (e.mouseButtonEventArgs != null)
|
|
|
{
|
|
|
MouseLeftButtonUpHandler?.Invoke(this, e);
|
|
|
}
|
|
@@ -1172,7 +1239,7 @@ namespace ComPDFKit.Tool
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if(createAnnotType == C_ANNOTATION_TYPE.C_ANNOTATION_REDACT && textSelectInfo.PageSelectPointList.Count ==0)
|
|
|
+ if (createAnnotType == C_ANNOTATION_TYPE.C_ANNOTATION_REDACT && textSelectInfo.PageSelectPointList.Count == 0)
|
|
|
{
|
|
|
viewerTool.GetCPDFViewer().UpdateAnnotFrame();
|
|
|
}
|
|
@@ -1684,7 +1751,7 @@ namespace ComPDFKit.Tool
|
|
|
if (currentToolType == ToolType.CreateAnnot)
|
|
|
{
|
|
|
if (!viewerTool.PDFViewer.GetIsShowStampMouse())
|
|
|
- {
|
|
|
+ {
|
|
|
// Annotation drawing only occurs if the mouse is not set to stamp/data application mode.// Annotation drawing only occurs if the mouse is not set to stamp/data application mode.
|
|
|
viewerTool.MoveDrawAnnot();
|
|
|
}
|
|
@@ -1744,12 +1811,14 @@ namespace ComPDFKit.Tool
|
|
|
if (createContentEditType != CPDFEditType.EditImage)
|
|
|
{
|
|
|
Cursor cursor = Cursors.Arrow;
|
|
|
+ MultiSelectedRect multiSelectedRect = CommonHelper.FindVisualChild<MultiSelectedRect>(viewerTool.PDFViewer.GetViewForTag(viewerTool.multiSelectedRectViewTag));
|
|
|
+
|
|
|
if (viewerTool.GetLastSelectedRect() != null)
|
|
|
{
|
|
|
if (editSelected)
|
|
|
{
|
|
|
viewerTool.DrawMoveTextEdit(viewerTool.GetLastSelectedRect(), clickEditSelected);
|
|
|
- if(clickEditSelected)
|
|
|
+ if (clickEditSelected)
|
|
|
cursor = Cursors.IBeam;
|
|
|
else
|
|
|
cursor = viewerTool.DrawMoveTest(viewerTool.GetLastSelectedRect());
|
|
@@ -1761,8 +1830,16 @@ namespace ComPDFKit.Tool
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- viewerTool.HideDrawSelectedMultiRect();
|
|
|
cursor = viewerTool.DrawMoveTest(viewerTool.GetLastSelectedRect());
|
|
|
+ if (multiSelectedRect == null || multiSelectedRect.Children.Count == 0)
|
|
|
+ {
|
|
|
+ //Selection of mobile drawing logic
|
|
|
+ if (e.mouseButtonEventArgs.LeftButton == MouseButtonState.Pressed)
|
|
|
+ {
|
|
|
+ viewerTool.DrawMoveFrameSelect();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
if (cursor == Cursors.Arrow && createContentEditType == CPDFEditType.EditText)
|
|
@@ -1774,6 +1851,35 @@ namespace ComPDFKit.Tool
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ Cursor cursor = Cursors.Arrow;
|
|
|
+ MultiSelectedRect multiSelectedRect = CommonHelper.FindVisualChild<MultiSelectedRect>(viewerTool.PDFViewer.GetViewForTag(viewerTool.multiSelectedRectViewTag));
|
|
|
+
|
|
|
+ if (viewerTool.GetLastSelectedRect() != null)
|
|
|
+ {
|
|
|
+ if (editSelected)
|
|
|
+ {
|
|
|
+ viewerTool.DrawMoveTextEdit(viewerTool.GetLastSelectedRect(), clickEditSelected);
|
|
|
+ if (clickEditSelected)
|
|
|
+ cursor = Cursors.IBeam;
|
|
|
+ else
|
|
|
+ cursor = viewerTool.DrawMoveTest(viewerTool.GetLastSelectedRect());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ cursor = viewerTool.DrawMoveTest(viewerTool.GetLastSelectedRect());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ cursor = viewerTool.DrawMoveTest(viewerTool.GetLastSelectedRect());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (cursor == Cursors.Arrow && createContentEditType == CPDFEditType.EditText)
|
|
|
+ {
|
|
|
+ cursor = Cursors.IBeam;
|
|
|
+ }
|
|
|
+ viewerTool.Cursor = cursor;
|
|
|
+ viewerTool.PDFViewer.Cursor = cursor;
|
|
|
//viewerTool.Cursor = Cursors.None;
|
|
|
//viewerTool.PDFViewer.Cursor = Cursors.None;
|
|
|
}
|
|
@@ -1874,7 +1980,7 @@ namespace ComPDFKit.Tool
|
|
|
else
|
|
|
{
|
|
|
viewerTool.MultipleClick();
|
|
|
- e.IsDrawing=true;
|
|
|
+ e.IsDrawing = true;
|
|
|
}
|
|
|
break;
|
|
|
case 2:
|
|
@@ -1940,7 +2046,7 @@ namespace ComPDFKit.Tool
|
|
|
if (list.Contains(e.annotType))
|
|
|
{
|
|
|
viewerTool.CleanSelectedRect();
|
|
|
- if (!e.IsMersured||!list.Contains(createAnnotType))
|
|
|
+ if (!e.IsMersured || !list.Contains(createAnnotType))
|
|
|
{
|
|
|
viewerTool.StartDrawEditAnnot();
|
|
|
}
|
|
@@ -1978,6 +2084,15 @@ namespace ComPDFKit.Tool
|
|
|
clickEditSelected = true;
|
|
|
switch ((e.mouseButtonEventArgs as MouseButtonEventArgs).ClickCount)
|
|
|
{
|
|
|
+ case 1:
|
|
|
+ if (viewerTool.GetIsCropMode())
|
|
|
+ {
|
|
|
+ //Preconditions for determining crop acquisition points
|
|
|
+ viewerTool.HandleTextSelectClick(viewerTool.GetLastSelectedRect(), true);
|
|
|
+ clickEditSelected = false;
|
|
|
+ MouseLeftButtonDownHandler?.Invoke(this, e);
|
|
|
+ }
|
|
|
+ break;
|
|
|
case 2:
|
|
|
viewerTool.HandleTextSelectClick(viewerTool.GetLastSelectedRect(), true);
|
|
|
clickEditSelected = false;
|
|
@@ -1996,8 +2111,19 @@ namespace ComPDFKit.Tool
|
|
|
viewerTool.HideDrawSelectedMultiRect();
|
|
|
if (viewerTool.GetLastSelectedRect() != null)
|
|
|
{
|
|
|
+ viewerTool.DrawEndFrameSelect();
|
|
|
Point point = Mouse.GetPosition(viewerTool);
|
|
|
- PointControlType pointControlType = viewerTool.GetLastSelectedRect().GetHitControlIndex(point);
|
|
|
+ PointControlType pointControlType = PointControlType.None;
|
|
|
+ if (viewerTool.GetIsCropMode())
|
|
|
+ {
|
|
|
+ //Crop acquisition point judgment
|
|
|
+ pointControlType = viewerTool.GetLastSelectedRect().GetHitCropControlIndex(point);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ pointControlType = viewerTool.GetLastSelectedRect().GetHitControlIndex(point);
|
|
|
+ }
|
|
|
+
|
|
|
EditAreaObject editAreaObject = viewerTool.GetEditAreaObjectForRect(viewerTool.GetLastSelectedRect());
|
|
|
if (pointControlType != PointControlType.None &&
|
|
|
(editAreaObject.cPDFEditArea.Type == CPDFEditType.EditImage || pointControlType != PointControlType.Body))
|
|
@@ -2027,12 +2153,22 @@ namespace ComPDFKit.Tool
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
- viewerTool.DrawStartTextEdit(viewerTool.GetLastSelectedRect());
|
|
|
+ if (e.mouseButtonEventArgs.LeftButton == MouseButtonState.Pressed)
|
|
|
+ {
|
|
|
+ viewerTool.DrawStartTextEdit(viewerTool.GetLastSelectedRect(), editAreaObject);
|
|
|
+ }
|
|
|
+
|
|
|
clickEditSelected = false;
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ //If it is multiple selection, do not create a new input box
|
|
|
+ MultiSelectedRect multiSelectedRect = CommonHelper.FindVisualChild<MultiSelectedRect>(viewerTool.PDFViewer.GetViewForTag(viewerTool.multiSelectedRectViewTag));
|
|
|
+ if (multiSelectedRect != null && multiSelectedRect.Children.Count > 0)
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
Point point = Mouse.GetPosition(viewerTool);
|
|
|
viewerTool.GetCPDFViewer().GetPointPageInfo(point, out int index, out Rect paintRect, out Rect pageBound);
|
|
|
if (index < 0)
|
|
@@ -2044,6 +2180,14 @@ namespace ComPDFKit.Tool
|
|
|
{
|
|
|
viewerTool.DrawTest(pageBound, index);
|
|
|
}
|
|
|
+ if (createContentEditType == CPDFEditType.None)
|
|
|
+ {
|
|
|
+ viewerTool.DrawFrameSelect();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ viewerTool.DrawEndFrameSelect();
|
|
|
+ }
|
|
|
clickEditSelected = false;
|
|
|
}
|
|
|
}
|