DocumentServer/OfficeWeb/sdk/PowerPoint/Editor/Format/Presentation.js
2015-04-28 17:59:00 +03:00

3258 lines
194 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";
var History = null;
var recalcSlideInterval = 30;
function SlideCopyObject(Slide, ImageUrl) {
this.Slide = Slide;
this.ImageUrl = ImageUrl;
}
function DrawingCopyObject(Drawing, X, Y, ExtX, ExtY, ImageUrl) {
this.Drawing = Drawing;
this.X = X;
this.Y = Y;
this.ExtX = ExtX;
this.ExtY = ExtY;
this.ImageUrl = ImageUrl;
}
function PresentationSelectedContent() {
this.SlideObjects = [];
this.Drawings = [];
this.DocContent = null;
}
function CreatePresentationTableStyles(Styles, IdMap) {
function CreateMiddleStyle2(schemeId) {
var style = new CStyle("Middle Style 2 - accent " + (schemeId + 1), null, null, styletype_Table);
style.TablePr.Set_FromObject({
TableBorders: {
Left: {
Color: {
r: 0,
g: 0,
b: 0
},
Unifill: CreateUnifillSolidFillSchemeColor(12, 0),
Space: 0,
Size: 12700 / 36000,
Value: border_Single
},
Right: {
Color: {
r: 0,
g: 0,
b: 0
},
Unifill: CreateUnifillSolidFillSchemeColor(12, 0),
Space: 0,
Size: 12700 / 36000,
Value: border_Single
},
Top: {
Color: {
r: 0,
g: 0,
b: 0
},
Unifill: CreateUnifillSolidFillSchemeColor(12, 0),
Space: 0,
Size: 12700 / 36000,
Value: border_Single
},
Bottom: {
Color: {
r: 0,
g: 0,
b: 0
},
Unifill: CreateUnifillSolidFillSchemeColor(12, 0),
Space: 0,
Size: 12700 / 36000,
Value: border_Single
},
InsideH: {
Color: {
r: 0,
g: 0,
b: 0
},
Unifill: CreateUnifillSolidFillSchemeColor(12, 0),
Space: 0,
Size: 12700 / 36000,
Value: border_Single
},
InsideV: {
Color: {
r: 0,
g: 0,
b: 0
},
Unifill: CreateUnifillSolidFillSchemeColor(12, 0),
Space: 0,
Size: 12700 / 36000,
Value: border_Single
}
}
});
style.TableWholeTable.Set_FromObject({
TextPr: {
FontRef: CreateFontRef(fntStyleInd_minor, CreatePresetColor("black")),
Unifill: CreateUnifillSolidFillSchemeColor(8, 0)
},
TableCellPr: {
Shd: {
Unifill: CreateUnifillSolidFillSchemeColor(schemeId, 0.2)
}
}
});
var styleObject = {
TableCellPr: {
Shd: {
Unifill: CreateUnifillSolidFillSchemeColor(schemeId, 0.4)
}
}
};
style.TableBand1Horz.Set_FromObject(styleObject);
style.TableBand1Vert.Set_FromObject(styleObject);
styleObject = {
TextPr: {
Bold: true,
FontRef: CreateFontRef(fntStyleInd_minor, CreatePresetColor("black")),
Unifill: CreateUnifillSolidFillSchemeColor(8, 0)
},
TableCellPr: {
Shd: {
Unifill: CreateUnifillSolidFillSchemeColor(schemeId, 0)
}
}
};
style.TableLastCol.Set_FromObject(styleObject);
style.TableFirstCol.Set_FromObject(styleObject);
styleObject.TableCellPr.TableCellBorders = {
Top: {
Color: {
r: 0,
g: 0,
b: 0
},
Unifill: CreateUnifillSolidFillSchemeColor(12, 0),
Space: 0,
Size: 38100 / 36000,
Value: border_Single
}
};
style.TableLastRow.Set_FromObject(styleObject);
styleObject.TableCellPr.TableCellBorders = {
Bottom: {
Color: {
r: 0,
g: 0,
b: 0
},
Unifill: CreateUnifillSolidFillSchemeColor(12, 0),
Space: 0,
Size: 38100 / 36000,
Value: border_Single
}
};
styleObject.TextPr = {
Bold: true,
FontRef: CreateFontRef(fntStyleInd_minor, CreatePresetColor("black")),
Unifill: CreateUnifillSolidFillSchemeColor(12, 0)
};
style.TableFirstRow.Set_FromObject(styleObject);
return style;
}
var def = CreateMiddleStyle2(0),
style;
style = CreateMiddleStyle2(8);
Styles.Add(style);
IdMap[style.Id] = true;
Styles.Add(def);
IdMap[def.Id] = true;
for (var i = 1; i < 6; ++i) {
style = CreateMiddleStyle2(i);
Styles.Add(style);
IdMap[style.Id] = true;
}
return def.Id;
}
function CPresentation(DrawingDocument) {
this.History = new CHistory(this);
History = this.History;
g_oTableId = new CTableId();
this.Id = g_oIdCounter.Get_NewId();
this.StartPage = 0;
this.CurPage = 0;
this.Orientation = orientation_Portrait;
this.slidesToUnlock = [];
this.TurnOffRecalc = false;
this.DrawingDocument = DrawingDocument;
this.SearchEngine = new CDocumentSearch();
this.NeedUpdateTarget = false;
this.noShowContextMenu = false;
this.viewMode = false;
this.SearchInfo = {
Id: null,
StartPos: 0,
CurPage: 0,
String: null
};
this.TargetPos = {
X: 0,
Y: 0,
PageNum: 0
};
this.CopyTextPr = null;
this.CopyParaPr = null;
this.Lock = new CLock();
this.m_oContentChanges = new CContentChanges();
this.Slides = [];
this.themes = [];
this.slideMasters = [];
this.slideLayouts = [];
this.notesMasters = [];
this.notes = [];
this.globalTableStyles = null;
this.updateSlideIndex = false;
this.recalcMap = {};
this.bClearSearch = true;
this.bNeedUpdateTh = false;
this.needSelectPages = [];
this.forwardChangeThemeTimeOutId = null;
this.backChangeThemeTimeOutId = null;
this.startChangeThemeTimeOutId = null;
this.TablesForInterface = null;
this.LastTheme = null;
this.LastColorScheme = null;
this.LastColorMap = null;
this.LastTableLook = null;
this.DefaultSlideTiming = new CAscSlideTiming();
this.DefaultSlideTiming.setDefaultParams();
this.DefaultTableStyleId = null;
this.TableStylesIdMap = {};
this.bNeedUpdateChartPreview = false;
g_oTableId.Add(this, this.Id);
this.themeLock = new PropLocker(this.Id);
this.schemeLock = new PropLocker(this.Id);
this.slideSizeLock = new PropLocker(this.Id);
this.CommentAuthors = {};
this.createDefaultTableStyles();
this.bGoToPage = false;
}
CPresentation.prototype = {
createDefaultTableStyles: function () {
this.globalTableStyles = new CStyles();
this.DefaultTableStyleId = CreatePresentationTableStyles(this.globalTableStyles, this.TableStylesIdMap);
},
Init: function () {},
addSlideMaster: function (pos, master) {
History.Add(this, {
Type: historyitem_Presentation_AddSlideMaster,
pos: pos,
master: master
});
this.slideMasters.splice(pos, 0, master);
},
Get_Id: function () {
return this.Id;
},
Set_Id: function (newId) {
g_oTableId.Reset_Id(this, newId, this.Id);
this.Id = newId;
},
LoadEmptyDocument: function () {
this.DrawingDocument.TargetStart();
this.Recalculate();
this.Interface_Update_ParaPr();
this.Interface_Update_TextPr();
},
GetRecalculateMaps: function () {
var ret = {
layouts: {},
masters: {}
};
for (var i = 0; i < this.Slides.length; ++i) {
if (this.Slides[i].Layout) {
ret.layouts[this.Slides[i].Layout.Id] = this.Slides[i].Layout;
if (this.Slides[i].Layout.Master) {
ret.masters[this.Slides[i].Layout.Master.Id] = this.Slides[i].Layout.Master;
}
}
}
return ret;
},
Recalculate: function (RecalcData) {
if (undefined === RecalcData) {
var SimpleChanges = History.Is_SimpleChanges();
if (1 === SimpleChanges.length) {
var Run = SimpleChanges[0].Class;
var Para = Run.Paragraph;
var Res = Para.Recalculate_FastRange(SimpleChanges);
if (-1 !== Res) {
if (this.Slides[this.CurPage]) {
this.DrawingDocument.OnRecalculatePage(this.CurPage, this.Slides[this.CurPage]);
this.DrawingDocument.OnEndRecalculate();
}
History.Reset_RecalcIndex();
return;
}
}
}
if (this.bClearSearch) {
this.SearchEngine.Clear();
this.bClearSearch = false;
}
var _RecalcData = RecalcData ? RecalcData : History.Get_RecalcData(),
key,
recalcMap,
bSync = true,
i,
bRedrawAllSlides = false,
aToRedrawSlides = [],
redrawSlideIndexMap = {},
slideIndex;
this.updateSlideIndexes();
var b_check_layout = false;
if (_RecalcData.Drawings.All || _RecalcData.Drawings.ThemeInfo) {
b_check_layout = true;
recalcMap = this.GetRecalculateMaps();
for (key in recalcMap.masters) {
if (recalcMap.masters.hasOwnProperty(key)) {
recalcMap.masters[key].recalculate();
}
}
for (key in recalcMap.layouts) {
if (recalcMap.layouts.hasOwnProperty(key)) {
recalcMap.layouts[key].recalculate();
}
}
this.bNeedUpdateChartPreview = true;
if (_RecalcData.Drawings.ThemeInfo) {
this.clearThemeTimeouts();
var startRecalcIndex = _RecalcData.Drawings.ThemeInfo.ArrInd.indexOf(this.CurPage);
if (startRecalcIndex === -1) {
startRecalcIndex = 0;
}
var oThis = this;
bSync = false;
aToRedrawSlides = [].concat(_RecalcData.Drawings.ThemeInfo.ArrInd);
redrawSlide(oThis.Slides[_RecalcData.Drawings.ThemeInfo.ArrInd[startRecalcIndex]], oThis, aToRedrawSlides, startRecalcIndex, 0, oThis.Slides);
} else {
bRedrawAllSlides = true;
for (key = 0; key < this.Slides.length; ++key) {
this.Slides[key].recalcText();
this.Slides[key].recalculate();
}
}
} else {
for (key in _RecalcData.Drawings.Map) {
if (_RecalcData.Drawings.Map.hasOwnProperty(key)) {
_RecalcData.Drawings.Map[key].recalculate();
if (_RecalcData.Drawings.Map[key].getSlideIndex) {
slideIndex = _RecalcData.Drawings.Map[key].getSlideIndex();
if (slideIndex !== null) {
if (redrawSlideIndexMap[slideIndex] !== true) {
redrawSlideIndexMap[slideIndex] = true;
aToRedrawSlides.push(slideIndex);
}
}
}
}
}
}
History.Reset_RecalcIndex();
this.RecalculateCurPos();
if (bSync) {
if (bRedrawAllSlides) {
for (i = 0; i < this.Slides.length; ++i) {
this.DrawingDocument.OnRecalculatePage(i, this.Slides[i]);
}
} else {
aToRedrawSlides.sort(fSortAscending);
for (i = 0; i < aToRedrawSlides.length; ++i) {
this.DrawingDocument.OnRecalculatePage(aToRedrawSlides[i], this.Slides[aToRedrawSlides[i]]);
}
}
this.DrawingDocument.OnEndRecalculate();
}
if (!this.Slides[this.CurPage]) {
this.DrawingDocument.m_oWordControl.GoToPage(this.Slides.length - 1);
} else {
if (this.bGoToPage) {
this.DrawingDocument.m_oWordControl.GoToPage(this.CurPage);
this.bGoToPage = false;
} else {
if (b_check_layout) {
this.DrawingDocument.m_oWordControl.CheckLayouts();
}
}
if (this.needSelectPages.length > 0) {
this.needSelectPages.length = 0;
}
if (this.bNeedUpdateTh) {
this.DrawingDocument.UpdateThumbnailsAttack();
this.bNeedUpdateTh = false;
}
}
if (this.Slides[this.CurPage]) {
this.Slides[this.CurPage].graphicObjects.updateSelectionState();
}
for (i = 0; i < this.slidesToUnlock.length; ++i) {
this.DrawingDocument.UnLockSlide(this.slidesToUnlock[i]);
}
this.slidesToUnlock.length = 0;
},
updateSlideIndexes: function () {
for (var i = 0; i < this.Slides.length; ++i) {
this.Slides[i].changeNum(i);
}
},
GenerateThumbnails: function (_drawerThemes, _drawerLayouts) {
var _masters = this.slideMasters;
var _len = _masters.length;
for (var i = 0; i < _len; i++) {
_masters[i].ImageBase64 = _drawerThemes.GetThumbnail(_masters[i]);
}
var _layouts = this.slideLayouts;
_len = _layouts.length;
for (var i = 0; i < _len; i++) {
_layouts[i].ImageBase64 = _drawerLayouts.GetThumbnail(_layouts[i]);
_layouts[i].Width64 = _drawerLayouts.WidthPx;
_layouts[i].Height64 = _drawerLayouts.HeightPx;
}
},
Stop_Recalculate: function () {
this.DrawingDocument.OnStartRecalculate(0);
},
OnContentReDraw: function (StartPage, EndPage) {
this.ReDraw(StartPage, EndPage);
},
CheckTargetUpdate: function () {
if (this.DrawingDocument.UpdateTargetFromPaint === true) {
if (true === this.DrawingDocument.UpdateTargetCheck) {
this.NeedUpdateTarget = this.DrawingDocument.UpdateTargetCheck;
}
this.DrawingDocument.UpdateTargetCheck = false;
}
if (true === this.NeedUpdateTarget) {
this.RecalculateCurPos();
this.NeedUpdateTarget = false;
}
},
RecalculateCurPos: function () {
if (this.Slides[this.CurPage]) {
this.Slides[this.CurPage].graphicObjects.recalculateCurPos();
}
},
Set_TargetPos: function (X, Y, PageNum) {
this.TargetPos.X = X;
this.TargetPos.Y = Y;
this.TargetPos.PageNum = PageNum;
},
ReDraw: function (StartPage, EndPage) {
if ("undefined" === typeof(StartPage)) {
StartPage = 0;
}
if ("undefined" === typeof(EndPage)) {
EndPage = this.DrawingDocument.m_lCountCalculatePages;
}
for (var CurPage = StartPage; CurPage <= EndPage; CurPage++) {
this.DrawingDocument.OnRepaintPage(CurPage);
}
},
DrawPage: function (nPageIndex, pGraphics) {
this.Draw(nPageIndex, pGraphics);
},
Draw: function (nPageIndex, pGraphics) {
this.Slides[nPageIndex] && this.Slides[nPageIndex].draw(pGraphics);
},
Add_NewParagraph: function (bRecalculate) {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.checkSelectedObjectsAndCallback(this.Slides[this.CurPage].graphicObjects.addNewParagraph, [], false, historydescription_Presentation_AddNewParagraph);
this.Document_UpdateInterfaceState();
},
Search: function (Str, Props) {
if (true === this.SearchEngine.Compare(Str, Props)) {
return this.SearchEngine;
}
this.SearchEngine.Clear();
this.SearchEngine.Set(Str, Props);
for (var i = 0; i < this.Slides.length; ++i) {
this.Slides[i].Search(Str, Props, this.SearchEngine, search_Common);
}
this.DrawingDocument.ClearCachePages();
this.DrawingDocument.FirePaint();
this.bClearSearch = true;
return this.SearchEngine;
},
Search_GetId: function (isNext) {
if (this.Slides.length > 0) {
var i, Id, content, start_index;
var target_text_object = getTargetTextObject(this.Slides[this.CurPage].graphicObjects);
if (target_text_object) {
if (target_text_object.getObjectType() === historyitem_type_GraphicFrame) {
Id = target_text_object.graphicObject.Search_GetId(isNext, true);
if (Id !== null) {
return Id;
}
} else {
content = target_text_object.getDocContent();
if (content) {
Id = content.Search_GetId(isNext, true);
if (Id !== null) {
return Id;
}
}
}
}
var sp_tree = this.Slides[this.CurPage].cSld.spTree,
group_shapes,
group_start_index;
if (isNext) {
if (this.Slides[this.CurPage].graphicObjects.selection.groupSelection) {
group_shapes = this.Slides[this.CurPage].graphicObjects.selection.groupSelection.arrGraphicObjects;
for (i = 0; i < group_shapes.length; ++i) {
if (group_shapes[i].selected && group_shapes[i].getObjectType() === historyitem_type_Shape) {
content = group_shapes[i].getDocContent();
if (content) {
Id = content.Search_GetId(isNext, isRealObject(target_text_object));
if (Id !== null) {
return Id;
}
}
group_start_index = i + 1;
}
}
for (i = group_start_index; i < group_shapes.length; ++i) {
if (group_shapes[i].getObjectType() === historyitem_type_Shape) {
content = group_shapes[i].getDocContent();
if (content) {
Id = content.Search_GetId(isNext, false);
if (Id !== null) {
return Id;
}
}
}
}
for (i = 0; i < sp_tree.length; ++i) {
if (sp_tree[i] === this.Slides[this.CurPage].graphicObjects.selection.groupSelection) {
start_index = i + 1;
break;
}
}
if (i === sp_tree.length) {
start_index = sp_tree.length;
}
} else {
if (this.Slides[this.CurPage].graphicObjects.selectedObjects.length === 0) {
start_index = 0;
} else {
for (i = 0; i < sp_tree.length; ++i) {
if (sp_tree[i].selected) {
start_index = target_text_object ? i + 1 : i;
break;
}
}
if (i === sp_tree.length) {
start_index = sp_tree.length;
}
}
}
Id = this.Slides[this.CurPage].Search_GetId(isNext, start_index);
if (Id !== null) {
return Id;
}
for (i = this.CurPage + 1; i < this.Slides.length; ++i) {
Id = this.Slides[i].Search_GetId(isNext, 0);
if (Id !== null) {
return Id;
}
}
for (i = 0; i < this.CurPage; ++i) {
Id = this.Slides[i].Search_GetId(isNext, 0);
if (Id !== null) {
return Id;
}
}
} else {
if (this.Slides[this.CurPage].graphicObjects.selection.groupSelection) {
group_shapes = this.Slides[this.CurPage].graphicObjects.selection.groupSelection.arrGraphicObjects;
for (i = group_shapes.length - 1; i > -1; --i) {
if (group_shapes[i].selected && group_shapes[i].getObjectType() === historyitem_type_Shape) {
content = group_shapes[i].getDocContent();
if (content) {
Id = content.Search_GetId(isNext, isRealObject(target_text_object));
if (Id !== null) {
return Id;
}
}
group_start_index = i - 1;
}
}
for (i = group_start_index; i > -1; --i) {
if (group_shapes[i].getObjectType() === historyitem_type_Shape) {
content = group_shapes[i].getDocContent();
if (content) {
Id = content.Search_GetId(isNext, false);
if (Id !== null) {
return Id;
}
}
}
}
for (i = 0; i < sp_tree.length; ++i) {
if (sp_tree[i] === this.Slides[this.CurPage].graphicObjects.selection.groupSelection) {
start_index = i - 1;
break;
}
}
if (i === sp_tree.length) {
start_index = sp_tree.length;
}
} else {
if (this.Slides[this.CurPage].graphicObjects.selectedObjects.length === 0) {
start_index = sp_tree.length - 1;
} else {
for (i = sp_tree.length - 1; i > -1; --i) {
if (sp_tree[i].selected) {
start_index = target_text_object ? i - 1 : i;
break;
}
}
if (i === sp_tree.length) {
start_index = -1;
}
}
}
Id = this.Slides[this.CurPage].Search_GetId(isNext, start_index);
if (Id !== null) {
return Id;
}
for (i = this.CurPage - 1; i > -1; --i) {
Id = this.Slides[i].Search_GetId(isNext, this.Slides[i].cSld.spTree.length - 1);
if (Id !== null) {
return Id;
}
}
for (i = this.Slides.length - 1; i > this.CurPage; --i) {
Id = this.Slides[i].Search_GetId(isNext, this.Slides[i].cSld.spTree.length - 1);
if (Id !== null) {
return Id;
}
}
}
}
return null;
},
Search_Select: function (Id) {
this.SearchEngine.Select(Id);
this.Document_UpdateInterfaceState();
this.Document_UpdateSelectionState();
editor.WordControl.OnUpdateOverlay();
},
findText: function (text, scanForward) {
if (typeof(text) != "string") {
return;
}
if (scanForward === undefined) {
scanForward = true;
}
var slide_num;
var search_select_data = null;
if (scanForward) {
for (slide_num = this.CurPage; slide_num < this.Slides.length; ++slide_num) {
search_select_data = this.Slides[slide_num].graphicObjects.startSearchText(text, scanForward);
if (search_select_data != null) {
this.DrawingDocument.m_oWordControl.GoToPage(slide_num);
this.Slides[slide_num].graphicObjects.setSelectionState(search_select_data);
this.Document_UpdateSelectionState();
return true;
}
}
for (slide_num = 0; slide_num <= this.CurPage; ++slide_num) {
search_select_data = this.Slides[slide_num].graphicObjects.startSearchText(text, scanForward, true);
if (search_select_data != null) {
this.DrawingDocument.m_oWordControl.GoToPage(slide_num);
this.Slides[slide_num].graphicObjects.setSelectionState(search_select_data);
this.Document_UpdateSelectionState();
return true;
}
}
} else {
for (slide_num = this.CurPage; slide_num > -1; --slide_num) {
search_select_data = this.Slides[slide_num].graphicObjects.startSearchText(text, scanForward);
if (search_select_data != null) {
this.DrawingDocument.m_oWordControl.GoToPage(slide_num);
this.Slides[slide_num].graphicObjects.setSelectionState(search_select_data);
this.Document_UpdateSelectionState();
return true;
}
}
for (slide_num = this.Slides.length - 1; slide_num >= this.CurPage; --slide_num) {
search_select_data = this.Slides[slide_num].graphicObjects.startSearchText(text, scanForward, true);
if (search_select_data != null) {
this.DrawingDocument.m_oWordControl.GoToPage(slide_num);
this.Slides[slide_num].graphicObjects.setSelectionState(search_select_data);
this.Document_UpdateSelectionState();
return true;
}
}
}
return false;
},
groupShapes: function () {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.checkSelectedObjectsAndCallback(this.Slides[this.CurPage].graphicObjects.createGroup, [], false, historydescription_Presentation_CreateGroup);
this.Document_UpdateInterfaceState();
},
unGroupShapes: function () {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.checkSelectedObjectsAndCallback(this.Slides[this.CurPage].graphicObjects.unGroupCallback, [], false, historydescription_Presentation_UnGroup);
this.Document_UpdateInterfaceState();
},
Add_FlowImage: function (W, H, Img) {
if (this.Slides[this.CurPage]) {
History.Create_NewPoint(historydescription_Presentation_AddFlowImage);
var Image = this.Slides[this.CurPage].graphicObjects.createImage(Img, (this.Slides[this.CurPage].Width - W) / 2, (this.Slides[this.CurPage].Height - H) / 2, W, H);
Image.setParent(this.Slides[this.CurPage]);
Image.addToDrawingObjects();
this.Slides[this.CurPage].graphicObjects.resetSelection();
this.Slides[this.CurPage].graphicObjects.selectObject(Image, this.Slides[this.CurPage].num);
this.Recalculate();
this.Document_UpdateInterfaceState();
}
},
addChart: function (binary) {
var _this = this;
_this.Slides[_this.CurPage] && _this.Slides[_this.CurPage].graphicObjects.checkSelectedObjectsAndCallback(function () {
var Image = _this.Slides[_this.CurPage].graphicObjects.getChartSpace2(binary, null);
Image.setParent(_this.Slides[_this.CurPage]);
Image.addToDrawingObjects();
Image.spPr.xfrm.setOffX((_this.Slides[_this.CurPage].Width - Image.spPr.xfrm.extX) / 2);
Image.spPr.xfrm.setOffY((_this.Slides[_this.CurPage].Height - Image.spPr.xfrm.extY) / 2);
_this.Slides[_this.CurPage].graphicObjects.resetSelection();
_this.Slides[_this.CurPage].graphicObjects.selectObject(Image, _this.Slides[_this.CurPage].num);
_this.Document_UpdateInterfaceState();
},
[], false, historydescription_Presentation_AddChart);
},
Selection_Remove: function () {},
Edit_Chart: function (binary) {
var _this = this;
_this.Slides[_this.CurPage] && _this.Slides[_this.CurPage].graphicObjects.checkSelectedObjectsAndCallback(function () {
_this.Slides[_this.CurPage].graphicObjects.editChart(binary);
_this.Document_UpdateInterfaceState();
},
[binary], false, historydescription_Presentation_EditChart);
},
Get_ChartObject: function (type) {
return this.Slides[this.CurPage].graphicObjects.getChartObject(type);
},
Check_GraphicFrameRowHeight: function (grFrame) {
grFrame.recalculate();
var content = grFrame.graphicObject.Content,
i;
for (i = 0; i < content.length; ++i) {
content[i].Set_Height(content[i].Height, heightrule_AtLeast);
}
},
Add_FlowTable: function (Cols, Rows) {
if (!this.Slides[this.CurPage]) {
return;
}
History.Create_NewPoint(historydescription_Presentation_AddFlowTable);
var graphic_frame = this.Create_TableGraphicFrame(Cols, Rows, this.Slides[this.CurPage], this.DefaultTableStyleId);
if (this.Document_Is_SelectionLocked(changestype_AddShape, graphic_frame) === false) {
this.Slides[this.CurPage].graphicObjects.resetSelection();
this.Slides[this.CurPage].graphicObjects.selectObject(graphic_frame, this.CurPage);
this.Check_GraphicFrameRowHeight(graphic_frame);
this.Slides[this.CurPage].addToSpTreeToPos(this.Slides[this.CurPage].cSld.spTree.length, graphic_frame);
this.Recalculate();
this.Document_UpdateInterfaceState();
} else {
this.Document_Undo();
}
},
Create_TableGraphicFrame: function (Cols, Rows, Parent, StyleId, Width, Height, PosX, PosY, bInline) {
var W;
if (isRealNumber(Width)) {
W = Width;
} else {
W = this.Width * 2 / 3;
}
var X, Y;
if (isRealNumber(PosX) && isRealNumber(PosY)) {
X = PosX;
Y = PosY;
} else {
X = 0;
Y = 0;
}
var Inline = false;
if (isRealBool(bInline)) {
Inline = bInline;
}
var Grid = [];
for (var Index = 0; Index < Cols; Index++) {
Grid[Index] = W / Cols;
}
var RowHeight;
if (isRealNumber(Height)) {
RowHeight = Height / Rows;
}
var graphic_frame = new CGraphicFrame();
graphic_frame.setParent(Parent);
graphic_frame.setSpPr(new CSpPr());
graphic_frame.spPr.setParent(graphic_frame);
graphic_frame.spPr.setXfrm(new CXfrm());
graphic_frame.spPr.xfrm.setParent(graphic_frame.spPr);
graphic_frame.spPr.xfrm.setOffX((this.Width - W) / 2);
graphic_frame.spPr.xfrm.setOffY(this.Height / 5);
graphic_frame.spPr.xfrm.setExtX(W);
graphic_frame.spPr.xfrm.setExtY(7.478268771701388 * Rows);
graphic_frame.setNvSpPr(new UniNvPr());
var table = new CTable(this.DrawingDocument, graphic_frame, Inline, 0, X, Y, W, 100000, Rows, Cols, Grid, true);
if (!Inline) {
table.Set_PositionH(c_oAscHAnchor.Page, false, 0);
table.Set_PositionV(c_oAscVAnchor.Page, false, 0);
}
table.Set_TableLayout(tbllayout_Fixed);
if (typeof StyleId === "string") {
table.Set_TableStyle(StyleId);
}
table.Set_TableLook(new CTableLook(false, true, false, false, true, false));
for (var i = 0; i < table.Content.length; ++i) {
var Row = table.Content[i];
if (isRealNumber(RowHeight)) {
Row.Set_Height(RowHeight, heightrule_AtLeast);
}
}
graphic_frame.setGraphicObject(table);
graphic_frame.setBDeleted(false);
return graphic_frame;
},
Paragraph_Add: function (ParaItem, bRecalculate, noUpdateInterface) {
if (this.Slides[this.CurPage]) {
this.Slides[this.CurPage].graphicObjects.paragraphAdd(ParaItem, bRecalculate);
this.Slides[this.CurPage].graphicObjects.startRecalculate();
if (! (noUpdateInterface === true)) {
this.Document_UpdateInterfaceState();
}
}
},
Paragraph_ClearFormatting: function () {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.checkSelectedObjectsAndCallback(this.Slides[this.CurPage].graphicObjects.paragraphClearFormatting, [], false, historydescription_Presentation_ParagraphClearFormatting);
this.Document_UpdateInterfaceState();
},
Remove: function (Count, bOnlyText, bRemoveOnlySelection) {
if (editor.WordControl.Thumbnails.FocusObjType === FOCUS_OBJECT_THUMBNAILS) {
this.deleteSlides(editor.WordControl.Thumbnails.GetSelectedArray());
return;
}
if ("undefined" === typeof(bRemoveOnlySelection)) {
bRemoveOnlySelection = false;
}
if (this.Slides[this.CurPage]) {
this.Slides[this.CurPage].graphicObjects.remove(Count, bOnlyText, bRemoveOnlySelection);
this.Document_UpdateInterfaceState();
}
},
Cursor_MoveToStartPos: function () {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.cursorMoveToStartPos();
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState();
return true;
},
Cursor_MoveToEndPos: function () {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.cursorMoveToEndPos();
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState();
return true;
},
Cursor_MoveLeft: function (AddToSelect, Word) {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.cursorMoveLeft(AddToSelect, Word);
this.Document_UpdateInterfaceState();
return true;
},
Cursor_MoveRight: function (AddToSelect, Word) {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.cursorMoveRight(AddToSelect, Word);
this.Document_UpdateInterfaceState();
return true;
},
Cursor_MoveUp: function (AddToSelect) {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.cursorMoveUp(AddToSelect);
this.Document_UpdateInterfaceState();
return true;
},
Cursor_MoveDown: function (AddToSelect) {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.cursorMoveDown(AddToSelect);
this.Document_UpdateInterfaceState();
return true;
},
Cursor_MoveEndOfLine: function (AddToSelect) {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.cursorMoveEndOfLine(AddToSelect);
this.Document_UpdateInterfaceState();
return true;
},
Cursor_MoveStartOfLine: function (AddToSelect) {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.cursorMoveStartOfLine(AddToSelect);
this.Document_UpdateInterfaceState();
return true;
},
Cursor_MoveAt: function (X, Y, AddToSelect) {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.cursorMoveAt(X, Y, AddToSelect);
this.Document_UpdateInterfaceState();
return true;
},
Cursor_MoveToCell: function (bNext) {},
Get_PresentationBulletByNumInfo: function (NumInfo) {
var bullet = new CBullet();
if (NumInfo.SubType < 0) {
bullet.bulletType = new CBulletType();
bullet.bulletType.type = BULLET_TYPE_BULLET_NONE;
} else {
switch (NumInfo.Type) {
case 0:
switch (NumInfo.SubType) {
case 0:
case 1:
var bulletText = "•";
bullet.bulletTypeface = new CBulletTypeface();
bullet.bulletTypeface.type = BULLET_TYPE_TYPEFACE_BUFONT;
bullet.bulletTypeface.typeface = "Arial";
break;
case 2:
bulletText = "o";
bullet.bulletTypeface = new CBulletTypeface();
bullet.bulletTypeface.type = BULLET_TYPE_TYPEFACE_BUFONT;
bullet.bulletTypeface.typeface = "Courier New";
break;
case 3:
bulletText = "§";
bullet.bulletTypeface = new CBulletTypeface();
bullet.bulletTypeface.type = BULLET_TYPE_TYPEFACE_BUFONT;
bullet.bulletTypeface.typeface = "Wingdings";
break;
case 4:
bulletText = String.fromCharCode(118);
bullet.bulletTypeface = new CBulletTypeface();
bullet.bulletTypeface.type = BULLET_TYPE_TYPEFACE_BUFONT;
bullet.bulletTypeface.typeface = "Wingdings";
break;
case 5:
bulletText = String.fromCharCode(216);
bullet.bulletTypeface = new CBulletTypeface();
bullet.bulletTypeface.type = BULLET_TYPE_TYPEFACE_BUFONT;
bullet.bulletTypeface.typeface = "Wingdings";
break;
case 6:
bulletText = String.fromCharCode(252);
bullet.bulletTypeface = new CBulletTypeface();
bullet.bulletTypeface.type = BULLET_TYPE_TYPEFACE_BUFONT;
bullet.bulletTypeface.typeface = "Wingdings";
break;
case 7:
bulletText = String.fromCharCode(119);
bullet.bulletTypeface = new CBulletTypeface();
bullet.bulletTypeface.type = BULLET_TYPE_TYPEFACE_BUFONT;
bullet.bulletTypeface.typeface = "Wingdings";
break;
}
bullet.bulletType = new CBulletType();
bullet.bulletType.type = BULLET_TYPE_BULLET_CHAR;
bullet.bulletType.Char = bulletText;
break;
case 1:
switch (NumInfo.SubType) {
case 0:
case 1:
var numberingType = 12;
break;
case 2:
numberingType = 11;
break;
case 3:
numberingType = 34;
break;
case 4:
numberingType = 5;
break;
case 5:
numberingType = 8;
break;
case 6:
numberingType = 40;
break;
case 7:
numberingType = 31;
break;
}
bullet.bulletType = new CBulletType();
bullet.bulletType.type = BULLET_TYPE_BULLET_AUTONUM;
bullet.bulletType.AutoNumType = numberingType;
break;
default:
break;
}
}
return bullet;
},
Set_ParagraphAlign: function (Align) {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.checkSelectedObjectsAndCallback(this.Slides[this.CurPage].graphicObjects.setParagraphAlign, [Align], false, historydescription_Presentation_SetParagraphAlign);
this.Document_UpdateInterfaceState();
},
Set_ParagraphSpacing: function (Spacing) {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.checkSelectedObjectsAndCallback(this.Slides[this.CurPage].graphicObjects.setParagraphSpacing, [Spacing], false, historydescription_Presentation_SetParagraphSpacing);
this.Document_UpdateInterfaceState();
},
Set_ParagraphTabs: function (Tabs) {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.checkSelectedObjectsAndCallback(this.Slides[this.CurPage].graphicObjects.setParagraphTabs, [Tabs], false, historydescription_Presentation_SetParagraphTabs);
this.Document_UpdateInterfaceState();
},
Set_ParagraphIndent: function (Ind) {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.checkSelectedObjectsAndCallback(this.Slides[this.CurPage].graphicObjects.setParagraphIndent, [Ind], false, historydescription_Presentation_SetParagraphIndent);
this.Document_UpdateInterfaceState();
},
Set_ParagraphNumbering: function (NumInfo) {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.checkSelectedObjectsAndCallback(this.Slides[this.CurPage].graphicObjects.setParagraphNumbering, [this.Get_PresentationBulletByNumInfo(NumInfo)], false, historydescription_Presentation_SetParagraphNumbering);
this.Document_UpdateInterfaceState();
},
Paragraph_IncDecFontSize: function (bIncrease) {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.checkSelectedObjectsAndCallback(this.Slides[this.CurPage].graphicObjects.paragraphIncDecFontSize, [bIncrease], false, historydescription_Presentation_ParagraphIncDecFontSize);
this.Document_UpdateInterfaceState();
},
Paragraph_IncDecIndent: function (bIncrease) {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.checkSelectedObjectsAndCallback(this.Slides[this.CurPage].graphicObjects.paragraphIncDecIndent, [bIncrease], false, historydescription_Presentation_ParagraphIncDecIndent);
this.Document_UpdateInterfaceState();
},
Can_IncreaseParagraphLevel: function (bIncrease) {
return isRealObject(this.Slides[this.CurPage]) && this.Slides[this.CurPage].graphicObjects.canIncreaseParagraphLevel(bIncrease);
},
Set_ImageProps: function (Props) {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.checkSelectedObjectsAndCallback(this.Slides[this.CurPage].graphicObjects.applyDrawingProps, [Props], false, historydescription_Presentation_SetImageProps);
this.Document_UpdateInterfaceState();
},
ShapeApply: function (shapeProps) {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.checkSelectedObjectsAndCallback(this.Slides[this.CurPage].graphicObjects.applyDrawingProps, [shapeProps], false, historydescription_Presentation_SetShapeProps);
this.Document_UpdateInterfaceState();
},
ChartApply: function (chartProps) {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.checkSelectedObjectsAndCallback(this.Slides[this.CurPage].graphicObjects.applyDrawingProps, [chartProps], false, historydescription_Presentation_ChartApply);
this.Document_UpdateInterfaceState();
},
changeShapeType: function (shapeType) {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.checkSelectedObjectsAndCallback(this.Slides[this.CurPage].graphicObjects.applyDrawingProps, [{
type: shapeType
}], false, historydescription_Presentation_ChangeShapeType);
this.Document_UpdateInterfaceState();
},
setVerticalAlign: function (align) {
if (this.Slides[this.CurPage]) {
this.Slides[this.CurPage].graphicObjects.checkSelectedObjectsAndCallback(this.Slides[this.CurPage].graphicObjects.applyDrawingProps, [{
verticalTextAlign: align
}], false, historydescription_Presentation_SetVerticalAlign);
this.Document_UpdateInterfaceState();
}
},
Get_Styles: function () {
var styles = new CStyles();
return {
styles: styles,
lastId: styles.Get_Default_Paragraph()
};
},
Is_TableCellContent: function () {
return false;
},
Get_Theme: function () {
return this.themes[0];
},
Get_ColorMap: function () {
return G_O_DEFAULT_COLOR_MAP;
},
Get_PageFields: function () {
return {
X: 0,
Y: 0,
XLimit: 2000,
YLimit: 2000
};
},
Get_PageLimits: function (PageIndex) {
return this.Get_PageFields();
},
CheckRange: function () {
return [];
},
Is_Cell: function () {
return false;
},
Get_PrevElementEndInfo: function (CurElement) {
return null;
},
Get_TextBackGroundColor: function () {
return new CDocumentColor(255, 255, 255, false);
},
Set_TableProps: function (Props) {
this.Slides[this.CurPage].graphicObjects.setTableProps(Props);
this.Recalculate();
this.Document_UpdateInterfaceState();
this.Document_UpdateSelectionState();
},
Get_Paragraph_ParaPr: function () {
if (this.Slides[this.CurPage]) {
var ret = this.Slides[this.CurPage].graphicObjects.getParagraphParaPr();
if (ret) {
return ret;
}
}
return new CParaPr();
},
Get_Paragraph_TextPr: function () {
if (this.Slides[this.CurPage]) {
var ret = this.Slides[this.CurPage].graphicObjects.getParagraphTextPr();
if (ret) {
return ret;
}
}
return new CTextPr();
},
Get_Paragraph_TextPr_Copy: function () {
if (this.Slides[this.CurPage]) {
return this.Slides[this.CurPage].graphicObjects.getParagraphTextPr();
}
return new CTextPr();
},
Get_Paragraph_ParaPr_Copy: function () {
if (this.Slides[this.CurPage]) {
return this.Slides[this.CurPage].graphicObjects.getParagraphParaPr();
}
return new CParaPr();
},
Interface_Update_ParaPr: function () {
var ParaPr = this.Slides[this.CurPage].graphicObjects.getPropsArrays().paraPr;
if (null != ParaPr) {
if (undefined != ParaPr.Tabs) {
editor.Update_ParaTab(Default_Tab_Stop, ParaPr.Tabs);
}
editor.UpdateParagraphProp(ParaPr);
}
},
Interface_Update_TextPr: function () {
var TextPr = this.Slides[this.CurPage].graphicObjects.getPropsArrays().textPr;
if (null != TextPr) {
editor.UpdateTextPr(TextPr);
}
},
getAllTableStyles: function () {
for (var i = 0; i < this.globalTableStyles.length; ++i) {
this.globalTableStyles[i].stylesId = i;
}
return this.globalTableStyles;
},
Select_All: function () {
if (this.Slides[this.CurPage]) {
this.Slides[this.CurPage].graphicObjects.selectAll();
this.Document_UpdateInterfaceState();
}
},
Update_CursorType: function (X, Y, MouseEvent) {
var graphicObjectInfo = this.Slides[this.CurPage].graphicObjects.isPointInDrawingObjects(X, Y, MouseEvent);
if (graphicObjectInfo) {
if (!graphicObjectInfo.updated) {
this.DrawingDocument.SetCursorType(graphicObjectInfo.cursorType);
}
} else {
this.DrawingDocument.SetCursorType("default");
}
},
OnKeyDown: function (e) {
var bUpdateSelection = true;
var bRetValue = false;
if (e.KeyCode == 8 && false === editor.isViewMode) {
this.Remove(-1, true);
bRetValue = true;
} else {
if (e.KeyCode == 9 && false === editor.isViewMode) {
if (this.Slides[this.CurPage]) {
var graphicObjects = this.Slides[this.CurPage].graphicObjects;
var target_content = graphicObjects.getTargetDocContent(undefined, true);
if (target_content) {
if (target_content instanceof CTable) {
target_content.Cursor_MoveToCell(true === e.ShiftKey ? false : true);
} else {
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false) {
History.Create_NewPoint(historydescription_Presentation_ParagraphAdd);
this.Paragraph_Add(new ParaTab());
}
}
} else {
graphicObjects.selectNextObject(!e.ShiftKey ? 1 : -1);
}
this.Document_UpdateInterfaceState();
}
bRetValue = true;
} else {
if (e.KeyCode == 13 && false === editor.isViewMode) {
var Hyperlink = this.Hyperlink_Check(false);
if (null != Hyperlink && false === e.ShiftKey) {
editor.sync_HyperlinkClickCallback(Hyperlink.Get_Value());
Hyperlink.Set_Visited(true);
this.DrawingDocument.ClearCachePages();
this.DrawingDocument.FirePaint();
} else {
if (e.ShiftKey) {
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false) {
History.Create_NewPoint(historydescription_Presentation_ParagraphAdd);
this.Paragraph_Add(new ParaNewLine(break_Line));
}
} else {
if (e.CtrlKey) {
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false) {
History.Create_NewPoint(historydescription_Presentation_ParagraphAdd);
this.Paragraph_Add(new ParaNewLine(break_Page));
}
} else {
this.Add_NewParagraph();
}
}
}
bRetValue = true;
} else {
if (e.KeyCode == 27) {
bRetValue = true;
} else {
if (e.KeyCode == 32 && false === editor.isViewMode) {
if (true === e.ShiftKey && true === e.CtrlKey) {
this.DrawingDocument.TargetStart();
this.DrawingDocument.TargetShow();
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false) {
History.Create_NewPoint(historydescription_Presentation_ParagraphAdd);
this.Paragraph_Add(new ParaText(String.fromCharCode(160)));
}
} else {
if (true === e.CtrlKey) {
this.Paragraph_ClearFormatting();
} else {
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false) {
History.Create_NewPoint(historydescription_Presentation_ParagraphAdd);
this.Paragraph_Add(new ParaSpace(1));
}
}
}
bRetValue = true;
} else {
if (e.KeyCode == 33) {
if (true === e.AltKey) {} else {
if (this.CurPage > 0) {
this.DrawingDocument.m_oWordControl.GoToPage(this.CurPage - 1);
bRetValue = true;
}
}
} else {
if (e.KeyCode == 34) {
if (true === e.AltKey) {} else {
if (this.CurPage + 1 < this.Slides.length) {
this.DrawingDocument.m_oWordControl.GoToPage(this.CurPage + 1);
bRetValue = true;
}
}
} else {
if (e.KeyCode == 35) {
if (true === e.CtrlKey) {
this.Cursor_MoveToEndPos();
} else {
this.Cursor_MoveEndOfLine(true === e.ShiftKey);
}
bRetValue = true;
} else {
if (e.KeyCode == 36) {
if (true === e.CtrlKey) {
this.Cursor_MoveToStartPos();
} else {
this.Cursor_MoveStartOfLine(true === e.ShiftKey);
}
bRetValue = true;
} else {
if (e.KeyCode == 37) {
this.Cursor_MoveLeft(true === e.ShiftKey, true === e.CtrlKey);
bRetValue = true;
} else {
if (e.KeyCode == 38) {
this.Cursor_MoveUp(true === e.ShiftKey);
bRetValue = true;
} else {
if (e.KeyCode == 39) {
this.Cursor_MoveRight(true === e.ShiftKey, true === e.CtrlKey);
bRetValue = true;
} else {
if (e.KeyCode == 40) {
this.Cursor_MoveDown(true === e.ShiftKey);
bRetValue = true;
} else {
if (e.KeyCode == 45) {
if (true === e.CtrlKey) {
Editor_Copy(this.DrawingDocument.m_oWordControl.m_oApi);
} else {
if (true === e.ShiftKey && false === editor.isViewMode) {
if (false === this.Document_Is_SelectionLocked(changestype_Drawing_Props)) {
if (!window.GlobalPasteFlag) {
if (!window.USER_AGENT_SAFARI_MACOS) {
this.Create_NewHistoryPoint(historydescription_Document_ShiftInsert);
window.GlobalPasteFlag = true;
editor.waitSave = true;
Editor_Paste(this.DrawingDocument.m_oWordControl.m_oApi, true);
} else {
if (0 === window.GlobalPasteFlagCounter) {
this.Create_NewHistoryPoint(historydescription_Document_ShiftInsertSafari);
SafariIntervalFocus();
window.GlobalPasteFlag = true;
editor.waitSave = true;
Editor_Paste(this.DrawingDocument.m_oWordControl.m_oApi, true);
}
}
}
}
}
}
} else {
if (e.KeyCode == 46 && false === editor.isViewMode) {
if (true != e.ShiftKey) {
this.Remove(1, true);
bRetValue = true;
} else {
if (false === this.Document_Is_SelectionLocked(changestype_Drawing_Props)) {
this.Create_NewHistoryPoint(historydescription_Document_ShiftDeleteButton);
Editor_Copy(this.DrawingDocument.m_oWordControl.m_oApi, true);
}
}
} else {
if (e.KeyCode == 49 && false === editor.isViewMode && true === e.CtrlKey && true === e.AltKey) {
bRetValue = true;
} else {
if (e.KeyCode == 50 && false === editor.isViewMode && true === e.CtrlKey && true === e.AltKey) {
bRetValue = true;
} else {
if (e.KeyCode == 51 && false === editor.isViewMode && true === e.CtrlKey && true === e.AltKey) {
bRetValue = true;
} else {
if (e.KeyCode == 56 && true === e.CtrlKey && true === e.ShiftKey) {
editor.ShowParaMarks = !editor.ShowParaMarks;
if (this.Slides[this.CurPage]) {
this.DrawingDocument.OnRecalculatePage(this.CurPage, this.Slides[this.CurPage]);
}
} else {
if (e.KeyCode == 65 && true === e.CtrlKey) {
this.Select_All();
bRetValue = true;
} else {
if (e.KeyCode == 66 && false === editor.isViewMode && true === e.CtrlKey) {
var TextPr = this.Get_Paragraph_TextPr();
if (null != TextPr) {
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false) {
History.Create_NewPoint(historydescription_Presentation_ParagraphAdd);
this.Paragraph_Add(new ParaTextPr({
Bold: TextPr.Bold === true ? false : true
}));
}
bRetValue = true;
}
} else {
if (e.KeyCode == 67 && true === e.CtrlKey) {
if (true === e.ShiftKey) {
this.Document_Format_Copy();
bRetValue = true;
} else {
Editor_Copy(this.DrawingDocument.m_oWordControl.m_oApi);
}
} else {
if (e.KeyCode == 69 && false === editor.isViewMode && true === e.CtrlKey) {
if (true !== e.AltKey) {
var ParaPr = this.Get_Paragraph_ParaPr();
if (null != ParaPr) {
this.Set_ParagraphAlign(ParaPr.Jc === align_Center ? align_Left : align_Center);
this.Document_UpdateInterfaceState();
bRetValue = true;
}
} else {
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false) {
History.Create_NewPoint(historydescription_Presentation_ParagraphAdd);
this.Paragraph_Add(new ParaText("€"));
}
bRetValue = true;
}
} else {
if (e.KeyCode == 71 && false === editor.isViewMode && true === e.CtrlKey) {
if (true === e.ShiftKey) {
this.unGroupShapes();
} else {
this.groupShapes();
}
bRetValue = true;
} else {
if (e.KeyCode == 73 && false === editor.isViewMode && true === e.CtrlKey) {
var TextPr = this.Get_Paragraph_TextPr();
if (null != TextPr) {
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false) {
History.Create_NewPoint(historydescription_Presentation_ParagraphAdd);
this.Paragraph_Add(new ParaTextPr({
Italic: TextPr.Italic === true ? false : true
}));
}
bRetValue = true;
}
} else {
if (e.KeyCode == 74 && false === editor.isViewMode && true === e.CtrlKey) {
var ParaPr = this.Get_Paragraph_ParaPr();
if (null != ParaPr) {
if (false === this.Document_Is_SelectionLocked(changestype_Paragraph_Properties)) {
this.Set_ParagraphAlign(ParaPr.Jc === align_Justify ? align_Left : align_Justify);
this.Document_UpdateInterfaceState();
}
bRetValue = true;
}
} else {
if (e.KeyCode == 75 && false === editor.isViewMode && true === e.CtrlKey) {
if (true === this.Hyperlink_CanAdd(false)) {
editor.sync_DialogAddHyperlink();
}
bRetValue = true;
} else {
if (e.KeyCode == 76 && false === editor.isViewMode && true === e.CtrlKey) {
if (true === e.ShiftKey) {
if (false === this.Document_Is_SelectionLocked(changestype_Drawing_Props)) {
this.Set_ParagraphNumbering({
Type: 0,
SubType: 1
});
this.Document_UpdateInterfaceState();
}
bRetValue = true;
} else {
var ParaPr = this.Get_Paragraph_ParaPr();
if (null != ParaPr) {
if (false === this.Document_Is_SelectionLocked(changestype_Paragraph_Properties)) {
this.Set_ParagraphAlign(ParaPr.Jc === align_Left ? align_Justify : align_Left);
this.Document_UpdateInterfaceState();
}
bRetValue = true;
}
}
} else {
if (e.KeyCode == 77 && false === editor.isViewMode && true === e.CtrlKey) {
if (true === e.ShiftKey) {
editor.DecreaseIndent();
} else {
editor.IncreaseIndent();
}
} else {
if (e.KeyCode == 80 && true === e.CtrlKey) {
if (true === e.ShiftKey && false === editor.isViewMode) {
bRetValue = true;
} else {
this.DrawingDocument.m_oWordControl.m_oApi.asc_Print();
bRetValue = true;
}
} else {
if (e.KeyCode == 82 && false === editor.isViewMode && true === e.CtrlKey) {
var ParaPr = this.Get_Paragraph_ParaPr();
if (null != ParaPr) {
if (false === this.Document_Is_SelectionLocked(changestype_Paragraph_Properties)) {
this.Set_ParagraphAlign(ParaPr.Jc === align_Right ? align_Left : align_Right);
this.Document_UpdateInterfaceState();
}
bRetValue = true;
}
} else {
if (e.KeyCode == 83 && false === editor.isViewMode && true === e.CtrlKey) {
if (true === this.History.Have_Changes() || CollaborativeEditing.m_aChanges.length > 0) {
this.DrawingDocument.m_oWordControl.m_oApi.asc_Save();
}
bRetValue = true;
} else {
if (e.KeyCode == 85 && false === editor.isViewMode && true === e.CtrlKey) {
var TextPr = this.Get_Paragraph_TextPr();
if (null != TextPr) {
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false) {
History.Create_NewPoint(historydescription_Presentation_ParagraphAdd);
this.Paragraph_Add(new ParaTextPr({
Underline: TextPr.Underline === true ? false : true
}));
}
bRetValue = true;
}
} else {
if (e.KeyCode == 86 && false === editor.isViewMode && true === e.CtrlKey) {
if (false === this.Document_Is_SelectionLocked(changestype_Drawing_Props)) {
if (true === e.ShiftKey) {
this.Document_Format_Paste();
bRetValue = true;
} else {
if (!window.GlobalPasteFlag) {
if (!window.USER_AGENT_SAFARI_MACOS) {
this.Create_NewHistoryPoint(historydescription_Document_PasteHotKey);
window.GlobalPasteFlag = true;
editor.waitSave = true;
Editor_Paste(this.DrawingDocument.m_oWordControl.m_oApi, true);
} else {
if (0 === window.GlobalPasteFlagCounter) {
this.Create_NewHistoryPoint(historydescription_Document_PasteSafariHotKey);
SafariIntervalFocus();
window.GlobalPasteFlag = true;
editor.waitSave = true;
Editor_Paste(this.DrawingDocument.m_oWordControl.m_oApi, true);
}
}
} else {
if (!window.USER_AGENT_SAFARI_MACOS) {
bRetValue = true;
}
}
}
}
} else {
if (e.KeyCode == 88 && false === editor.isViewMode && true === e.CtrlKey) {
if (false === this.Document_Is_SelectionLocked(changestype_Drawing_Props)) {
this.Create_NewHistoryPoint(historydescription_Document_CurHotKey);
Editor_Copy(this.DrawingDocument.m_oWordControl.m_oApi, true);
}
} else {
if (e.KeyCode == 89 && false === editor.isViewMode && true === e.CtrlKey) {
this.Document_Redo();
bRetValue = true;
} else {
if (e.KeyCode == 90 && false === editor.isViewMode && true === e.CtrlKey) {
this.Document_Undo();
bRetValue = true;
} else {
if (e.KeyCode == 93 || 57351 == e.KeyCode) {
var type;
if (editor.WordControl.Thumbnails.FocusObjType === FOCUS_OBJECT_MAIN) {
type = c_oAscContextMenuTypes.Main;
if (this.Slides[this.CurPage]) {
var pos_x = 0,
pos_y = 0;
if (this.Slides[this.CurPage].graphicObjects.selectedObjects.length > 0) {
pos_x = this.Slides[this.CurPage].graphicObjects.selectedObjects[0].x;
pos_y = this.Slides[this.CurPage].graphicObjects.selectedObjects[0].y;
}
var ConvertedPos = this.DrawingDocument.ConvertCoordsToCursorWR_2(pos_x, pos_y, this.PageNum);
var X_abs = ConvertedPos.X;
var Y_abs = ConvertedPos.Y;
editor.sync_ContextMenuCallback(new CMouseMoveData({
Type: type,
X_abs: X_abs,
Y_abs: Y_abs
}));
}
} else {
type = c_oAscContextMenuTypes.Thumbnails;
}
bUpdateSelection = false;
bRetValue = true;
} else {
if (e.KeyCode == 121 && true === e.ShiftKey) {
var type;
if (editor.WordControl.Thumbnails.FocusObjType === FOCUS_OBJECT_MAIN) {
type = c_oAscContextMenuTypes.Main;
if (this.Slides[this.CurPage]) {
var pos_x = 0,
pos_y = 0;
if (this.Slides[this.CurPage].graphicObjects.selectedObjects.length > 0) {
pos_x = this.Slides[this.CurPage].graphicObjects.selectedObjects[0].x;
pos_y = this.Slides[this.CurPage].graphicObjects.selectedObjects[0].y;
}
var ConvertedPos = this.DrawingDocument.ConvertCoordsToCursorWR(pos_x, pos_y, this.PageNum);
var X_abs = ConvertedPos.X;
var Y_abs = ConvertedPos.Y;
editor.sync_ContextMenuCallback(new CMouseMoveData({
Type: type,
X_abs: X_abs,
Y_abs: Y_abs
}));
}
} else {
type = c_oAscContextMenuTypes.Thumbnails;
}
bUpdateSelection = false;
bRetValue = true;
} else {
if (e.KeyCode == 144) {
bRetValue = true;
} else {
if (e.KeyCode == 145) {
bRetValue = true;
} else {
if (e.KeyCode == 187 && false === editor.isViewMode && true === e.CtrlKey) {
var TextPr = this.Get_Paragraph_TextPr();
if (null != TextPr) {
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false) {
History.Create_NewPoint(historydescription_Presentation_ParagraphAdd);
if (true === e.ShiftKey) {
this.Paragraph_Add(new ParaTextPr({
VertAlign: TextPr.VertAlign === vertalign_SuperScript ? vertalign_Baseline : vertalign_SuperScript
}));
} else {
this.Paragraph_Add(new ParaTextPr({
VertAlign: TextPr.VertAlign === vertalign_SubScript ? vertalign_Baseline : vertalign_SubScript
}));
}
}
bRetValue = true;
}
} else {
if (e.KeyCode == 188 && true === e.CtrlKey) {
var TextPr = this.Get_Paragraph_TextPr();
if (null != TextPr) {
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false) {
History.Create_NewPoint(historydescription_Presentation_ParagraphAdd);
this.Paragraph_Add(new ParaTextPr({
VertAlign: TextPr.VertAlign === vertalign_SuperScript ? vertalign_Baseline : vertalign_SuperScript
}));
}
bRetValue = true;
}
} else {
if (e.KeyCode == 189 && false === editor.isViewMode) {
this.DrawingDocument.TargetStart();
this.DrawingDocument.TargetShow();
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false) {
History.Create_NewPoint(historydescription_Presentation_ParagraphAdd);
var Item = null;
if (true === e.CtrlKey && true === e.ShiftKey) {
Item = new ParaText(String.fromCharCode(8211));
Item.SpaceAfter = false;
} else {
if (true === e.ShiftKey) {
Item = new ParaText("_");
} else {
Item = new ParaText("-");
}
}
this.Paragraph_Add(Item);
}
bRetValue = true;
} else {
if (e.KeyCode == 190 && true === e.CtrlKey) {
var TextPr = this.Get_Paragraph_TextPr();
if (null != TextPr) {
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false) {
History.Create_NewPoint(historydescription_Presentation_ParagraphAdd);
this.Paragraph_Add(new ParaTextPr({
VertAlign: TextPr.VertAlign === vertalign_SubScript ? vertalign_Baseline : vertalign_SubScript
}));
}
bRetValue = true;
}
} else {
if (e.KeyCode == 219 && false === editor.isViewMode && true === e.CtrlKey) {
editor.FontSizeOut();
this.Document_UpdateInterfaceState();
} else {
if (e.KeyCode == 221 && false === editor.isViewMode && true === e.CtrlKey) {
editor.FontSizeIn();
this.Document_UpdateInterfaceState();
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
if (true == bRetValue && true === bUpdateSelection) {
this.Document_UpdateSelectionState();
}
return bRetValue;
},
Set_DocumentDefaultTab: function (DTab) {
Default_Tab_Stop = DTab;
},
Set_DocumentMargin: function () {},
OnKeyPress: function (e) {
if (true === editor.isViewMode) {
return false;
}
if (e.CtrlKey || e.AltKey) {
return false;
}
var Code;
if (null != e.Which) {
Code = e.Which;
} else {
if (e.KeyCode) {
Code = e.KeyCode;
} else {
Code = 0;
}
}
var bRetValue = false;
if (Code > 32) {
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false) {
History.Create_NewPoint(historydescription_Presentation_ParagraphAdd);
var target_doc_content1, target_doc_content2, b_update_interface = false;
if (this.Slides[this.CurPage]) {
target_doc_content1 = this.Slides[this.CurPage].graphicObjects.getTargetDocContent();
}
this.Paragraph_Add(new ParaText(String.fromCharCode(Code)), undefined, true);
if (this.Slides[this.CurPage]) {
target_doc_content2 = this.Slides[this.CurPage].graphicObjects.getTargetDocContent();
}
if (!target_doc_content1 && target_doc_content2) {
b_update_interface = true;
this.Document_UpdateInterfaceState();
}
}
bRetValue = true;
}
if (true == bRetValue) {
this.Document_UpdateSelectionState();
if (!b_update_interface) {
this.Document_UpdateUndoRedoState();
}
}
return bRetValue;
},
OnMouseDown: function (e, X, Y, PageIndex) {
this.CurPage = PageIndex;
if (PageIndex < 0) {
return;
}
this.CurPage = PageIndex;
e.ctrlKey = e.CtrlKey;
e.shiftKey = e.ShiftKey;
var ret = this.Slides[this.CurPage].graphicObjects.onMouseDown(e, X, Y);
if (!ret) {
if (e.ClickCount < 2) {
this.Slides[this.CurPage].graphicObjects.resetSelection();
}
this.Document_UpdateSelectionState();
}
this.Document_UpdateInterfaceState();
},
OnMouseUp: function (e, X, Y, PageIndex) {
e.ctrlKey = e.CtrlKey;
e.shiftKey = e.ShiftKey;
this.Slides[this.CurPage].graphicObjects && this.Slides[this.CurPage].graphicObjects.onMouseUp(e, X, Y);
if (e.Button === g_mouse_button_right && !this.noShowContextMenu) {
var ContextData = new CContextMenuData();
var ConvertedPos = this.DrawingDocument.ConvertCoordsToCursorWR(X, Y, PageIndex);
ContextData.X_abs = ConvertedPos.X;
ContextData.Y_abs = ConvertedPos.Y;
ContextData.IsSlideSelect = false;
editor.sync_ContextMenuCallback(ContextData);
}
this.noShowContextMenu = false;
this.Document_UpdateInterfaceState();
},
OnMouseMove: function (e, X, Y, PageIndex) {
e.ctrlKey = e.CtrlKey;
e.shiftKey = e.ShiftKey;
editor.sync_MouseMoveStartCallback();
this.CurPage = PageIndex;
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.onMouseMove(e, X, Y);
this.Update_CursorType(X, Y, e);
editor.sync_MouseMoveEndCallback();
},
Get_TableStyleForPara: function () {
return null;
},
Get_SelectionAnchorPos: function () {
if (this.Slides[this.CurPage]) {
var selected_objects = this.Slides[this.CurPage].graphicObjects.selectedObjects;
if (selected_objects.length > 0) {
var last_object = selected_objects[selected_objects.length - 1];
var Coords1 = editor.WordControl.m_oDrawingDocument.ConvertCoordsToCursorWR_Comment(last_object.x, last_object.y, this.CurPage);
var Coords2 = editor.WordControl.m_oDrawingDocument.ConvertCoordsToCursorWR_Comment(last_object.x + last_object.extX, last_object.y, this.CurPage);
return {
X0: Coords1.X,
X1: Coords2.X,
Y: Coords1.Y
};
} else {
var Pos = editor.WordControl.m_oDrawingDocument.ConvertCoordsFromCursor2(global_mouseEvent.X, global_mouseEvent.Y);
var Coords1 = editor.WordControl.m_oDrawingDocument.ConvertCoordsToCursorWR_Comment(0, 0, this.CurPage);
return {
X0: Coords1.X,
X1: Coords1.X,
Y: Coords1.Y
};
}
}
return {
X0: 0,
X1: 0,
Y: 0
};
},
Clear_ContentChanges: function () {
this.m_oContentChanges.Clear();
},
Add_ContentChanges: function (Changes) {
this.m_oContentChanges.Add(Changes);
},
Refresh_ContentChanges: function () {
this.m_oContentChanges.Refresh();
},
Document_Format_Copy: function () {
this.CopyTextPr = this.Get_Paragraph_TextPr_Copy();
this.CopyParaPr = this.Get_Paragraph_ParaPr_Copy();
},
Document_Format_Paste: function () {},
Get_SelectedText: function (bClearText) {
return this.Slides[this.CurPage].graphicObjects.Get_SelectedText(bClearText);
},
ApplyTableFunction: function (Function, bBefore, bAll, Cols, Rows) {
if (this.Slides[this.CurPage]) {
var args;
if (isRealNumber(Rows) && isRealNumber(Cols)) {
args = [Rows, Cols];
} else {
args = [bBefore];
}
var target_text_object = getTargetTextObject(this.Slides[this.CurPage].graphicObjects);
if (target_text_object && target_text_object.getObjectType() === historyitem_type_GraphicFrame) {
Function.apply(target_text_object.graphicObject, args);
if (target_text_object.graphicObject.Content.length === 0) {
this.Table_RemoveTable();
return;
}
this.Recalculate();
this.Document_UpdateInterfaceState();
} else {
var by_types = this.Slides[this.CurPage].graphicObjects.getSelectedObjectsByTypes(true);
if (by_types.tables.length === 1) {
by_types.tables[0].Set_CurrentElement();
if (! (bAll === true)) {
if (bBefore) {
by_types.tables[0].graphicObject.Cursor_MoveToStartPos();
} else {
by_types.tables[0].graphicObject.Cursor_MoveToStartPos();
}
} else {
by_types.tables[0].graphicObject.Select_All();
}
Function.apply(by_types.tables[0].graphicObject, args);
if (by_types.tables[0].graphicObject.Content.length === 0) {
this.Table_RemoveTable();
return;
}
this.Recalculate();
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState();
}
}
}
},
Table_AddRow: function (bBefore) {
this.ApplyTableFunction(CTable.prototype.Row_Add, bBefore);
},
Table_AddCol: function (bBefore) {
this.ApplyTableFunction(CTable.prototype.Col_Add, bBefore);
},
Table_RemoveRow: function () {
this.ApplyTableFunction(CTable.prototype.Row_Remove, undefined);
},
Table_RemoveCol: function () {
this.ApplyTableFunction(CTable.prototype.Col_Remove, true);
},
Table_MergeCells: function () {
this.ApplyTableFunction(CTable.prototype.Cell_Merge, true, true);
},
Table_SplitCell: function (Cols, Rows) {
this.ApplyTableFunction(CTable.prototype.Cell_Split, true, true, parseInt(Cols, 10), parseInt(Rows, 10));
},
Table_RemoveTable: function () {
if (this.Slides[this.CurPage]) {
var by_types = this.Slides[this.CurPage].graphicObjects.getSelectedObjectsByTypes(true);
if (by_types.tables.length === 1) {
by_types.tables[0].deselect(this.Slides[this.CurPage].graphicObjects);
this.Slides[this.CurPage].graphicObjects.resetInternalSelection();
if (by_types.tables[0].group) {
by_types.tables[0].group.removeFromSpTree(by_types.tables[0].Id);
} else {
this.Slides[this.CurPage].removeFromSpTreeById(by_types.tables[0].Id);
}
by_types.tables[0].setBDeleted(true);
this.Recalculate();
this.Document_UpdateInterfaceState();
this.Document_UpdateSelectionState();
}
}
},
Table_Select: function (Type) {
if (this.Slides[this.CurPage]) {
var by_types = this.Slides[this.CurPage].graphicObjects.getSelectedObjectsByTypes(true);
if (by_types.tables.length === 1) {
by_types.tables[0].Set_CurrentElement();
by_types.tables[0].graphicObject.Table_Select(Type);
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState();
}
}
},
Table_CheckFunction: function (Function) {
if (this.Slides[this.CurPage]) {
var target_text_object = getTargetTextObject(this.Slides[this.CurPage].graphicObjects);
if (target_text_object && target_text_object.getObjectType() === historyitem_type_GraphicFrame) {
return Function.apply(target_text_object.graphicObject, []);
}
}
return false;
},
Table_CheckMerge: function () {
return this.Table_CheckFunction(CTable.prototype.Check_Merge);
},
Table_CheckSplit: function () {
return this.Table_CheckFunction(CTable.prototype.Check_Split);
},
Check_TableCoincidence: function (Table) {
return false;
},
Document_CreateFontMap: function () {
return;
},
Document_CreateFontCharMap: function (FontCharMap) {},
Document_Get_AllFontNames: function () {
var AllFonts = {};
for (var i = 0; i < this.Slides.length; ++i) {
this.Slides[i].getAllFonts(AllFonts);
}
return AllFonts;
},
Document_UpdateInterfaceState: function () {
editor.sync_BeginCatchSelectedElements();
editor.ClearPropObjCallback();
if (this.Slides[this.CurPage]) {
editor.sync_slidePropCallback(this.Slides[this.CurPage]);
var graphic_objects = this.Slides[this.CurPage].graphicObjects;
var target_content = graphic_objects.getTargetDocContent(),
drawing_props = graphic_objects.getDrawingProps(),
i;
var para_pr = graphic_objects.getParagraphParaPr(),
text_pr = graphic_objects.getParagraphTextPr();
var flag = undefined;
if (!para_pr) {
para_pr = new CParaPr();
flag = true;
}
if (!text_pr) {
text_pr = new CTextPr();
}
var theme = graphic_objects.getTheme();
if (text_pr.RFonts) {
if (text_pr.RFonts.Ascii) {
text_pr.RFonts.Ascii.Name = theme.themeElements.fontScheme.checkFont(text_pr.RFonts.Ascii.Name);
}
if (text_pr.RFonts.EastAsia) {
text_pr.RFonts.EastAsia.Name = theme.themeElements.fontScheme.checkFont(text_pr.RFonts.EastAsia.Name);
}
if (text_pr.RFonts.HAnsi) {
text_pr.RFonts.HAnsi.Name = theme.themeElements.fontScheme.checkFont(text_pr.RFonts.HAnsi.Name);
}
if (text_pr.RFonts.CS) {
text_pr.RFonts.CS.Name = theme.themeElements.fontScheme.checkFont(text_pr.RFonts.CS.Name);
}
}
if (text_pr.FontFamily) {
text_pr.FontFamily.Name = theme.themeElements.fontScheme.checkFont(text_pr.FontFamily.Name);
}
editor.sync_PrLineSpacingCallBack(para_pr.Spacing);
if (!target_content) {
editor.UpdateTextPr(text_pr);
}
if (drawing_props.imageProps) {
editor.sync_ImgPropCallback(drawing_props.imageProps);
}
if (drawing_props.shapeProps) {
editor.sync_shapePropCallback(drawing_props.shapeProps);
editor.sync_VerticalTextAlign(drawing_props.shapeProps.verticalTextAlign);
}
if (drawing_props.chartProps && drawing_props.chartProps.chartProps) {
if (this.bNeedUpdateChartPreview) {
editor.chartPreviewManager.clearPreviews();
editor.asc_fireCallback("asc_onUpdateChartStyles");
this.bNeedUpdateChartPreview = false;
}
editor.sync_ImgPropCallback(drawing_props.chartProps);
}
if (drawing_props.tableProps) {
this.CheckTableStyles(this.Slides[this.CurPage], drawing_props.tableProps.TableLook);
editor.sync_TblPropCallback(drawing_props.tableProps);
}
if (target_content) {
target_content.Document_UpdateInterfaceState();
}
}
editor.sync_EndCatchSelectedElements();
this.Document_UpdateUndoRedoState();
this.Document_UpdateRulersState();
this.Document_UpdateCanAddHyperlinkState();
editor.asc_fireCallback("asc_onPresentationSize", this.Width, this.Height);
editor.asc_fireCallback("asc_canIncreaseIndent", this.Can_IncreaseParagraphLevel(true));
editor.asc_fireCallback("asc_canDecreaseIndent", this.Can_IncreaseParagraphLevel(false));
editor.asc_fireCallback("asc_onCanGroup", this.canGroup());
editor.asc_fireCallback("asc_onCanUnGroup", this.canUnGroup());
},
changeBackground: function (bg, arr_ind) {
if (this.Document_Is_SelectionLocked(changestype_SlideBg) === false) {
History.Create_NewPoint(historydescription_Presentation_ChangeBackground);
for (var i = 0; i < arr_ind.length; ++i) {
this.Slides[arr_ind[i]].changeBackground(bg);
}
this.Recalculate();
for (var i = 0; i < arr_ind.length; ++i) {
this.DrawingDocument.OnRecalculatePage(arr_ind[i], this.Slides[arr_ind[i]]);
}
this.DrawingDocument.OnEndRecalculate(true, false);
this.Document_UpdateInterfaceState();
}
},
CheckTableStyles: function (Slide, TableLook) {
if (!this.TablesForInterface) {
this.TablesForInterface = [];
var _x_mar = 10;
var _y_mar = 10;
var _r_mar = 10;
var _b_mar = 10;
var _pageW = 297;
var _pageH = 210;
var W = (_pageW - _x_mar - _r_mar);
var H = (_pageH - _y_mar - _b_mar);
var index = 0;
ExecuteNoHistory(function () {
for (var key in this.TableStylesIdMap) {
if (this.TableStylesIdMap[key]) {
this.TablesForInterface[index] = this.Create_TableGraphicFrame(5, 5, Slide, key, W, H, _x_mar, _y_mar, true);
this.TablesForInterface[index].setBDeleted(true);
index++;
}
}
},
this, []);
}
if (this.TablesForInterface.length === 0) {
return;
}
var b_table_look = false;
if (!this.LastTheme || this.LastTheme !== Slide.Layout.Master.Theme || this.LastColorScheme !== Slide.Layout.Master.Theme.themeElements.clrScheme || !this.LastColorMap || !this.LastColorMap.compare(Slide.Get_ColorMap()) || !this.LastTableLook || (b_table_look = TableLook.m_bFirst_Col !== this.LastTableLook.m_bFirst_Col || TableLook.m_bFirst_Row !== this.LastTableLook.m_bFirst_Row || TableLook.m_bLast_Col !== this.LastTableLook.m_bLast_Col || TableLook.m_bLast_Row !== this.LastTableLook.m_bLast_Row || TableLook.m_bBand_Hor !== this.LastTableLook.m_bBand_Hor || TableLook.m_bBand_Ver !== this.LastTableLook.m_bBand_Ver)) {
var only_redraw = !b_table_look && this.LastTheme === Slide.Layout.Master.Theme;
this.LastTheme = Slide.Layout.Master.Theme;
this.LastColorScheme = Slide.Layout.Master.Theme.themeElements.clrScheme;
this.LastColorMap = Slide.Get_ColorMap();
this.LastTableLook = TableLook;
var need_set_recalc = true,
i;
ExecuteNoHistory(function () {
if (!only_redraw) {
var TableLook2;
if (b_table_look) {
TableLook2 = new CTableLook(TableLook.m_bFirst_Col, TableLook.m_bFirst_Row, TableLook.m_bLast_Col, TableLook.m_bLast_Row, TableLook.m_bBand_Hor, TableLook.m_bBand_Ver);
}
if (this.TablesForInterface[0].parent !== Slide) {
need_set_recalc = false;
for (i = 0; i < this.TablesForInterface.length; ++i) {
this.TablesForInterface[i].setParent(Slide);
this.TablesForInterface[i].handleUpdateTheme();
if (TableLook2) {
this.TablesForInterface[i].graphicObject.Set_TableLook(TableLook2);
this.TablesForInterface[i].graphicObject.Recalculate_Page(0);
}
}
}
if (need_set_recalc) {
for (i = 0; i < this.TablesForInterface.length; ++i) {
if (TableLook) {
this.TablesForInterface[i].graphicObject.Set_TableLook(TableLook);
}
this.TablesForInterface[i].handleUpdateTheme();
this.TablesForInterface[i].graphicObject.Recalculate_Page(0);
}
}
}
this.DrawingDocument.CheckTableStyles();
},
this, []);
}
},
Document_UpdateRulersState: function () {
if (this.Slides[this.CurPage]) {
var target_content = this.Slides[this.CurPage].graphicObjects.getTargetDocContent(undefined, true);
if (target_content && target_content.Parent && target_content.Parent.getObjectType && target_content.Parent.getObjectType() === historyitem_type_TextBody) {
return this.DrawingDocument.Set_RulerState_Paragraph(null, target_content.Parent.getMargins());
} else {
if (target_content instanceof CTable) {
return target_content.Document_UpdateRulersState(this.CurPage);
}
}
}
this.DrawingDocument.Set_RulerState_Paragraph(null);
},
Document_UpdateSelectionState: function () {
if (this.Slides[this.CurPage]) {
this.Slides[this.CurPage].graphicObjects.updateSelectionState();
}
},
Document_UpdateUndoRedoState: function () {
editor.sync_CanUndoCallback(this.History.Can_Undo());
editor.sync_CanRedoCallback(this.History.Can_Redo());
if (true === History.Have_Changes()) {
editor.isDocumentModify = true;
editor.asc_fireCallback("asc_onDocumentModifiedChanged");
editor._onUpdateDocumentCanSave();
} else {
editor.SetUnchangedDocument();
}
},
Document_UpdateCanAddHyperlinkState: function () {
editor.sync_CanAddHyperlinkCallback(this.Hyperlink_CanAdd(false));
},
Set_CurPage: function (PageNum) {
if (-1 == PageNum) {
this.CurPage = -1;
this.Document_UpdateInterfaceState();
return;
}
var oldCurPage = this.CurPage;
this.CurPage = Math.min(this.Slides.length - 1, Math.max(0, PageNum));
if (oldCurPage != this.CurPage && this.CurPage < this.Slides.length) {
if (this.Slides[oldCurPage]) {
this.Slides[oldCurPage].graphicObjects.resetSelectionState();
}
editor.asc_hideComments();
this.Document_UpdateInterfaceState();
}
},
Get_CurPage: function () {
return this.CurPage;
},
resetStateCurSlide: function () {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.resetSelection();
},
Create_NewHistoryPoint: function (Description) {
this.History.Create_NewPoint(Description);
},
Document_Undo: function () {
if (true === CollaborativeEditing.Get_GlobalLock()) {
return;
}
this.clearThemeTimeouts();
this.History.Undo();
this.Recalculate(this.History.RecalculateData);
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState();
},
Document_Redo: function () {
if (true === CollaborativeEditing.Get_GlobalLock()) {
return;
}
this.clearThemeTimeouts();
this.History.Redo();
this.Recalculate(this.History.RecalculateData);
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState();
},
Get_SelectionState: function () {
var s = {};
s.CurPage = this.CurPage;
if (this.CurPage > -1) {
s.slideSelection = this.Slides[this.CurPage].graphicObjects.getSelectionState();
}
return s;
},
Get_SelectedContent: function () {
return ExecuteNoHistory(function () {
var ret = new PresentationSelectedContent(),
i;
if (this.Slides.length > 0) {
switch (editor.WordControl.Thumbnails.FocusObjType) {
case FOCUS_OBJECT_MAIN:
var target_text_object = getTargetTextObject(this.Slides[this.CurPage].graphicObjects);
if (target_text_object) {
var doc_content = this.Slides[this.CurPage].graphicObjects.getTargetDocContent();
if (target_text_object.getObjectType() === historyitem_type_GraphicFrame && !doc_content) {
if (target_text_object.graphicObject) {
var GraphicFrame = target_text_object.copy();
var SelectedContent = new CSelectedContent();
target_text_object.graphicObject.Get_SelectedContent(SelectedContent);
var Table = SelectedContent.Elements[0].Element;
GraphicFrame.setGraphicObject(Table);
Table.Set_Parent(GraphicFrame);
ret.Drawings.push(new DrawingCopyObject(GraphicFrame, target_text_object.x, target_text_object.y, target_text_object.extX, target_text_object.extY, target_text_object.getBase64Img()));
}
} else {
if (doc_content) {
var SelectedContent = new CSelectedContent();
doc_content.Get_SelectedContent(SelectedContent);
ret.DocContent = SelectedContent;
}
}
} else {
var selector = this.Slides[this.CurPage].graphicObjects.selection.groupSelection ? this.Slides[this.CurPage].graphicObjects.selection.groupSelection : this.Slides[this.CurPage].graphicObjects;
if (selector.selection.chartSelection && selector.selection.chartSelection.selection.title) {
var doc_content = selector.selection.chartSelection.selection.title.getDocContent();
if (doc_content) {
var SelectedContent = new CSelectedContent();
doc_content.Set_ApplyToAll(true);
doc_content.Get_SelectedContent(SelectedContent);
doc_content.Set_ApplyToAll(false);
ret.DocContent = SelectedContent;
}
} else {
var bRecursive = isRealObject(this.Slides[this.CurPage].graphicObjects.selection.groupSelection);
var aSpTree = bRecursive ? this.Slides[this.CurPage].graphicObjects.selection.groupSelection.spTree : this.Slides[this.CurPage].cSld.spTree;
collectSelectedObjects(aSpTree, ret.Drawings, bRecursive);
}
}
break;
case FOCUS_OBJECT_THUMBNAILS:
var selected_slides = editor.WordControl.Thumbnails.GetSelectedArray();
for (i = 0; i < selected_slides.length; ++i) {
ret.SlideObjects.push(new SlideCopyObject(this.Slides[selected_slides[i]].createDuplicate(), this.Slides[selected_slides[i]].getBase64Img()));
}
}
}
return ret;
},
this, []);
},
Insert_Content: function (Content) {
var selected_slides = editor.WordControl.Thumbnails.GetSelectedArray(),
i;
if (Content.SlideObjects.length > 0) {
var las_slide_index = selected_slides.length > 0 ? selected_slides[selected_slides.length - 1] : -1;
this.needSelectPages.length = 0;
for (i = 0; i < Content.SlideObjects.length; ++i) {
this.insertSlide(las_slide_index + i + 1, Content.SlideObjects[i].Slide);
this.needSelectPages.push(las_slide_index + i + 1);
}
this.CurPage = las_slide_index + 1;
this.bGoToPage = true;
this.bNeedUpdateTh = true;
} else {
if (this.Slides[this.CurPage]) {
if (Content.Drawings.length > 0) {
this.Slides[this.CurPage].graphicObjects.resetSelection();
for (i = 0; i < Content.Drawings.length; ++i) {
if (Content.Drawings[i].Drawing.bDeleted) {
if (Content.Drawings[i].Drawing.setBDeleted2) {
Content.Drawings[i].Drawing.setBDeleted2(false);
} else {
if (Content.Drawings[i].Drawing.setBDeleted) {
Content.Drawings[i].Drawing.setBDeleted(false);
}
}
}
Content.Drawings[i].Drawing.setParent2(this.Slides[this.CurPage]);
if (Content.Drawings[i].Drawing.getObjectType() === historyitem_type_GraphicFrame) {
this.Check_GraphicFrameRowHeight(Content.Drawings[i].Drawing);
}
Content.Drawings[i].Drawing.addToDrawingObjects();
this.Slides[this.CurPage].graphicObjects.selectObject(Content.Drawings[i].Drawing, this.CurPage);
}
} else {
if (Content.DocContent) {
var target_doc_content = this.Slides[this.CurPage].graphicObjects.getTargetDocContent(true),
paragraph,
NearPos;
if (target_doc_content) {
if (target_doc_content.Selection.Use) {
this.Slides[this.CurPage].graphicObjects.removeCallback(1);
}
paragraph = target_doc_content.Content[target_doc_content.CurPos.ContentPos];
if (null != paragraph && type_Paragraph == paragraph.GetType()) {
NearPos = {
Paragraph: paragraph,
ContentPos: paragraph.Get_ParaContentPos(false, false)
};
paragraph.Check_NearestPos(NearPos);
target_doc_content.Insert_Content(Content.DocContent, NearPos);
}
} else {
var track_object = new NewShapeTrack("textRect", 0, 0, this.Slides[this.CurPage].Layout.Master.Theme, this.Slides[this.CurPage].Layout.Master, this.Slides[this.CurPage].Layout, this.Slides[this.CurPage], this.CurPage);
track_object.track({},
0, 0);
var shape = track_object.getShape(false, this.DrawingDocument, this.Slides[this.CurPage]);
shape.setParent(this.Slides[this.CurPage]);
paragraph = shape.txBody.content.Content[0];
NearPos = {
Paragraph: paragraph,
ContentPos: paragraph.Get_ParaContentPos(false, false)
};
paragraph.Check_NearestPos(NearPos);
var old_val = Content.DocContent.MoveDrawing;
Content.DocContent.MoveDrawing = true;
shape.txBody.content.Insert_Content(Content.DocContent, NearPos);
Content.DocContent.MoveDrawing = old_val;
var body_pr = shape.getBodyPr();
var w = shape.txBody.getMaxContentWidth(this.Width / 2, true) + body_pr.lIns + body_pr.rIns;
var h = shape.txBody.content.Get_SummaryHeight() + body_pr.tIns + body_pr.bIns;
shape.spPr.xfrm.setExtX(w);
shape.spPr.xfrm.setExtY(h);
shape.spPr.xfrm.setOffX((this.Width - w) / 2);
shape.spPr.xfrm.setOffY((this.Height - h) / 2);
shape.setParent(this.Slides[this.CurPage]);
shape.addToDrawingObjects();
this.Slides[this.CurPage].graphicObjects.resetSelection();
this.Slides[this.CurPage].graphicObjects.selectObject(shape, this.CurPage);
}
}
}
}
}
},
Check_CursorMoveRight: function () {
if (this.Slides[this.CurPage]) {
if (this.Slides[this.CurPage].graphicObjects.getTargetDocContent(false, false)) {
this.Slides[this.CurPage].graphicObjects.cursorMoveRight(false, false);
}
}
},
Set_SelectionState: function (State) {
if (State.CurPage > -1) {
this.Slides[State.CurPage].graphicObjects.setSelectionState(State.slideSelection);
}
if (State.CurPage !== this.CurPage) {
this.bGoToPage = true;
}
this.CurPage = State.CurPage;
},
Undo: function (Data) {
var Type = Data.Type;
switch (Type) {
case historyitem_Document_DefaultTab:
Default_Tab_Stop = Data.Old;
break;
case historyitem_Presentation_AddSlide:
this.Slides.splice(Data.Pos, 1);
for (var i = 0; i < this.Slides.length; ++i) {
this.DrawingDocument.OnRecalculatePage(i, this.Slides[i]);
}
this.DrawingDocument.OnEndRecalculate();
break;
case historyitem_Presentation_RemoveSlide:
this.Slides.splice(Data.Pos, 0, g_oTableId.Get_ById(Data.Id));
for (var i = 0; i < this.Slides.length; ++i) {
this.DrawingDocument.OnRecalculatePage(i, this.Slides[i]);
}
this.DrawingDocument.OnEndRecalculate();
break;
case historyitem_Presentation_SlideSize:
var kw = Data.oldW / this.Width;
var kh = Data.oldH / this.Height;
this.Width = Data.oldW;
this.Height = Data.oldH;
this.changeSlideSizeFunction(this.Width, this.Height);
editor.asc_fireCallback("asc_onPresentationSize", this.Width, this.Height);
break;
case historyitem_Presentation_AddSlideMaster:
this.slideMasters.splice(Data.pos, 1);
break;
}
},
Redo: function (Data) {
var Type = Data.Type;
switch (Type) {
case historyitem_Presentation_AddSlide:
this.Slides.splice(Data.Pos, 0, g_oTableId.Get_ById(Data.Id));
for (var i = 0; i < this.Slides.length; ++i) {
this.DrawingDocument.OnRecalculatePage(i, this.Slides[i]);
}
this.DrawingDocument.OnEndRecalculate();
break;
case historyitem_Presentation_RemoveSlide:
this.Slides.splice(Data.Pos, 1);
for (var i = 0; i < this.Slides.length; ++i) {
this.DrawingDocument.OnRecalculatePage(i, this.Slides[i]);
}
this.DrawingDocument.OnEndRecalculate();
break;
case historyitem_Presentation_SlideSize:
var kw = Data.newW / this.Width;
var kh = Data.newH / this.Height;
this.Width = Data.newW;
this.Height = Data.newH;
this.changeSlideSizeFunction(this.Width, this.Height);
editor.asc_fireCallback("asc_onPresentationSize", this.Width, this.Height);
break;
case historyitem_Presentation_AddSlideMaster:
this.slideMasters.splice(Data.pos, 0, Data.master);
break;
}
},
Get_ParentObject_or_DocumentPos: function (Index) {
return {
Type: historyrecalctype_Inline,
Data: Index
};
},
Refresh_RecalcData: function (Data) {
var recalculateMaps, key;
switch (Data.Type) {
case historyitem_Presentation_AddSlide:
break;
case historyitem_Presentation_RemoveSlide:
break;
case historyitem_Presentation_SlideSize:
recalculateMaps = this.GetRecalculateMaps();
for (key in recalculateMaps.masters) {
if (recalculateMaps.masters.hasOwnProperty(key)) {
recalculateMaps.masters[key].checkSlideSize();
}
}
for (key in recalculateMaps.layouts) {
if (recalculateMaps.layouts.hasOwnProperty(key)) {
recalculateMaps.layouts[key].checkSlideSize();
}
}
for (key = 0; key < this.Slides.length; ++key) {
this.Slides[key].checkSlideSize();
}
break;
case historyitem_Presentation_AddSlideMaster:
break;
case historyitem_Presentation_ChangeTheme:
for (var i = 0; i < Data.arrIndex.length; ++i) {
this.Slides[Data.arrIndex[i]] && this.Slides[Data.arrIndex[i]].checkSlideTheme();
}
break;
case historyitem_Presentation_ChangeColorScheme:
recalculateMaps = this.GetRecalculateMaps();
for (key in recalculateMaps.masters) {
if (recalculateMaps.masters.hasOwnProperty(key)) {
recalculateMaps.masters[key].checkSlideColorScheme();
}
}
for (key in recalculateMaps.layouts) {
if (recalculateMaps.layouts.hasOwnProperty(key)) {
recalculateMaps.layouts[key].checkSlideColorScheme();
}
}
for (var i = 0; i < Data.arrIndex.length; ++i) {
this.Slides[Data.arrIndex[i]] && this.Slides[Data.arrIndex[i]].checkSlideTheme();
}
break;
}
this.Refresh_RecalcData2(Data);
},
Refresh_RecalcData2: function (Data) {
switch (Data.Type) {
case historyitem_Presentation_AddSlide:
break;
case historyitem_Presentation_RemoveSlide:
break;
case historyitem_Presentation_SlideSize:
History.RecalcData_Add({
Type: historyrecalctype_Drawing,
All: true
});
break;
case historyitem_Presentation_AddSlideMaster:
break;
case historyitem_Presentation_ChangeTheme:
History.RecalcData_Add({
Type: historyrecalctype_Drawing,
Theme: true,
ArrInd: Data.arrIndex
});
break;
case historyitem_Presentation_ChangeColorScheme:
History.RecalcData_Add({
Type: historyrecalctype_Drawing,
ColorScheme: true,
ArrInd: Data.arrIndex
});
break;
}
},
Hyperlink_Add: function (HyperProps) {
if (this.Slides[this.CurPage]) {
this.Slides[this.CurPage].graphicObjects.checkSelectedObjectsAndCallback(this.Slides[this.CurPage].graphicObjects.hyperlinkAdd, [HyperProps], false, historydescription_Presentation_HyperlinkAdd);
this.Document_UpdateInterfaceState();
}
},
Hyperlink_Modify: function (HyperProps) {
if (this.Slides[this.CurPage]) {
this.Slides[this.CurPage].graphicObjects.checkSelectedObjectsAndCallback(this.Slides[this.CurPage].graphicObjects.hyperlinkModify, [HyperProps], false, historydescription_Presentation_HyperlinkModify);
this.Document_UpdateInterfaceState();
}
},
Hyperlink_Remove: function () {
if (this.Slides[this.CurPage]) {
this.Slides[this.CurPage].graphicObjects.checkSelectedObjectsAndCallback(this.Slides[this.CurPage].graphicObjects.hyperlinkRemove, [], false, historydescription_Presentation_HyperlinkRemove);
this.Document_UpdateInterfaceState();
}
},
Hyperlink_CanAdd: function (bCheckInHyperlink) {
if (this.Slides[this.CurPage]) {
return this.Slides[this.CurPage].graphicObjects.hyperlinkCanAdd(bCheckInHyperlink);
}
return false;
},
canGroup: function () {
if (this.Slides[this.CurPage]) {
return this.Slides[this.CurPage].graphicObjects.canGroup();
}
return false;
},
canUnGroup: function () {
if (this.Slides[this.CurPage]) {
return this.Slides[this.CurPage].graphicObjects.canUnGroup();
}
return false;
},
alignLeft: function () {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.alignLeft(editor.bAlignBySelected);
},
alignRight: function () {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.alignRight(editor.bAlignBySelected);
},
alignTop: function () {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.alignTop(editor.bAlignBySelected);
},
alignBottom: function () {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.alignBottom(editor.bAlignBySelected);
},
alignCenter: function () {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.alignCenter(editor.bAlignBySelected);
},
alignMiddle: function () {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.alignMiddle(editor.bAlignBySelected);
},
distributeHor: function () {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.checkSelectedObjectsAndCallback(this.Slides[this.CurPage].graphicObjects.distributeHor, [editor.bAlignBySelected], false, historydescription_Presentation_DistHor);
this.Document_UpdateInterfaceState();
},
distributeVer: function () {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.checkSelectedObjectsAndCallback(this.Slides[this.CurPage].graphicObjects.distributeVer, [editor.bAlignBySelected], false, historydescription_Presentation_DistVer);
this.Document_UpdateInterfaceState();
},
bringToFront: function () {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.checkSelectedObjectsAndCallback(this.Slides[this.CurPage].graphicObjects.bringToFront, [], false, historydescription_Presentation_BringToFront);
this.Document_UpdateInterfaceState();
},
bringForward: function () {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.checkSelectedObjectsAndCallback(this.Slides[this.CurPage].graphicObjects.bringForward, [], false, historydescription_Presentation_BringForward);
this.Document_UpdateInterfaceState();
},
sendToBack: function () {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.checkSelectedObjectsAndCallback(this.Slides[this.CurPage].graphicObjects.sendToBack, [], false, historydescription_Presentation_SendToBack);
this.Document_UpdateInterfaceState();
},
bringBackward: function () {
this.Slides[this.CurPage] && this.Slides[this.CurPage].graphicObjects.checkSelectedObjectsAndCallback(this.Slides[this.CurPage].graphicObjects.bringBackward, [], false, historydescription_Presentation_BringBackward);
this.Document_UpdateInterfaceState();
},
Hyperlink_Check: function (bCheckEnd) {
return isRealObject(this.Slides[this.CurPage]) && this.Slides[this.CurPage].graphicObjects.hyperlinkCheck(bCheckEnd);
},
addNextSlide: function (layoutIndex) {
History.Create_NewPoint(historydescription_Presentation_AddNextSlide);
var new_slide, layout, i, _ph_type, sp;
if (this.Slides[this.CurPage]) {
var cur_slide = this.Slides[this.CurPage];
layout = isRealNumber(layoutIndex) ? (cur_slide.Layout.Master.sldLayoutLst[layoutIndex] ? cur_slide.Layout.Master.sldLayoutLst[layoutIndex] : cur_slide.Layout) : cur_slide.Layout.Master.getMatchingLayout(cur_slide.Layout.type, cur_slide.Layout.matchingName, cur_slide.Layout.cSld.name);
new_slide = new Slide(this, layout, this.CurPage + 1);
for (i = 0; i < layout.cSld.spTree.length; ++i) {
if (layout.cSld.spTree[i].isPlaceholder()) {
_ph_type = layout.cSld.spTree[i].getPhType();
if (_ph_type != phType_dt && _ph_type != phType_ftr && _ph_type != phType_hdr && _ph_type != phType_sldNum) {
sp = layout.cSld.spTree[i].copy();
sp.setParent(new_slide);
sp.clearContent && sp.clearContent();
new_slide.addToSpTreeToPos(new_slide.cSld.spTree.length, sp);
}
}
}
new_slide.setSlideNum(this.CurPage + 1);
new_slide.setSlideSize(this.Width, this.Height);
this.insertSlide(this.CurPage + 1, new_slide);
for (i = this.CurPage + 2; i < this.Slides.length; ++i) {
this.Slides[i].setSlideNum(i);
}
this.Recalculate();
} else {
var master = this.slideMasters[0];
layout = isRealNumber(layoutIndex) ? (master.sldLayoutLst[layoutIndex] ? master.sldLayoutLst[layoutIndex] : master.sldLayoutLst[0]) : master.sldLayoutLst[0];
new_slide = new Slide(this, layout, this.CurPage + 1);
for (i = 0; i < layout.cSld.spTree.length; ++i) {
if (layout.cSld.spTree[i].isPlaceholder()) {
_ph_type = layout.cSld.spTree[i].getPhType();
if (_ph_type != phType_dt && _ph_type != phType_ftr && _ph_type != phType_hdr && _ph_type != phType_sldNum) {
sp = layout.cSld.spTree[i].copy();
sp.setParent(new_slide);
sp.clearContent && sp.clearContent();
new_slide.addToSpTreeToPos(new_slide.cSld.spTree.length, sp);
}
}
}
new_slide.setSlideNum(this.CurPage + 1);
new_slide.setSlideSize(this.Width, this.Height);
this.insertSlide(this.CurPage + 1, new_slide);
this.Recalculate();
}
this.DrawingDocument.m_oWordControl.GoToPage(this.CurPage + 1);
this.Document_UpdateInterfaceState();
},
DublicateSlide: function () {
var selected_slides = editor.WordControl.Thumbnails.GetSelectedArray();
this.shiftSlides(Math.max.apply(Math, selected_slides) + 1, selected_slides, true);
},
shiftSlides: function (pos, array, bCopy) {
History.Create_NewPoint(historydescription_Presentation_ShiftSlides);
array.sort(fSortAscending);
var deleted = [],
i;
if (! (bCopy === true || global_mouseEvent.CtrlKey)) {
for (i = array.length - 1; i > -1; --i) {
deleted.push(this.removeSlide(array[i]));
}
for (i = 0; i < array.length; ++i) {
if (array[i] < pos) {
--pos;
} else {
break;
}
}
} else {
for (i = array.length - 1; i > -1; --i) {
deleted.push(this.Slides[array[i]].createDuplicate());
}
}
var _selectedPage = this.CurPage;
var _newSelectedPage = 0;
deleted.reverse();
for (i = 0; i < deleted.length; ++i) {
this.insertSlide(pos + i, deleted[i]);
}
for (i = 0; i < this.Slides.length; ++i) {
if (this.Slides[i].num == _selectedPage) {
_newSelectedPage = i;
}
this.Slides[i].changeNum(i);
}
this.Recalculate();
this.Document_UpdateUndoRedoState();
this.DrawingDocument.OnEndRecalculate();
this.DrawingDocument.UpdateThumbnailsAttack();
this.DrawingDocument.m_oWordControl.GoToPage(_newSelectedPage);
},
deleteSlides: function (array) {
if (array.length > 0 && this.Document_Is_SelectionLocked(changestype_RemoveSlide, null) === false) {
History.Create_NewPoint(historydescription_Presentation_DeleteSlides);
var oldLen = this.Slides.length;
array.sort(fSortAscending);
for (var i = array.length - 1; i > -1; --i) {
this.removeSlide(array[i]);
}
for (i = 0; i < this.Slides.length; ++i) {
this.Slides[i].changeNum(i);
}
if (array[array.length - 1] != oldLen - 1) {
this.DrawingDocument.m_oWordControl.GoToPage(array[array.length - 1] + 1 - array.length);
} else {
this.DrawingDocument.m_oWordControl.GoToPage(this.Slides.length - 1);
}
editor.sync_HideComment();
this.Document_UpdateUndoRedoState();
this.DrawingDocument.OnEndRecalculate();
this.DrawingDocument.UpdateThumbnailsAttack();
}
},
changeLayout: function (_array, MasterLayouts, layout_index) {
if (this.Document_Is_SelectionLocked(changestype_Layout) === false) {
History.Create_NewPoint(historydescription_Presentation_ChangeLayout);
if (this.Slides[this.CurPage]) {
this.Slides[this.CurPage].graphicObjects.resetSelection();
}
var layout = MasterLayouts.sldLayoutLst[layout_index];
for (var i = 0; i < _array.length; ++i) {
var slide = this.Slides[_array[i]];
slide.setLayout(layout);
for (var j = slide.cSld.spTree.length - 1; j > -1; --j) {
if (slide.cSld.spTree[j].isEmptyPlaceholder && slide.cSld.spTree[j].isEmptyPlaceholder()) {
slide.removeFromSpTreeById(slide.cSld.spTree[j].Get_Id());
} else {
var shape = slide.cSld.spTree[j];
if (shape.isPlaceholder() && (!shape.spPr || !shape.spPr.xfrm || !shape.spPr.xfrm.isNotNull())) {
var hierarchy = shape.getHierarchy();
for (var t = 0; t < hierarchy.length; ++t) {
if (hierarchy[t] && hierarchy[t].spPr && hierarchy[t].spPr.xfrm && hierarchy[t].spPr.xfrm.isNotNull()) {
break;
}
}
if (t === hierarchy.length) {
CheckSpPrXfrm(shape);
}
}
}
}
for (var j = 0; j < layout.cSld.spTree.length; ++j) {
if (layout.cSld.spTree[j].isPlaceholder()) {
var _ph_type = layout.cSld.spTree[j].getPhType();
if (_ph_type != phType_dt && _ph_type != phType_ftr && _ph_type != phType_hdr && _ph_type != phType_sldNum) {
var matching_shape = slide.getMatchingShape(layout.cSld.spTree[j].getPlaceholderType(), layout.cSld.spTree[j].getPlaceholderIndex(), layout.cSld.spTree[j].getIsSingleBody ? layout.cSld.spTree[j].getIsSingleBody() : false);
if (matching_shape == null && layout.cSld.spTree[j]) {
var sp = layout.cSld.spTree[j].copy();
sp.setParent(slide);
sp.clearContent && sp.clearContent();
slide.addToSpTreeToPos(slide.cSld.spTree.length, sp);
}
}
}
}
}
this.Recalculate();
this.Document_UpdateInterfaceState();
}
},
clearThemeTimeouts: function () {
if (this.startChangeThemeTimeOutId != null) {
clearTimeout(this.startChangeThemeTimeOutId);
}
if (this.backChangeThemeTimeOutId != null) {
clearTimeout(this.backChangeThemeTimeOutId);
}
if (this.forwardChangeThemeTimeOutId != null) {
clearTimeout(this.forwardChangeThemeTimeOutId);
}
},
changeTheme: function (themeInfo, arrInd) {
if (this.viewMode === true) {
return;
}
var arr_ind, i;
if (!Array.isArray(arrInd)) {
arr_ind = [];
for (i = 0; i < this.Slides.length; ++i) {
arr_ind.push(i);
}
} else {
arr_ind = arrInd;
}
this.clearThemeTimeouts();
for (i = 0; i < this.slideMasters.length; ++i) {
if (this.slideMasters[i] === themeInfo.Master) {
break;
}
}
if (i === this.slideMasters.length) {
this.addSlideMaster(this.slideMasters.length, themeInfo.Master);
}
var _new_master = themeInfo.Master;
_new_master.presentation = this;
var _master_width = _new_master.Width;
var _master_height = _new_master.Height;
themeInfo.Master.changeSize(this.Width, this.Height);
for (i = 0; i < themeInfo.Master.sldLayoutLst.length; ++i) {
themeInfo.Master.sldLayoutLst[i].changeSize(this.Width, this.Height);
}
var slides_array = [];
for (i = 0; i < arr_ind.length; ++i) {
slides_array.push(this.Slides[arr_ind[i]]);
}
var new_layout;
for (i = 0; i < slides_array.length; ++i) {
if (slides_array[i].Layout.calculatedType == null) {
slides_array[i].Layout.calculateType();
}
new_layout = _new_master.getMatchingLayout(slides_array[i].Layout.type, slides_array[i].Layout.matchingName, slides_array[i].Layout.cSld.name, true);
if (!isRealObject(new_layout)) {
new_layout = _new_master.sldLayoutLst[0];
}
slides_array[i].setLayout(new_layout);
slides_array[i].checkNoTransformPlaceholder();
}
History.Add(this, {
Type: historyitem_Presentation_ChangeTheme,
arrIndex: arr_ind
});
this.resetStateCurSlide();
this.Recalculate();
this.Document_UpdateInterfaceState();
},
changeSlideSizeFunction: function (width, height) {
ExecuteNoHistory(function () {
for (var i = 0; i < this.slideMasters.length; ++i) {
this.slideMasters[i].changeSize(width, height);
var master = this.slideMasters[i];
for (var j = 0; j < master.sldLayoutLst.length; ++j) {
master.sldLayoutLst[j].changeSize(width, height);
}
}
for (var i = 0; i < this.Slides.length; ++i) {
this.Slides[i].changeSize(width, height);
}
},
this, []);
},
changeSlideSize: function (width, height) {
if (this.Document_Is_SelectionLocked(changestype_SlideSize) === false) {
History.Create_NewPoint(historydescription_Presentation_ChangeSlideSize);
History.Add(this, {
Type: historyitem_Presentation_SlideSize,
oldW: this.Width,
newW: width,
oldH: this.Height,
newH: height
});
this.Width = width;
this.Height = height;
this.changeSlideSizeFunction(this.Width, this.Height);
this.Recalculate();
this.Document_UpdateInterfaceState();
}
},
changeColorScheme: function (colorScheme) {
if (this.viewMode === true) {
return;
}
if (! (this.Document_Is_SelectionLocked(changestype_Theme) === false)) {
return;
}
if (! (colorScheme instanceof ClrScheme)) {
return;
}
History.Create_NewPoint(historydescription_Presentation_ChangeColorScheme);
var arrInd = [];
for (var i = 0; i < this.Slides.length; ++i) {
if (!this.Slides[i].Layout.Master.Theme.themeElements.clrScheme.isIdentical(colorScheme)) {
this.Slides[i].Layout.Master.Theme.changeColorScheme(colorScheme.createDuplicate());
}
arrInd.push(i);
}
History.Add(this, {
Type: historyitem_Presentation_ChangeColorScheme,
arrIndex: arrInd
});
this.Recalculate();
this.Document_UpdateInterfaceState();
},
removeSlide: function (pos) {
if (isRealNumber(pos) && pos > -1 && pos < this.Slides.length) {
History.Add(this, {
Type: historyitem_Presentation_RemoveSlide,
Pos: pos,
Id: this.Slides[pos].Get_Id()
});
return this.Slides.splice(pos, 1)[0];
}
return null;
},
insertSlide: function (pos, slide) {
History.Add(this, {
Type: historyitem_Presentation_AddSlide,
Pos: pos,
Id: slide.Get_Id()
});
this.Slides.splice(pos, 0, slide);
},
moveSlides: function (slidesIndexes, pos) {
var insert_pos = pos;
var removed_slides = [];
for (var i = slidesIndexes.length - 1; i > -1; --i) {
removed_slides.push(this.removeSlide(slidesIndexes[i]));
if (slidesIndexes[i] < pos) {
--insert_pos;
}
}
removed_slides.reverse();
for (i = 0; i < removed_slides.length; ++i) {
this.insertSlide(insert_pos + i, removed_slides[i]);
}
this.Recalculate();
this.DrawingDocument.UpdateThumbnailsAttack();
},
Document_Is_SelectionLocked: function (CheckType, AdditionalData) {
return false;
},
Save_Changes: function (Data, Writer) {
Writer.WriteLong(historyitem_type_Document);
var Type = Data.Type;
Writer.WriteLong(Type);
switch (Type) {
case historyitem_Document_DefaultTab:
Writer.WriteDouble(Data.New);
break;
case historyitem_Presentation_RemoveSlide:
case historyitem_Presentation_AddSlide:
var Pos = Data.UseArray ? Data.PosArray[0] : Data.Pos;
Writer.WriteLong(Pos);
Writer.WriteString2(Data.Id);
break;
case historyitem_Presentation_SlideSize:
Writer.WriteDouble(Data.newW);
Writer.WriteDouble(Data.newH);
break;
case historyitem_Presentation_AddSlideMaster:
Writer.WriteLong(Data.pos);
Writer.WriteString2(Data.master.Get_Id());
break;
case historyitem_Presentation_ChangeTheme:
case historyitem_Presentation_ChangeColorScheme:
Writer.WriteLong(Data.arrIndex.length);
for (var i = 0; i < Data.arrIndex.length; ++i) {
Writer.WriteLong(Data.arrIndex[i]);
}
break;
}
return Writer;
},
Load_Changes: function (Reader, Reader2) {
var ClassType = Reader.GetLong();
if (historyitem_type_Document != ClassType) {
return;
}
var Type = Reader.GetLong();
switch (Type) {
case historyitem_Presentation_AddSlide:
var pos = this.m_oContentChanges.Check(contentchanges_Add, Reader.GetLong());
var Id = Reader.GetString2();
this.Slides.splice(pos, 0, g_oTableId.Get_ById(Id));
CollaborativeEditing.Add_ChangedClass(this);
break;
case historyitem_Presentation_RemoveSlide:
var pos = Reader.GetLong();
Reader.GetString2();
var ChangesPos = this.m_oContentChanges.Check(contentchanges_Remove, pos);
if (false === ChangesPos) {
break;
}
this.slidesToUnlock.push(ChangesPos);
this.Slides.splice(ChangesPos, 1);
break;
case historyitem_Presentation_SlideSize:
var w = Reader.GetDouble();
var h = Reader.GetDouble();
var kw = w / this.Width;
var kh = h / this.Height;
this.Width = w;
this.Height = h;
CollaborativeEditing.ScaleX = kw;
CollaborativeEditing.ScaleY = kh;
this.changeSlideSizeFunction(this.Width, this.Height);
editor.asc_fireCallback("asc_onPresentationSize", this.Width, this.Height);
break;
case historyitem_Presentation_AddSlideMaster:
var pos = Reader.GetLong();
var id = Reader.GetString2();
this.slideMasters.splice(pos, 0, g_oTableId.Get_ById(id));
this.bGoToPage = true;
break;
case historyitem_Presentation_ChangeTheme:
var _len = Reader.GetLong(),
index;
for (var i = 0; i < _len; ++i) {
index = Reader.GetLong();
this.Slides[index] && this.Slides[index].checkSlideTheme();
}
break;
case historyitem_Presentation_ChangeColorScheme:
var recalculateMaps = this.GetRecalculateMaps(),
key;
for (key in recalculateMaps.masters) {
if (recalculateMaps.masters.hasOwnProperty(key)) {
recalculateMaps.masters[key].checkSlideColorScheme();
}
}
for (key in recalculateMaps.layouts) {
if (recalculateMaps.layouts.hasOwnProperty(key)) {
recalculateMaps.layouts[key].checkSlideColorScheme();
}
}
var _len = Reader.GetLong(),
index;
for (var i = 0; i < _len; ++i) {
index = Reader.GetLong();
this.Slides[index] && this.Slides[index].checkSlideTheme();
}
break;
}
return true;
},
Clear_CollaborativeMarks: function () {},
Add_Comment: function (CommentData) {
if (this.Slides[this.CurPage]) {
History.Create_NewPoint(historydescription_Presentation_AddComment);
var Comment = new CComment(this.Comments, CommentData);
Comment.selected = true;
var slide = this.Slides[this.CurPage];
var selected_objects = slide.graphicObjects.selection.groupSelection ? slide.graphicObjects.selection.groupSelection.selectedObjects : slide.graphicObjects.selectedObjects;
if (selected_objects.length > 0) {
var last_object = selected_objects[selected_objects.length - 1];
Comment.setPosition(last_object.x + last_object.extX, last_object.y);
} else {
Comment.setPosition(this.Slides[this.CurPage].commentX, this.Slides[this.CurPage].commentY);
}
var Flags = 0;
var dd = editor.WordControl.m_oDrawingDocument;
var W = dd.GetCommentWidth(Flags);
var H = dd.GetCommentHeight(Flags);
this.Slides[this.CurPage].commentX += W;
this.Slides[this.CurPage].commentY += H;
if (this.Document_Is_SelectionLocked(changestype_AddComment, Comment) === false) {
for (var i = this.Slides[this.CurPage].slideComments.comments.length - 1; i > -1; --i) {
this.Slides[this.CurPage].slideComments.comments[i].selected = false;
}
this.Slides[this.CurPage].addComment(Comment);
this.DrawingDocument.OnRecalculatePage(this.CurPage, this.Slides[this.CurPage]);
this.DrawingDocument.OnEndRecalculate();
this.Document_UpdateInterfaceState();
var Coords = editor.WordControl.m_oDrawingDocument.ConvertCoordsToCursorWR_Comment(Comment.x, Comment.y, this.CurPage);
editor.sync_AddComment(Comment.Get_Id(), CommentData);
editor.sync_HideComment();
editor.sync_ShowComment(Comment.Id, Coords.X, Coords.Y);
return Comment;
} else {
this.Document_Undo();
}
}
},
Change_Comment: function (Id, CommentData) {
if (this.Document_Is_SelectionLocked(changestype_MoveComment, Id) === false) {
History.Create_NewPoint(historydescription_Presentation_ChangeComment);
var comment = g_oTableId.Get_ById(Id);
if (isRealObject(comment)) {
var slides = this.Slides;
var check_slide = null;
var slide_num = null;
for (var i = 0; i < slides.length; ++i) {
if (slides[i].slideComments) {
var comments = slides[i].slideComments.comments;
for (var j = 0; j < comments.length; ++j) {
if (comments[j] === comment) {
check_slide = slides[i];
slide_num = i;
break;
}
}
if (j < comments.length) {
break;
}
}
}
if (isRealObject(check_slide)) {
if (slide_num !== this.CurPage) {
this.DrawingDocument.m_oWordControl.GoToPage(slide_num);
}
this.Slides[this.CurPage].changeComment(Id, CommentData);
editor.sync_ChangeCommentData(Id, CommentData);
this.Recalculate();
} else {
return true;
}
}
}
},
Remove_Comment: function (Id, bSendEvent) {
if (null === Id) {
return;
}
for (var i = 0; i < this.Slides.length; ++i) {
var comments = this.Slides[i].slideComments.comments;
for (var j = 0; j < comments.length; ++j) {
if (comments[j].Id === Id) {
this.Slides[i].removeComment(Id);
if (true === bSendEvent) {
editor.sync_RemoveComment(Id);
}
this.Recalculate();
if (this.CurPage !== i) {
this.DrawingDocument.m_oWordControl.GoToPage(i);
}
return;
}
}
}
editor.sync_HideComment();
},
CanAdd_Comment: function () {
return true;
},
Select_Comment: function (Id) {},
Show_Comment: function (Id) {
for (var i = 0; i < this.Slides.length; ++i) {
var comments = this.Slides[i].slideComments.comments;
for (var j = 0; j < comments.length; ++j) {
if (comments[j].Id === Id) {
if (this.CurPage !== i) {
this.DrawingDocument.m_oWordControl.GoToPage(i);
}
var Coords = this.DrawingDocument.ConvertCoordsToCursorWR_Comment(comments[j].x, comments[j].y, i);
this.Slides[i].showComment(Id, Coords.X, Coords.Y);
return;
}
}
}
editor.sync_HideComment();
},
Show_Comments: function () {},
Hide_Comments: function () {},
TextBox_Put: function (sText) {
this.TurnOffRecalc = true;
if (editor.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(changestype_Drawing_Props) === false) {
History.Create_NewPoint(historydescription_Presentation_ParagraphAdd);
var Count = sText.length;
for (var Index = 0; Index < Count; Index++) {
if (Index === Count - 1) {
this.TurnOffRecalc = false;
}
var _char = sText.charAt(Index);
if (" " == _char) {
this.Paragraph_Add(new ParaSpace(1));
} else {
this.Paragraph_Add(new ParaText(_char));
}
this.TurnOffRecalc = false;
}
}
this.Document_UpdateUndoRedoState();
},
StartAddShape: function (preset, _is_apply) {
if (this.Slides[this.CurPage]) {
if (! (_is_apply === false)) {
this.Slides[this.CurPage].graphicObjects.startTrackNewShape(preset);
} else {
editor.sync_EndAddShape();
}
}
},
CalculateComments: function () {
this.CommentAuthors = {};
var _AuthorId = 0;
var _slidesCount = this.Slides.length;
var _uniIdSplitter = ";__teamlab__;";
for (var _sldIdx = 0; _sldIdx < _slidesCount; _sldIdx++) {
this.Slides[_sldIdx].writecomments = [];
var _comments = this.Slides[_sldIdx].slideComments.comments;
var _commentsCount = _comments.length;
for (var i = 0; i < _commentsCount; i++) {
var _data = _comments[i].Data;
var _commId = 0;
var _autID = _data.m_sUserId + _uniIdSplitter + _data.m_sUserName;
var _author = this.CommentAuthors[_autID];
if (!_author) {
this.CommentAuthors[_autID] = new CCommentAuthor();
_author = this.CommentAuthors[_autID];
_author.Name = _data.m_sUserName;
_author.Calculate();
_AuthorId++;
_author.Id = _AuthorId;
}
_author.LastId++;
_commId = _author.LastId;
var _new_data = new CWriteCommentData();
_new_data.Data = _data;
_new_data.WriteAuthorId = _author.Id;
_new_data.WriteCommentId = _commId;
_new_data.WriteParentAuthorId = 0;
_new_data.WriteParentCommentId = 0;
_new_data.x = _comments[i].x;
_new_data.y = _comments[i].y;
_new_data.Calculate();
this.Slides[_sldIdx].writecomments.push(_new_data);
var _comments2 = _data.m_aReplies;
var _commentsCount2 = _comments2.length;
for (var j = 0; j < _commentsCount2; j++) {
var _data2 = _comments2[j];
var _autID2 = _data2.m_sUserId + _uniIdSplitter + _data2.m_sUserName;
var _author2 = this.CommentAuthors[_autID2];
if (!_author2) {
this.CommentAuthors[_autID2] = new CCommentAuthor();
_author2 = this.CommentAuthors[_autID2];
_author2.Name = _data2.m_sUserName;
_author2.Calculate();
_AuthorId++;
_author2.Id = _AuthorId;
}
_author2.LastId++;
var _new_data2 = new CWriteCommentData();
_new_data2.Data = _data2;
_new_data2.WriteAuthorId = _author2.Id;
_new_data2.WriteCommentId = _author2.LastId;
_new_data2.WriteParentAuthorId = _author.Id;
_new_data2.WriteParentCommentId = _commId;
_new_data2.x = _new_data.x;
_new_data2.y = _new_data.y + 136 * (j + 1);
_new_data2.Calculate();
this.Slides[_sldIdx].writecomments.push(_new_data2);
}
}
}
}
};
function collectSelectedObjects(aSpTree, aCollectArray, bRecursive) {
for (var i = 0; i < aSpTree.length; ++i) {
if (aSpTree[i].selected) {
aCollectArray.push(new DrawingCopyObject(aSpTree[i].copy(), aSpTree[i].x, aSpTree[i].y, aSpTree[i].extX, aSpTree[i].extY, aSpTree[i].getBase64Img()));
}
if (bRecursive && aSpTree[i].getObjectType() === historyitem_type_GroupShape) {
collectSelectedObjects(aSpTree[i].spTree, aCollectArray, bRecursive);
}
}
}