898 lines
33 KiB
JavaScript
898 lines
33 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
|
|
*
|
|
*/
|
|
"use strict";
|
|
function CGraphicFrame() {
|
|
this.parent = null;
|
|
this.graphicObject = null;
|
|
this.nvGraphicFramePr = null;
|
|
this.spPr = null;
|
|
this.group = null;
|
|
this.x = null;
|
|
this.y = null;
|
|
this.extX = null;
|
|
this.extY = null;
|
|
this.transform = new CMatrix();
|
|
this.compiledHierarchy = [];
|
|
this.snapArrayX = [];
|
|
this.snapArrayY = [];
|
|
this.Pages = [];
|
|
this.Lock = new CLock();
|
|
this.Id = g_oIdCounter.Get_NewId();
|
|
g_oTableId.Add(this, this.Id);
|
|
this.compiledStyles = [];
|
|
this.recalcInfo = {
|
|
recalculateTransform: true,
|
|
recalculateSizes: true,
|
|
recalculateNumbering: true,
|
|
recalculateShapeHierarchy: true,
|
|
recalculateTable: true
|
|
};
|
|
this.bounds = {
|
|
l: 0,
|
|
t: 0,
|
|
r: 0,
|
|
b: 0,
|
|
x: 0,
|
|
y: 0,
|
|
w: 0,
|
|
h: 0
|
|
};
|
|
this.RecalcInfo = {};
|
|
this.bDeleted = true;
|
|
}
|
|
CGraphicFrame.prototype = {
|
|
addToRecalculate: CShape.prototype.addToRecalculate,
|
|
Get_Theme: CShape.prototype.Get_Theme,
|
|
Get_ColorMap: CShape.prototype.Get_ColorMap,
|
|
setBDeleted: CShape.prototype.setBDeleted,
|
|
getBase64Img: CShape.prototype.getBase64Img,
|
|
checkDrawingBaseCoords: CShape.prototype.checkDrawingBaseCoords,
|
|
getSlideIndex: CShape.prototype.getSlideIndex,
|
|
calculateSnapArrays: CShape.prototype.calculateSnapArrays,
|
|
Is_DrawingShape: function () {
|
|
return false;
|
|
},
|
|
handleUpdatePosition: function () {
|
|
this.recalcInfo.recalculateTransform = true;
|
|
this.addToRecalculate();
|
|
},
|
|
handleUpdateTheme: function () {
|
|
this.compiledStyles = [];
|
|
if (this.graphicObject) {
|
|
this.graphicObject.Recalc_CompiledPr2();
|
|
this.graphicObject.RecalcInfo.Recalc_AllCells();
|
|
this.recalcInfo.recalculateSizes = true;
|
|
this.recalcInfo.recalculateShapeHierarchy = true;
|
|
this.recalcInfo.recalculateTable = true;
|
|
this.addToRecalculate();
|
|
}
|
|
},
|
|
handleUpdateFill: function () {},
|
|
handleUpdateLn: function () {},
|
|
handleUpdateExtents: function () {
|
|
this.recalcInfo.recalculateTransform = true;
|
|
this.addToRecalculate();
|
|
},
|
|
recalcText: function () {
|
|
this.compiledStyles = [];
|
|
if (this.graphicObject) {
|
|
this.graphicObject.Recalc_CompiledPr2();
|
|
this.graphicObject.RecalcInfo.Reset(true);
|
|
}
|
|
this.recalcInfo.recalculateTable = true;
|
|
this.recalcInfo.recalculateSizes = true;
|
|
},
|
|
Get_TextBackGroundColor: function () {
|
|
return undefined;
|
|
},
|
|
Get_PrevElementEndInfo: function () {
|
|
return null;
|
|
},
|
|
Get_PageFields: function () {
|
|
return editor.WordControl.m_oLogicDocument.Get_PageFields();
|
|
},
|
|
getDocContent: function () {
|
|
if (this.graphicObject && this.graphicObject.CurCell && (false === this.graphicObject.Selection.Use || (true === this.graphicObject.Selection.Use && table_Selection_Text === this.graphicObject.Selection.Type))) {
|
|
return this.graphicObject.CurCell.Content;
|
|
}
|
|
return null;
|
|
},
|
|
setSpPr: function (spPr) {
|
|
History.Add(this, {
|
|
Type: historyitem_GraphicFrameSetSpPr,
|
|
oldPr: this.spPr,
|
|
newPr: spPr
|
|
});
|
|
this.spPr = spPr;
|
|
},
|
|
setGraphicObject: function (graphicObject) {
|
|
History.Add(this, {
|
|
Type: historyitem_GraphicFrameSetGraphicObject,
|
|
oldPr: this.graphicObject,
|
|
newPr: graphicObject
|
|
});
|
|
this.graphicObject = graphicObject;
|
|
if (this.graphicObject) {
|
|
this.graphicObject.Index = 0;
|
|
}
|
|
},
|
|
setNvSpPr: function (pr) {
|
|
History.Add(this, {
|
|
Type: historyitem_GraphicFrameSetSetNvSpPr,
|
|
oldPr: this.nvGraphicFramePr,
|
|
newPr: pr
|
|
});
|
|
this.nvGraphicFramePr = pr;
|
|
},
|
|
setParent: function (parent) {
|
|
History.Add(this, {
|
|
Type: historyitem_GraphicFrameSetSetParent,
|
|
oldPr: this.parent,
|
|
newPr: parent
|
|
});
|
|
this.parent = parent;
|
|
},
|
|
setGroup: function (group) {
|
|
History.Add(this, {
|
|
Type: historyitem_GraphicFrameSetSetGroup,
|
|
oldPr: this.group,
|
|
newPr: group
|
|
});
|
|
this.group = group;
|
|
},
|
|
getObjectType: function () {
|
|
return historyitem_type_GraphicFrame;
|
|
},
|
|
Search: function (Str, Props, SearchEngine, Type) {
|
|
if (this.graphicObject) {
|
|
this.graphicObject.Search(Str, Props, SearchEngine, Type);
|
|
}
|
|
},
|
|
Search_GetId: function (bNext, bCurrent) {
|
|
if (this.graphicObject) {
|
|
return this.graphicObject.Search_GetId(bNext, bCurrent);
|
|
}
|
|
return null;
|
|
},
|
|
copy: function () {
|
|
var ret = new CGraphicFrame();
|
|
if (this.graphicObject) {
|
|
ret.setGraphicObject(this.graphicObject.Copy(ret));
|
|
if (editor && editor.WordControl && editor.WordControl.m_oLogicDocument && isRealObject(editor.WordControl.m_oLogicDocument.globalTableStyles)) {
|
|
ret.graphicObject.Reset(0, 0, this.graphicObject.XLimit, this.graphicObject.YLimit, ret.graphicObject.PageNum);
|
|
}
|
|
}
|
|
if (this.nvGraphicFramePr) {
|
|
ret.setNvSpPr(this.nvGraphicFramePr.createDuplicate());
|
|
}
|
|
if (this.spPr) {
|
|
ret.setSpPr(this.spPr.createDuplicate());
|
|
ret.spPr.setParent(ret);
|
|
}
|
|
ret.setBDeleted(false);
|
|
if (!this.recalcInfo.recalculateTable && !this.recalcInfo.recalculateSizes && !this.recalcInfo.recalculateTransform) {
|
|
ret.cachedImage = this.getBase64Img();
|
|
}
|
|
return ret;
|
|
},
|
|
isEmptyPlaceholder: function () {
|
|
return false;
|
|
},
|
|
getAllFonts: function (fonts) {
|
|
if (this.graphicObject) {
|
|
for (var i = 0; i < this.graphicObject.Content.length; ++i) {
|
|
var row = this.graphicObject.Content[i];
|
|
var cells = row.Content;
|
|
for (var j = 0; j < cells.length; ++j) {
|
|
cells[j].Content.Document_Get_AllFontNames(fonts);
|
|
}
|
|
}
|
|
delete fonts["+mj-lt"];
|
|
delete fonts["+mn-lt"];
|
|
delete fonts["+mj-ea"];
|
|
delete fonts["+mn-ea"];
|
|
delete fonts["+mj-cs"];
|
|
delete fonts["+mn-cs"];
|
|
}
|
|
},
|
|
isSimpleObject: function () {
|
|
return true;
|
|
},
|
|
Cursor_MoveToStartPos: function () {
|
|
if (isRealObject(this.graphicObject)) {
|
|
this.graphicObject.Cursor_MoveToStartPos();
|
|
this.graphicObject.RecalculateCurPos();
|
|
}
|
|
},
|
|
Cursor_MoveToEndPos: function () {
|
|
if (isRealObject(this.graphicObject)) {
|
|
this.graphicObject.Cursor_MoveToEndPos();
|
|
this.graphicObject.RecalculateCurPos();
|
|
}
|
|
},
|
|
hitInPath: function () {
|
|
return false;
|
|
},
|
|
paragraphFormatPaste: function (CopyTextPr, CopyParaPr, Bool) {
|
|
if (isRealObject(this.graphicObject)) {
|
|
this.graphicObject.Paragraph_Format_Paste(CopyTextPr, CopyParaPr, Bool);
|
|
this.recalcInfo.recalculateContent = true;
|
|
this.recalcInfo.recalculateTransformText = true;
|
|
editor.WordControl.m_oLogicDocument.recalcMap[this.Id] = this;
|
|
}
|
|
},
|
|
Paragraph_ClearFormatting: function () {
|
|
if (isRealObject(this.graphicObject)) {
|
|
this.graphicObject.Paragraph_ClearFormatting();
|
|
this.recalcInfo.recalculateContent = true;
|
|
this.recalcInfo.recalculateTransformText = true;
|
|
editor.WordControl.m_oLogicDocument.recalcMap[this.Id] = this;
|
|
}
|
|
},
|
|
Set_Props: function (props) {
|
|
if (this.graphicObject) {
|
|
var bApplyToAll = this.parent.graphicObjects.State.textObject !== this;
|
|
this.graphicObject.Set_Props(props, bApplyToAll);
|
|
this.OnContentRecalculate();
|
|
editor.WordControl.m_oLogicDocument.recalcMap[this.Id] = this;
|
|
}
|
|
},
|
|
updateCursorType: function (x, y, e) {
|
|
var tx = this.invertTransform.TransformPointX(x, y);
|
|
var ty = this.invertTransform.TransformPointY(x, y);
|
|
this.graphicObject.Update_CursorType(tx, ty, 0);
|
|
},
|
|
sendMouseData: function () {},
|
|
Get_Id: function () {
|
|
return this.Id;
|
|
},
|
|
getIsSingleBody: CShape.prototype.getIsSingleBody,
|
|
getHierarchy: CShape.prototype.getHierarchy,
|
|
getAllImages: function (images) {},
|
|
recalculate: function () {
|
|
if (this.bDeleted || !this.parent) {
|
|
return;
|
|
}
|
|
ExecuteNoHistory(function () {
|
|
if (this.recalcInfo.recalculateTable) {
|
|
if (this.graphicObject) {
|
|
this.graphicObject.Set_PositionH(c_oAscHAnchor.Page, false, 0);
|
|
this.graphicObject.Set_PositionV(c_oAscVAnchor.Page, false, 0);
|
|
this.graphicObject.Parent = this;
|
|
this.graphicObject.Reset(0, 0, this.spPr.xfrm.extX, 10000, 0);
|
|
this.graphicObject.Recalculate_Page(0);
|
|
}
|
|
this.recalcInfo.recalculateTable = false;
|
|
}
|
|
if (this.recalcInfo.recalculateSizes) {
|
|
this.recalculateSizes();
|
|
this.recalcInfo.recalculateSizes = false;
|
|
}
|
|
if (this.recalcInfo.recalculateTransform) {
|
|
this.recalculateTransform();
|
|
this.calculateSnapArrays();
|
|
this.recalcInfo.recalculateTransform = false;
|
|
this.transformText = this.transform;
|
|
this.invertTransformText = this.invertTransform;
|
|
this.cachedImage = null;
|
|
this.bounds.l = this.x;
|
|
this.bounds.t = this.y;
|
|
this.bounds.r = this.x + this.extX;
|
|
this.bounds.b = this.y + this.extY;
|
|
this.bounds.x = this.x;
|
|
this.bounds.y = this.y;
|
|
this.bounds.w = this.extX;
|
|
this.bounds.h = this.extY;
|
|
}
|
|
},
|
|
this, []);
|
|
},
|
|
recalculateSizes: function () {
|
|
if (this.graphicObject) {
|
|
this.graphicObject.XLimit -= this.graphicObject.X;
|
|
this.graphicObject.X = 0;
|
|
this.graphicObject.Y = 0;
|
|
this.graphicObject.X_origin = 0;
|
|
var _page_bounds = this.graphicObject.Get_PageBounds(0);
|
|
this.spPr.xfrm.extY = _page_bounds.Bottom - _page_bounds.Top;
|
|
this.spPr.xfrm.extX = _page_bounds.Right - _page_bounds.Left;
|
|
this.extX = this.spPr.xfrm.extX;
|
|
this.extY = this.spPr.xfrm.extY;
|
|
}
|
|
},
|
|
Selection_Is_OneElement: function () {
|
|
return 0;
|
|
},
|
|
recalculateCurPos: function () {
|
|
this.graphicObject.RecalculateCurPos();
|
|
},
|
|
isShape: function () {
|
|
return false;
|
|
},
|
|
isImage: function () {
|
|
return false;
|
|
},
|
|
isGroup: function () {
|
|
return false;
|
|
},
|
|
isChart: function () {
|
|
return false;
|
|
},
|
|
isTable: function () {
|
|
return this.graphicObject instanceof CTable;
|
|
},
|
|
Hyperlink_CanAdd: function (bCheck) {
|
|
if (this.graphicObject) {
|
|
return this.graphicObject.Hyperlink_CanAdd(bCheck);
|
|
}
|
|
return false;
|
|
},
|
|
Hyperlink_Check: function (bCheck) {
|
|
if (this.graphicObject) {
|
|
return this.graphicObject.Hyperlink_Check(bCheck);
|
|
}
|
|
return false;
|
|
},
|
|
getTransformMatrix: function () {
|
|
return this.transform;
|
|
if (this.recalcInfo.recalculateTransform) {
|
|
this.recalculateTransform();
|
|
this.recalcInfo.recalculateTransform = false;
|
|
}
|
|
return this.transform;
|
|
},
|
|
OnContentReDraw: function () {},
|
|
getRectBounds: function () {
|
|
var transform = this.getTransformMatrix();
|
|
var w = this.extX;
|
|
var h = this.extY;
|
|
var rect_points = [{
|
|
x: 0,
|
|
y: 0
|
|
},
|
|
{
|
|
x: w,
|
|
y: 0
|
|
},
|
|
{
|
|
x: w,
|
|
y: h
|
|
},
|
|
{
|
|
x: 0,
|
|
y: h
|
|
}];
|
|
var min_x, max_x, min_y, max_y;
|
|
min_x = transform.TransformPointX(rect_points[0].x, rect_points[0].y);
|
|
min_y = transform.TransformPointY(rect_points[0].x, rect_points[0].y);
|
|
max_x = min_x;
|
|
max_y = min_y;
|
|
var cur_x, cur_y;
|
|
for (var i = 1; i < 4; ++i) {
|
|
cur_x = transform.TransformPointX(rect_points[i].x, rect_points[i].y);
|
|
cur_y = transform.TransformPointY(rect_points[i].x, rect_points[i].y);
|
|
if (cur_x < min_x) {
|
|
min_x = cur_x;
|
|
}
|
|
if (cur_x > max_x) {
|
|
max_x = cur_x;
|
|
}
|
|
if (cur_y < min_y) {
|
|
min_y = cur_y;
|
|
}
|
|
if (cur_y > max_y) {
|
|
max_y = cur_y;
|
|
}
|
|
}
|
|
return {
|
|
minX: min_x,
|
|
maxX: max_x,
|
|
minY: min_y,
|
|
maxY: max_y
|
|
};
|
|
},
|
|
changeSize: function (kw, kh) {
|
|
if (this.spPr && this.spPr.xfrm && this.spPr.xfrm.isNotNull()) {
|
|
var xfrm = this.spPr.xfrm;
|
|
xfrm.setOffX(xfrm.offX * kw);
|
|
xfrm.setOffY(xfrm.offY * kh);
|
|
}
|
|
this.recalcTransform && this.recalcTransform();
|
|
},
|
|
recalcTransform: function () {
|
|
this.recalcInfo.recalculateTransform = true;
|
|
},
|
|
getTransform: function () {
|
|
if (this.recalcInfo.recalculateTransform) {
|
|
this.recalculateTransform();
|
|
this.recalcInfo.recalculateTransform = false;
|
|
}
|
|
return {
|
|
x: this.x,
|
|
y: this.y,
|
|
extX: this.extX,
|
|
extY: this.extY,
|
|
rot: this.rot,
|
|
flipH: this.flipH,
|
|
flipV: this.flipV
|
|
};
|
|
},
|
|
canRotate: function () {
|
|
return false;
|
|
},
|
|
canResize: function () {
|
|
return false;
|
|
},
|
|
canMove: function () {
|
|
return true;
|
|
},
|
|
canGroup: function () {
|
|
return false;
|
|
},
|
|
createRotateTrack: function () {
|
|
return new RotateTrackShapeImage(this);
|
|
},
|
|
createResizeTrack: function (cardDirection) {
|
|
return new ResizeTrackShapeImage(this, cardDirection);
|
|
},
|
|
createMoveTrack: function () {
|
|
return new MoveShapeImageTrack(this);
|
|
},
|
|
getSnapArrays: function (snapX, snapY) {
|
|
var transform = this.getTransformMatrix();
|
|
snapX.push(transform.tx);
|
|
snapX.push(transform.tx + this.extX * 0.5);
|
|
snapX.push(transform.tx + this.extX);
|
|
snapY.push(transform.ty);
|
|
snapY.push(transform.ty + this.extY * 0.5);
|
|
snapY.push(transform.ty + this.extY);
|
|
},
|
|
hitInInnerArea: function (x, y) {
|
|
var invert_transform = this.getInvertTransform();
|
|
var x_t = invert_transform.TransformPointX(x, y);
|
|
var y_t = invert_transform.TransformPointY(x, y);
|
|
return x_t > 0 && x_t < this.extX && y_t > 0 && y_t < this.extY;
|
|
},
|
|
hitInTextRect: function (x, y) {
|
|
return this.hitInInnerArea(x, y);
|
|
},
|
|
getInvertTransform: function () {
|
|
if (this.recalcInfo.recalculateTransform) {
|
|
this.recalculateTransform();
|
|
}
|
|
return this.invertTransform;
|
|
},
|
|
hitInBoundingRect: function (x, y) {
|
|
var invert_transform = this.getInvertTransform();
|
|
var x_t = invert_transform.TransformPointX(x, y);
|
|
var y_t = invert_transform.TransformPointY(x, y);
|
|
var _hit_context = this.getParentObjects().presentation.DrawingDocument.CanvasHitContext;
|
|
return (HitInLine(_hit_context, x_t, y_t, 0, 0, this.extX, 0) || HitInLine(_hit_context, x_t, y_t, this.extX, 0, this.extX, this.extY) || HitInLine(_hit_context, x_t, y_t, this.extX, this.extY, 0, this.extY) || HitInLine(_hit_context, x_t, y_t, 0, this.extY, 0, 0));
|
|
},
|
|
Document_UpdateRulersState: function (margins) {
|
|
if (this.graphicObject) {
|
|
this.graphicObject.Document_UpdateRulersState(this.parent.num);
|
|
}
|
|
},
|
|
Get_PageLimits: function (PageIndex) {
|
|
return {
|
|
X: 0,
|
|
Y: 0,
|
|
XLimit: Page_Width,
|
|
YLimit: Page_Height
|
|
};
|
|
},
|
|
getParentObjects: CShape.prototype.getParentObjects,
|
|
Is_HdrFtr: function (bool) {
|
|
if (bool) {
|
|
return null;
|
|
}
|
|
return false;
|
|
},
|
|
Is_TableCellContent: function () {
|
|
return false;
|
|
},
|
|
Is_InTable: function () {
|
|
return null;
|
|
},
|
|
selectionSetStart: function (e, x, y, slideIndex) {
|
|
if (g_mouse_button_right === e.Button) {
|
|
this.rightButtonFlag = true;
|
|
return;
|
|
}
|
|
if (isRealObject(this.graphicObject)) {
|
|
var tx, ty;
|
|
tx = this.invertTransform.TransformPointX(x, y);
|
|
ty = this.invertTransform.TransformPointY(x, y);
|
|
if (g_mouse_event_type_down === e.Type) {
|
|
if (this.graphicObject.Is_TableBorder(tx, ty, 0)) {
|
|
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false) {
|
|
History.Create_NewPoint(historydescription_Presentation_TableBorder);
|
|
} else {
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
this.graphicObject.Selection_SetStart(tx, ty, 0, e);
|
|
this.graphicObject.RecalculateCurPos();
|
|
return;
|
|
}
|
|
},
|
|
selectionSetEnd: function (e, x, y, slideIndex) {
|
|
if (g_mouse_event_type_move === e.Type) {
|
|
this.rightButtonFlag = false;
|
|
}
|
|
if (this.rightButtonFlag && g_mouse_event_type_up === e.Type) {
|
|
this.rightButtonFlag = false;
|
|
return;
|
|
}
|
|
if (isRealObject(this.graphicObject)) {
|
|
var tx, ty;
|
|
tx = this.invertTransform.TransformPointX(x, y);
|
|
ty = this.invertTransform.TransformPointY(x, y);
|
|
this.graphicObject.Selection_SetEnd(tx, ty, 0, e);
|
|
}
|
|
},
|
|
updateSelectionState: function () {
|
|
if (isRealObject(this.graphicObject)) {
|
|
var drawingDocument = this.parent.presentation.DrawingDocument;
|
|
var Doc = this.graphicObject;
|
|
if (true === Doc.Is_SelectionUse() && !Doc.Selection_IsEmpty()) {
|
|
drawingDocument.UpdateTargetTransform(this.transform);
|
|
drawingDocument.TargetEnd();
|
|
drawingDocument.SelectEnabled(true);
|
|
drawingDocument.SelectClear();
|
|
Doc.Selection_Draw_Page(this.parent.num);
|
|
drawingDocument.SelectShow();
|
|
} else {
|
|
drawingDocument.SelectEnabled(false);
|
|
Doc.RecalculateCurPos();
|
|
drawingDocument.UpdateTargetTransform(this.transform);
|
|
drawingDocument.TargetShow();
|
|
}
|
|
} else {
|
|
this.parent.presentation.DrawingDocument.UpdateTargetTransform(null);
|
|
this.parent.presentation.DrawingDocument.TargetEnd();
|
|
this.parent.presentation.DrawingDocument.SelectEnabled(false);
|
|
this.parent.presentation.DrawingDocument.SelectClear();
|
|
this.parent.presentation.DrawingDocument.SelectShow();
|
|
}
|
|
},
|
|
Is_TopDocument: function () {
|
|
return false;
|
|
},
|
|
drawAdjustments: function () {},
|
|
recalculateTransform: CShape.prototype.recalculateTransform,
|
|
recalculateLocalTransform: CShape.prototype.recalculateLocalTransform,
|
|
deleteDrawingBase: CShape.prototype.deleteDrawingBase,
|
|
addToDrawingObjects: CShape.prototype.addToDrawingObjects,
|
|
select: CShape.prototype.select,
|
|
deselect: CShape.prototype.deselect,
|
|
Update_ConentIndexing: function () {},
|
|
draw: function (graphics) {
|
|
if (graphics.IsSlideBoundsCheckerType === true) {
|
|
graphics.transform3(this.transform);
|
|
graphics._s();
|
|
graphics._m(0, 0);
|
|
graphics._l(this.extX, 0);
|
|
graphics._l(this.extX, this.extY);
|
|
graphics._l(0, this.extY);
|
|
graphics._e();
|
|
return;
|
|
}
|
|
if (this.graphicObject) {
|
|
graphics.transform3(this.transform);
|
|
graphics.SetIntegerGrid(true);
|
|
this.graphicObject.Draw(0, graphics);
|
|
if (locktype_None != this.Lock.Get_Type() && !this.group) {
|
|
graphics.DrawLockObjectRect(this.Lock.Get_Type(), 0, 0, this.extX, this.extY);
|
|
}
|
|
graphics.reset();
|
|
graphics.SetIntegerGrid(true);
|
|
}
|
|
},
|
|
Select: function () {},
|
|
Set_CurrentElement: function () {
|
|
if (this.parent && this.parent.graphicObjects) {
|
|
this.parent.graphicObjects.resetSelection(true);
|
|
if (this.group) {
|
|
var main_group = this.group.getMainGroup();
|
|
this.parent.graphicObjects.selectObject(main_group, 0);
|
|
main_group.selectObject(this, this.parent.num);
|
|
main_group.selection.textSelection = this;
|
|
} else {
|
|
this.parent.graphicObjects.selectObject(this, 0);
|
|
this.parent.graphicObjects.selection.textSelection = this;
|
|
}
|
|
if (editor.WordControl.m_oLogicDocument.CurPage !== this.parent.num) {
|
|
editor.WordControl.m_oLogicDocument.Set_CurPage(this.parent.num);
|
|
editor.WordControl.GoToPage(this.parent.num);
|
|
}
|
|
}
|
|
},
|
|
OnContentRecalculate: function () {
|
|
this.recalcInfo.recalculateSizes = true;
|
|
this.recalcInfo.recalculateTransform = true;
|
|
editor.WordControl.m_oLogicDocument.Document_UpdateRulersState();
|
|
},
|
|
getTextSelectionState: function () {
|
|
return this.graphicObject.Get_SelectionState();
|
|
},
|
|
setTextSelectionState: function (Sate) {
|
|
return this.graphicObject.Set_SelectionState(Sate, Sate.length - 1);
|
|
},
|
|
isPlaceholder: function () {
|
|
return this.nvGraphicFramePr && this.nvGraphicFramePr.nvPr && this.nvGraphicFramePr.nvPr.ph !== null;
|
|
},
|
|
getPhType: function () {
|
|
if (this.isPlaceholder()) {
|
|
return this.nvGraphicFramePr.nvPr.ph.type;
|
|
}
|
|
return null;
|
|
},
|
|
getPhIndex: function () {
|
|
if (this.isPlaceholder()) {
|
|
return this.nvGraphicFramePr.nvPr.ph.idx;
|
|
}
|
|
return null;
|
|
},
|
|
getPlaceholderType: function () {
|
|
return this.getPhType();
|
|
},
|
|
getPlaceholderIndex: function () {
|
|
return this.getPhIndex();
|
|
},
|
|
paragraphAdd: function (paraItem, bRecalculate) {},
|
|
applyTextFunction: function (docContentFunction, tableFunction, args) {
|
|
if (tableFunction === CTable.prototype.Paragraph_Add) {
|
|
if ((args[0].Type === para_NewLine || args[0].Type === para_Text || args[0].Type === para_Space || args[0].Type === para_Tab || args[0].Type === para_PageNum) && this.graphicObject.Selection.Use) {
|
|
this.graphicObject.Remove(1, true, undefined, true);
|
|
}
|
|
} else {
|
|
if (tableFunction === CTable.prototype.Add_NewParagraph) {
|
|
this.graphicObject.Selection.Use && this.graphicObject.Remove(1, true, undefined, true);
|
|
}
|
|
}
|
|
tableFunction.apply(this.graphicObject, args);
|
|
},
|
|
remove: function (Count, bOnlyText, bRemoveOnlySelection) {
|
|
this.graphicObject.Remove(Count, bOnlyText, bRemoveOnlySelection);
|
|
this.recalcInfo.recalculateSizes = true;
|
|
this.recalcInfo.recalculateTransform = true;
|
|
},
|
|
addNewParagraph: function () {
|
|
this.graphicObject.Add_NewParagraph(false);
|
|
this.recalcInfo.recalculateContent = true;
|
|
this.recalcInfo.recalculateTransformText = true;
|
|
},
|
|
setParagraphAlign: function (val) {
|
|
if (isRealObject(this.graphicObject)) {
|
|
this.graphicObject.Set_ParagraphAlign(val);
|
|
this.recalcInfo.recalculateContent = true;
|
|
this.recalcInfo.recalculateTransform = true;
|
|
}
|
|
},
|
|
applyAllAlign: function (val) {
|
|
if (isRealObject(this.graphicObject)) {
|
|
this.graphicObject.Set_ApplyToAll(true);
|
|
this.graphicObject.Set_ParagraphAlign(val);
|
|
this.graphicObject.Set_ApplyToAll(false);
|
|
}
|
|
},
|
|
setParagraphSpacing: function (val) {
|
|
if (isRealObject(this.graphicObject)) {
|
|
this.graphicObject.Set_ParagraphSpacing(val);
|
|
}
|
|
},
|
|
applyAllSpacing: function (val) {
|
|
if (isRealObject(this.graphicObject)) {
|
|
this.graphicObject.Set_ApplyToAll(true);
|
|
this.graphicObject.Set_ParagraphSpacing(val);
|
|
this.graphicObject.Set_ApplyToAll(false);
|
|
}
|
|
},
|
|
setParagraphNumbering: function (val) {
|
|
if (isRealObject(this.graphicObject)) {
|
|
this.graphicObject.Set_ParagraphNumbering(val);
|
|
}
|
|
},
|
|
setParagraphIndent: function (val) {
|
|
if (isRealObject(this.graphicObject)) {
|
|
this.graphicObject.Set_ParagraphIndent(val);
|
|
}
|
|
},
|
|
setParent2: function (parent) {
|
|
History.Add(this, {
|
|
Type: historyitem_GraphicFrameSetSetParent,
|
|
oldPr: this.parent,
|
|
newPr: parent
|
|
});
|
|
this.parent = parent;
|
|
},
|
|
setWordFlag: function (bPresentation, Document) {
|
|
if (this.graphicObject) {
|
|
this.graphicObject.bPresentation = bPresentation;
|
|
for (var i = 0; i < this.graphicObject.Content.length; ++i) {
|
|
var row = this.graphicObject.Content[i];
|
|
for (var j = 0; j < row.Content.length; ++j) {
|
|
var content = row.Content[j].Content;
|
|
if (!bPresentation && Document) {
|
|
content.Styles = Document.Styles;
|
|
} else {
|
|
content.Styles = null;
|
|
}
|
|
content.bPresentation = bPresentation;
|
|
for (var k = 0; k < content.Content.length; ++k) {
|
|
content.Content[k].bFromDocument = !bPresentation;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
Get_Styles: function (level) {
|
|
if (isRealNumber(level)) {
|
|
if (!this.compiledStyles[level]) {
|
|
CShape.prototype.recalculateTextStyles.call(this, level);
|
|
}
|
|
return this.compiledStyles[level];
|
|
} else {
|
|
return editor.WordControl.m_oLogicDocument.globalTableStyles;
|
|
}
|
|
},
|
|
Get_StartPage_Absolute: function () {
|
|
return this.parent.num;
|
|
},
|
|
Get_PageContentStartPos: function (PageNum) {
|
|
var presentation = editor.WordControl.m_oLogicDocument;
|
|
return {
|
|
X: 0,
|
|
XLimit: presentation.Width,
|
|
Y: 0,
|
|
YLimit: presentation.Height,
|
|
MaxTopBorder: 0
|
|
};
|
|
},
|
|
hitToHandles: function () {
|
|
return -1;
|
|
},
|
|
hitToAdjustment: function () {
|
|
return {
|
|
hit: false
|
|
};
|
|
},
|
|
Refresh_RecalcData: function () {
|
|
this.Refresh_RecalcData2();
|
|
},
|
|
Refresh_RecalcData2: function () {
|
|
this.recalcInfo.recalculateTable = true;
|
|
this.recalcInfo.recalculateSizes = true;
|
|
this.addToRecalculate();
|
|
},
|
|
Undo: function (data) {
|
|
switch (data.Type) {
|
|
case historyitem_ShapeSetBDeleted:
|
|
this.bDeleted = data.oldPr;
|
|
break;
|
|
case historyitem_GraphicFrameSetSpPr:
|
|
this.spPr = data.oldPr;
|
|
break;
|
|
case historyitem_GraphicFrameSetGraphicObject:
|
|
this.graphicObject = data.oldPr;
|
|
if (this.graphicObject) {
|
|
this.graphicObject.Index = 0;
|
|
}
|
|
break;
|
|
case historyitem_GraphicFrameSetSetNvSpPr:
|
|
this.nvGraphicFramePr = data.oldPr;
|
|
break;
|
|
case historyitem_GraphicFrameSetSetParent:
|
|
this.parent = data.oldPr;
|
|
break;
|
|
case historyitem_GraphicFrameSetSetGroup:
|
|
this.group = data.oldPr;
|
|
break;
|
|
}
|
|
},
|
|
Redo: function (data) {
|
|
switch (data.Type) {
|
|
case historyitem_ShapeSetBDeleted:
|
|
this.bDeleted = data.newPr;
|
|
break;
|
|
case historyitem_GraphicFrameSetSpPr:
|
|
this.spPr = data.newPr;
|
|
break;
|
|
case historyitem_GraphicFrameSetGraphicObject:
|
|
this.graphicObject = data.newPr;
|
|
if (this.graphicObject) {
|
|
this.graphicObject.Index = 0;
|
|
}
|
|
break;
|
|
case historyitem_GraphicFrameSetSetNvSpPr:
|
|
this.nvGraphicFramePr = data.newPr;
|
|
break;
|
|
case historyitem_GraphicFrameSetSetParent:
|
|
this.parent = data.newPr;
|
|
break;
|
|
case historyitem_GraphicFrameSetSetGroup:
|
|
this.group = data.newPr;
|
|
break;
|
|
}
|
|
},
|
|
Save_Changes: function (data, w) {
|
|
w.WriteLong(data.Type);
|
|
switch (data.Type) {
|
|
case historyitem_GraphicFrameSetSpPr:
|
|
case historyitem_GraphicFrameSetGraphicObject:
|
|
case historyitem_GraphicFrameSetSetNvSpPr:
|
|
case historyitem_GraphicFrameSetSetParent:
|
|
case historyitem_GraphicFrameSetSetGroup:
|
|
writeObject(w, data.newPr);
|
|
break;
|
|
case historyitem_ShapeSetBDeleted:
|
|
writeBool(w, data.newPr);
|
|
break;
|
|
}
|
|
},
|
|
Load_Changes: function (r) {
|
|
var type = r.GetLong();
|
|
switch (type) {
|
|
case historyitem_ShapeSetBDeleted:
|
|
this.bDeleted = readBool(r);
|
|
break;
|
|
case historyitem_GraphicFrameSetSpPr:
|
|
this.spPr = readObject(r);
|
|
break;
|
|
case historyitem_GraphicFrameSetGraphicObject:
|
|
this.graphicObject = readObject(r);
|
|
if (this.graphicObject) {
|
|
this.graphicObject.Index = 0;
|
|
}
|
|
break;
|
|
case historyitem_GraphicFrameSetSetNvSpPr:
|
|
this.nvGraphicFramePr = readObject(r);
|
|
break;
|
|
case historyitem_GraphicFrameSetSetParent:
|
|
this.parent = readObject(r);
|
|
break;
|
|
case historyitem_GraphicFrameSetSetGroup:
|
|
this.group = readObject(r);
|
|
break;
|
|
}
|
|
},
|
|
Write_ToBinary2: function (w) {
|
|
w.WriteLong(historyitem_type_GraphicFrame);
|
|
w.WriteString2(this.Id);
|
|
},
|
|
Read_FromBinary2: function (r) {
|
|
this.Id = r.GetString2();
|
|
}
|
|
}; |