1252 lines
45 KiB
JavaScript
1252 lines
45 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 Slide(presentation, slideLayout, slideNum) {
|
|
this.kind = SLIDE_KIND;
|
|
this.presentation = editor && editor.WordControl && editor.WordControl.m_oLogicDocument;
|
|
this.graphicObjects = new DrawingObjectsController(this);
|
|
this.maxId = 0;
|
|
this.cSld = new CSld();
|
|
this.clrMap = null;
|
|
this.show = true;
|
|
this.showMasterPhAnim = false;
|
|
this.showMasterSp = null;
|
|
this.backgroundFill = null;
|
|
this.timing = new CAscSlideTiming();
|
|
this.timing.setDefaultParams();
|
|
this.recalcInfo = {
|
|
recalculateBackground: true,
|
|
recalculateSpTree: true
|
|
};
|
|
this.Width = 254;
|
|
this.Height = 190.5;
|
|
this.searchingArray = [];
|
|
this.selectionArray = [];
|
|
this.writecomments = [];
|
|
this.maxId = 1000;
|
|
this.m_oContentChanges = new CContentChanges();
|
|
this.commentX = 0;
|
|
this.commentY = 0;
|
|
this.deleteLock = null;
|
|
this.backgroundLock = null;
|
|
this.timingLock = null;
|
|
this.transitionLock = null;
|
|
this.layoutLock = null;
|
|
this.Lock = new CLock();
|
|
this.Id = g_oIdCounter.Get_NewId();
|
|
g_oTableId.Add(this, this.Id);
|
|
if (presentation) {
|
|
this.Width = presentation.Width;
|
|
this.Height = presentation.Height;
|
|
this.setSlideComments(new SlideComments(this));
|
|
this.setLocks(new PropLocker(this.Id), new PropLocker(this.Id), new PropLocker(this.Id), new PropLocker(this.Id), new PropLocker(this.Id));
|
|
}
|
|
if (slideLayout) {
|
|
this.setLayout(slideLayout);
|
|
}
|
|
if (typeof slideNum === "number") {
|
|
this.setSlideNum(slideNum);
|
|
}
|
|
}
|
|
Slide.prototype = {
|
|
getObjectType: function () {
|
|
return historyitem_type_Slide;
|
|
},
|
|
getDrawingDocument: function () {
|
|
return editor.WordControl.m_oLogicDocument.DrawingDocument;
|
|
},
|
|
createDuplicate: function () {
|
|
var copy = new Slide(this.presentation, this.Layout, 0),
|
|
i;
|
|
if (typeof this.cSld.name === "string" && this.cSld.name.length > 0) {
|
|
copy.setCSldName(this.cSld.name);
|
|
}
|
|
if (this.cSld.Bg) {
|
|
copy.changeBackground(this.cSld.Bg.createFullCopy());
|
|
}
|
|
for (i = 0; i < this.cSld.spTree.length; ++i) {
|
|
copy.shapeAdd(copy.cSld.spTree.length, this.cSld.spTree[i].copy());
|
|
copy.cSld.spTree[copy.cSld.spTree.length - 1].setParent2(copy);
|
|
}
|
|
if (this.clrMap) {
|
|
copy.setClMapOverride(this.clrMap.createDuplicate());
|
|
}
|
|
if (isRealBool(this.show)) {
|
|
copy.setShow(this.show);
|
|
}
|
|
if (isRealBool(this.showMasterPhAnim)) {
|
|
copy.setShowPhAnim(this.showMasterPhAnim);
|
|
}
|
|
if (isRealBool(this.showMasterSp)) {
|
|
copy.setShowMasterSp(this.showMasterSp);
|
|
}
|
|
copy.applyTiming(this.timing.createDuplicate());
|
|
copy.setSlideSize(this.Width, this.Height);
|
|
if (!this.recalcInfo.recalculateBackground && !this.recalcInfo.recalculateSpTree) {
|
|
copy.cachedImage = this.getBase64Img();
|
|
}
|
|
return copy;
|
|
},
|
|
Search: function (Str, Props, Engine, Type) {
|
|
var sp_tree = this.cSld.spTree;
|
|
for (var i = 0; i < sp_tree.length; ++i) {
|
|
if (sp_tree[i].Search) {
|
|
sp_tree[i].Search(Str, Props, Engine, Type);
|
|
}
|
|
}
|
|
},
|
|
Search_GetId: function (isNext, StartPos) {
|
|
var sp_tree = this.cSld.spTree,
|
|
i, Id;
|
|
if (isNext) {
|
|
for (i = StartPos; i < sp_tree.length; ++i) {
|
|
if (sp_tree[i].Search_GetId) {
|
|
Id = sp_tree[i].Search_GetId(isNext, false);
|
|
if (Id !== null) {
|
|
return Id;
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
for (i = StartPos; i > -1; --i) {
|
|
if (sp_tree[i].Search_GetId) {
|
|
Id = sp_tree[i].Search_GetId(isNext, false);
|
|
if (Id !== null) {
|
|
return Id;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return null;
|
|
},
|
|
getMatchingShape: function (type, idx, bSingleBody) {
|
|
var _input_reduced_type;
|
|
if (type == null) {
|
|
_input_reduced_type = phType_body;
|
|
} else {
|
|
if (type == phType_ctrTitle) {
|
|
_input_reduced_type = phType_title;
|
|
} else {
|
|
_input_reduced_type = type;
|
|
}
|
|
}
|
|
var _input_reduced_index;
|
|
if (idx == null) {
|
|
_input_reduced_index = 0;
|
|
} else {
|
|
_input_reduced_index = idx;
|
|
}
|
|
var _sp_tree = this.cSld.spTree;
|
|
var _shape_index;
|
|
var _index, _type;
|
|
var _final_index, _final_type;
|
|
var _glyph;
|
|
var body_count = 0;
|
|
var last_body;
|
|
for (_shape_index = 0; _shape_index < _sp_tree.length; ++_shape_index) {
|
|
_glyph = _sp_tree[_shape_index];
|
|
if (_glyph.isPlaceholder()) {
|
|
if (_glyph instanceof CShape) {
|
|
_index = _glyph.nvSpPr.nvPr.ph.idx;
|
|
_type = _glyph.nvSpPr.nvPr.ph.type;
|
|
}
|
|
if (_glyph instanceof CImageShape) {
|
|
_index = _glyph.nvPicPr.nvPr.ph.idx;
|
|
_type = _glyph.nvPicPr.nvPr.ph.type;
|
|
}
|
|
if (_glyph instanceof CGroupShape) {
|
|
_index = _glyph.nvGrpSpPr.nvPr.ph.idx;
|
|
_type = _glyph.nvGrpSpPr.nvPr.ph.type;
|
|
}
|
|
if (_type == null) {
|
|
_final_type = phType_body;
|
|
} else {
|
|
if (_type == phType_ctrTitle) {
|
|
_final_type = phType_title;
|
|
} else {
|
|
_final_type = _type;
|
|
}
|
|
}
|
|
if (_index == null) {
|
|
_final_index = 0;
|
|
} else {
|
|
_final_index = _index;
|
|
}
|
|
if (_input_reduced_type == _final_type && _input_reduced_index == _final_index) {
|
|
return _glyph;
|
|
}
|
|
if (_input_reduced_type == phType_title && _input_reduced_type == _final_type) {
|
|
return _glyph;
|
|
}
|
|
if (phType_body === _type) {
|
|
++body_count;
|
|
last_body = _glyph;
|
|
}
|
|
}
|
|
}
|
|
if (_input_reduced_type == phType_sldNum || _input_reduced_type == phType_dt || _input_reduced_type == phType_ftr || _input_reduced_type == phType_hdr) {
|
|
for (_shape_index = 0; _shape_index < _sp_tree.length; ++_shape_index) {
|
|
_glyph = _sp_tree[_shape_index];
|
|
if (_glyph.isPlaceholder()) {
|
|
if (_glyph instanceof CShape) {
|
|
_type = _glyph.nvSpPr.nvPr.ph.type;
|
|
}
|
|
if (_glyph instanceof CImageShape) {
|
|
_type = _glyph.nvPicPr.nvPr.ph.type;
|
|
}
|
|
if (_glyph instanceof CGroupShape) {
|
|
_type = _glyph.nvGrpSpPr.nvPr.ph.type;
|
|
}
|
|
if (_input_reduced_type == _type) {
|
|
return _glyph;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (body_count === 1 && type === phType_body && bSingleBody) {
|
|
return last_body;
|
|
}
|
|
return null;
|
|
},
|
|
changeNum: function (num) {
|
|
this.num = num;
|
|
},
|
|
recalcText: function () {
|
|
this.recalcInfo.recalculateSpTree = true;
|
|
for (var i = 0; i < this.cSld.spTree.length; ++i) {
|
|
this.cSld.spTree[i].recalcText && this.cSld.spTree[i].recalcText();
|
|
}
|
|
},
|
|
addComment: function (comment) {
|
|
if (isRealObject(this.slideComments)) {
|
|
this.slideComments.addComment(comment);
|
|
}
|
|
},
|
|
changeComment: function (id, commentData) {
|
|
if (isRealObject(this.slideComments)) {
|
|
this.slideComments.changeComment(id, commentData);
|
|
}
|
|
},
|
|
removeComment: function (id) {
|
|
if (isRealObject(this.slideComments)) {
|
|
this.slideComments.removeComment(id);
|
|
}
|
|
},
|
|
addToRecalculate: function () {
|
|
History.RecalcData_Add({
|
|
Type: historyrecalctype_Drawing,
|
|
Object: this
|
|
});
|
|
},
|
|
Refresh_RecalcData: function (data) {
|
|
if (data) {
|
|
switch (data.Type) {
|
|
case historyitem_SlideSetBg:
|
|
this.recalcInfo.recalculateBackground = true;
|
|
break;
|
|
case historyitem_SlideSetLayout:
|
|
this.checkSlideTheme();
|
|
break;
|
|
}
|
|
this.addToRecalculate();
|
|
}
|
|
},
|
|
Write_ToBinary2: function (w) {
|
|
w.WriteLong(historyitem_type_Slide);
|
|
w.WriteString2(this.Id);
|
|
},
|
|
Read_FromBinary2: function (r) {
|
|
this.Id = r.GetString2();
|
|
},
|
|
Undo: function (data) {
|
|
switch (data.Type) {
|
|
case historyitem_SlideSetComments:
|
|
this.slideComments = data.oldPr;
|
|
break;
|
|
case historyitem_SlideSetShow:
|
|
this.show = data.oldPr;
|
|
break;
|
|
case historyitem_SlideSetShowPhAnim:
|
|
this.showMasterPhAnim = data.oldPr;
|
|
break;
|
|
case historyitem_SlideSetShowMasterSp:
|
|
this.showMasterSp = data.oldPr;
|
|
break;
|
|
case historyitem_SlideSetLayout:
|
|
this.Layout = data.oldPr;
|
|
break;
|
|
case historyitem_SlideSetNum:
|
|
this.num = data.oldPr;
|
|
break;
|
|
case historyitem_SlideSetTiming:
|
|
this.timing = data.oldPr;
|
|
break;
|
|
case historyitem_SlideSetSize:
|
|
this.Width = data.oldW;
|
|
this.Height = data.oldH;
|
|
break;
|
|
case historyitem_SlideSetBg:
|
|
this.cSld.Bg = data.oldPr;
|
|
break;
|
|
case historyitem_SlideSetLocks:
|
|
this.deleteLock = null;
|
|
this.backgroundLock = null;
|
|
this.timingLock = null;
|
|
this.transitionLock = null;
|
|
this.layoutLock = null;
|
|
break;
|
|
case historyitem_SlideAddToSpTree:
|
|
this.cSld.spTree.splice(data.Pos, 1);
|
|
break;
|
|
case historyitem_SlideRemoveFromSpTree:
|
|
this.cSld.spTree.splice(data.Pos, 0, data.Item);
|
|
break;
|
|
case historyitem_SlideSetCSldName:
|
|
this.cSld.name = data.oldPr;
|
|
break;
|
|
case historyitem_SlideSetClrMapOverride:
|
|
this.clrMap = data.oldPr;
|
|
break;
|
|
}
|
|
},
|
|
Redo: function (data) {
|
|
switch (data.Type) {
|
|
case historyitem_SlideSetComments:
|
|
this.slideComments = data.newPr;
|
|
break;
|
|
case historyitem_SlideSetShow:
|
|
this.show = data.newPr;
|
|
break;
|
|
case historyitem_SlideSetShowPhAnim:
|
|
this.showMasterPhAnim = data.newPr;
|
|
break;
|
|
case historyitem_SlideSetShowMasterSp:
|
|
this.showMasterSp = data.newPr;
|
|
break;
|
|
case historyitem_SlideSetLayout:
|
|
this.Layout = data.newPr;
|
|
break;
|
|
case historyitem_SlideSetNum:
|
|
this.num = data.newPr;
|
|
break;
|
|
case historyitem_SlideSetTiming:
|
|
this.timing = data.newPr;
|
|
break;
|
|
case historyitem_SlideSetSize:
|
|
this.Width = data.newW;
|
|
this.Height = data.newH;
|
|
break;
|
|
case historyitem_SlideSetBg:
|
|
this.cSld.Bg = data.newPr;
|
|
break;
|
|
case historyitem_SlideSetLocks:
|
|
this.deleteLock = data.deleteLock;
|
|
this.backgroundLock = data.backgroundLock;
|
|
this.timingLock = data.timingLock;
|
|
this.transitionLock = data.transitionLock;
|
|
this.layoutLock = data.layoutLock;
|
|
break;
|
|
case historyitem_SlideAddToSpTree:
|
|
this.cSld.spTree.splice(data.Pos, 0, data.Item);
|
|
break;
|
|
case historyitem_SlideRemoveFromSpTree:
|
|
this.cSld.spTree.splice(data.Pos, 1);
|
|
break;
|
|
case historyitem_SlideSetCSldName:
|
|
this.cSld.name = data.newPr;
|
|
break;
|
|
case historyitem_SlideSetClrMapOverride:
|
|
this.clrMap = data.newPr;
|
|
break;
|
|
}
|
|
},
|
|
Save_Changes: function (data, w) {
|
|
w.WriteLong(data.Type);
|
|
switch (data.Type) {
|
|
case historyitem_SlideSetComments:
|
|
case historyitem_SlideSetLayout:
|
|
case historyitem_SlideSetClrMapOverride:
|
|
writeObject(w, data.newPr);
|
|
break;
|
|
case historyitem_SlideSetShow:
|
|
case historyitem_SlideSetShowPhAnim:
|
|
case historyitem_SlideSetShowMasterSp:
|
|
writeBool(w, data.newPr);
|
|
break;
|
|
case historyitem_SlideSetNum:
|
|
writeLong(w, data.newPr);
|
|
break;
|
|
case historyitem_SlideSetTiming:
|
|
case historyitem_SlideSetBg:
|
|
data.newPr.Write_ToBinary(w);
|
|
break;
|
|
case historyitem_SlideSetSize:
|
|
writeDouble(w, data.newW);
|
|
writeDouble(w, data.newH);
|
|
break;
|
|
case historyitem_SlideSetLocks:
|
|
writeObject(w, data.deleteLock);
|
|
writeObject(w, data.backgroundLock);
|
|
writeObject(w, data.timingLock);
|
|
writeObject(w, data.transitionLock);
|
|
writeObject(w, data.layoutLock);
|
|
break;
|
|
case historyitem_SlideAddToSpTree:
|
|
var Pos = data.UseArray ? data.PosArray[0] : data.Pos;
|
|
writeLong(w, Pos);
|
|
writeObject(w, data.Item);
|
|
break;
|
|
case historyitem_SlideRemoveFromSpTree:
|
|
var Pos = data.UseArray ? data.PosArray[0] : data.Pos;
|
|
writeLong(w, data.Pos);
|
|
break;
|
|
case historyitem_SlideSetCSldName:
|
|
writeString(w, data.newPr);
|
|
break;
|
|
}
|
|
},
|
|
Load_Changes: function (r) {
|
|
var type = r.GetLong();
|
|
switch (type) {
|
|
case historyitem_SlideSetComments:
|
|
this.slideComments = readObject(r);
|
|
break;
|
|
case historyitem_SlideSetShow:
|
|
this.show = readBool(r);
|
|
break;
|
|
case historyitem_SlideSetShowPhAnim:
|
|
this.showMasterPhAnim = readBool(r);
|
|
break;
|
|
case historyitem_SlideSetShowMasterSp:
|
|
this.showMasterSp = readBool(r);
|
|
break;
|
|
case historyitem_SlideSetLayout:
|
|
this.Layout = readObject(r);
|
|
break;
|
|
case historyitem_SlideSetNum:
|
|
this.num = readLong(r);
|
|
break;
|
|
case historyitem_SlideSetTiming:
|
|
this.timing = new CAscSlideTiming();
|
|
this.timing.Read_FromBinary(r);
|
|
break;
|
|
case historyitem_SlideSetSize:
|
|
this.Width = readDouble(r);
|
|
this.Height = readDouble(r);
|
|
break;
|
|
case historyitem_SlideSetBg:
|
|
this.cSld.Bg = new CBg();
|
|
this.cSld.Bg.Read_FromBinary(r);
|
|
this.recalcInfo.recalculateBackground = true;
|
|
var Fill;
|
|
if (this.cSld.Bg.bgPr && this.cSld.Bg.bgPr.Fill) {
|
|
Fill = this.cSld.Bg.bgPr.Fill;
|
|
}
|
|
if (typeof CollaborativeEditing !== "undefined") {
|
|
if (Fill && Fill.fill && Fill.fill.type === FILL_TYPE_BLIP && typeof Fill.fill.RasterImageId === "string" && Fill.fill.RasterImageId.length > 0) {
|
|
var full_image_src_func;
|
|
if (typeof _getFullImageSrc === "function") {
|
|
full_image_src_func = _getFullImageSrc;
|
|
}
|
|
if (full_image_src_func) {
|
|
CollaborativeEditing.Add_NewImage(full_image_src_func(Fill.fill.RasterImageId));
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case historyitem_SlideSetLocks:
|
|
this.deleteLock = readObject(r);
|
|
this.backgroundLock = readObject(r);
|
|
this.timingLock = readObject(r);
|
|
this.transitionLock = readObject(r);
|
|
this.layoutLock = readObject(r);
|
|
break;
|
|
case historyitem_SlideAddToSpTree:
|
|
var Pos = readLong(r);
|
|
var Item = readObject(r);
|
|
var ChangesPos = this.m_oContentChanges.Check(contentchanges_Add, Pos);
|
|
this.cSld.spTree.splice(ChangesPos, 0, Item);
|
|
break;
|
|
case historyitem_SlideRemoveFromSpTree:
|
|
var Pos = readLong(r);
|
|
var ChangesPos = this.m_oContentChanges.Check(contentchanges_Remove, Pos);
|
|
if (! (ChangesPos === false)) {
|
|
this.cSld.spTree.splice(ChangesPos, 1);
|
|
}
|
|
break;
|
|
case historyitem_SlideSetCSldName:
|
|
this.cSld.name = readString(r);
|
|
break;
|
|
case historyitem_SlideSetClrMapOverride:
|
|
this.clrMap = readObject(r);
|
|
this.recalcInfo.recalculateBackground = true;
|
|
this.recalcInfo.recalculateSpTree = true;
|
|
break;
|
|
}
|
|
},
|
|
setSlideComments: function (comments) {
|
|
History.Add(this, {
|
|
Type: historyitem_SlideSetComments,
|
|
oldPr: this.slideComments,
|
|
newPr: comments
|
|
});
|
|
this.slideComments = comments;
|
|
},
|
|
setShow: function (bShow) {
|
|
History.Add(this, {
|
|
Type: historyitem_SlideSetShow,
|
|
oldPr: this.show,
|
|
newPr: bShow
|
|
});
|
|
this.show = bShow;
|
|
},
|
|
setShowPhAnim: function (bShow) {
|
|
History.Add(this, {
|
|
Type: historyitem_SlideSetShowPhAnim,
|
|
oldPr: this.showMasterPhAnim,
|
|
newPr: bShow
|
|
});
|
|
this.showMasterPhAnim = bShow;
|
|
},
|
|
setShowMasterSp: function (bShow) {
|
|
History.Add(this, {
|
|
Type: historyitem_SlideSetShowMasterSp,
|
|
oldPr: this.showMasterSp,
|
|
newPr: bShow
|
|
});
|
|
this.showMasterSp = bShow;
|
|
},
|
|
setLayout: function (layout) {
|
|
History.Add(this, {
|
|
Type: historyitem_SlideSetLayout,
|
|
oldPr: this.Layout,
|
|
newPr: layout
|
|
});
|
|
this.Layout = layout;
|
|
},
|
|
setSlideNum: function (num) {
|
|
History.Add(this, {
|
|
Type: historyitem_SlideSetNum,
|
|
oldPr: this.num,
|
|
newPr: num
|
|
});
|
|
this.num = num;
|
|
},
|
|
applyTiming: function (timing) {
|
|
var oldTiming = this.timing.createDuplicate();
|
|
this.timing.applyProps(timing);
|
|
History.Add(this, {
|
|
Type: historyitem_SlideSetTiming,
|
|
oldPr: oldTiming,
|
|
newPr: this.timing.createDuplicate()
|
|
});
|
|
},
|
|
setSlideSize: function (w, h) {
|
|
History.Add(this, {
|
|
Type: historyitem_SlideSetSize,
|
|
oldW: this.Width,
|
|
oldH: this.Height,
|
|
newW: w,
|
|
newH: h
|
|
});
|
|
this.Width = w;
|
|
this.Height = h;
|
|
},
|
|
changeBackground: function (bg) {
|
|
History.Add(this, {
|
|
Type: historyitem_SlideSetBg,
|
|
oldPr: this.cSld.Bg,
|
|
newPr: bg
|
|
});
|
|
this.cSld.Bg = bg;
|
|
},
|
|
setLocks: function (deleteLock, backgroundLock, timingLock, transitionLock, layoutLock) {
|
|
this.deleteLock = deleteLock;
|
|
this.backgroundLock = backgroundLock;
|
|
this.timingLock = timingLock;
|
|
this.transitionLock = transitionLock;
|
|
this.layoutLock = layoutLock;
|
|
History.Add(this, {
|
|
Type: historyitem_SlideSetLocks,
|
|
deleteLock: deleteLock,
|
|
backgroundLock: backgroundLock,
|
|
timingLock: timingLock,
|
|
transitionLock: transitionLock,
|
|
layoutLock: layoutLock
|
|
});
|
|
},
|
|
shapeAdd: function (pos, item) {
|
|
this.checkDrawingUniNvPr(item);
|
|
var _pos = isRealNumber(pos) ? pos : this.cSld.spTree.length;
|
|
History.Add(this, {
|
|
Type: historyitem_SlideAddToSpTree,
|
|
Pos: _pos,
|
|
Item: item
|
|
});
|
|
this.cSld.spTree.splice(_pos, 0, item);
|
|
},
|
|
checkDrawingUniNvPr: function (drawing) {
|
|
var nv_sp_pr;
|
|
if (drawing) {
|
|
switch (drawing.getObjectType()) {
|
|
case historyitem_type_ChartSpace:
|
|
break;
|
|
case historyitem_type_GroupShape:
|
|
if (!drawing.nvGrpSpPr) {
|
|
nv_sp_pr = new UniNvPr();
|
|
nv_sp_pr.cNvPr.setId(++this.maxId);
|
|
drawing.setNvSpPr(nv_sp_pr);
|
|
}
|
|
break;
|
|
case historyitem_type_ImageShape:
|
|
if (!drawing.nvPicPr) {
|
|
nv_sp_pr = new UniNvPr();
|
|
nv_sp_pr.cNvPr.setId(++this.maxId);
|
|
drawing.setNvSpPr(nv_sp_pr);
|
|
}
|
|
break;
|
|
case historyitem_type_Shape:
|
|
if (!drawing.nvSpPr) {
|
|
nv_sp_pr = new UniNvPr();
|
|
nv_sp_pr.cNvPr.setId(++this.maxId);
|
|
drawing.setNvSpPr(nv_sp_pr);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
},
|
|
removeFromSpTreeById: function (id) {
|
|
var sp_tree = this.cSld.spTree;
|
|
for (var i = 0; i < sp_tree.length; ++i) {
|
|
if (sp_tree[i].Get_Id() === id) {
|
|
History.Add(this, {
|
|
Type: historyitem_SlideRemoveFromSpTree,
|
|
Pos: i,
|
|
Item: sp_tree[i]
|
|
});
|
|
sp_tree.splice(i, 1);
|
|
return i;
|
|
}
|
|
}
|
|
return null;
|
|
},
|
|
addToSpTreeToPos: function (pos, obj) {
|
|
this.shapeAdd(pos, obj);
|
|
},
|
|
setCSldName: function (name) {
|
|
History.Add(this, {
|
|
Type: historyitem_SlideSetCSldName,
|
|
oldPr: this.cSld.name,
|
|
newPr: name
|
|
});
|
|
this.cSld.name = name;
|
|
},
|
|
setClMapOverride: function (clrMap) {
|
|
History.Add(this, {
|
|
Type: historyitem_SlideSetClrMapOverride,
|
|
oldPr: this.clrMap,
|
|
newPr: clrMap
|
|
});
|
|
this.clrMap = clrMap;
|
|
},
|
|
getAllFonts: function (fonts) {
|
|
for (var i = 0; i < this.cSld.spTree.length; ++i) {
|
|
if (typeof this.cSld.spTree[i].getAllFonts === "function") {
|
|
this.cSld.spTree[i].getAllFonts(fonts);
|
|
}
|
|
}
|
|
},
|
|
getAllImages: function (images) {
|
|
if (this.cSld.Bg && this.cSld.Bg.bgPr && this.cSld.Bg.bgPr.Fill && this.cSld.Bg.bgPr.Fill.fill instanceof CBlipFill && typeof this.cSld.Bg.bgPr.Fill.fill.RasterImageId === "string") {
|
|
images[_getFullImageSrc(this.cSld.Bg.bgPr.Fill.fill.RasterImageId)] = true;
|
|
}
|
|
for (var i = 0; i < this.cSld.spTree.length; ++i) {
|
|
if (typeof this.cSld.spTree[i].getAllImages === "function") {
|
|
this.cSld.spTree[i].getAllImages(images);
|
|
}
|
|
}
|
|
},
|
|
changeSize: function (width, height) {
|
|
var kw = width / this.Width,
|
|
kh = height / this.Height;
|
|
this.setSlideSize(width, height);
|
|
for (var i = 0; i < this.cSld.spTree.length; ++i) {
|
|
this.cSld.spTree[i].changeSize(kw, kh);
|
|
}
|
|
},
|
|
checkSlideSize: function () {
|
|
this.recalcInfo.recalculateSpTree = true;
|
|
for (var i = 0; i < this.cSld.spTree.length; ++i) {
|
|
this.cSld.spTree[i].handleUpdateExtents();
|
|
}
|
|
},
|
|
checkSlideTheme: function () {
|
|
this.recalcInfo.recalculateSpTree = true;
|
|
this.recalcInfo.recalculateBackground = true;
|
|
for (var i = 0; i < this.cSld.spTree.length; ++i) {
|
|
this.cSld.spTree[i].handleUpdateTheme();
|
|
}
|
|
},
|
|
checkSlideColorScheme: function () {
|
|
this.recalcInfo.recalculateSpTree = true;
|
|
this.recalcInfo.recalculateBackground = true;
|
|
for (var i = 0; i < this.cSld.spTree.length; ++i) {
|
|
this.cSld.spTree[i].handleUpdateFill();
|
|
this.cSld.spTree[i].handleUpdateLn();
|
|
}
|
|
},
|
|
Get_Id: function () {
|
|
return this.Id;
|
|
},
|
|
Get_ColorMap: function () {
|
|
if (this.clrMap) {
|
|
return this.clrMap;
|
|
} else {
|
|
if (this.Layout && this.Layout.clrMap) {
|
|
return this.Layout.clrMap;
|
|
} else {
|
|
if (this.Layout.Master && this.Layout.Master.clrMap) {
|
|
return this.Layout.Master.clrMap;
|
|
}
|
|
}
|
|
}
|
|
return G_O_DEFAULT_COLOR_MAP;
|
|
},
|
|
recalculate: function () {
|
|
if (!this.Layout || !isRealNumber(this.num)) {
|
|
return;
|
|
}
|
|
if (this.recalcInfo.recalculateBackground) {
|
|
this.recalculateBackground();
|
|
this.recalcInfo.recalculateBackground = false;
|
|
}
|
|
if (this.recalcInfo.recalculateSpTree) {
|
|
this.recalculateSpTree();
|
|
this.recalcInfo.recalculateSpTree = false;
|
|
}
|
|
this.cachedImage = null;
|
|
},
|
|
recalculateBackground: function () {
|
|
var _back_fill = null;
|
|
var RGBA = {
|
|
R: 0,
|
|
G: 0,
|
|
B: 0,
|
|
A: 255
|
|
};
|
|
var _layout = this.Layout;
|
|
var _master = _layout.Master;
|
|
var _theme = _master.Theme;
|
|
if (this.cSld.Bg != null) {
|
|
if (null != this.cSld.Bg.bgPr) {
|
|
_back_fill = this.cSld.Bg.bgPr.Fill;
|
|
} else {
|
|
if (this.cSld.Bg.bgRef != null) {
|
|
this.cSld.Bg.bgRef.Color.Calculate(_theme, this, _layout, _master, RGBA);
|
|
RGBA = this.cSld.Bg.bgRef.Color.RGBA;
|
|
_back_fill = _theme.themeElements.fmtScheme.GetFillStyle(this.cSld.Bg.bgRef.idx, this.cSld.Bg.bgRef.Color);
|
|
}
|
|
}
|
|
} else {
|
|
if (_layout != null) {
|
|
if (_layout.cSld.Bg != null) {
|
|
if (null != _layout.cSld.Bg.bgPr) {
|
|
_back_fill = _layout.cSld.Bg.bgPr.Fill;
|
|
} else {
|
|
if (_layout.cSld.Bg.bgRef != null) {
|
|
_layout.cSld.Bg.bgRef.Color.Calculate(_theme, this, _layout, _master, RGBA);
|
|
RGBA = _layout.cSld.Bg.bgRef.Color.RGBA;
|
|
_back_fill = _theme.themeElements.fmtScheme.GetFillStyle(_layout.cSld.Bg.bgRef.idx, _layout.cSld.Bg.bgRef.Color);
|
|
}
|
|
}
|
|
} else {
|
|
if (_master != null) {
|
|
if (_master.cSld.Bg != null) {
|
|
if (null != _master.cSld.Bg.bgPr) {
|
|
_back_fill = _master.cSld.Bg.bgPr.Fill;
|
|
} else {
|
|
if (_master.cSld.Bg.bgRef != null) {
|
|
_master.cSld.Bg.bgRef.Color.Calculate(_theme, this, _layout, _master, RGBA);
|
|
RGBA = _master.cSld.Bg.bgRef.Color.RGBA;
|
|
_back_fill = _theme.themeElements.fmtScheme.GetFillStyle(_master.cSld.Bg.bgRef.idx, _master.cSld.Bg.bgRef.Color);
|
|
}
|
|
}
|
|
} else {
|
|
_back_fill = new CUniFill();
|
|
_back_fill.fill = new CSolidFill();
|
|
_back_fill.fill.color = new CUniColor();
|
|
_back_fill.fill.color.color = new CRGBColor();
|
|
_back_fill.fill.color.color.RGBA = {
|
|
R: 255,
|
|
G: 255,
|
|
B: 255,
|
|
A: 255
|
|
};
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (_back_fill != null) {
|
|
_back_fill.calculate(_theme, this, _layout, _master, RGBA);
|
|
}
|
|
this.backgroundFill = _back_fill;
|
|
},
|
|
recalculateSpTree: function () {
|
|
for (var i = 0; i < this.cSld.spTree.length; ++i) {
|
|
this.cSld.spTree[i].recalculate();
|
|
}
|
|
},
|
|
draw: function (graphics) {
|
|
DrawBackground(graphics, this.backgroundFill, this.Width, this.Height);
|
|
if (this.showMasterSp === true || (!(this.showMasterSp === false) && (this.Layout.showMasterSp == undefined || this.Layout.showMasterSp))) {
|
|
if (graphics.IsSlideBoundsCheckerType === undefined) {
|
|
this.Layout.Master.draw(graphics);
|
|
}
|
|
}
|
|
if (graphics && graphics.IsSlideBoundsCheckerType === undefined) {
|
|
this.Layout.draw(graphics);
|
|
}
|
|
for (var i = 0; i < this.cSld.spTree.length; ++i) {
|
|
this.cSld.spTree[i].draw(graphics);
|
|
}
|
|
if (this.slideComments) {
|
|
var comments = this.slideComments.comments;
|
|
for (var i = 0; i < comments.length; ++i) {
|
|
comments[i].draw(graphics);
|
|
}
|
|
}
|
|
},
|
|
drawSelect: function (_type) {
|
|
if (_type === undefined) {
|
|
this.graphicObjects.drawTextSelection(this.num);
|
|
this.graphicObjects.drawSelect(0, this.presentation.DrawingDocument);
|
|
} else {
|
|
if (_type == 1) {
|
|
this.graphicObjects.drawTextSelection(this.num);
|
|
} else {
|
|
if (_type == 2) {
|
|
this.graphicObjects.drawSelect(0, this.presentation.DrawingDocument);
|
|
}
|
|
}
|
|
}
|
|
},
|
|
getDrawingObjects: function () {
|
|
return this.cSld.spTree;
|
|
},
|
|
paragraphAdd: function (paraItem, bRecalculate) {
|
|
this.graphicObjects.paragraphAdd(paraItem, bRecalculate);
|
|
},
|
|
OnUpdateOverlay: function () {
|
|
this.presentation.DrawingDocument.m_oWordControl.OnUpdateOverlay();
|
|
},
|
|
sendGraphicObjectProps: function () {
|
|
editor.WordControl.m_oLogicDocument.Document_UpdateInterfaceState();
|
|
},
|
|
checkGraphicObjectPosition: function () {
|
|
return {
|
|
x: 0,
|
|
y: 0
|
|
};
|
|
},
|
|
isViewerMode: function () {
|
|
return editor.isViewMode;
|
|
},
|
|
onMouseDown: function (e, x, y) {
|
|
this.graphicObjects.onMouseDown(e, x, y);
|
|
},
|
|
onMouseMove: function (e, x, y) {
|
|
this.graphicObjects.onMouseMove(e, x, y);
|
|
},
|
|
onMouseUp: function (e, x, y) {
|
|
this.graphicObjects.onMouseUp(e, x, y);
|
|
},
|
|
getColorMap: function () {},
|
|
showDrawingObjects: function () {
|
|
editor.WordControl.m_oDrawingDocument.OnRecalculatePage(this.num, this);
|
|
},
|
|
showComment: function (Id, x, y) {
|
|
editor.sync_HideComment();
|
|
editor.sync_ShowComment(Id, x, y);
|
|
},
|
|
getSlideIndex: function () {
|
|
return this.num;
|
|
},
|
|
getWorksheet: function () {
|
|
return null;
|
|
},
|
|
showChartSettings: function () {
|
|
editor.asc_fireCallback("asc_doubleClickOnChart", this.graphicObjects.getChartObject());
|
|
this.graphicObjects.changeCurrentState(new NullState(this.graphicObjects));
|
|
},
|
|
Clear_ContentChanges: function () {
|
|
this.m_oContentChanges.Clear();
|
|
},
|
|
Add_ContentChanges: function (Changes) {
|
|
this.m_oContentChanges.Add(Changes);
|
|
},
|
|
Refresh_ContentChanges: function () {
|
|
this.m_oContentChanges.Refresh();
|
|
},
|
|
isLockedObject: function () {
|
|
return false;
|
|
},
|
|
convertPixToMM: function (pix) {
|
|
return editor.WordControl.m_oDrawingDocument.GetMMPerDot(pix);
|
|
},
|
|
getBase64Img: function () {
|
|
if (typeof this.cachedImage === "string" && this.cachedImage.length > 0) {
|
|
return this.cachedImage;
|
|
}
|
|
return ShapeToImageConverter(this, 0).ImageUrl;
|
|
},
|
|
checkNoTransformPlaceholder: function () {
|
|
var sp_tree = this.cSld.spTree;
|
|
for (var i = 0; i < sp_tree.length; ++i) {
|
|
var sp = sp_tree[i];
|
|
if (sp.getObjectType() === historyitem_type_Shape || sp.getObjectType() === historyitem_type_ImageShape) {
|
|
if (sp.isPlaceholder && sp.isPlaceholder()) {
|
|
sp.recalcInfo.recalculateShapeHierarchy = true;
|
|
var hierarchy = sp.getHierarchy();
|
|
for (var j = 0; j < hierarchy.length; ++j) {
|
|
if (isRealObject(hierarchy[j])) {
|
|
break;
|
|
}
|
|
}
|
|
if (j === hierarchy.length) {
|
|
CheckSpPrXfrm(sp);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
getSnapArrays: function () {
|
|
var snapX = [];
|
|
var snapY = [];
|
|
for (var i = 0; i < this.cSld.spTree.length; ++i) {
|
|
if (this.cSld.spTree[i].getSnapArrays) {
|
|
this.cSld.spTree[i].getSnapArrays(snapX, snapY);
|
|
}
|
|
}
|
|
return {
|
|
snapX: snapX,
|
|
snapY: snapY
|
|
};
|
|
},
|
|
Load_Comments: function (authors) {
|
|
var _comments_count = this.writecomments.length;
|
|
var _comments_id = [];
|
|
var _comments_data = [];
|
|
var _comments_data_author_id = [];
|
|
var _comments = [];
|
|
for (var i = 0; i < _comments_count; i++) {
|
|
var _wc = this.writecomments[i];
|
|
if (0 == _wc.WriteParentAuthorId || 0 == _wc.WriteParentCommentId) {
|
|
var commentData = new CCommentData();
|
|
commentData.m_sText = _wc.WriteText;
|
|
commentData.m_sUserId = ("" + _wc.WriteAuthorId);
|
|
commentData.m_sUserName = "";
|
|
commentData.m_sTime = _wc.WriteTime;
|
|
for (var k in authors) {
|
|
if (_wc.WriteAuthorId == authors[k].Id) {
|
|
commentData.m_sUserName = authors[k].Name;
|
|
break;
|
|
}
|
|
}
|
|
_comments_id.push(_wc.WriteCommentId);
|
|
_comments_data.push(commentData);
|
|
_comments_data_author_id.push(_wc.WriteAuthorId);
|
|
_wc.ParceAdditionalData(commentData);
|
|
var comment = new CComment(undefined, new CCommentData());
|
|
comment.setPosition(_wc.x / 25.4, _wc.y / 25.4);
|
|
_comments.push(comment);
|
|
} else {
|
|
var commentData = new CCommentData();
|
|
commentData.m_sText = _wc.WriteText;
|
|
commentData.m_sUserId = ("" + _wc.WriteAuthorId);
|
|
commentData.m_sUserName = "";
|
|
commentData.m_sTime = _wc.WriteTime;
|
|
for (var k in authors) {
|
|
if (_wc.WriteAuthorId == authors[k].Id) {
|
|
commentData.m_sUserName = authors[k].Name;
|
|
break;
|
|
}
|
|
}
|
|
_wc.ParceAdditionalData(commentData);
|
|
var _parent = null;
|
|
for (var j = 0; j < _comments_data.length; j++) {
|
|
if ((_wc.WriteParentAuthorId == _comments_data_author_id[j]) && (_wc.WriteParentCommentId == _comments_id[j])) {
|
|
_parent = _comments_data[j];
|
|
break;
|
|
}
|
|
}
|
|
if (null != _parent) {
|
|
_parent.m_aReplies.push(commentData);
|
|
}
|
|
}
|
|
}
|
|
for (var i = 0; i < _comments.length; i++) {
|
|
_comments[i].Set_Data(_comments_data[i]);
|
|
this.addComment(_comments[i]);
|
|
}
|
|
this.writecomments = [];
|
|
}
|
|
};
|
|
function PropLocker(objectId) {
|
|
this.objectId = null;
|
|
this.Lock = new CLock();
|
|
this.Id = g_oIdCounter.Get_NewId();
|
|
g_oTableId.Add(this, this.Id);
|
|
if (typeof objectId === "string") {
|
|
this.setObjectId(objectId);
|
|
}
|
|
}
|
|
PropLocker.prototype = {
|
|
getObjectType: function () {
|
|
return historyitem_type_PropLocker;
|
|
},
|
|
setObjectId: function (id) {
|
|
History.Add(this, {
|
|
Type: historyitem_PropLockerSetId,
|
|
oldId: this.objectId,
|
|
newId: id
|
|
});
|
|
this.objectId = id;
|
|
},
|
|
Get_Id: function () {
|
|
return this.Id;
|
|
},
|
|
Write_ToBinary2: function (w) {
|
|
w.WriteLong(historyitem_type_PropLocker);
|
|
w.WriteString2(this.Id);
|
|
},
|
|
Read_FromBinary2: function (r) {
|
|
this.Id = r.GetString2();
|
|
},
|
|
Undo: function (data) {
|
|
switch (data.Type) {
|
|
case historyitem_PropLockerSetId:
|
|
this.objectId = data.oldId;
|
|
break;
|
|
}
|
|
},
|
|
Redo: function (data) {
|
|
switch (data.Type) {
|
|
case historyitem_PropLockerSetId:
|
|
this.objectId = data.newId;
|
|
break;
|
|
}
|
|
},
|
|
Save_Changes: function (data, w) {
|
|
w.WriteLong(data.Type);
|
|
switch (data.Type) {
|
|
case historyitem_PropLockerSetId:
|
|
writeString(w, data.newId);
|
|
break;
|
|
}
|
|
},
|
|
Load_Changes: function (r) {
|
|
var type = r.GetLong();
|
|
switch (type) {
|
|
case historyitem_PropLockerSetId:
|
|
this.objectId = readString(r);
|
|
break;
|
|
}
|
|
},
|
|
Refresh_RecalcData: function () {}
|
|
};
|
|
CTextBody.prototype.Get_StartPage_Absolute = function () {
|
|
if (this.parent) {
|
|
if (this.parent.getParentObjects) {
|
|
var parent_objects = this.parent.getParentObjects();
|
|
if (parent_objects.slide) {
|
|
return parent_objects.slide.num;
|
|
}
|
|
}
|
|
}
|
|
return 0;
|
|
};
|
|
CTextBody.prototype.checkCurrentPlaceholder = function () {
|
|
var presentation = editor.WordControl.m_oLogicDocument;
|
|
if (presentation.Slides[presentation.CurPage]) {
|
|
return presentation.Slides[presentation.CurPage].graphicObjects.getTargetDocContent() === this.content;
|
|
}
|
|
return false;
|
|
};
|
|
function SlideComments(slide) {
|
|
this.comments = [];
|
|
this.m_oContentChanges = new CContentChanges();
|
|
this.slide = slide;
|
|
this.Id = g_oIdCounter.Get_NewId();
|
|
g_oTableId.Add(this, this.Id);
|
|
}
|
|
SlideComments.prototype = {
|
|
getObjectType: function () {
|
|
return historyitem_type_SlideComments;
|
|
},
|
|
Get_Id: function () {
|
|
return this.Id;
|
|
},
|
|
Clear_ContentChanges: function () {
|
|
this.m_oContentChanges.Clear();
|
|
},
|
|
Add_ContentChanges: function (Changes) {
|
|
this.m_oContentChanges.Add(Changes);
|
|
},
|
|
Refresh_ContentChanges: function () {
|
|
this.m_oContentChanges.Refresh();
|
|
},
|
|
addComment: function (comment) {
|
|
History.Add(this, {
|
|
Type: historyitem_SlideCommentsAddComment,
|
|
objectId: comment.Get_Id(),
|
|
Pos: this.comments.length
|
|
});
|
|
this.comments.splice(this.comments.length, 0, comment);
|
|
comment.slideComments = this;
|
|
},
|
|
getSlideIndex: function () {
|
|
if (this.slide) {
|
|
return this.slide.num;
|
|
}
|
|
return null;
|
|
},
|
|
changeComment: function (id, commentData) {
|
|
for (var i = 0; i < this.comments.length; ++i) {
|
|
if (this.comments[i].Get_Id() === id) {
|
|
this.comments[i].Set_Data(commentData);
|
|
return;
|
|
}
|
|
}
|
|
},
|
|
removeComment: function (id) {
|
|
for (var i = 0; i < this.comments.length; ++i) {
|
|
if (this.comments[i].Get_Id() === id) {
|
|
History.Add(this, {
|
|
Type: historyitem_SlideCommentsRemoveComment,
|
|
Pos: i,
|
|
id: id
|
|
});
|
|
this.comments.splice(i, 1);
|
|
editor.sync_RemoveComment(id);
|
|
return;
|
|
}
|
|
}
|
|
},
|
|
removeSelectedComment: function () {
|
|
var comment = this.getSelectedComment();
|
|
if (comment) {
|
|
this.removeComment(comment.Get_Id());
|
|
}
|
|
},
|
|
getSelectedComment: function () {
|
|
for (var i = 0; i < this.comments.length; ++i) {
|
|
if (this.comments[i].selected) {
|
|
return this.comments[i];
|
|
}
|
|
}
|
|
return null;
|
|
},
|
|
recalculate: function () {},
|
|
Write_ToBinary2: function (w) {
|
|
w.WriteLong(historyitem_type_SlideComments);
|
|
w.WriteString2(this.Id);
|
|
writeObject(w, this.slide);
|
|
},
|
|
Read_FromBinary2: function (r) {
|
|
this.Id = r.GetString2();
|
|
this.slide = readObject(r);
|
|
},
|
|
Refresh_RecalcData: function () {
|
|
History.RecalcData_Add({
|
|
Type: historyrecalctype_Drawing,
|
|
Object: this
|
|
});
|
|
},
|
|
Save_Changes: function (data, w) {
|
|
w.WriteLong(data.Type);
|
|
switch (data.Type) {
|
|
case historyitem_SlideCommentsAddComment:
|
|
var Pos = data.UseArray ? data.PosArray[0] : data.Pos;
|
|
w.WriteLong(Pos);
|
|
w.WriteString2(data.objectId);
|
|
break;
|
|
case historyitem_SlideCommentsRemoveComment:
|
|
var Pos = data.UseArray ? data.PosArray[0] : data.Pos;
|
|
w.WriteLong(Pos);
|
|
break;
|
|
}
|
|
},
|
|
Load_Changes: function (r) {
|
|
var type = r.GetLong();
|
|
switch (type) {
|
|
case historyitem_SlideCommentsAddComment:
|
|
var pos = r.GetLong();
|
|
var id = r.GetString2();
|
|
var pos2 = this.m_oContentChanges.Check(contentchanges_Add, pos);
|
|
this.comments.splice(pos2, 0, g_oTableId.Get_ById(id));
|
|
this.comments[pos2].slideComments = this;
|
|
editor.sync_AddComment(id, this.comments[pos2].Data);
|
|
break;
|
|
case historyitem_SlideCommentsRemoveComment:
|
|
var pos = r.GetLong();
|
|
var pos2 = this.m_oContentChanges.Check(contentchanges_Remove, pos);
|
|
var comment = this.comments.splice(pos2, 1)[0];
|
|
editor.sync_RemoveComment(comment.Id);
|
|
break;
|
|
}
|
|
},
|
|
Undo: function (data) {
|
|
switch (data.Type) {
|
|
case historyitem_SlideCommentsAddComment:
|
|
this.comments.splice(data.Pos, 1);
|
|
editor.sync_RemoveComment(data.objectId);
|
|
break;
|
|
case historyitem_SlideCommentsRemoveComment:
|
|
this.comments.splice(data.Pos, 0, g_oTableId.Get_ById(data.id));
|
|
editor.sync_AddComment(this.comments[data.Pos].Get_Id(), this.comments[data.Pos].Data);
|
|
break;
|
|
}
|
|
},
|
|
Redo: function (data) {
|
|
switch (data.Type) {
|
|
case historyitem_SlideCommentsAddComment:
|
|
this.comments.splice(data.Pos, 0, g_oTableId.Get_ById(data.objectId));
|
|
editor.sync_AddComment(data.objectId, this.comments[data.Pos].Data);
|
|
break;
|
|
case historyitem_SlideCommentsRemoveComment:
|
|
this.comments.splice(data.Pos, 1);
|
|
editor.sync_RemoveComment(data.id);
|
|
break;
|
|
}
|
|
}
|
|
}; |