1676 lines
76 KiB
JavaScript
1676 lines
76 KiB
JavaScript
|
/*
|
|||
|
* (c) Copyright Ascensio System SIA 2010-2015
|
|||
|
*
|
|||
|
* This program is a free software product. You can redistribute it and/or
|
|||
|
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
|||
|
* version 3 as published by the Free Software Foundation. In accordance with
|
|||
|
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
|||
|
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
|||
|
* of any third-party rights.
|
|||
|
*
|
|||
|
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
|||
|
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
|||
|
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
|||
|
*
|
|||
|
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
|||
|
* EU, LV-1021.
|
|||
|
*
|
|||
|
* The interactive user interfaces in modified source and object code versions
|
|||
|
* of the Program must display Appropriate Legal Notices, as required under
|
|||
|
* Section 5 of the GNU AGPL version 3.
|
|||
|
*
|
|||
|
* Pursuant to Section 7(b) of the License you must retain the original Product
|
|||
|
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
|||
|
* grant you any rights under trademark law for use of our trademarks.
|
|||
|
*
|
|||
|
* All the Product's GUI elements, including illustrations and icon sets, as
|
|||
|
* well as technical writing content are licensed under the terms of the
|
|||
|
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
|||
|
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
|||
|
*
|
|||
|
*/
|
|||
|
var MOVE_DELTA = 1 / 100000;
|
|||
|
var SNAP_DISTANCE = 1.27;
|
|||
|
function StartAddNewShape(drawingObjects, preset) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.preset = preset;
|
|||
|
this.bStart = false;
|
|||
|
this.bMoved = false;
|
|||
|
this.pageIndex = null;
|
|||
|
this.startX = null;
|
|||
|
this.startY = null;
|
|||
|
}
|
|||
|
StartAddNewShape.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {
|
|||
|
if (this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_CURSOR) {
|
|||
|
return {
|
|||
|
objectId: null,
|
|||
|
bMarker: true
|
|||
|
};
|
|||
|
}
|
|||
|
this.pageIndex = pageIndex;
|
|||
|
this.startX = x;
|
|||
|
this.startY = y;
|
|||
|
this.drawingObjects.arrPreTrackObjects.length = 0;
|
|||
|
this.drawingObjects.arrPreTrackObjects.push(new NewShapeTrack(this.preset, x, y, this.drawingObjects.document.theme, null, null, null, pageIndex));
|
|||
|
this.bStart = true;
|
|||
|
this.drawingObjects.swapTrackObjects();
|
|||
|
return true;
|
|||
|
},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {
|
|||
|
if (this.bStart && e.IsLocked) {
|
|||
|
if (!this.bMoved && (Math.abs(this.startX - x) > MOVE_DELTA || Math.abs(this.startY - y) > MOVE_DELTA || this.pageIndex !== pageIndex)) {
|
|||
|
this.bMoved = true;
|
|||
|
}
|
|||
|
var tx, ty;
|
|||
|
if (this.pageIndex !== pageIndex) {
|
|||
|
var t = this.drawingObjects.drawingDocument.ConvertCoordsToAnotherPage(x, y, pageIndex, this.pageIndex);
|
|||
|
tx = t.X;
|
|||
|
ty = t.Y;
|
|||
|
} else {
|
|||
|
tx = x;
|
|||
|
ty = y;
|
|||
|
}
|
|||
|
this.drawingObjects.arrTrackObjects[0].track(e, tx, ty);
|
|||
|
this.drawingObjects.updateOverlay();
|
|||
|
}
|
|||
|
},
|
|||
|
onMouseUp: function (e, x, y, pageIndex) {
|
|||
|
if (this.bStart) {
|
|||
|
if (!this.bMoved && this instanceof StartAddNewShape) {
|
|||
|
var ext_x, ext_y;
|
|||
|
if (typeof SHAPE_ASPECTS[this.preset] === "number") {
|
|||
|
var _aspect = SHAPE_ASPECTS[this.preset];
|
|||
|
if (_aspect >= 1) {
|
|||
|
ext_y = 25.4;
|
|||
|
ext_x = ext_y * _aspect;
|
|||
|
} else {
|
|||
|
ext_x = 25.4;
|
|||
|
ext_y = ext_x / _aspect;
|
|||
|
}
|
|||
|
} else {
|
|||
|
ext_x = 25.4;
|
|||
|
ext_y = 25.4;
|
|||
|
}
|
|||
|
this.onMouseMove({
|
|||
|
IsLocked: true
|
|||
|
},
|
|||
|
this.startX + ext_x, this.startY + ext_y, this.pageIndex);
|
|||
|
}
|
|||
|
History.Create_NewPoint(historydescription_Document_AddNewShape);
|
|||
|
var bounds = this.drawingObjects.arrTrackObjects[0].getBounds();
|
|||
|
var shape = this.drawingObjects.arrTrackObjects[0].getShape(true, this.drawingObjects.drawingDocument);
|
|||
|
var drawing = new ParaDrawing(shape.spPr.xfrm.extX, shape.spPr.xfrm.extY, shape, this.drawingObjects.drawingDocument, this.drawingObjects.document, null);
|
|||
|
var nearest_pos = this.drawingObjects.document.Get_NearestPos(this.pageIndex, bounds.min_x, bounds.min_y, true, drawing);
|
|||
|
if (false === editor.isViewMode && nearest_pos && false === this.drawingObjects.document.Document_Is_SelectionLocked(changestype_None, {
|
|||
|
Type: changestype_2_Element_and_Type,
|
|||
|
Element: nearest_pos.Paragraph,
|
|||
|
CheckType: changestype_Paragraph_Content
|
|||
|
}) && false === editor.isViewMode) {
|
|||
|
drawing.Set_DrawingType(drawing_Anchor);
|
|||
|
drawing.Set_GraphicObject(shape);
|
|||
|
shape.setParent(drawing);
|
|||
|
drawing.Set_WrappingType(WRAPPING_TYPE_NONE);
|
|||
|
drawing.Set_Distance(3.2, 0, 3.2, 0);
|
|||
|
nearest_pos.Paragraph.Check_NearestPos(nearest_pos);
|
|||
|
nearest_pos.Page = this.pageIndex;
|
|||
|
drawing.Set_XYForAdd(shape.x, shape.y, nearest_pos, this.pageIndex);
|
|||
|
drawing.Add_ToDocument(nearest_pos, false);
|
|||
|
this.drawingObjects.resetSelection();
|
|||
|
shape.select(this.drawingObjects, this.pageIndex);
|
|||
|
this.drawingObjects.document.Recalculate();
|
|||
|
if (this.preset === "textRect") {
|
|||
|
this.drawingObjects.selection.textSelection = shape;
|
|||
|
shape.selectionSetStart(e, x, y, pageIndex);
|
|||
|
shape.selectionSetEnd(e, x, y, pageIndex);
|
|||
|
}
|
|||
|
} else {
|
|||
|
this.drawingObjects.document.Document_Undo();
|
|||
|
}
|
|||
|
}
|
|||
|
this.drawingObjects.clearTrackObjects();
|
|||
|
this.drawingObjects.updateOverlay();
|
|||
|
this.drawingObjects.changeCurrentState(new NullState(this.drawingObjects));
|
|||
|
editor.sync_StartAddShapeCallback(false);
|
|||
|
editor.sync_EndAddShape();
|
|||
|
}
|
|||
|
};
|
|||
|
function NullState(drawingObjects) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
}
|
|||
|
NullState.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex, bTextFlag) {
|
|||
|
var ret;
|
|||
|
var selection = this.drawingObjects.selection;
|
|||
|
var b_no_handle_selected = false;
|
|||
|
if (selection.wrapPolygonSelection) {
|
|||
|
b_no_handle_selected = true;
|
|||
|
var object_page_x, object_page_y;
|
|||
|
var coords = CheckCoordsNeedPage(x, y, pageIndex, selection.wrapPolygonSelection.selectStartPage, this.drawingObjects.drawingDocument);
|
|||
|
object_page_x = coords.x;
|
|||
|
object_page_y = coords.y;
|
|||
|
var hit_to_wrap_polygon = selection.wrapPolygonSelection.parent.hitToWrapPolygonPoint(object_page_x, object_page_y);
|
|||
|
var wrap_polygon = selection.wrapPolygonSelection.parent.wrappingPolygon;
|
|||
|
if (hit_to_wrap_polygon.hit) {
|
|||
|
if (this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_HANDLE) {
|
|||
|
if (hit_to_wrap_polygon.hitType === WRAP_HIT_TYPE_POINT) {
|
|||
|
if (!e.CtrlKey) {
|
|||
|
this.drawingObjects.changeCurrentState(new PreChangeWrapContour(this.drawingObjects, selection.wrapPolygonSelection, hit_to_wrap_polygon.pointNum));
|
|||
|
} else {
|
|||
|
if (wrap_polygon.relativeArrPoints.length > 3) {
|
|||
|
if (false === editor.isViewMode && false === this.drawingObjects.document.Document_Is_SelectionLocked(changestype_Drawing_Props, {
|
|||
|
Type: changestype_2_Element_and_Type,
|
|||
|
Element: selection.wrapPolygonSelection.parent.Get_ParentParagraph(),
|
|||
|
CheckType: changestype_Paragraph_Content
|
|||
|
})) {
|
|||
|
History.Create_NewPoint(historydescription_Document_EditWrapPolygon);
|
|||
|
var new_rel_array = [].concat(wrap_polygon.relativeArrPoints);
|
|||
|
new_rel_array.splice(hit_to_wrap_polygon.pointNum, 1);
|
|||
|
wrap_polygon.setEdited(true);
|
|||
|
wrap_polygon.setArrRelPoints(new_rel_array);
|
|||
|
this.drawingObjects.document.Recalculate();
|
|||
|
this.drawingObjects.updateOverlay();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
return true;
|
|||
|
} else {
|
|||
|
this.drawingObjects.changeCurrentState(new PreChangeWrapContourAddPoint(this.drawingObjects, selection.wrapPolygonSelection, hit_to_wrap_polygon.pointNum1, object_page_x, object_page_y));
|
|||
|
return true;
|
|||
|
}
|
|||
|
} else {
|
|||
|
return {
|
|||
|
objectId: selection.wrapPolygonSelection.Get_Id(),
|
|||
|
cursorType: "default"
|
|||
|
};
|
|||
|
}
|
|||
|
}
|
|||
|
} else {
|
|||
|
if (selection.groupSelection) {
|
|||
|
ret = handleSelectedObjects(this.drawingObjects, e, x, y, selection.groupSelection, pageIndex, true);
|
|||
|
if (ret) {
|
|||
|
return ret;
|
|||
|
}
|
|||
|
ret = handleFloatObjects(this.drawingObjects, selection.groupSelection.arrGraphicObjects, e, x, y, selection.groupSelection, pageIndex, true);
|
|||
|
if (ret) {
|
|||
|
return ret;
|
|||
|
}
|
|||
|
} else {
|
|||
|
if (selection.chartSelection) {}
|
|||
|
}
|
|||
|
}
|
|||
|
if (this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_HANDLE) {
|
|||
|
if (this.drawingObjects.checkNeedResetChartSelection(e, x, y, pageIndex, bTextFlag)) {
|
|||
|
this.drawingObjects.checkChartTextSelection();
|
|||
|
}
|
|||
|
this.drawingObjects.resetInternalSelection();
|
|||
|
if (e.ClickCount < 2) {
|
|||
|
this.drawingObjects.updateOverlay();
|
|||
|
}
|
|||
|
}
|
|||
|
if (!b_no_handle_selected) {
|
|||
|
ret = handleSelectedObjects(this.drawingObjects, e, x, y, null, pageIndex, true);
|
|||
|
if (ret) {
|
|||
|
return ret;
|
|||
|
}
|
|||
|
}
|
|||
|
var drawing_page;
|
|||
|
if (this.drawingObjects.document.CurPos.Type !== docpostype_HdrFtr) {
|
|||
|
drawing_page = this.drawingObjects.graphicPages[pageIndex];
|
|||
|
} else {
|
|||
|
drawing_page = this.drawingObjects.getHdrFtrObjectsByPageIndex(pageIndex);
|
|||
|
}
|
|||
|
ret = handleFloatObjects(this.drawingObjects, drawing_page.beforeTextObjects, e, x, y, null, pageIndex, true);
|
|||
|
if (ret) {
|
|||
|
return ret;
|
|||
|
}
|
|||
|
var no_shape_child_array = [];
|
|||
|
for (var i = 0; i < drawing_page.inlineObjects.length; ++i) {
|
|||
|
if (!drawing_page.inlineObjects[i].parent.isShapeChild()) {
|
|||
|
no_shape_child_array.push(drawing_page.inlineObjects[i]);
|
|||
|
}
|
|||
|
}
|
|||
|
ret = handleInlineObjects(this.drawingObjects, no_shape_child_array, e, x, y, pageIndex, true);
|
|||
|
if (ret) {
|
|||
|
return ret;
|
|||
|
}
|
|||
|
if (!bTextFlag) {
|
|||
|
ret = handleFloatObjects(this.drawingObjects, drawing_page.wrappingObjects, e, x, y, null, pageIndex, true);
|
|||
|
if (ret) {
|
|||
|
return ret;
|
|||
|
}
|
|||
|
ret = handleFloatObjects(this.drawingObjects, drawing_page.behindDocObjects, e, x, y, null, pageIndex, true);
|
|||
|
if (ret) {
|
|||
|
return ret;
|
|||
|
}
|
|||
|
}
|
|||
|
return null;
|
|||
|
},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {
|
|||
|
var text_object = getTargetTextObject(this.drawingObjects);
|
|||
|
if (text_object && e.IsLocked) {
|
|||
|
text_object.selectionSetEnd(e, x, y, pageIndex);
|
|||
|
}
|
|||
|
},
|
|||
|
onMouseUp: function (e, x, y, pageIndex) {}
|
|||
|
};
|
|||
|
function PreChangeAdjState(drawingObjects, majorObject) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.majorObject = majorObject;
|
|||
|
}
|
|||
|
PreChangeAdjState.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {
|
|||
|
this.drawingObjects.swapTrackObjects();
|
|||
|
this.drawingObjects.changeCurrentState(new ChangeAdjState(this.drawingObjects, this.majorObject));
|
|||
|
this.drawingObjects.OnMouseMove(e, x, y, pageIndex);
|
|||
|
},
|
|||
|
onMouseUp: function (e, x, y, pageIndex) {
|
|||
|
this.drawingObjects.clearPreTrackObjects();
|
|||
|
this.drawingObjects.changeCurrentState(new NullState(this.drawingObjects));
|
|||
|
}
|
|||
|
};
|
|||
|
function PreMoveInlineObject(drawingObjects, majorObject, isSelected, bInside) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.majorObject = majorObject;
|
|||
|
this.majorObjectIsSelected = isSelected;
|
|||
|
this.bInside = bInside;
|
|||
|
}
|
|||
|
PreMoveInlineObject.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {
|
|||
|
if (this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_CURSOR) {
|
|||
|
return {
|
|||
|
cursorType: "default",
|
|||
|
objectId: this.majorObject.Get_Id()
|
|||
|
};
|
|||
|
}
|
|||
|
},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {
|
|||
|
if (!e.IsLocked) {
|
|||
|
this.onMouseUp(e, x, y, pageIndex);
|
|||
|
return;
|
|||
|
}
|
|||
|
this.drawingObjects.changeCurrentState(new MoveInlineObject(this.drawingObjects, this.majorObject));
|
|||
|
this.drawingObjects.OnMouseMove(e, x, y, pageIndex);
|
|||
|
},
|
|||
|
onMouseUp: function (e, x, y, pageIndex) {
|
|||
|
return handleMouseUpPreMoveState(this.drawingObjects, e, x, y, pageIndex, true);
|
|||
|
}
|
|||
|
};
|
|||
|
function MoveInlineObject(drawingObjects, majorObject) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.majorObject = majorObject;
|
|||
|
this.InlinePos = null;
|
|||
|
}
|
|||
|
MoveInlineObject.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {
|
|||
|
if (this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_CURSOR) {
|
|||
|
return {
|
|||
|
cursorType: "default",
|
|||
|
objectId: this.majorObject.Get_Id()
|
|||
|
};
|
|||
|
}
|
|||
|
},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {
|
|||
|
if (!e.IsLocked) {
|
|||
|
this.onMouseUp(e, x, y, pageIndex);
|
|||
|
return;
|
|||
|
}
|
|||
|
this.InlinePos = this.drawingObjects.document.Get_NearestPos(pageIndex, x, y, false, this.majorObject.parent);
|
|||
|
this.InlinePos.Page = pageIndex;
|
|||
|
this.drawingObjects.updateOverlay();
|
|||
|
},
|
|||
|
onMouseUp: function (e, x, y, pageIndex) {
|
|||
|
var check_paragraphs = [];
|
|||
|
if (!e.CtrlKey) {
|
|||
|
var parent_paragraph = this.majorObject.parent.checkShapeChildAndGetTopParagraph();
|
|||
|
check_paragraphs.push(parent_paragraph);
|
|||
|
var new_check_paragraph = this.majorObject.parent.checkShapeChildAndGetTopParagraph(this.InlinePos.Paragraph);
|
|||
|
if (parent_paragraph !== new_check_paragraph) {
|
|||
|
check_paragraphs.push(new_check_paragraph);
|
|||
|
}
|
|||
|
if (false === editor.isViewMode && false === this.drawingObjects.document.Document_Is_SelectionLocked(changestype_Drawing_Props, {
|
|||
|
Type: changestype_2_ElementsArray_and_Type,
|
|||
|
Elements: check_paragraphs,
|
|||
|
CheckType: changestype_Paragraph_Content
|
|||
|
})) {
|
|||
|
History.Create_NewPoint(historydescription_Document_MoveInlineObject);
|
|||
|
this.majorObject.parent.OnEnd_MoveInline(this.InlinePos);
|
|||
|
}
|
|||
|
} else {
|
|||
|
check_paragraphs.push(this.majorObject.parent.checkShapeChildAndGetTopParagraph(this.InlinePos.Paragraph));
|
|||
|
if (false === editor.isViewMode && false === this.drawingObjects.document.Document_Is_SelectionLocked(changestype_Drawing_Props, {
|
|||
|
Type: changestype_2_ElementsArray_and_Type,
|
|||
|
Elements: check_paragraphs,
|
|||
|
CheckType: changestype_Paragraph_Content
|
|||
|
})) {
|
|||
|
History.Create_NewPoint(historydescription_Document_CopyAndMoveInlineObject);
|
|||
|
var new_para_drawing = new ParaDrawing(this.majorObject.parent.W, this.majorObject.parent.H, null, this.drawingObjects.drawingDocument, null, null);
|
|||
|
var drawing = this.majorObject.copy();
|
|||
|
drawing.setParent(new_para_drawing);
|
|||
|
new_para_drawing.Set_GraphicObject(drawing);
|
|||
|
new_para_drawing.Add_ToDocument(this.InlinePos, false);
|
|||
|
this.drawingObjects.resetSelection();
|
|||
|
this.drawingObjects.selectObject(drawing, pageIndex);
|
|||
|
this.drawingObjects.document.Recalculate();
|
|||
|
}
|
|||
|
}
|
|||
|
this.drawingObjects.changeCurrentState(new NullState(this.drawingObjects));
|
|||
|
}
|
|||
|
};
|
|||
|
function ChangeAdjState(drawingObjects, majorObject) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.majorObject = majorObject;
|
|||
|
}
|
|||
|
ChangeAdjState.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {
|
|||
|
if (!e.IsLocked) {
|
|||
|
this.onMouseUp(e, x, y, pageIndex);
|
|||
|
return;
|
|||
|
}
|
|||
|
var t = CheckCoordsNeedPage(x, y, pageIndex, this.majorObject.selectStartPage, this.drawingObjects.drawingDocument);
|
|||
|
this.drawingObjects.arrTrackObjects[0].track(t.x, t.y);
|
|||
|
this.drawingObjects.updateOverlay();
|
|||
|
},
|
|||
|
onMouseUp: function (e, x, y, pageIndex) {
|
|||
|
if (editor.isViewMode === false) {
|
|||
|
var bounds = this.drawingObjects.arrTrackObjects[0].getBounds();
|
|||
|
var check_paragraphs = [];
|
|||
|
var nearest_pos = this.drawingObjects.document.Get_NearestPos(this.majorObject.parent.pageIndex, bounds.min_x, bounds.min_y, !this.majorObject.parent.Is_Inline(), this.majorObject.parent);
|
|||
|
check_paragraphs.push(nearest_pos.Paragraph);
|
|||
|
var parent_paragraph = this.majorObject.parent.Get_ParentParagraph();
|
|||
|
if (isRealObject(parent_paragraph) && parent_paragraph !== nearest_pos.Paragraph) {
|
|||
|
check_paragraphs.push(parent_paragraph);
|
|||
|
}
|
|||
|
if (false === this.drawingObjects.document.Document_Is_SelectionLocked(changestype_Drawing_Props, {
|
|||
|
Type: changestype_2_ElementsArray_and_Type,
|
|||
|
Elements: check_paragraphs,
|
|||
|
CheckType: changestype_Paragraph_Content
|
|||
|
})) {
|
|||
|
History.Create_NewPoint(historydescription_Document_DrawingChangeAdj);
|
|||
|
this.drawingObjects.arrTrackObjects[0].trackEnd();
|
|||
|
if (!this.majorObject.parent.Is_Inline()) {
|
|||
|
this.majorObject.parent.OnEnd_ChangeFlow(this.majorObject.x, this.majorObject.y, this.majorObject.parent.pageIndex, this.majorObject.extX, this.majorObject.extY, nearest_pos, true, true);
|
|||
|
} else {
|
|||
|
this.majorObject.parent.OnEnd_ResizeInline(bounds.max_x - bounds.min_x, bounds.max_y - bounds.min_y);
|
|||
|
}
|
|||
|
this.drawingObjects.document.Recalculate();
|
|||
|
}
|
|||
|
}
|
|||
|
this.drawingObjects.clearTrackObjects();
|
|||
|
this.drawingObjects.updateOverlay();
|
|||
|
this.drawingObjects.changeCurrentState(new NullState(this.drawingObjects));
|
|||
|
}
|
|||
|
};
|
|||
|
function PreRotateState(drawingObjects, majorObject) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.majorObject = majorObject;
|
|||
|
}
|
|||
|
PreRotateState.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {
|
|||
|
if (!e.IsLocked) {
|
|||
|
this.onMouseUp(e, x, y, pageIndex);
|
|||
|
return;
|
|||
|
}
|
|||
|
this.drawingObjects.swapTrackObjects();
|
|||
|
this.drawingObjects.changeCurrentState(new RotateState(this.drawingObjects, this.majorObject));
|
|||
|
this.drawingObjects.OnMouseMove(e, x, y, pageIndex);
|
|||
|
},
|
|||
|
onMouseUp: function (e, x, y, pageIndex) {
|
|||
|
this.drawingObjects.clearPreTrackObjects();
|
|||
|
this.drawingObjects.changeCurrentState(new NullState(this.drawingObjects));
|
|||
|
}
|
|||
|
};
|
|||
|
function RotateState(drawingObjects, majorObject) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.majorObject = majorObject;
|
|||
|
}
|
|||
|
RotateState.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {
|
|||
|
if (!e.IsLocked) {
|
|||
|
this.onMouseUp(e, x, y, pageIndex);
|
|||
|
return;
|
|||
|
}
|
|||
|
var coords = CheckCoordsNeedPage(x, y, pageIndex, this.majorObject.selectStartPage, this.drawingObjects.drawingDocument);
|
|||
|
this.drawingObjects.handleRotateTrack(e, coords.x, coords.y);
|
|||
|
},
|
|||
|
onMouseUp: function (e, x, y, pageIndex) {
|
|||
|
if (editor.isViewMode === false) {
|
|||
|
var bounds;
|
|||
|
if (this.majorObject.parent.Is_Inline()) {
|
|||
|
if (this.drawingObjects.document.Document_Is_SelectionLocked(changestype_Drawing_Props, {
|
|||
|
Type: changestype_2_Element_and_Type,
|
|||
|
Element: this.majorObject.parent.checkShapeChildAndGetTopParagraph(),
|
|||
|
CheckType: changestype_Paragraph_Content
|
|||
|
}) === false) {
|
|||
|
History.Create_NewPoint(historydescription_Document_RotateInlineDrawing);
|
|||
|
bounds = this.drawingObjects.arrTrackObjects[0].getBounds();
|
|||
|
this.drawingObjects.arrTrackObjects[0].trackEnd(true);
|
|||
|
this.majorObject.parent.OnEnd_ResizeInline(bounds.max_x - bounds.min_x, bounds.max_y - bounds.min_y);
|
|||
|
}
|
|||
|
} else {
|
|||
|
var arr_bounds = [];
|
|||
|
var arr_nearest_pos = [];
|
|||
|
var check_paragraphs = [];
|
|||
|
var nearest_pos;
|
|||
|
var i, j, page_index;
|
|||
|
for (i = 0; i < this.drawingObjects.arrTrackObjects.length; ++i) {
|
|||
|
bounds = this.drawingObjects.arrTrackObjects[i].getBounds();
|
|||
|
arr_bounds.push(bounds);
|
|||
|
page_index = isRealNumber(this.drawingObjects.arrTrackObjects[i].pageIndex) ? this.drawingObjects.arrTrackObjects[i].pageIndex : this.drawingObjects.arrTrackObjects[i].originalObject.parent.pageIndex;
|
|||
|
nearest_pos = this.drawingObjects.document.Get_NearestPos(page_index, bounds.min_x, bounds.min_y, true, this.drawingObjects.arrTrackObjects[i].originalObject.parent);
|
|||
|
arr_nearest_pos.push(nearest_pos);
|
|||
|
for (j = 0; j < check_paragraphs.length; ++j) {
|
|||
|
if (check_paragraphs[j] === nearest_pos.Paragraph) {
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
if (j === check_paragraphs.length) {
|
|||
|
check_paragraphs.push(nearest_pos.Paragraph);
|
|||
|
}
|
|||
|
}
|
|||
|
var arr_parent_paragraphs = [];
|
|||
|
if (this instanceof RotateState) {
|
|||
|
check_paragraphs.length = 0;
|
|||
|
}
|
|||
|
if (! (e.CtrlKey && this instanceof MoveState)) {
|
|||
|
for (i = 0; i < this.drawingObjects.arrTrackObjects.length; ++i) {
|
|||
|
if (this.drawingObjects.arrTrackObjects[i].originalObject && this.drawingObjects.arrTrackObjects[i].originalObject.parent) {
|
|||
|
var paragraph = this.drawingObjects.arrTrackObjects[i].originalObject.parent.Get_ParentParagraph();
|
|||
|
for (j = 0; j < check_paragraphs.length; ++j) {
|
|||
|
if (check_paragraphs[j] === paragraph) {
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
if (j === check_paragraphs.length) {
|
|||
|
check_paragraphs.push(paragraph);
|
|||
|
}
|
|||
|
arr_parent_paragraphs.push(paragraph);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
if (false === editor.isViewMode && false === this.drawingObjects.document.Document_Is_SelectionLocked(changestype_Drawing_Props, {
|
|||
|
Type: changestype_2_ElementsArray_and_Type,
|
|||
|
Elements: check_paragraphs,
|
|||
|
CheckType: changestype_Paragraph_Content
|
|||
|
})) {
|
|||
|
if (! (e.CtrlKey && this instanceof MoveState)) {
|
|||
|
History.Create_NewPoint(historydescription_Document_RotateFlowDrawingNoCtrl);
|
|||
|
for (i = 0; i < this.drawingObjects.arrTrackObjects.length; ++i) {
|
|||
|
bounds = arr_bounds[i];
|
|||
|
this.drawingObjects.arrTrackObjects[i].trackEnd(true);
|
|||
|
var original = this.drawingObjects.arrTrackObjects[i].originalObject;
|
|||
|
original.parent.Update_Size(bounds.extX, bounds.extY);
|
|||
|
arr_nearest_pos[i].Paragraph.Check_NearestPos(arr_nearest_pos[i]);
|
|||
|
original.parent.Remove_FromDocument(true);
|
|||
|
original.parent.Set_XYForAdd(bounds.posX, bounds.posY, arr_nearest_pos[i], original.selectStartPage);
|
|||
|
}
|
|||
|
if (! (this instanceof RotateState || this instanceof ResizeState)) {
|
|||
|
for (i = 0; i < this.drawingObjects.arrTrackObjects.length; ++i) {
|
|||
|
this.drawingObjects.arrTrackObjects[i].originalObject.parent.Add_ToDocument2(arr_nearest_pos[i].Paragraph);
|
|||
|
}
|
|||
|
} else {
|
|||
|
for (i = 0; i < this.drawingObjects.arrTrackObjects.length; ++i) {
|
|||
|
this.drawingObjects.arrTrackObjects[i].originalObject.parent.Set_Props(new CImgProperty({
|
|||
|
PositionH: {
|
|||
|
RelativeFrom: c_oAscRelativeFromH.Page,
|
|||
|
UseAlign: false,
|
|||
|
Align: undefined,
|
|||
|
Value: arr_bounds[i].posX
|
|||
|
},
|
|||
|
PositionV: {
|
|||
|
RelativeFrom: c_oAscRelativeFromV.Page,
|
|||
|
UseAlign: false,
|
|||
|
Align: undefined,
|
|||
|
Value: arr_bounds[i].posY
|
|||
|
}
|
|||
|
}));
|
|||
|
this.drawingObjects.arrTrackObjects[i].originalObject.parent.Add_ToDocument2(arr_parent_paragraphs[i]);
|
|||
|
}
|
|||
|
}
|
|||
|
} else {
|
|||
|
History.Create_NewPoint(historydescription_Document_RotateFlowDrawingCtrl);
|
|||
|
this.drawingObjects.resetSelection();
|
|||
|
var arr_para_drawings = [],
|
|||
|
para_drawing;
|
|||
|
for (i = 0; i < this.drawingObjects.arrTrackObjects.length; ++i) {
|
|||
|
para_drawing = this.drawingObjects.arrTrackObjects[i].originalObject.parent.Copy();
|
|||
|
para_drawing.Set_GraphicObject(this.drawingObjects.arrTrackObjects[i].originalObject.copy());
|
|||
|
para_drawing.GraphicObj.setParent(para_drawing);
|
|||
|
bounds = arr_bounds[i];
|
|||
|
para_drawing.Set_XYForAdd(bounds.posX, bounds.posY, arr_nearest_pos[i], pageIndex);
|
|||
|
arr_para_drawings.push(para_drawing);
|
|||
|
this.drawingObjects.selectObject(para_drawing.GraphicObj, pageIndex);
|
|||
|
}
|
|||
|
for (i = 0; i < this.drawingObjects.arrTrackObjects.length; ++i) {
|
|||
|
para_drawing = arr_para_drawings[i];
|
|||
|
para_drawing.Add_ToDocument(arr_nearest_pos[i], false);
|
|||
|
}
|
|||
|
}
|
|||
|
this.drawingObjects.document.Recalculate();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
this.drawingObjects.changeCurrentState(new NullState(this.drawingObjects));
|
|||
|
this.drawingObjects.clearTrackObjects();
|
|||
|
this.drawingObjects.updateOverlay();
|
|||
|
}
|
|||
|
};
|
|||
|
function PreResizeState(drawingObjects, majorObject, cardDirection) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.majorObject = majorObject;
|
|||
|
this.cardDirection = cardDirection;
|
|||
|
this.handleNum = this.majorObject.getNumByCardDirection(cardDirection);
|
|||
|
}
|
|||
|
PreResizeState.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {
|
|||
|
if (!e.IsLocked) {
|
|||
|
this.onMouseUp(e, x, y, pageIndex);
|
|||
|
return;
|
|||
|
}
|
|||
|
this.drawingObjects.swapTrackObjects();
|
|||
|
this.drawingObjects.changeCurrentState(new ResizeState(this.drawingObjects, this.majorObject, this.handleNum));
|
|||
|
this.drawingObjects.OnMouseMove(e, x, y, pageIndex);
|
|||
|
},
|
|||
|
onMouseUp: function (e, x, y, pageIndex) {
|
|||
|
this.drawingObjects.clearPreTrackObjects();
|
|||
|
this.drawingObjects.changeCurrentState(new NullState(this.drawingObjects));
|
|||
|
}
|
|||
|
};
|
|||
|
function ResizeState(drawingObjects, majorObject, handleNum) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.majorObject = majorObject;
|
|||
|
this.handleNum = handleNum;
|
|||
|
}
|
|||
|
ResizeState.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {
|
|||
|
if (!e.IsLocked) {
|
|||
|
this.onMouseUp(e, x, y, pageIndex);
|
|||
|
return;
|
|||
|
}
|
|||
|
var coords = CheckCoordsNeedPage(x, y, pageIndex, this.majorObject.selectStartPage, this.drawingObjects.drawingDocument);
|
|||
|
var resize_coef = this.majorObject.getResizeCoefficients(this.handleNum, coords.x, coords.y);
|
|||
|
this.drawingObjects.trackResizeObjects(resize_coef.kd1, resize_coef.kd2, e);
|
|||
|
this.drawingObjects.updateOverlay();
|
|||
|
},
|
|||
|
onMouseUp: RotateState.prototype.onMouseUp
|
|||
|
};
|
|||
|
function PreMoveState(drawingObjects, startX, startY, shift, ctrl, majorObject, majorObjectIsSelected, bInside) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.majorObject = majorObject;
|
|||
|
this.startX = startX;
|
|||
|
this.startY = startY;
|
|||
|
this.shift = shift;
|
|||
|
this.ctrl = ctrl;
|
|||
|
this.majorObjectIsSelected = majorObjectIsSelected;
|
|||
|
this.bInside = bInside;
|
|||
|
}
|
|||
|
PreMoveState.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {
|
|||
|
if (!e.IsLocked) {
|
|||
|
this.onMouseUp(e, x, y, pageIndex);
|
|||
|
return;
|
|||
|
}
|
|||
|
if (Math.abs(this.startX - x) > MOVE_DELTA || Math.abs(this.startY - y) > MOVE_DELTA || pageIndex !== this.majorObject.parent.pageIndex) {
|
|||
|
this.drawingObjects.swapTrackObjects();
|
|||
|
this.drawingObjects.changeCurrentState(new MoveState(this.drawingObjects, this.majorObject, this.startX, this.startY));
|
|||
|
this.drawingObjects.OnMouseMove(e, x, y, pageIndex);
|
|||
|
}
|
|||
|
},
|
|||
|
onMouseUp: function (e, x, y, pageIndex) {
|
|||
|
return handleMouseUpPreMoveState(this.drawingObjects, e, x, y, pageIndex, true);
|
|||
|
}
|
|||
|
};
|
|||
|
function MoveState(drawingObjects, majorObject, startX, startY) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.majorObject = majorObject;
|
|||
|
this.startX = startX;
|
|||
|
this.startY = startY;
|
|||
|
}
|
|||
|
MoveState.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {
|
|||
|
if (!e.IsLocked) {
|
|||
|
this.onMouseUp(e, x, y, pageIndex);
|
|||
|
return;
|
|||
|
}
|
|||
|
var _arr_track_objects = this.drawingObjects.arrTrackObjects;
|
|||
|
var _objects_count = _arr_track_objects.length;
|
|||
|
var _object_index;
|
|||
|
var result_x, result_y;
|
|||
|
if (!e.ShiftKey) {
|
|||
|
result_x = x;
|
|||
|
result_y = y;
|
|||
|
} else {
|
|||
|
var abs_dist_x = Math.abs(this.startX - x);
|
|||
|
var abs_dist_y = Math.abs(this.startY - y);
|
|||
|
if (abs_dist_x > abs_dist_y) {
|
|||
|
result_x = x;
|
|||
|
result_y = this.startY;
|
|||
|
} else {
|
|||
|
result_x = this.startX;
|
|||
|
result_y = y;
|
|||
|
}
|
|||
|
}
|
|||
|
var t = CheckCoordsNeedPage(x, y, pageIndex, this.majorObject.selectStartPage, this.drawingObjects.drawingDocument);
|
|||
|
var startPage = this.drawingObjects.graphicPages[this.majorObject.selectStartPage];
|
|||
|
var startPos = {
|
|||
|
x: this.startX,
|
|||
|
y: this.startY
|
|||
|
};
|
|||
|
var start_arr = startPage.beforeTextObjects.concat(startPage.wrappingObjects, startPage.inlineObjects, startPage.behindDocObjects);
|
|||
|
var min_dx = null,
|
|||
|
min_dy = null;
|
|||
|
var dx, dy;
|
|||
|
var snap_x = null,
|
|||
|
snap_y = null;
|
|||
|
var snapHorArray = [],
|
|||
|
snapVerArray = [];
|
|||
|
var page = this.drawingObjects.document.Pages[pageIndex];
|
|||
|
snapHorArray.push(page.Margins.Left);
|
|||
|
snapHorArray.push(page.Margins.Right);
|
|||
|
snapHorArray.push(page.Width / 2);
|
|||
|
snapVerArray.push(page.Margins.Top);
|
|||
|
snapVerArray.push(page.Margins.Bottom);
|
|||
|
snapVerArray.push(page.Height / 2);
|
|||
|
if (result_x === this.startX) {
|
|||
|
min_dx = 0;
|
|||
|
} else {
|
|||
|
for (var track_index = 0; track_index < _arr_track_objects.length; ++track_index) {
|
|||
|
var cur_track_original_shape = _arr_track_objects[track_index].originalObject;
|
|||
|
var trackSnapArrayX = cur_track_original_shape.snapArrayX;
|
|||
|
var curDX = result_x - startPos.x;
|
|||
|
for (snap_index = 0; snap_index < trackSnapArrayX.length; ++snap_index) {
|
|||
|
var snap_obj = GetMinSnapDistanceXObjectByArrays(trackSnapArrayX[snap_index] + curDX, snapHorArray);
|
|||
|
if (isRealObject(snap_obj)) {
|
|||
|
dx = snap_obj.dist;
|
|||
|
if (dx !== null) {
|
|||
|
if (min_dx === null) {
|
|||
|
min_dx = dx;
|
|||
|
snap_x = snap_obj.pos;
|
|||
|
} else {
|
|||
|
if (Math.abs(min_dx) > Math.abs(dx)) {
|
|||
|
min_dx = dx;
|
|||
|
snap_x = snap_obj.pos;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
if (start_arr.length > 0) {
|
|||
|
for (var snap_index = 0; snap_index < trackSnapArrayX.length; ++snap_index) {
|
|||
|
var snap_obj = GetMinSnapDistanceXObject(trackSnapArrayX[snap_index] + curDX, start_arr);
|
|||
|
if (isRealObject(snap_obj)) {
|
|||
|
dx = snap_obj.dist;
|
|||
|
if (dx !== null) {
|
|||
|
if (min_dx === null) {
|
|||
|
snap_x = snap_obj.pos;
|
|||
|
min_dx = dx;
|
|||
|
} else {
|
|||
|
if (Math.abs(min_dx) > Math.abs(dx)) {
|
|||
|
min_dx = dx;
|
|||
|
snap_x = snap_obj.pos;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
if (result_y === this.startY) {
|
|||
|
min_dy = 0;
|
|||
|
} else {
|
|||
|
for (track_index = 0; track_index < _arr_track_objects.length; ++track_index) {
|
|||
|
cur_track_original_shape = _arr_track_objects[track_index].originalObject;
|
|||
|
var trackSnapArrayY = cur_track_original_shape.snapArrayY;
|
|||
|
var curDY = result_y - startPos.y;
|
|||
|
for (snap_index = 0; snap_index < trackSnapArrayY.length; ++snap_index) {
|
|||
|
var snap_obj = GetMinSnapDistanceYObjectByArrays(trackSnapArrayY[snap_index] + curDY, snapVerArray);
|
|||
|
if (isRealObject(snap_obj)) {
|
|||
|
dy = snap_obj.dist;
|
|||
|
if (dy !== null) {
|
|||
|
if (min_dy === null) {
|
|||
|
min_dy = dy;
|
|||
|
snap_y = snap_obj.pos;
|
|||
|
} else {
|
|||
|
if (Math.abs(min_dy) > Math.abs(dy)) {
|
|||
|
min_dy = dy;
|
|||
|
snap_y = snap_obj.pos;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
if (start_arr.length > 0) {
|
|||
|
for (snap_index = 0; snap_index < trackSnapArrayY.length; ++snap_index) {
|
|||
|
var snap_obj = GetMinSnapDistanceYObject(trackSnapArrayY[snap_index] + curDY, start_arr);
|
|||
|
if (isRealObject(snap_obj)) {
|
|||
|
dy = snap_obj.dist;
|
|||
|
if (dy !== null) {
|
|||
|
if (min_dy === null) {
|
|||
|
min_dy = dy;
|
|||
|
snap_y = snap_obj.pos;
|
|||
|
} else {
|
|||
|
if (Math.abs(min_dy) > Math.abs(dy)) {
|
|||
|
min_dy = dy;
|
|||
|
snap_y = snap_obj.pos;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
if (min_dx === null || Math.abs(min_dx) > SNAP_DISTANCE) {
|
|||
|
min_dx = 0;
|
|||
|
} else {
|
|||
|
if (isRealNumber(snap_x)) {
|
|||
|
this.drawingObjects.drawingDocument.DrawVerAnchor(pageIndex, snap_x);
|
|||
|
}
|
|||
|
}
|
|||
|
if (min_dy === null || Math.abs(min_dy) > SNAP_DISTANCE) {
|
|||
|
min_dy = 0;
|
|||
|
} else {
|
|||
|
if (isRealNumber(snap_y)) {
|
|||
|
this.drawingObjects.drawingDocument.DrawHorAnchor(pageIndex, snap_y);
|
|||
|
}
|
|||
|
}
|
|||
|
for (_object_index = 0; _object_index < _objects_count; ++_object_index) {
|
|||
|
_arr_track_objects[_object_index].track(result_x - this.startX + min_dx, result_y - this.startY + min_dy, pageIndex);
|
|||
|
}
|
|||
|
this.drawingObjects.updateOverlay();
|
|||
|
},
|
|||
|
onMouseUp: RotateState.prototype.onMouseUp
|
|||
|
};
|
|||
|
function PreMoveInGroupState(drawingObjects, group, startX, startY, ShiftKey, CtrlKey, majorObject, majorObjectIsSelected) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.group = group;
|
|||
|
this.startX = startX;
|
|||
|
this.startY = startY;
|
|||
|
this.ShiftKey = ShiftKey;
|
|||
|
this.CtrlKey = CtrlKey;
|
|||
|
this.majorObject = majorObject;
|
|||
|
this.majorObjectIsSelected = majorObjectIsSelected;
|
|||
|
}
|
|||
|
PreMoveInGroupState.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {
|
|||
|
if (!e.IsLocked) {
|
|||
|
this.onMouseUp(e, x, y, pageIndex);
|
|||
|
return;
|
|||
|
}
|
|||
|
if (Math.abs(this.startX - x) > MOVE_DELTA || Math.abs(this.startY - y) > MOVE_DELTA || pageIndex !== this.group.parent.pageIndex) {
|
|||
|
this.drawingObjects.swapTrackObjects();
|
|||
|
this.drawingObjects.changeCurrentState(new MoveInGroupState(this.drawingObjects, this.majorObject, this.group, this.startX, this.startY));
|
|||
|
this.drawingObjects.OnMouseMove(e, x, y, pageIndex);
|
|||
|
}
|
|||
|
},
|
|||
|
onMouseUp: function (e, x, y, pageIndex) {
|
|||
|
this.drawingObjects.clearPreTrackObjects();
|
|||
|
this.drawingObjects.changeCurrentState(new NullState(this.drawingObjects));
|
|||
|
}
|
|||
|
};
|
|||
|
function MoveInGroupState(drawingObjects, majorObject, group, startX, startY) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.majorObject = majorObject;
|
|||
|
this.group = group;
|
|||
|
this.startX = startX;
|
|||
|
this.startY = startY;
|
|||
|
}
|
|||
|
MoveInGroupState.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {},
|
|||
|
onMouseMove: MoveState.prototype.onMouseMove,
|
|||
|
onMouseUp: function (e, x, y, pageIndex) {
|
|||
|
History.Create_NewPoint(historydescription_Document_MoveInGroup);
|
|||
|
var old_x = this.group.bounds.x;
|
|||
|
var old_y = this.group.bounds.y;
|
|||
|
var i;
|
|||
|
var tracks = this.drawingObjects.arrTrackObjects;
|
|||
|
if (this instanceof MoveInGroupState && e.CtrlKey) {
|
|||
|
this.group.resetSelection();
|
|||
|
for (i = 0; i < tracks.length; ++i) {
|
|||
|
var copy = tracks[i].originalObject.copy();
|
|||
|
copy.setGroup(tracks[i].originalObject.group);
|
|||
|
copy.group.addToSpTree(copy.group.length, copy);
|
|||
|
tracks[i].originalObject = copy;
|
|||
|
tracks[i].trackEnd(true);
|
|||
|
this.group.selectObject(copy, 0);
|
|||
|
}
|
|||
|
} else {
|
|||
|
for (i = 0; i < this.drawingObjects.arrTrackObjects.length; ++i) {
|
|||
|
this.drawingObjects.arrTrackObjects[i].trackEnd(true);
|
|||
|
}
|
|||
|
}
|
|||
|
this.group.updateCoordinatesAfterInternalResize();
|
|||
|
this.group.recalculate();
|
|||
|
var bounds = this.group.bounds;
|
|||
|
var check_paragraphs = [];
|
|||
|
check_paragraphs.push(this.group.parent.Get_ParentParagraph());
|
|||
|
var posX = this.group.spPr.xfrm.offX;
|
|||
|
var posY = this.group.spPr.xfrm.offY;
|
|||
|
this.group.spPr.xfrm.setOffX(0);
|
|||
|
this.group.spPr.xfrm.setOffY(0);
|
|||
|
if (this.group.parent.Is_Inline()) {
|
|||
|
this.group.parent.OnEnd_ResizeInline(bounds.w, bounds.h);
|
|||
|
} else {
|
|||
|
var nearest_pos = this.drawingObjects.document.Get_NearestPos(this.group.parent.pageIndex, this.group.parent.X + (bounds.x - old_x), this.group.parent.Y + (bounds.y - old_y), true, this.group.parent);
|
|||
|
if (nearest_pos.Paragraph !== check_paragraphs[0]) {
|
|||
|
check_paragraphs.push(nearest_pos.Paragraph);
|
|||
|
}
|
|||
|
this.group.parent.OnEnd_ChangeFlow(this.group.posX + posX, this.group.posY + posY, this.group.parent.pageIndex, this.group.spPr.xfrm.extX, this.group.spPr.xfrm.extY, nearest_pos, true, false);
|
|||
|
}
|
|||
|
if (false === editor.isViewMode && false === this.drawingObjects.document.Document_Is_SelectionLocked(changestype_Drawing_Props, {
|
|||
|
Type: changestype_2_ElementsArray_and_Type,
|
|||
|
Elements: check_paragraphs,
|
|||
|
CheckType: changestype_Paragraph_Content
|
|||
|
})) {
|
|||
|
this.drawingObjects.document.Recalculate();
|
|||
|
} else {
|
|||
|
this.drawingObjects.document.Document_Undo();
|
|||
|
}
|
|||
|
this.drawingObjects.clearTrackObjects();
|
|||
|
this.drawingObjects.changeCurrentState(new NullState(this.drawingObjects));
|
|||
|
}
|
|||
|
};
|
|||
|
function PreRotateInGroupState(drawingObjects, group, majorObject) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.group = group;
|
|||
|
this.majorObject = majorObject;
|
|||
|
}
|
|||
|
PreRotateInGroupState.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {
|
|||
|
if (!e.IsLocked) {
|
|||
|
this.onMouseUp(e, x, y, pageIndex);
|
|||
|
return;
|
|||
|
}
|
|||
|
this.drawingObjects.swapTrackObjects();
|
|||
|
this.drawingObjects.changeCurrentState(new RotateInGroupState(this.drawingObjects, this.group, this.majorObject));
|
|||
|
},
|
|||
|
onMouseUp: PreMoveInGroupState.prototype.onMouseUp
|
|||
|
};
|
|||
|
function RotateInGroupState(drawingObjects, group, majorObject) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.group = group;
|
|||
|
this.majorObject = majorObject;
|
|||
|
}
|
|||
|
RotateInGroupState.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {},
|
|||
|
onMouseMove: RotateState.prototype.onMouseMove,
|
|||
|
onMouseUp: MoveInGroupState.prototype.onMouseUp
|
|||
|
};
|
|||
|
function PreResizeInGroupState(drawingObjects, group, majorObject, cardDirection) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.group = group;
|
|||
|
this.majorObject = majorObject;
|
|||
|
this.cardDirection = cardDirection;
|
|||
|
}
|
|||
|
PreResizeInGroupState.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {
|
|||
|
this.drawingObjects.swapTrackObjects();
|
|||
|
this.drawingObjects.changeCurrentState(new ResizeInGroupState(this.drawingObjects, this.group, this.majorObject, this.majorObject.getNumByCardDirection(this.cardDirection), this.cardDirection));
|
|||
|
this.drawingObjects.OnMouseMove(e, x, y, pageIndex);
|
|||
|
},
|
|||
|
onMouseUp: PreMoveInGroupState.prototype.onMouseUp
|
|||
|
};
|
|||
|
function ResizeInGroupState(drawingObjects, group, majorObject, handleNum, cardDirection) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.group = group;
|
|||
|
this.majorObject = majorObject;
|
|||
|
this.handleNum = handleNum;
|
|||
|
this.cardDirection = cardDirection;
|
|||
|
}
|
|||
|
ResizeInGroupState.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {},
|
|||
|
onMouseMove: ResizeState.prototype.onMouseMove,
|
|||
|
onMouseUp: MoveInGroupState.prototype.onMouseUp
|
|||
|
};
|
|||
|
function PreChangeAdjInGroupState(drawingObjects, group) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.group = group;
|
|||
|
}
|
|||
|
PreChangeAdjInGroupState.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {
|
|||
|
this.drawingObjects.swapTrackObjects();
|
|||
|
this.drawingObjects.changeCurrentState(new ChangeAdjInGroupState(this.drawingObjects, this.group));
|
|||
|
this.drawingObjects.OnMouseMove(e, x, y, pageIndex);
|
|||
|
},
|
|||
|
onMouseUp: PreMoveInGroupState.prototype.onMouseUp
|
|||
|
};
|
|||
|
function ChangeAdjInGroupState(drawingObjects, group) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.group = group;
|
|||
|
this.majorObject = drawingObjects.arrTrackObjects[0].originalShape;
|
|||
|
}
|
|||
|
ChangeAdjInGroupState.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {},
|
|||
|
onMouseMove: ChangeAdjState.prototype.onMouseMove,
|
|||
|
onMouseUp: MoveInGroupState.prototype.onMouseUp
|
|||
|
};
|
|||
|
function TextAddState(drawingObjects, majorObject) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.majorObject = majorObject;
|
|||
|
}
|
|||
|
TextAddState.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {
|
|||
|
if (!e.IsLocked) {
|
|||
|
this.onMouseUp(e, x, y, pageIndex);
|
|||
|
return;
|
|||
|
}
|
|||
|
this.majorObject.selectionSetEnd(e, x, y, pageIndex);
|
|||
|
},
|
|||
|
onMouseUp: function (e, x, y, pageIndex) {
|
|||
|
this.majorObject.selectionSetEnd(e, x, y, pageIndex);
|
|||
|
this.drawingObjects.changeCurrentState(new NullState(this.drawingObjects));
|
|||
|
}
|
|||
|
};
|
|||
|
function StartChangeWrapContourState(drawingObjects, majorObject) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.majorObject = majorObject;
|
|||
|
}
|
|||
|
StartChangeWrapContourState.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {},
|
|||
|
onMouseUp: function (e, x, y, pageIndex) {}
|
|||
|
};
|
|||
|
function PreChangeWrapContour(drawingObjects, majorObject, pointNum) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.majorObject = majorObject;
|
|||
|
this.pointNum = pointNum;
|
|||
|
}
|
|||
|
PreChangeWrapContour.prototype.onMouseDown = function (e, x, y, pageIndex) {};
|
|||
|
PreChangeWrapContour.prototype.onMouseMove = function (e, x, y, pageIndex) {
|
|||
|
this.drawingObjects.clearPreTrackObjects();
|
|||
|
this.drawingObjects.addPreTrackObject(new TrackPointWrapPointWrapPolygon(this.majorObject, this.pointNum));
|
|||
|
this.drawingObjects.swapTrackObjects();
|
|||
|
this.drawingObjects.changeCurrentState(new ChangeWrapContour(this.drawingObjects, this.majorObject));
|
|||
|
};
|
|||
|
PreChangeWrapContour.prototype.onMouseUp = function (e, x, y, pageIndex) {
|
|||
|
this.drawingObjects.changeCurrentState(new NullState(this.drawingObjects));
|
|||
|
};
|
|||
|
function ChangeWrapContour(drawingObjects, majorObject) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.majorObject = majorObject;
|
|||
|
}
|
|||
|
ChangeWrapContour.prototype.onMouseDown = function (e, x, y, pageIndex) {};
|
|||
|
ChangeWrapContour.prototype.onMouseMove = function (e, x, y, pageIndex) {
|
|||
|
var coords = CheckCoordsNeedPage(x, y, pageIndex, this.majorObject.selectStartPage);
|
|||
|
var tr_x, tr_y;
|
|||
|
tr_x = coords.x;
|
|||
|
tr_y = coords.y;
|
|||
|
this.drawingObjects.arrTrackObjects[0].track(tr_x, tr_y);
|
|||
|
this.drawingObjects.updateOverlay();
|
|||
|
};
|
|||
|
ChangeWrapContour.prototype.onMouseUp = function (e, x, y, pageIndex) {
|
|||
|
if (false === editor.isViewMode && false === this.drawingObjects.document.Document_Is_SelectionLocked(changestype_Drawing_Props, {
|
|||
|
Type: changestype_2_Element_and_Type,
|
|||
|
Element: this.drawingObjects.selection.wrapPolygonSelection.parent.Get_ParentParagraph(),
|
|||
|
CheckType: changestype_Paragraph_Content
|
|||
|
})) {
|
|||
|
History.Create_NewPoint(historydescription_Document_ChangeWrapContour);
|
|||
|
var calc_points = [],
|
|||
|
calc_points2 = [],
|
|||
|
i;
|
|||
|
for (i = 0; i < this.majorObject.parent.wrappingPolygon.calculatedPoints.length; ++i) {
|
|||
|
calc_points[i] = {
|
|||
|
x: this.majorObject.parent.wrappingPolygon.calculatedPoints[i].x,
|
|||
|
y: this.majorObject.parent.wrappingPolygon.calculatedPoints[i].y
|
|||
|
};
|
|||
|
}
|
|||
|
calc_points[this.drawingObjects.arrTrackObjects[0].point].x = this.drawingObjects.arrTrackObjects[0].pointCoord.x;
|
|||
|
calc_points[this.drawingObjects.arrTrackObjects[0].point].y = this.drawingObjects.arrTrackObjects[0].pointCoord.y;
|
|||
|
var invert_transform = this.majorObject.invertTransform;
|
|||
|
for (i = 0; i < calc_points.length; ++i) {
|
|||
|
calc_points2[i] = {
|
|||
|
x: (invert_transform.TransformPointX(calc_points[i].x, calc_points[i].y) / this.majorObject.extX) * 21600 >> 0,
|
|||
|
y: (invert_transform.TransformPointY(calc_points[i].x, calc_points[i].y) / this.majorObject.extY) * 21600 >> 0
|
|||
|
};
|
|||
|
}
|
|||
|
this.majorObject.parent.wrappingPolygon.setEdited(true);
|
|||
|
this.majorObject.parent.wrappingPolygon.setArrRelPoints(calc_points2);
|
|||
|
var nearest_pos = this.drawingObjects.document.Get_NearestPos(this.majorObject.selectStartPage, this.majorObject.posX + this.majorObject.bounds.x, this.majorObject.posY + this.majorObject.bounds.y, true, this.majorObject.parent);
|
|||
|
nearest_pos.Paragraph.Check_NearestPos(nearest_pos);
|
|||
|
this.majorObject.parent.Remove_FromDocument(false);
|
|||
|
this.majorObject.parent.Set_XYForAdd(this.majorObject.posX, this.majorObject.posY, nearest_pos, this.majorObject.selectStartPage);
|
|||
|
this.majorObject.parent.Add_ToDocument2(this.majorObject.parent.Get_ParentParagraph());
|
|||
|
this.drawingObjects.document.Recalculate();
|
|||
|
}
|
|||
|
this.drawingObjects.clearTrackObjects();
|
|||
|
this.drawingObjects.changeCurrentState(new NullState(this.drawingObjects));
|
|||
|
};
|
|||
|
function PreChangeWrapContourAddPoint(drawingObjects, majorObject, pointNum1, startX, startY) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.majorObject = majorObject;
|
|||
|
this.pointNum1 = pointNum1;
|
|||
|
this.startX = startX;
|
|||
|
this.startY = startY;
|
|||
|
}
|
|||
|
PreChangeWrapContourAddPoint.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {
|
|||
|
if (!e.IsLocked) {
|
|||
|
this.onMouseUp(e, x, y, pageIndex);
|
|||
|
return;
|
|||
|
}
|
|||
|
this.drawingObjects.clearPreTrackObjects();
|
|||
|
this.drawingObjects.addPreTrackObject(new TrackNewPointWrapPolygon(this.majorObject, this.pointNum1));
|
|||
|
this.drawingObjects.swapTrackObjects();
|
|||
|
this.drawingObjects.changeCurrentState(new ChangeWrapContourAddPoint(this.drawingObjects, this.majorObject));
|
|||
|
this.drawingObjects.OnMouseMove(e, x, y, pageIndex);
|
|||
|
},
|
|||
|
onMouseUp: function (e, x, y, pageIndex) {
|
|||
|
this.drawingObjects.clearPreTrackObjects();
|
|||
|
this.drawingObjects.changeCurrentState(new NullState(this.drawingObjects));
|
|||
|
}
|
|||
|
};
|
|||
|
function ChangeWrapContourAddPoint(drawingObjects, majorObject) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.majorObject = majorObject;
|
|||
|
}
|
|||
|
ChangeWrapContourAddPoint.prototype.onMouseDown = function (e, x, y, pageIndex) {};
|
|||
|
ChangeWrapContourAddPoint.prototype.onMouseMove = function (e, x, y, pageIndex) {
|
|||
|
var coords = CheckCoordsNeedPage(x, y, pageIndex, this.majorObject.selectStartPage);
|
|||
|
var tr_x, tr_y;
|
|||
|
tr_x = coords.x;
|
|||
|
tr_y = coords.y;
|
|||
|
this.drawingObjects.arrTrackObjects[0].track(tr_x, tr_y);
|
|||
|
this.drawingObjects.updateOverlay();
|
|||
|
};
|
|||
|
ChangeWrapContourAddPoint.prototype.onMouseUp = function (e, x, y, pageIndex) {
|
|||
|
if (false === editor.isViewMode && false === this.drawingObjects.document.Document_Is_SelectionLocked(changestype_Drawing_Props, {
|
|||
|
Type: changestype_2_Element_and_Type,
|
|||
|
Element: this.drawingObjects.selection.wrapPolygonSelection.parent.Get_ParentParagraph(),
|
|||
|
CheckType: changestype_Paragraph_Content
|
|||
|
})) {
|
|||
|
History.Create_NewPoint(historydescription_Document_ChangeWrapContourAddPoint);
|
|||
|
var calc_points = [],
|
|||
|
calc_points2 = [],
|
|||
|
i;
|
|||
|
for (i = 0; i < this.drawingObjects.arrTrackObjects[0].arrPoints.length; ++i) {
|
|||
|
calc_points[i] = {
|
|||
|
x: this.drawingObjects.arrTrackObjects[0].arrPoints[i].x,
|
|||
|
y: this.drawingObjects.arrTrackObjects[0].arrPoints[i].y
|
|||
|
};
|
|||
|
}
|
|||
|
var invert_transform = this.majorObject.invertTransform;
|
|||
|
for (i = 0; i < calc_points.length; ++i) {
|
|||
|
calc_points2[i] = {
|
|||
|
x: (invert_transform.TransformPointX(calc_points[i].x, calc_points[i].y) / this.majorObject.extX) * 21600 >> 0,
|
|||
|
y: (invert_transform.TransformPointY(calc_points[i].x, calc_points[i].y) / this.majorObject.extY) * 21600 >> 0
|
|||
|
};
|
|||
|
}
|
|||
|
this.majorObject.parent.wrappingPolygon.setEdited(true);
|
|||
|
this.majorObject.parent.wrappingPolygon.setArrRelPoints(calc_points2);
|
|||
|
var nearest_pos = this.drawingObjects.document.Get_NearestPos(this.majorObject.selectStartPage, this.majorObject.posX + this.majorObject.bounds.x, this.majorObject.posY + this.majorObject.bounds.y, true, this.majorObject.parent);
|
|||
|
nearest_pos.Paragraph.Check_NearestPos(nearest_pos);
|
|||
|
this.majorObject.parent.Remove_FromDocument(false);
|
|||
|
this.majorObject.parent.Set_XYForAdd(this.majorObject.posX, this.majorObject.posY, nearest_pos, this.majorObject.selectStartPage);
|
|||
|
this.majorObject.parent.Add_ToDocument2(this.majorObject.parent.Get_ParentParagraph());
|
|||
|
this.drawingObjects.document.Recalculate();
|
|||
|
}
|
|||
|
this.drawingObjects.clearTrackObjects();
|
|||
|
this.drawingObjects.changeCurrentState(new NullState(this.drawingObjects));
|
|||
|
};
|
|||
|
function SplineBezierState(drawingObjects) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.polylineFlag = true;
|
|||
|
}
|
|||
|
SplineBezierState.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {
|
|||
|
if (this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_CURSOR) {
|
|||
|
return {
|
|||
|
objectId: null,
|
|||
|
bMarker: true
|
|||
|
};
|
|||
|
}
|
|||
|
this.drawingObjects.startTrackPos = {
|
|||
|
x: x,
|
|||
|
y: y,
|
|||
|
pageIndex: pageIndex
|
|||
|
};
|
|||
|
this.drawingObjects.clearTrackObjects();
|
|||
|
this.drawingObjects.addTrackObject(new Spline(this.drawingObjects, this.drawingObjects.document.theme, null, null, null, pageIndex));
|
|||
|
this.drawingObjects.arrTrackObjects[0].path.push(new SplineCommandMoveTo(x, y));
|
|||
|
this.drawingObjects.changeCurrentState(new SplineBezierState33(this.drawingObjects, x, y, pageIndex));
|
|||
|
this.drawingObjects.resetSelection();
|
|||
|
this.drawingObjects.updateOverlay();
|
|||
|
},
|
|||
|
onMouseMove: function (e, X, Y, pageIndex) {},
|
|||
|
onMouseUp: function (e, X, Y, pageIndex) {
|
|||
|
this.drawingObjects.changeCurrentState(new NullState(this.drawingObjects));
|
|||
|
}
|
|||
|
};
|
|||
|
function SplineBezierState33(drawingObjects, startX, startY, pageIndex) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.polylineFlag = true;
|
|||
|
this.pageIndex = pageIndex;
|
|||
|
}
|
|||
|
SplineBezierState33.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {
|
|||
|
if (this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_CURSOR) {
|
|||
|
return {
|
|||
|
objectId: null,
|
|||
|
bMarker: true
|
|||
|
};
|
|||
|
}
|
|||
|
},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {
|
|||
|
var startPos = this.drawingObjects.startTrackPos;
|
|||
|
if (startPos.x === x && startPos.y === y && startPos.pageIndex === pageIndex) {
|
|||
|
return;
|
|||
|
}
|
|||
|
var tr_x, tr_y;
|
|||
|
if (pageIndex === startPos.pageIndex) {
|
|||
|
tr_x = x;
|
|||
|
tr_y = y;
|
|||
|
} else {
|
|||
|
var tr_point = this.drawingObjects.drawingDocument.ConvertCoordsToAnotherPage(x, y, pageIndex, startPos.pageIndex);
|
|||
|
tr_x = tr_point.X;
|
|||
|
tr_y = tr_point.Y;
|
|||
|
}
|
|||
|
this.drawingObjects.arrTrackObjects[0].path.push(new SplineCommandLineTo(tr_x, tr_y));
|
|||
|
this.drawingObjects.changeCurrentState(new SplineBezierState2(this.drawingObjects, this.pageIndex));
|
|||
|
this.drawingObjects.updateOverlay();
|
|||
|
},
|
|||
|
onMouseUp: function (e, x, y, pageIndex) {}
|
|||
|
};
|
|||
|
function SplineBezierState2(drawingObjects, pageIndex) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.polylineFlag = true;
|
|||
|
this.pageIndex = pageIndex;
|
|||
|
}
|
|||
|
SplineBezierState2.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {
|
|||
|
if (this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_CURSOR) {
|
|||
|
return {
|
|||
|
objectId: null,
|
|||
|
bMarker: true
|
|||
|
};
|
|||
|
}
|
|||
|
if (e.ClickCount >= 2) {
|
|||
|
this.bStart = true;
|
|||
|
this.pageIndex = this.drawingObjects.startTrackPos.pageIndex;
|
|||
|
StartAddNewShape.prototype.onMouseUp.call(this, e, x, y, pageIndex);
|
|||
|
}
|
|||
|
},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {
|
|||
|
var startPos = this.drawingObjects.startTrackPos;
|
|||
|
var tr_x, tr_y;
|
|||
|
if (pageIndex === startPos.pageIndex) {
|
|||
|
tr_x = x;
|
|||
|
tr_y = y;
|
|||
|
} else {
|
|||
|
var tr_point = this.drawingObjects.drawingDocument.ConvertCoordsToAnotherPage(x, y, pageIndex, startPos.pageIndex);
|
|||
|
tr_x = tr_point.X;
|
|||
|
tr_y = tr_point.Y;
|
|||
|
}
|
|||
|
this.drawingObjects.arrTrackObjects[0].path[1].changeLastPoint(tr_x, tr_y);
|
|||
|
this.drawingObjects.updateOverlay();
|
|||
|
},
|
|||
|
onMouseUp: function (e, x, y, pageIndex) {
|
|||
|
if (e.ClickCount < 2) {
|
|||
|
var tr_x, tr_y;
|
|||
|
if (pageIndex === this.drawingObjects.startTrackPos.pageIndex) {
|
|||
|
tr_x = x;
|
|||
|
tr_y = y;
|
|||
|
} else {
|
|||
|
var tr_point = this.drawingObjects.drawingDocument.ConvertCoordsToAnotherPage(x, y, pageIndex, this.drawingObjects.startTrackPos.pageIndex);
|
|||
|
tr_x = tr_point.x;
|
|||
|
tr_y = tr_point.y;
|
|||
|
}
|
|||
|
this.drawingObjects.changeCurrentState(new SplineBezierState3(this.drawingObjects, tr_x, tr_y, this.pageIndex));
|
|||
|
}
|
|||
|
}
|
|||
|
};
|
|||
|
function SplineBezierState3(drawingObjects, startX, startY, pageIndex) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.startX = startX;
|
|||
|
this.startY = startY;
|
|||
|
this.polylineFlag = true;
|
|||
|
this.pageIndex = pageIndex;
|
|||
|
}
|
|||
|
SplineBezierState3.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {
|
|||
|
if (this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_CURSOR) {
|
|||
|
return {
|
|||
|
objectId: null,
|
|||
|
bMarker: true
|
|||
|
};
|
|||
|
}
|
|||
|
if (e.ClickCount >= 2) {
|
|||
|
this.bStart = true;
|
|||
|
this.pageIndex = this.drawingObjects.startTrackPos.pageIndex;
|
|||
|
StartAddNewShape.prototype.onMouseUp.call(this, e, x, y, pageIndex);
|
|||
|
}
|
|||
|
},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {
|
|||
|
if (x === this.startX && y === this.startY && pageIndex === this.drawingObjects.startTrackPos.pageIndex) {
|
|||
|
return;
|
|||
|
}
|
|||
|
var tr_x, tr_y;
|
|||
|
if (pageIndex === this.drawingObjects.startTrackPos.pageIndex) {
|
|||
|
tr_x = x;
|
|||
|
tr_y = y;
|
|||
|
} else {
|
|||
|
var tr_point = this.drawingObjects.drawingDocument.ConvertCoordsToAnotherPage(x, y, pageIndex, this.drawingObjects.startTrackPos.pageIndex);
|
|||
|
tr_x = tr_point.X;
|
|||
|
tr_y = tr_point.Y;
|
|||
|
}
|
|||
|
var x0, y0, x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6;
|
|||
|
var spline = this.drawingObjects.arrTrackObjects[0];
|
|||
|
x0 = spline.path[0].x;
|
|||
|
y0 = spline.path[0].y;
|
|||
|
x3 = spline.path[1].x;
|
|||
|
y3 = spline.path[1].y;
|
|||
|
x6 = tr_x;
|
|||
|
y6 = tr_y;
|
|||
|
var vx = (x6 - x0) / 6;
|
|||
|
var vy = (y6 - y0) / 6;
|
|||
|
x2 = x3 - vx;
|
|||
|
y2 = y3 - vy;
|
|||
|
x4 = x3 + vx;
|
|||
|
y4 = y3 + vy;
|
|||
|
x1 = (x0 + x2) * 0.5;
|
|||
|
y1 = (y0 + y2) * 0.5;
|
|||
|
x5 = (x4 + x6) * 0.5;
|
|||
|
y5 = (y4 + y6) * 0.5;
|
|||
|
spline.path.length = 1;
|
|||
|
spline.path.push(new SplineCommandBezier(x1, y1, x2, y2, x3, y3));
|
|||
|
spline.path.push(new SplineCommandBezier(x4, y4, x5, y5, x6, y6));
|
|||
|
this.drawingObjects.updateOverlay();
|
|||
|
this.drawingObjects.changeCurrentState(new SplineBezierState4(this.drawingObjects, this.pageIndex));
|
|||
|
},
|
|||
|
onMouseUp: function (e, x, y, pageIndex) {
|
|||
|
if (e.ClickCount >= 2) {
|
|||
|
this.bStart = true;
|
|||
|
this.pageIndex = this.drawingObjects.startTrackPos.pageIndex;
|
|||
|
StartAddNewShape.prototype.onMouseUp.call(this, e, x, y, pageIndex);
|
|||
|
}
|
|||
|
}
|
|||
|
};
|
|||
|
function SplineBezierState4(drawingObjects, pageIndex) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.polylineFlag = true;
|
|||
|
this.pageIndex = pageIndex;
|
|||
|
}
|
|||
|
SplineBezierState4.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {
|
|||
|
if (this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_CURSOR) {
|
|||
|
return {
|
|||
|
objectId: null,
|
|||
|
bMarker: true
|
|||
|
};
|
|||
|
}
|
|||
|
if (e.ClickCount >= 2) {
|
|||
|
this.bStart = true;
|
|||
|
this.pageIndex = this.drawingObjects.startTrackPos.pageIndex;
|
|||
|
StartAddNewShape.prototype.onMouseUp.call(this, e, x, y, pageIndex);
|
|||
|
}
|
|||
|
},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {
|
|||
|
var spline = this.drawingObjects.arrTrackObjects[0];
|
|||
|
var lastCommand = spline.path[spline.path.length - 1];
|
|||
|
var preLastCommand = spline.path[spline.path.length - 2];
|
|||
|
var x0, y0, x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6;
|
|||
|
if (spline.path[spline.path.length - 3].id == 0) {
|
|||
|
x0 = spline.path[spline.path.length - 3].x;
|
|||
|
y0 = spline.path[spline.path.length - 3].y;
|
|||
|
} else {
|
|||
|
x0 = spline.path[spline.path.length - 3].x3;
|
|||
|
y0 = spline.path[spline.path.length - 3].y3;
|
|||
|
}
|
|||
|
x3 = preLastCommand.x3;
|
|||
|
y3 = preLastCommand.y3;
|
|||
|
var tr_x, tr_y;
|
|||
|
if (pageIndex === this.drawingObjects.startTrackPos.pageIndex) {
|
|||
|
tr_x = x;
|
|||
|
tr_y = y;
|
|||
|
} else {
|
|||
|
var tr_point = this.drawingObjects.drawingDocument.ConvertCoordsToAnotherPage(x, y, pageIndex, this.drawingObjects.startTrackPos.pageIndex);
|
|||
|
tr_x = tr_point.X;
|
|||
|
tr_y = tr_point.Y;
|
|||
|
}
|
|||
|
x6 = tr_x;
|
|||
|
y6 = tr_y;
|
|||
|
var vx = (x6 - x0) / 6;
|
|||
|
var vy = (y6 - y0) / 6;
|
|||
|
x2 = x3 - vx;
|
|||
|
y2 = y3 - vy;
|
|||
|
x4 = x3 + vx;
|
|||
|
y4 = y3 + vy;
|
|||
|
x5 = (x4 + x6) * 0.5;
|
|||
|
y5 = (y4 + y6) * 0.5;
|
|||
|
if (spline.path[spline.path.length - 3].id == 0) {
|
|||
|
preLastCommand.x1 = (x0 + x2) * 0.5;
|
|||
|
preLastCommand.y1 = (y0 + y2) * 0.5;
|
|||
|
}
|
|||
|
preLastCommand.x2 = x2;
|
|||
|
preLastCommand.y2 = y2;
|
|||
|
preLastCommand.x3 = x3;
|
|||
|
preLastCommand.y3 = y3;
|
|||
|
lastCommand.x1 = x4;
|
|||
|
lastCommand.y1 = y4;
|
|||
|
lastCommand.x2 = x5;
|
|||
|
lastCommand.y2 = y5;
|
|||
|
lastCommand.x3 = x6;
|
|||
|
lastCommand.y3 = y6;
|
|||
|
this.drawingObjects.updateOverlay();
|
|||
|
},
|
|||
|
onMouseUp: function (e, x, y, pageIndex) {
|
|||
|
if (e.ClickCount < 2) {
|
|||
|
var tr_x, tr_y;
|
|||
|
if (pageIndex === this.drawingObjects.startTrackPos.pageIndex) {
|
|||
|
tr_x = x;
|
|||
|
tr_y = y;
|
|||
|
} else {
|
|||
|
var tr_point = this.drawingObjects.drawingDocument.ConvertCoordsToAnotherPage(x, y, pageIndex, this.drawingObjects.startTrackPos.pageIndex);
|
|||
|
tr_x = tr_point.X;
|
|||
|
tr_y = tr_point.Y;
|
|||
|
}
|
|||
|
this.drawingObjects.changeCurrentState(new SplineBezierState5(this.drawingObjects, tr_x, tr_y, this.pageIndex));
|
|||
|
}
|
|||
|
}
|
|||
|
};
|
|||
|
function SplineBezierState5(drawingObjects, startX, startY, pageIndex) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.startX = startX;
|
|||
|
this.startY = startY;
|
|||
|
this.polylineFlag = true;
|
|||
|
this.pageIndex = pageIndex;
|
|||
|
}
|
|||
|
SplineBezierState5.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {
|
|||
|
if (this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_CURSOR) {
|
|||
|
return {
|
|||
|
objectId: null,
|
|||
|
bMarker: true
|
|||
|
};
|
|||
|
}
|
|||
|
if (e.ClickCount >= 2) {
|
|||
|
this.bStart = true;
|
|||
|
this.pageIndex = this.drawingObjects.startTrackPos.pageIndex;
|
|||
|
StartAddNewShape.prototype.onMouseUp.call(this, e, x, y, pageIndex);
|
|||
|
}
|
|||
|
},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {
|
|||
|
if (x === this.startX && y === this.startY && pageIndex === this.drawingObjects.startTrackPos.pageIndex) {
|
|||
|
return;
|
|||
|
}
|
|||
|
var spline = this.drawingObjects.arrTrackObjects[0];
|
|||
|
var lastCommand = spline.path[spline.path.length - 1];
|
|||
|
var x0, y0, x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6;
|
|||
|
if (spline.path[spline.path.length - 2].id == 0) {
|
|||
|
x0 = spline.path[spline.path.length - 2].x;
|
|||
|
y0 = spline.path[spline.path.length - 2].y;
|
|||
|
} else {
|
|||
|
x0 = spline.path[spline.path.length - 2].x3;
|
|||
|
y0 = spline.path[spline.path.length - 2].y3;
|
|||
|
}
|
|||
|
x3 = lastCommand.x3;
|
|||
|
y3 = lastCommand.y3;
|
|||
|
var tr_x, tr_y;
|
|||
|
if (pageIndex === this.drawingObjects.startTrackPos.pageIndex) {
|
|||
|
tr_x = x;
|
|||
|
tr_y = y;
|
|||
|
} else {
|
|||
|
var tr_point = this.drawingObjects.drawingDocument.ConvertCoordsToAnotherPage(x, y, pageIndex, this.drawingObjects.startTrackPos.pageIndex);
|
|||
|
tr_x = tr_point.X;
|
|||
|
tr_y = tr_point.Y;
|
|||
|
}
|
|||
|
x6 = tr_x;
|
|||
|
y6 = tr_y;
|
|||
|
var vx = (x6 - x0) / 6;
|
|||
|
var vy = (y6 - y0) / 6;
|
|||
|
x2 = x3 - vx;
|
|||
|
y2 = y3 - vy;
|
|||
|
x1 = (x2 + x1) * 0.5;
|
|||
|
y1 = (y2 + y1) * 0.5;
|
|||
|
x4 = x3 + vx;
|
|||
|
y4 = y3 + vy;
|
|||
|
x5 = (x4 + x6) * 0.5;
|
|||
|
y5 = (y4 + y6) * 0.5;
|
|||
|
if (spline.path[spline.path.length - 2].id == 0) {
|
|||
|
lastCommand.x1 = x1;
|
|||
|
lastCommand.y1 = y1;
|
|||
|
}
|
|||
|
lastCommand.x2 = x2;
|
|||
|
lastCommand.y2 = y2;
|
|||
|
spline.path.push(new SplineCommandBezier(x4, y4, x5, y5, x6, y6));
|
|||
|
this.drawingObjects.updateOverlay();
|
|||
|
this.drawingObjects.changeCurrentState(new SplineBezierState4(this.drawingObjects, this.pageIndex));
|
|||
|
},
|
|||
|
onMouseUp: function (e, x, y, pageIndex) {
|
|||
|
if (e.ClickCount >= 2) {
|
|||
|
this.bStart = true;
|
|||
|
this.pageIndex = this.drawingObjects.startTrackPos.pageIndex;
|
|||
|
StartAddNewShape.prototype.onMouseUp.call(this, e, x, y, pageIndex);
|
|||
|
}
|
|||
|
}
|
|||
|
};
|
|||
|
function PolyLineAddState(drawingObjects) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.polylineFlag = true;
|
|||
|
}
|
|||
|
PolyLineAddState.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {
|
|||
|
if (this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_CURSOR) {
|
|||
|
return {
|
|||
|
objectId: null,
|
|||
|
bMarker: true
|
|||
|
};
|
|||
|
}
|
|||
|
this.drawingObjects.startTrackPos = {
|
|||
|
x: x,
|
|||
|
y: y,
|
|||
|
pageIndex: pageIndex
|
|||
|
};
|
|||
|
this.drawingObjects.clearTrackObjects();
|
|||
|
this.drawingObjects.addTrackObject(new PolyLine(this.drawingObjects, this.drawingObjects.document.theme, null, null, null, pageIndex));
|
|||
|
this.drawingObjects.arrTrackObjects[0].arrPoint.push({
|
|||
|
x: x,
|
|||
|
y: y
|
|||
|
});
|
|||
|
this.drawingObjects.resetSelection();
|
|||
|
this.drawingObjects.updateOverlay();
|
|||
|
var _min_distance = this.drawingObjects.drawingDocument.GetMMPerDot(1);
|
|||
|
this.drawingObjects.changeCurrentState(new PolyLineAddState2(this.drawingObjects, _min_distance));
|
|||
|
},
|
|||
|
onMouseMove: function () {},
|
|||
|
onMouseUp: function () {
|
|||
|
this.drawingObjects.changeCurrentState(new NullState(this.drawingObjects));
|
|||
|
}
|
|||
|
};
|
|||
|
function PolyLineAddState2(drawingObjects, minDistance) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.minDistance = minDistance;
|
|||
|
this.polylineFlag = true;
|
|||
|
}
|
|||
|
PolyLineAddState2.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {
|
|||
|
if (this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_CURSOR) {
|
|||
|
return {
|
|||
|
objectId: null,
|
|||
|
bMarker: true
|
|||
|
};
|
|||
|
}
|
|||
|
},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {
|
|||
|
var _last_point = this.drawingObjects.arrTrackObjects[0].arrPoint[this.drawingObjects.arrTrackObjects[0].arrPoint.length - 1];
|
|||
|
var tr_x, tr_y;
|
|||
|
if (pageIndex === this.drawingObjects.startTrackPos.pageIndex) {
|
|||
|
tr_x = x;
|
|||
|
tr_y = y;
|
|||
|
} else {
|
|||
|
var tr_point = this.drawingObjects.drawingDocument.ConvertCoordsToAnotherPage(x, y, pageIndex, this.drawingObjects.startTrackPos.pageIndex);
|
|||
|
tr_x = tr_point.X;
|
|||
|
tr_y = tr_point.Y;
|
|||
|
}
|
|||
|
var dx = tr_x - _last_point.x;
|
|||
|
var dy = tr_y - _last_point.y;
|
|||
|
if (Math.sqrt(dx * dx + dy * dy) >= this.minDistance) {
|
|||
|
this.drawingObjects.arrTrackObjects[0].arrPoint.push({
|
|||
|
x: tr_x,
|
|||
|
y: tr_y
|
|||
|
});
|
|||
|
this.drawingObjects.updateOverlay();
|
|||
|
}
|
|||
|
},
|
|||
|
onMouseUp: function (e, x, y, pageIndex) {
|
|||
|
if (this.drawingObjects.arrTrackObjects[0].arrPoint.length > 1) {
|
|||
|
this.bStart = true;
|
|||
|
this.pageIndex = this.drawingObjects.startTrackPos.pageIndex;
|
|||
|
StartAddNewShape.prototype.onMouseUp.call(this, e, x, y, pageIndex);
|
|||
|
} else {
|
|||
|
this.drawingObjects.clearTrackObjects();
|
|||
|
this.drawingObjects.updateOverlay();
|
|||
|
this.drawingObjects.changeCurrentState(new NullState(this.drawingObjects));
|
|||
|
}
|
|||
|
}
|
|||
|
};
|
|||
|
function AddPolyLine2State(drawingObjects) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.polylineFlag = true;
|
|||
|
}
|
|||
|
AddPolyLine2State.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {
|
|||
|
if (this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_CURSOR) {
|
|||
|
return {
|
|||
|
objectId: null,
|
|||
|
bMarker: true
|
|||
|
};
|
|||
|
}
|
|||
|
this.drawingObjects.startTrackPos = {
|
|||
|
x: x,
|
|||
|
y: y,
|
|||
|
pageIndex: pageIndex
|
|||
|
};
|
|||
|
this.drawingObjects.resetSelection();
|
|||
|
this.drawingObjects.updateOverlay();
|
|||
|
this.drawingObjects.clearTrackObjects();
|
|||
|
this.drawingObjects.addTrackObject(new PolyLine(this.drawingObjects, this.drawingObjects.document.theme, null, null, null, pageIndex));
|
|||
|
this.drawingObjects.arrTrackObjects[0].arrPoint.push({
|
|||
|
x: x,
|
|||
|
y: y
|
|||
|
});
|
|||
|
this.drawingObjects.changeCurrentState(new AddPolyLine2State2(this.drawingObjects, x, y));
|
|||
|
},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {},
|
|||
|
onMouseUp: function (e, x, y, pageIndex) {}
|
|||
|
};
|
|||
|
function AddPolyLine2State2(drawingObjects, x, y) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.X = x;
|
|||
|
this.Y = y;
|
|||
|
this.polylineFlag = true;
|
|||
|
}
|
|||
|
AddPolyLine2State2.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {
|
|||
|
if (this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_CURSOR) {
|
|||
|
return {
|
|||
|
objectId: null,
|
|||
|
bMarker: true
|
|||
|
};
|
|||
|
}
|
|||
|
if (e.ClickCount > 1) {
|
|||
|
this.drawingObjects.changeCurrentState(new NullState(this.drawingObjects));
|
|||
|
}
|
|||
|
},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {
|
|||
|
if (this.X !== x || this.Y !== y || this.drawingObjects.startTrackPos.pageIndex !== pageIndex) {
|
|||
|
var tr_x, tr_y;
|
|||
|
if (pageIndex === this.drawingObjects.startTrackPos.pageIndex) {
|
|||
|
tr_x = x;
|
|||
|
tr_y = y;
|
|||
|
} else {
|
|||
|
var tr_point = this.drawingObjects.drawingDocument.ConvertCoordsToAnotherPage(x, y, pageIndex, this.drawingObjects.startTrackPos.pageIndex);
|
|||
|
tr_x = tr_point.X;
|
|||
|
tr_y = tr_point.Y;
|
|||
|
}
|
|||
|
this.drawingObjects.arrTrackObjects[0].arrPoint.push({
|
|||
|
x: tr_x,
|
|||
|
y: tr_y
|
|||
|
});
|
|||
|
this.drawingObjects.changeCurrentState(new AddPolyLine2State3(this.drawingObjects));
|
|||
|
}
|
|||
|
},
|
|||
|
onMouseUp: function (e, x, y, pageIndex) {}
|
|||
|
};
|
|||
|
function AddPolyLine2State3(drawingObjects) {
|
|||
|
this.drawingObjects = drawingObjects;
|
|||
|
this.minSize = drawingObjects.drawingDocument.GetMMPerDot(1);
|
|||
|
this.polylineFlag = true;
|
|||
|
}
|
|||
|
AddPolyLine2State3.prototype = {
|
|||
|
onMouseDown: function (e, x, y, pageIndex) {
|
|||
|
if (this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_CURSOR) {
|
|||
|
return {
|
|||
|
objectId: null,
|
|||
|
bMarker: true
|
|||
|
};
|
|||
|
}
|
|||
|
var tr_x, tr_y;
|
|||
|
if (pageIndex === this.drawingObjects.startTrackPos.pageIndex) {
|
|||
|
tr_x = x;
|
|||
|
tr_y = y;
|
|||
|
} else {
|
|||
|
var tr_point = this.drawingObjects.drawingDocument.ConvertCoordsToAnotherPage(x, y, pageIndex, this.drawingObjects.startTrackPos.pageIndex);
|
|||
|
tr_x = tr_point.X;
|
|||
|
tr_y = tr_point.Y;
|
|||
|
}
|
|||
|
this.drawingObjects.arrTrackObjects[0].arrPoint.push({
|
|||
|
x: tr_x,
|
|||
|
y: tr_y
|
|||
|
});
|
|||
|
if (e.ClickCount > 1) {
|
|||
|
this.bStart = true;
|
|||
|
this.pageIndex = this.drawingObjects.startTrackPos.pageIndex;
|
|||
|
StartAddNewShape.prototype.onMouseUp.call(this, e, x, y, pageIndex);
|
|||
|
}
|
|||
|
},
|
|||
|
onMouseMove: function (e, x, y, pageIndex) {
|
|||
|
var tr_x, tr_y;
|
|||
|
if (pageIndex === this.drawingObjects.startTrackPos.pageIndex) {
|
|||
|
tr_x = x;
|
|||
|
tr_y = y;
|
|||
|
} else {
|
|||
|
var tr_point = this.drawingObjects.drawingDocument.ConvertCoordsToAnotherPage(x, y, pageIndex, this.drawingObjects.startTrackPos.pageIndex);
|
|||
|
tr_x = tr_point.X;
|
|||
|
tr_y = tr_point.Y;
|
|||
|
}
|
|||
|
if (!e.IsLocked) {
|
|||
|
this.drawingObjects.arrTrackObjects[0].arrPoint[this.drawingObjects.arrTrackObjects[0].arrPoint.length - 1] = {
|
|||
|
x: tr_x,
|
|||
|
y: tr_y
|
|||
|
};
|
|||
|
} else {
|
|||
|
var _last_point = this.drawingObjects.arrTrackObjects[0].arrPoint[this.drawingObjects.arrTrackObjects[0].arrPoint.length - 1];
|
|||
|
var dx = tr_x - _last_point.x;
|
|||
|
var dy = tr_y - _last_point.y;
|
|||
|
if (Math.sqrt(dx * dx + dy * dy) >= this.minSize) {
|
|||
|
this.drawingObjects.arrTrackObjects[0].arrPoint.push({
|
|||
|
x: tr_x,
|
|||
|
y: tr_y
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
this.drawingObjects.drawingDocument.m_oWordControl.OnUpdateOverlay();
|
|||
|
},
|
|||
|
onMouseUp: function (e, x, y, pageIndex) {
|
|||
|
if (e.ClickCount > 1) {
|
|||
|
this.bStart = true;
|
|||
|
this.pageIndex = this.drawingObjects.startTrackPos.pageIndex;
|
|||
|
StartAddNewShape.prototype.onMouseUp.call(this, e, x, y, pageIndex);
|
|||
|
}
|
|||
|
}
|
|||
|
};
|