/* * (c) Copyright Ascensio System SIA 2010-2014 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, * EU, LV-1021. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ var TYPE_TRACK_SHAPE = 0; var TYPE_TRACK_GROUP = TYPE_TRACK_SHAPE; var TYPE_TRACK_GROUP_PASSIVE = 1; var TYPE_TRACK_TEXT = 2; var TYPE_TRACK_EMPTY_PH = 3; var TYPE_TRACK_LOCK_SHAPE = 4; var GLOBAL_BLIP_FILL_MAP = {}; var COLOR_TYPE_NONE = 0; var COLOR_TYPE_SRGB = 1; var COLOR_TYPE_PRST = 2; var COLOR_TYPE_SCHEME = 3; var COLOR_TYPE_SYS = 4; var SLIDE_KIND = 0; var LAYOUT_KIND = 1; var MASTER_KIND = 2; var map_prst_color = {}; map_prst_color["aliceBlue"] = 15792383; map_prst_color["antiqueWhite"] = 16444375; map_prst_color["aqua"] = 65535; map_prst_color["aquamarine"] = 8388564; map_prst_color["azure"] = 15794175; map_prst_color["beige"] = 16119260; map_prst_color["bisque"] = 16770244; map_prst_color["black"] = 0; map_prst_color["blanchedAlmond"] = 16772045; map_prst_color["blue"] = 255; map_prst_color["blueViolet"] = 9055202; map_prst_color["brown"] = 10824234; map_prst_color["burlyWood"] = 14596231; map_prst_color["cadetBlue"] = 6266528; map_prst_color["chartreuse"] = 8388352; map_prst_color["chocolate"] = 13789470; map_prst_color["coral"] = 16744272; map_prst_color["cornflowerBlue"] = 6591981; map_prst_color["cornsilk"] = 16775388; map_prst_color["crimson"] = 14423100; map_prst_color["cyan"] = 65535; map_prst_color["darkBlue"] = 139; map_prst_color["darkCyan"] = 35723; map_prst_color["darkGoldenrod"] = 12092939; map_prst_color["darkGray"] = 11119017; map_prst_color["darkGreen"] = 25600; map_prst_color["darkGrey"] = 11119017; map_prst_color["darkKhaki"] = 12433259; map_prst_color["darkMagenta"] = 9109643; map_prst_color["darkOliveGreen"] = 5597999; map_prst_color["darkOrange"] = 16747520; map_prst_color["darkOrchid"] = 10040012; map_prst_color["darkRed"] = 9109504; map_prst_color["darkSalmon"] = 15308410; map_prst_color["darkSeaGreen"] = 9419919; map_prst_color["darkSlateBlue"] = 4734347; map_prst_color["darkSlateGray"] = 3100495; map_prst_color["darkSlateGrey"] = 3100495; map_prst_color["darkTurquoise"] = 52945; map_prst_color["darkViolet"] = 9699539; map_prst_color["deepPink"] = 16716947; map_prst_color["deepSkyBlue"] = 49151; map_prst_color["dimGray"] = 6908265; map_prst_color["dimGrey"] = 6908265; map_prst_color["dkBlue"] = 139; map_prst_color["dkCyan"] = 35723; map_prst_color["dkGoldenrod"] = 12092939; map_prst_color["dkGray"] = 11119017; map_prst_color["dkGreen"] = 25600; map_prst_color["dkGrey"] = 11119017; map_prst_color["dkKhaki"] = 12433259; map_prst_color["dkMagenta"] = 9109643; map_prst_color["dkOliveGreen"] = 5597999; map_prst_color["dkOrange"] = 16747520; map_prst_color["dkOrchid"] = 10040012; map_prst_color["dkRed"] = 9109504; map_prst_color["dkSalmon"] = 15308410; map_prst_color["dkSeaGreen"] = 9419915; map_prst_color["dkSlateBlue"] = 4734347; map_prst_color["dkSlateGray"] = 3100495; map_prst_color["dkSlateGrey"] = 3100495; map_prst_color["dkTurquoise"] = 52945; map_prst_color["dkViolet"] = 9699539; map_prst_color["dodgerBlue"] = 2003199; map_prst_color["firebrick"] = 11674146; map_prst_color["floralWhite"] = 16775920; map_prst_color["forestGreen"] = 2263842; map_prst_color["fuchsia"] = 16711935; map_prst_color["gainsboro"] = 14474460; map_prst_color["ghostWhite"] = 16316671; map_prst_color["gold"] = 16766720; map_prst_color["goldenrod"] = 14329120; map_prst_color["gray"] = 8421504; map_prst_color["green"] = 32768; map_prst_color["greenYellow"] = 11403055; map_prst_color["grey"] = 8421504; map_prst_color["honeydew"] = 15794160; map_prst_color["hotPink"] = 16738740; map_prst_color["indianRed"] = 13458524; map_prst_color["indigo"] = 4915330; map_prst_color["ivory"] = 16777200; map_prst_color["khaki"] = 15787660; map_prst_color["lavender"] = 15132410; map_prst_color["lavenderBlush"] = 16773365; map_prst_color["lawnGreen"] = 8190976; map_prst_color["lemonChiffon"] = 16775885; map_prst_color["lightBlue"] = 11393254; map_prst_color["lightCoral"] = 15761536; map_prst_color["lightCyan"] = 14745599; map_prst_color["lightGoldenrodYellow"] = 16448210; map_prst_color["lightGray"] = 13882323; map_prst_color["lightGreen"] = 9498256; map_prst_color["lightGrey"] = 13882323; map_prst_color["lightPink"] = 16758465; map_prst_color["lightSalmon"] = 16752762; map_prst_color["lightSeaGreen"] = 2142890; map_prst_color["lightSkyBlue"] = 8900346; map_prst_color["lightSlateGray"] = 7833753; map_prst_color["lightSlateGrey"] = 7833753; map_prst_color["lightSteelBlue"] = 11584734; map_prst_color["lightYellow"] = 16777184; map_prst_color["lime"] = 65280; map_prst_color["limeGreen"] = 3329330; map_prst_color["linen"] = 16445670; map_prst_color["ltBlue"] = 11393254; map_prst_color["ltCoral"] = 15761536; map_prst_color["ltCyan"] = 14745599; map_prst_color["ltGoldenrodYellow"] = 16448120; map_prst_color["ltGray"] = 13882323; map_prst_color["ltGreen"] = 9498256; map_prst_color["ltGrey"] = 13882323; map_prst_color["ltPink"] = 16758465; map_prst_color["ltSalmon"] = 16752762; map_prst_color["ltSeaGreen"] = 2142890; map_prst_color["ltSkyBlue"] = 8900346; map_prst_color["ltSlateGray"] = 7833753; map_prst_color["ltSlateGrey"] = 7833753; map_prst_color["ltSteelBlue"] = 11584734; map_prst_color["ltYellow"] = 16777184; map_prst_color["magenta"] = 16711935; map_prst_color["maroon"] = 8388608; map_prst_color["medAquamarine"] = 6737322; map_prst_color["medBlue"] = 205; map_prst_color["mediumAquamarine"] = 6737322; map_prst_color["mediumBlue"] = 205; map_prst_color["mediumOrchid"] = 12211667; map_prst_color["mediumPurple"] = 9662683; map_prst_color["mediumSeaGreen"] = 3978097; map_prst_color["mediumSlateBlue"] = 8087790; map_prst_color["mediumSpringGreen"] = 64154; map_prst_color["mediumTurquoise"] = 4772300; map_prst_color["mediumVioletRed"] = 13047173; map_prst_color["medOrchid"] = 12211667; map_prst_color["medPurple"] = 9662683; map_prst_color["medSeaGreen"] = 3978097; map_prst_color["medSlateBlue"] = 8087790; map_prst_color["medSpringGreen"] = 64154; map_prst_color["medTurquoise"] = 4772300; map_prst_color["medVioletRed"] = 13047173; map_prst_color["midnightBlue"] = 1644912; map_prst_color["mintCream"] = 16121850; map_prst_color["mistyRose"] = 16770303; map_prst_color["moccasin"] = 16770229; map_prst_color["navajoWhite"] = 16768685; map_prst_color["navy"] = 128; map_prst_color["oldLace"] = 16643558; map_prst_color["olive"] = 8421376; map_prst_color["oliveDrab"] = 7048739; map_prst_color["orange"] = 16753920; map_prst_color["orangeRed"] = 16729344; map_prst_color["orchid"] = 14315734; map_prst_color["paleGoldenrod"] = 15657130; map_prst_color["paleGreen"] = 10025880; map_prst_color["paleTurquoise"] = 11529966; map_prst_color["paleVioletRed"] = 14381203; map_prst_color["papayaWhip"] = 16773077; map_prst_color["peachPuff"] = 16767673; map_prst_color["peru"] = 13468991; map_prst_color["pink"] = 16761035; map_prst_color["plum"] = 13869267; map_prst_color["powderBlue"] = 11591910; map_prst_color["purple"] = 8388736; map_prst_color["red"] = 16711680; map_prst_color["rosyBrown"] = 12357519; map_prst_color["royalBlue"] = 4286945; map_prst_color["saddleBrown"] = 9127187; map_prst_color["salmon"] = 16416882; map_prst_color["sandyBrown"] = 16032864; map_prst_color["seaGreen"] = 3050327; map_prst_color["seaShell"] = 16774638; map_prst_color["sienna"] = 10506797; map_prst_color["silver"] = 12632256; map_prst_color["skyBlue"] = 8900331; map_prst_color["slateBlue"] = 6970091; map_prst_color["slateGray"] = 7372944; map_prst_color["slateGrey"] = 7372944; map_prst_color["snow"] = 16775930; map_prst_color["springGreen"] = 65407; map_prst_color["steelBlue"] = 4620980; map_prst_color["tan"] = 13808780; map_prst_color["teal"] = 32896; map_prst_color["thistle"] = 14204888; map_prst_color["tomato"] = 16741191; map_prst_color["turquoise"] = 4251856; map_prst_color["violet"] = 15631086; map_prst_color["wheat"] = 16113331; map_prst_color["white"] = 16777215; map_prst_color["whiteSmoke"] = 16119285; map_prst_color["yellow"] = 16776960; map_prst_color["yellowGreen"] = 10145074; function CColorMod() { this.name = ""; this.val = 0; this.Id = g_oIdCounter.Get_NewId(); g_oTableId.Add(this, this.Id); } CColorMod.prototype = { getObjectType: function () { return CLASS_TYPE_COLOR_MOD; }, Get_Id: function () { return this.Id; }, createDuplicate: function () { var duplicate = new CColorMod(); duplicate.name = this.name; duplicate.val = this.val; return duplicate; }, setName: function (name) { var oldValue = this.name; History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateAfterParagraphAddRedo, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, name))); this.name = name; }, setVal: function (val) { var oldValue = this.val; History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateAfterParagraphAddUndo, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, val))); this.val = val; }, Undo: function (type, data) { switch (type) { case historyitem_AutoShapes_RecalculateAfterParagraphAddRedo: this.name = data.oldValue; break; case historyitem_AutoShapes_RecalculateAfterParagraphAddUndo: this.val = data.oldValue; break; } }, Redo: function (type, data) { switch (type) { case historyitem_AutoShapes_RecalculateAfterParagraphAddRedo: this.name = data.newValue; break; case historyitem_AutoShapes_RecalculateAfterParagraphAddUndo: this.val = data.newValue; break; } } }; var cd16 = 1 / 6; var cd13 = 1 / 3; var cd23 = 2 / 3; function CColorModifiers() { this.Mods = []; } CColorModifiers.prototype = { Write_ToBinary2: function (Writer) { var count = this.Mods.length; Writer.WriteLong(count); for (var i = 0; i < count; ++i) { var cur_mod = this.Mods[i]; Writer.WriteString2(cur_mod.name); Writer.WriteLong(cur_mod.val); } }, Read_FromBinary2: function (Reader) { var count = Reader.GetLong(); for (var i = 0; i < count; ++i) { var cur_mod = new CColorMod(); cur_mod.setName(Reader.GetString2()); cur_mod.setVal(Reader.GetLong()); this.Mods.push(cur_mod); } return this; }, IsIdentical: function (mods) { if (mods == null) { return false; } if (mods.Mods == null || this.Mods.length != mods.Mods.length) { return false; } for (var i = 0; i < this.Mods.length; ++i) { if (this.Mods[i].name != mods.Mods[i].name || this.Mods[i].val != mods.Mods[i].val) { return false; } } return true; }, createDuplicate: function () { var duplicate = new CColorModifiers(); for (var i = 0; i < this.Mods.length; ++i) { duplicate.Mods[i] = { name: this.Mods[i].name, val: this.Mods[i].val }; } return duplicate; }, RGB2HSL: function (R, G, B, HLS) { var iMin = Math.min(R, Math.min(G, B)); var iMax = Math.max(R, Math.max(G, B)); var iDelta = iMax - iMin; var dMax = (iMax + iMin) / 255; var dDelta = iDelta / 255; var H = 0; var S = 0; var L = dMax / 2; if (iDelta != 0) { if (L < 0.5) { S = dDelta / dMax; } else { S = dDelta / (2 - dMax); } dDelta = dDelta * 1530; var dR = (iMax - R) / dDelta; var dG = (iMax - G) / dDelta; var dB = (iMax - B) / dDelta; if (R == iMax) { H = dB - dG; } else { if (G == iMax) { H = cd13 + dR - dB; } else { if (B == iMax) { H = cd23 + dG - dR; } } } if (H < 0) { H += 1; } if (H > 1) { H -= 1; } } H = ((H * 240) >> 0) & 255; if (H < 0) { H = 0; } if (H > 255) { H = 255; } S = ((S * 240) >> 0) & 255; if (S < 0) { S = 0; } if (S > 255) { S = 255; } L = ((L * 240) >> 0) & 255; if (L < 0) { L = 0; } if (L > 255) { L = 255; } HLS.H = H; HLS.S = S; HLS.L = L; }, HSL2RGB: function (HSL, RGB) { if (HSL.S == 0) { var R = (255 * (HSL.L / 240)) >> 0; if (R < 0) { R = 0; } if (R > 255) { R = 255; } RGB.R = R; RGB.G = R; RGB.B = R; } else { var H = HSL.H / 240; var S = HSL.S / 240; var L = HSL.L / 240; var v2 = 0; if (L < 0.5) { v2 = L * (1 + S); } else { v2 = L + S - S * L; } var v1 = 2 * L - v2; var R = (255 * this.Hue_2_RGB(v1, v2, H + cd13)) >> 0; var G = (255 * this.Hue_2_RGB(v1, v2, H)) >> 0; var B = (255 * this.Hue_2_RGB(v1, v2, H - cd13)) >> 0; if (R < 0) { R = 0; } if (R > 255) { R = 255; } if (G < 0) { G = 0; } if (G > 255) { G = 255; } if (B < 0) { B = 0; } if (B > 255) { B = 255; } RGB.R = R; RGB.G = G; RGB.B = B; } }, Hue_2_RGB: function (v1, v2, vH) { if (vH < 0) { vH += 1; } if (vH > 1) { vH -= 1; } if (vH < cd16) { return v1 + (v2 - v1) * 6 * vH; } if (vH < 0.5) { return v2; } if (vH < cd23) { return v1 + (v2 - v1) * (cd23 - vH) * 6; } return v1; }, Apply: function (RGBA) { if (null == this.Mods) { return; } var _len = this.Mods.length; for (var i = 0; i < _len; i++) { var colorMod = this.Mods[i]; var val = colorMod.val / 100000; if (colorMod.name == "alpha") { RGBA.A = Math.min(255, Math.max(0, 255 * val)); } else { if (colorMod.name == "blue") { RGBA.B = Math.min(255, Math.max(0, 255 * val)); } else { if (colorMod.name == "blueMod") { RGBA.B = Math.max(0, parseInt(RGBA.B * val)); } else { if (colorMod.name == "blueOff") { RGBA.B = Math.max(0, parseInt(RGBA.B + val * 255)); } else { if (colorMod.name == "green") { RGBA.G = Math.min(255, Math.max(0, 255 * val)); } else { if (colorMod.name == "greenMod") { RGBA.G = Math.max(0, parseInt(RGBA.G * val)); } else { if (colorMod.name == "greenOff") { RGBA.G = Math.max(0, parseInt(RGBA.G + val * 255)); } else { if (colorMod.name == "red") { RGBA.R = Math.min(255, Math.max(0, 255 * val)); } else { if (colorMod.name == "redMod") { RGBA.R = Math.max(0, parseInt(RGBA.R * val)); } else { if (colorMod.name == "redOff") { RGBA.R = Math.max(0, parseInt(RGBA.R + val * 255)); } else { if (colorMod.name == "hueOff") { var HSL = { H: 0, S: 0, L: 0 }; this.RGB2HSL(RGBA.R, RGBA.G, RGBA.B, HSL); var res = parseInt(HSL.H + (val * 10) / 9); while (res > 240) { res = res - 240; } while (res < 0) { res += 240; } HSL.H = res; this.HSL2RGB(HSL, RGBA); } else { if (colorMod.name == "inv") { RGBA.R ^= 255; RGBA.G ^= 255; RGBA.B ^= 255; } else { if (colorMod.name == "lumMod") { if (val != 1) { var HSL = { H: 0, S: 0, L: 0 }; this.RGB2HSL(RGBA.R, RGBA.G, RGBA.B, HSL); if (HSL.L * val > 240) { HSL.L = 240; } else { HSL.L = Math.max(0, parseInt(HSL.L * val)); } this.HSL2RGB(HSL, RGBA); } } else { if (colorMod.name == "lumOff") { if (0 != val) { var HSL = { H: 0, S: 0, L: 0 }; this.RGB2HSL(RGBA.R, RGBA.G, RGBA.B, HSL); var res = parseInt(HSL.L + val * 240); while (res > 240) { res = res - 240; } while (res < 0) { res += 240; } HSL.L = res; this.HSL2RGB(HSL, RGBA); } } else { if (colorMod.name == "satMod") { var HSL = { H: 0, S: 0, L: 0 }; this.RGB2HSL(RGBA.R, RGBA.G, RGBA.B, HSL); if (HSL.S * val > 240) { HSL.S = 240; } else { HSL.S = Math.max(0, parseInt(HSL.S * val)); } this.HSL2RGB(HSL, RGBA); } else { if (colorMod.name == "satOff") { var HSL = { H: 0, S: 0, L: 0 }; this.RGB2HSL(RGBA.R, RGBA.G, RGBA.B, HSL); var res = parseInt(HSL.S + val * 240); while (res > 240) { res = res - 240; } while (res < 0) { res += 240; } HSL.S = res; this.HSL2RGB(HSL, RGBA); } else { if (colorMod.name == "shade") { RGBA.R = Math.max(0, parseInt(RGBA.R * val)); RGBA.G = Math.max(0, parseInt(RGBA.G * val)); RGBA.B = Math.max(0, parseInt(RGBA.B * val)); } else { if (colorMod.name == "tint") { RGBA.R = Math.max(0, parseInt(255 - (255 - RGBA.R) * val)); RGBA.G = Math.max(0, parseInt(255 - (255 - RGBA.G) * val)); RGBA.B = Math.max(0, parseInt(255 - (255 - RGBA.B) * val)); } } } } } } } } } } } } } } } } } } } }, clearMods: function () { this.Mods.length = 0; }, copyFromOther: function (o) { this.clearMods(); for (var i = 0; i < o.Mods.length; ++i) { this.addMod(); } }, addMod: function (mod) { this.Mods.push(mod); } }; function CSysColor() { this.type = COLOR_TYPE_SYS; this.id = ""; this.RGBA = { R: 0, G: 0, B: 0, A: 255 }; this.Id = g_oIdCounter.Get_NewId(); g_oTableId.Add(this, this.Id); } CSysColor.prototype = { getObjectType: function () { return CLASS_TYPE_SYS_COLOR; }, Get_Id: function () { return this.Id; }, setColorId: function (id) { var oldValue = this.id; var newValue = id; History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_SetFType, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, newValue))); this.id = id; }, Copy: function () { var ret = new CSchemeColor(); ret.setColorId(this.id); return ret; }, Write_ToBinary2: function (Writer) { Writer.WriteLong(this.type); Writer.WriteString2(this.id); WriteObjectLong(Writer, this.RGBA); }, Read_FromBinary2: function (Reader) { this.setColorId(Reader.GetString2()); this.RGBA = ReadObjectLong(Reader); }, IsIdentical: function (color) { return color && color.type == COLOR_TYPE_SYS && color.id == this.id; }, Calculate: function (obj) {}, createDuplicate: function () { var duplicate = new CSysColor(); duplicate.id = this.id; duplicate.RGBA.R = this.RGBA.R; duplicate.RGBA.G = this.RGBA.G; duplicate.RGBA.B = this.RGBA.B; duplicate.RGBA.A = this.RGBA.A; return duplicate; }, copyFromOther: function (p) { this.id = p.id; }, setId: function (id) { this.id = id; } }; function CPrstColor() { this.type = COLOR_TYPE_PRST; this.id = ""; this.RGBA = { R: 0, G: 0, B: 0, A: 255 }; this.Id = g_oIdCounter.Get_NewId(); g_oTableId.Add(this, this.Id); } CPrstColor.prototype = { getObjectType: function () { return CLASS_TYPE_PRST_COLOR; }, Get_Id: function () { return this.Id; }, setColorId: function (id) { var oldValue = this.id; var newValue = id; History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_SetFType, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, newValue))); this.id = id; }, Copy: function () { var ret = new CSchemeColor(); ret.setColorId(this.id); return ret; }, Undo: function (type, data) { switch (type) { case historyitem_AutoShapes_SetFType: this.id = data.oldValue; break; } }, Redo: function (type, data) { switch (type) { case historyitem_AutoShapes_SetFType: this.id = data.newValue; break; } }, Write_ToBinary2: function (Writer) { Writer.WriteLong(this.type); Writer.WriteString2(this.id); WriteObjectLong(Writer, this.RGBA); }, Read_FromBinary2: function (Reader) { this.setColorId(Reader.GetString2()); this.RGBA = ReadObjectLong(Reader); }, IsIdentical: function (color) { return color && color.type == COLOR_TYPE_PRST && color.id == this.id; }, createDuplicate: function () { var duplicate = new CPrstColor(); duplicate.id = this.id; duplicate.RGBA.R = this.RGBA.R; duplicate.RGBA.G = this.RGBA.G; duplicate.RGBA.B = this.RGBA.B; duplicate.RGBA.A = this.RGBA.A; return duplicate; }, Calculate: function (obj) { var RGB = map_prst_color[this.id]; this.RGBA.R = (RGB >> 16) & 255; this.RGBA.G = (RGB >> 8) & 255; this.RGBA.B = RGB & 255; }, copyFromOther: function (p) { this.id = p.id; }, setId: function (id) { this.id = id; } }; function CRGBColor() { this.type = COLOR_TYPE_SRGB; this.RGBA = { R: 0, G: 0, B: 0, A: 255 }; this.Id = g_oIdCounter.Get_NewId(); g_oTableId.Add(this, this.Id); } CRGBColor.prototype = { getObjectType: function () { return CLASS_TYPE_RGB_COLOR; }, Get_Id: function () { return this.Id; }, setColor: function (RGB) { var oldValue = ((this.RGBA.R << 16) & 16711680) + ((this.RGBA.G << 8) & 65280) + this.RGBA.B; var newValue = RGB; History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_SetFType, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, newValue))); this.RGBA.R = (RGB >> 16) & 255; this.RGBA.G = (RGB >> 8) & 255; this.RGBA.B = RGB & 255; }, writeToBinaryLong: function (w) { w.WriteLong(((this.RGBA.R << 16) & 16711680) + ((this.RGBA.G << 8) & 65280) + this.RGBA.B); }, readFromBinaryLong: function (r) { var RGB = r.GetLong(); this.RGBA.R = (RGB >> 16) & 255; this.RGBA.G = (RGB >> 8) & 255; this.RGBA.B = RGB & 255; }, Copy: function () { var ret = new CRGBColor(); ret.setColor(((this.RGBA.R << 16) & 16711680) + ((this.RGBA.G << 8) & 65280) + this.RGBA.B); return ret; }, Undo: function (type, data) { switch (type) { case historyitem_AutoShapes_SetFType: var RGB = data.oldValue; this.RGBA.R = (RGB >> 16) & 255; this.RGBA.G = (RGB >> 8) & 255; this.RGBA.B = RGB & 255; break; } }, Redo: function (type, data) { switch (type) { case historyitem_AutoShapes_SetFType: var RGB = data.newValue; this.RGBA.R = (RGB >> 16) & 255; this.RGBA.G = (RGB >> 8) & 255; this.RGBA.B = RGB & 255; break; } }, Write_ToBinary2: function (Writer) { Writer.WriteLong(this.type); WriteObjectLong(Writer, this.RGBA); }, Read_FromBinary2: function (Reader) { this.RGBA = ReadObjectLong(Reader); }, IsIdentical: function (color) { return color && color.type == COLOR_TYPE_SRGB && color.RGBA.R == this.RGBA.R && color.RGBA.G == this.RGBA.G && color.RGBA.B == this.RGBA.B && color.RGBA.A == this.RGBA.A; }, createDuplicate: function () { var duplicate = new CRGBColor(); duplicate.id = this.id; duplicate.RGBA.R = this.RGBA.R; duplicate.RGBA.G = this.RGBA.G; duplicate.RGBA.B = this.RGBA.B; duplicate.RGBA.A = this.RGBA.A; return duplicate; }, Calculate: function (obj) {}, copyFromOther: function (obj) { var RGBA = obj.RGBA; var rgba = ((RGBA.R << 16) & 16711680) + ((RGBA.G << 8) & 65280) + RGBA.B; this.setColor(rgba); } }; function CSchemeColor() { this.type = COLOR_TYPE_SCHEME; this.id = 0; this.RGBA = { R: 0, G: 0, B: 0, A: 255 }; this.Id = g_oIdCounter.Get_NewId(); g_oTableId.Add(this, this.Id); } CSchemeColor.prototype = { Get_Id: function () { return this.Id; }, getObjectType: function () { return CLASS_TYPE_SCHEME_COLOR; }, setColorId: function (id) { var oldValue = this.id; var newValue = id; History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_SetFType, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, newValue))); this.id = id; }, Copy: function () { var ret = new CSchemeColor(); ret.setColorId(this.id); return ret; }, Undo: function (type, data) { switch (type) { case historyitem_AutoShapes_SetFType: this.id = data.oldValue; break; } }, Redo: function (type, data) { switch (type) { case historyitem_AutoShapes_SetFType: this.id = data.newValue; break; } }, Write_ToBinary2: function (Writer) { Writer.WriteLong(this.type); Writer.WriteLong(this.id); WriteObjectLong(Writer, this.RGBA); }, Read_FromBinary2: function (Reader) { this.setColorId(Reader.GetLong()); this.RGBA = ReadObjectLong(Reader); }, IsIdentical: function (color) { return color && color.type == COLOR_TYPE_SCHEME && color.id == this.id; }, createDuplicate: function () { var duplicate = new CSchemeColor(); duplicate.id = this.id; duplicate.RGBA.R = this.RGBA.R; duplicate.RGBA.G = this.RGBA.G; duplicate.RGBA.B = this.RGBA.B; duplicate.RGBA.A = this.RGBA.A; return duplicate; }, Calculate: function (theme, clrMap, RGBA) { if (theme.themeElements.clrScheme) { if (this.id == phClr) { this.RGBA = RGBA; } else { if (clrMap[this.id] != null && theme.themeElements.clrScheme.colors[clrMap[this.id]] != null) { this.RGBA = theme.themeElements.clrScheme.colors[clrMap[this.id]].color.RGBA; } else { if (theme.themeElements.clrScheme.colors[this.id] != null) { this.RGBA = theme.themeElements.clrScheme.colors[this.id].color.RGBA; } } } } }, copyFromOther: function (s) { this.setId(s.id); }, setId: function (id) { this.id = id; } }; function CUniColor() { this.color = null; this.Mods = new CColorModifiers(); this.RGBA = { R: 0, G: 0, B: 0, A: 255 }; this.Id = g_oIdCounter.Get_NewId(); g_oTableId.Add(this, this.Id); } CUniColor.prototype = { getCSSColor: function (transparent) { if (transparent != null) { var _css = "rgba(" + this.RGBA.R + "," + this.RGBA.G + "," + this.RGBA.B + ",1)"; return _css; } var _css = "rgba(" + this.RGBA.R + "," + this.RGBA.G + "," + this.RGBA.B + "," + (this.RGBA.A / 255) + ")"; return _css; }, addMod: function (mod) { History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_AddColorMod, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(mod.Get_Id(), null))); this.Mods.Mods.push(mod); }, clearMods: function () { this.Mods.clearMods(); }, Get_Id: function () { return this.Id; }, getObjectType: function () { return CLASS_TYPE_UNI_COLOR; }, setColor: function (color) { var oldValue = isRealObject(this.color) ? this.color.Get_Id() : null; var newValue = isRealObject(color) ? color.Get_Id() : null; History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_SetFType, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, newValue))); this.color = color; }, Copy: function () { var ret = new CUniColor(); if (isRealObject(this.color)) { ret.setColor(this.color.Copy()); } return ret; }, Undo: function (type, data) { switch (type) { case historyitem_AutoShapes_SetFType: this.color = g_oTableId.Get_ById(data.oldValue); break; case historyitem_AutoShapes_AddColorMod: for (var i = 0; i < this.Mods.Mods.length; ++i) { if (this.Mods.Mods[i].Get_Id() === data.oldValue) { this.Mods.Mods.splice(i, 1); break; } } break; } }, Redo: function (type, data) { switch (type) { case historyitem_AutoShapes_SetFType: this.color = g_oTableId.Get_ById(data.newValue); break; case historyitem_AutoShapes_AddColorMod: this.Mods.Mods.push(g_oTableId.Get_ById(data.oldValue)); break; } }, Write_ToBinary2: function (Writer) { var flag = this.color != null; Writer.WriteBool(flag); if (flag) { this.color.Write_ToBinary2(Writer); } this.Mods.Write_ToBinary2(Writer); WriteObjectLong(Writer, this.RGBA); }, Read_FromBinary2: function (Reader) { var flag = Reader.GetBool(); if (flag) { var color_type = Reader.GetLong(); switch (color_type) { case COLOR_TYPE_SCHEME: this.setColor(new CSchemeColor()); this.color.Read_FromBinary2(Reader); break; case COLOR_TYPE_SRGB: this.setColor(new CRGBColor()); this.color.Read_FromBinary2(Reader); break; case COLOR_TYPE_PRST: this.setColor(new CPrstColor()); this.color.Read_FromBinary2(Reader); break; case COLOR_TYPE_SYS: this.setColor(new CSysColor()); this.color.Read_FromBinary2(Reader); break; } } var mods = new CColorModifiers(); mods.Read_FromBinary2(Reader); for (var i = 0; i < mods.Mods.length; ++i) { this.addMod(mods.Mods[i]); } this.RGBA = ReadObjectLong(Reader); }, createDuplicate: function () { var duplicate = new CUniColor(); if (this.color != null) { duplicate.color = this.color.createDuplicate(); } duplicate.Mods = this.Mods.createDuplicate(); duplicate.RGBA.R = this.RGBA.R; duplicate.RGBA.G = this.RGBA.G; duplicate.RGBA.B = this.RGBA.B; duplicate.RGBA.A = this.RGBA.A; return duplicate; }, IsIdentical: function (unicolor) { if (unicolor == null) { return false; } if (!this.color.IsIdentical(unicolor.color)) { return false; } if (!this.Mods.IsIdentical(unicolor.Mods)) { return false; } return true; }, Calculate: function (theme, clrMap, RGBA) { if (this.color == null) { return this.RGBA; } this.color.Calculate(theme, clrMap, RGBA); this.RGBA = { R: this.color.RGBA.R, G: this.color.RGBA.G, B: this.color.RGBA.B, A: this.color.RGBA.A }; this.Mods.Apply(this.RGBA); }, compare: function (unicolor) { if (unicolor == null) { return null; } var _ret = new CUniColor(); if (this.color == null || unicolor.color == null || this.color.type !== unicolor.color.type) { return _ret; } switch (this.color.type) { case COLOR_TYPE_NONE: break; case COLOR_TYPE_PRST: _ret.color = new CPrstColor(); if (unicolor.color.id == this.color.id) { _ret.color.id = this.color.id; _ret.color.RGBA.R = this.color.RGBA.R; _ret.color.RGBA.G = this.color.RGBA.G; _ret.color.RGBA.B = this.color.RGBA.B; _ret.color.RGBA.A = this.color.RGBA.A; _ret.RGBA.R = this.RGBA.R; _ret.RGBA.G = this.RGBA.G; _ret.RGBA.B = this.RGBA.B; _ret.RGBA.A = this.RGBA.A; } break; case COLOR_TYPE_SCHEME: _ret.color = new CSchemeColor(); if (unicolor.color.id == this.color.id) { _ret.color.id = this.color.id; _ret.color.RGBA.R = this.color.RGBA.R; _ret.color.RGBA.G = this.color.RGBA.G; _ret.color.RGBA.B = this.color.RGBA.B; _ret.color.RGBA.A = this.color.RGBA.A; _ret.RGBA.R = this.RGBA.R; _ret.RGBA.G = this.RGBA.G; _ret.RGBA.B = this.RGBA.B; _ret.RGBA.A = this.RGBA.A; } break; case COLOR_TYPE_SRGB: _ret.color = new CRGBColor(); var _RGBA1 = this.color.RGBA; var _RGBA2 = this.color.RGBA; if (_RGBA1.R === _RGBA2.R && _RGBA1.G === _RGBA2.G && _RGBA1.B === _RGBA2.B) { _ret.color.RGBA.R = this.color.RGBA.R; _ret.color.RGBA.G = this.color.RGBA.G; _ret.color.RGBA.B = this.color.RGBA.B; _ret.RGBA.R = this.RGBA.R; _ret.RGBA.G = this.RGBA.G; _ret.RGBA.B = this.RGBA.B; } if (_RGBA1.A === _RGBA2.A) { _ret.color.RGBA.A = this.color.RGBA.A; } break; case COLOR_TYPE_SYS: if (unicolor.color.id == this.color.id) { _ret.color.id = this.color.id; _ret.color.RGBA.R = this.color.RGBA.R; _ret.color.RGBA.G = this.color.RGBA.G; _ret.color.RGBA.B = this.color.RGBA.B; _ret.color.RGBA.A = this.color.RGBA.A; _ret.RGBA.R = this.RGBA.R; _ret.RGBA.G = this.RGBA.G; _ret.RGBA.B = this.RGBA.B; _ret.RGBA.A = this.RGBA.A; } break; } return _ret; }, copyFromOther: function (u) { if (isRealObject(u.color)) { if (!isRealObject(this.color) || this.color.type !== u.color.type) { switch (u.color.type) { case COLOR_TYPE_SCHEME: this.setColor(new CSchemeColor()); break; case COLOR_TYPE_SRGB: this.setColor(new CRGBColor()); break; case COLOR_TYPE_PRST: this.setColor(new CPrstColor()); break; case COLOR_TYPE_SYS: this.setColor(new CSysColor()); break; } } if (this.color && this.color.copyFromOther) { this.color.copyFromOther(u.color); } } } }; function CreateUniColorRGB(r, g, b) { var ret = new CUniColor(); ret.color = new CRGBColor(); ret.color.RGBA.R = r; ret.color.RGBA.G = g; ret.color.RGBA.B = b; return ret; } var FILL_TYPE_NONE = 0; var FILL_TYPE_BLIP = 1; var FILL_TYPE_NOFILL = 2; var FILL_TYPE_SOLID = 3; var FILL_TYPE_GRAD = 4; var FILL_TYPE_PATT = 5; function CSrcRect() { this.l = null; this.t = null; this.r = null; this.b = null; } CSrcRect.prototype = { createDublicate: function () { var _ret = new CSrcRect(); _ret.l = this.l; _ret.t = this.t; _ret.r = this.r; _ret.b = this.b; return _ret; }, createBinary: function () { var w = new CMemory(); w.WriteBool(isRealNumber(this.l)); if (isRealNumber(this.l)) { w.WriteDoube(this.l); } w.WriteBool(isRealNumber(this.t)); if (isRealNumber(this.t)) { w.WriteDoube(this.t); } w.WriteBool(isRealNumber(this.r)); if (isRealNumber(this.r)) { w.WriteDoube(this.r); } w.WriteBool(isRealNumber(this.b)); if (isRealNumber(this.b)) { w.WriteDoube(this.b); } return w.pos + ";" + w.GetBase64Memory(); }, setFromBinary: function (bin) { var r = CreateBinaryReader(bin, 0, bin.length); if (r.GetBool()) { this.l = r.GetDouble(); } else { this.l = null; } if (r.GetBool()) { this.t = r.GetDouble(); } else { this.t = null; } if (r.GetBool()) { this.r = r.GetDouble(); } else { this.r = null; } if (r.GetBool()) { this.b = r.GetDouble(); } else { this.b = null; } } }; function CBlipFill() { this.type = FILL_TYPE_BLIP; this.RasterImageId = null; this.VectorImageBin = null; this.srcRect = null; this.stretch = null; this.tile = null; this.rotWithShape = false; this.Id = g_oIdCounter.Get_NewId(); g_oTableId.Add(this, this.Id); } CBlipFill.prototype = { Get_Id: function () { return this.Id; }, getObjectType: function () { return CLASS_TYPE_BLIP_FILL; }, setRasterImageId: function (rasterImageId) { var oldValue = this.RasterImageId; var newValue = rasterImageId; History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_SetFType, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, newValue))); this.RasterImageId = rasterImageId; }, setSrcRect: function (srcRect) { var oldValue = isRealObject(this.srcRect) ? this.srcRect.createBinary() : null; var newValue = isRealObject(srcRect) ? srcRect.createBinary() : null; this.srcRect = srcRect; History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_AddYAxis, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, newValue))); }, setTile: function (tile) { var oldValue = this.tile; var newValue = tile; History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_AddChartGroup, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, newValue))); this.tile = tile; }, Copy: function () { var ret = new CBlipFill(); ret.setRasterImageId(this.RasterImageId); ret.setTile(this.tile); return ret; }, Undo: function (type, data) { switch (type) { case historyitem_AutoShapes_SetFType: this.RasterImageId = data.oldValue; break; case historyitem_AutoShapes_AddChartGroup: this.tile = data.oldValue; break; case historyitem_AutoShapes_AddYAxis: if (typeof data.oldValue === "string") { this.srcRect = new CSrcRect(); this.srcRect.setFromBinary(data.oldValue); } else { this.srcRect = null; } break; } }, Redo: function (type, data) { switch (type) { case historyitem_AutoShapes_SetFType: this.RasterImageId = data.newValue; break; case historyitem_AutoShapes_AddChartGroup: this.tile = data.newValue; break; case historyitem_AutoShapes_AddYAxis: if (typeof data.oldValue === "string") { this.srcRect = new CSrcRect(); this.srcRect.setFromBinary(data.newValue); } else { this.srcRect = null; } break; } }, Write_ToBinary2: function (Writer) { Writer.WriteLong(this.type); var flag = typeof this.RasterImageId === "string"; Writer.WriteBool(flag); if (flag) { var string_to_write = getFullImageSrc(this.RasterImageId); if (string_to_write.indexOf(window["Asc"]["editor"].documentOrigin) !== 0 && (0 != string_to_write.indexOf("http:") && 0 != string_to_write.indexOf("data:") && 0 != string_to_write.indexOf("https:") && 0 != string_to_write.indexOf("ftp:") && 0 != string_to_write.indexOf("file:"))) { string_to_write = window["Asc"]["editor"].documentOrigin + string_to_write; } Writer.WriteString2(string_to_write); } flag = this.stretch !== null; Writer.WriteBool(flag); if (flag) { Writer.WriteBool(this.stretch); } flag = this.tile !== null; Writer.WriteBool(flag); if (flag) { Writer.WriteBool(this.tile); } Writer.WriteBool(this.rotWithShape); var w = Writer; var bool = isRealObject(this.srcRect) && isRealNumber(this.srcRect.l) && isRealNumber(this.srcRect.t) && isRealNumber(this.srcRect.r) && isRealNumber(this.srcRect.b); w.WriteBool(bool); if (bool) { w.WriteDouble(this.srcRect.l); w.WriteDouble(this.srcRect.t); w.WriteDouble(this.srcRect.r); w.WriteDouble(this.srcRect.b); } }, Read_FromBinary2: function (Reader) { var flag = Reader.GetBool(); if (flag) { var imageId = Reader.GetString2(); if (typeof imageId === "string" && isRealObject(Reader.oImages) && typeof Reader.oImages[imageId] === "string" && Reader.oImages[imageId] !== "error") { this.setRasterImageId(Reader.oImages[imageId]); } else { this.setRasterImageId(imageId); } } flag = Reader.GetBool(); if (flag) { this.stretch = Reader.GetBool(); } flag = Reader.GetBool(); if (flag) { this.setTile(Reader.GetBool()); } else { this.setTile(null); } this.rotWithShape = Reader.GetBool(); if (Reader.GetBool()) { var srcRect = new CSrcRect(); srcRect.l = Reader.GetDouble(); srcRect.t = Reader.GetDouble(); srcRect.r = Reader.GetDouble(); srcRect.b = Reader.GetDouble(); this.setSrcRect(srcRect); } else { this.setSrcRect(null); } }, createDuplicate: function () { var duplicate = new CBlipFill(); duplicate.RasterImageId = this.RasterImageId; duplicate.VectorImageBin = this.VectorImageBin; duplicate.stretch = this.stretch; duplicate.tile = this.tile; if (null != this.srcRect) { duplicate.srcRect = this.srcRect.createDublicate(); } duplicate.rotWithShape = this.rotWithShape; return duplicate; }, IsIdentical: function (fill) { if (fill == null) { return false; } if (fill.type != FILL_TYPE_BLIP) { return false; } if (fill.RasterImageId != this.RasterImageId) { return false; } if (fill.stretch != this.stretch) { return false; } if (fill.tile != this.tile) { return false; } return true; }, compare: function (fill) { if (fill == null || fill.type !== FILL_TYPE_BLIP) { return null; } var _ret = new CBlipFill(); if (this.RasterImageId == fill.RasterImageId) { _ret.RasterImageId = this.RasterImageId; } if (fill.stretch == this.stretch) { _ret.stretch = this.stretch; } if (fill.tile == this.tile) { _ret.tile = this.tile; } if (fill.rotWithShape === this.rotWithShape) { _ret.rotWithShape = this.rotWithShape; } return _ret; } }; function CSolidFill() { this.type = FILL_TYPE_SOLID; this.color = null; this.Id = g_oIdCounter.Get_NewId(); g_oTableId.Add(this, this.Id); } CSolidFill.prototype = { Get_Id: function () { return this.Id; }, getObjectType: function () { return CLASS_TYPE_SOLID_FILL; }, setColor: function (unicolor) { var oldValue = isRealObject(this.color) ? this.color.Get_Id() : null; var newValue = isRealObject(unicolor) ? unicolor.Get_Id() : null; History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_SetFType, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, newValue))); this.color = unicolor; }, Copy: function () { var ret = new CSolidFill(); if (isRealObject(this.color)) { ret.setColor(this.color.Copy()); } return ret; }, Undo: function (type, data) { switch (type) { case historyitem_AutoShapes_SetFType: this.color = g_oTableId.Get_ById(data.oldValue); break; } }, Redo: function (type, data) { switch (type) { case historyitem_AutoShapes_SetFType: this.color = g_oTableId.Get_ById(data.newValue); break; } }, Write_ToBinary2: function (Writer) { Writer.WriteLong(this.type); if (typeof this.color === "object" && this.color !== null) { this.color.Write_ToBinary2(Writer); } }, Read_FromBinary2: function (Reader) { this.setColor(new CUniColor()); this.color.Read_FromBinary2(Reader); }, IsIdentical: function (fill) { if (fill == null) { return false; } if (fill.type != FILL_TYPE_SOLID) { return false; } return this.color.IsIdentical(fill.color); }, createDuplicate: function () { var duplicate = new CSolidFill(); duplicate.color = this.color.createDuplicate(); return duplicate; }, compare: function (fill) { if (fill == null || fill.type !== FILL_TYPE_SOLID) { return null; } var _ret = new CSolidFill(); _ret.color = this.color.compare(fill.color); return _ret; } }; function CGs() { this.color = new CUniColor(); this.pos = 0; this.Id = g_oIdCounter.Get_NewId(); g_oTableId.Add(this, this.Id); } CGs.prototype = { Get_Id: function () { return this.Id; }, getObjectType: function () { return CLASS_TYPE_GS; }, setColor: function (unicolor) { var oldValue = isRealObject(this.color) ? this.color.Get_Id() : null; var newValue = isRealObject(unicolor) ? unicolor.Get_Id() : null; History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_SetFType, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, newValue))); this.color = unicolor; }, setPos: function (pos) { var oldValue = this.pos; var newValue = pos; History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_SetXfrm, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, newValue))); this.pos = pos; }, Undo: function (type, data) { switch (type) { case historyitem_AutoShapes_SetFType: this.color = g_oTableId.Get_ById(data.oldValue); break; case historyitem_AutoShapes_SetXfrm: this.pos = data.oldValue; break; } }, Redo: function (type, data) { switch (type) { case historyitem_AutoShapes_SetFType: this.color = g_oTableId.Get_ById(data.newValue); break; case historyitem_AutoShapes_SetXfrm: this.pos = data.newValue; break; } }, Write_ToBinary2: function (Writer) { this.color.Write_ToBinary2(Writer); Writer.WriteLong(this.pos); }, Read_FromBinary2: function (Reader) { this.color.Read_FromBinary2(Reader); this.pos = Reader.GetLong(); }, IsIdentical: function (fill) { return false; }, createDuplicate: function () { var duplicate = new CGs(); duplicate.pos = this.pos; duplicate.color = this.color.createDuplicate(); return duplicate; }, compare: function (gs) { var compare_unicolor = this.color.compare(gs.color); if (!isRealObject(compare_unicolor)) { return null; } var ret = new CGs(); ret.color = compare_unicolor; ret.pos = gs.pos === this.pos ? this.pos : 0; return ret; } }; function GradLin() { this.angle = 5400000; this.scale = true; this.Id = g_oIdCounter.Get_NewId(); g_oTableId.Add(this, this.Id); } GradLin.prototype = { Write_ToBinary2: function (Writer) { Writer.WriteLong(this.angle); Writer.WriteBool(this.scale); }, Read_FromBinary2: function (Reader) { this.angle = Reader.GetLong(); this.scale = Reader.GetBool(); }, Get_Id: function () { return this.Id; }, getObjectType: function () { return CLASS_TYPE_GRAD_LIN; }, setAngle: function (angle) { var oldValue = this.angle; var newValue = angle; History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_SetFType, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, newValue))); this.angle = angle; }, setScale: function (scale) { var oldValue = this.scale; var newValue = scale; History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_SetXfrm, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, newValue))); this.scale = scale; }, Undo: function (type, data) { switch (type) { case historyitem_AutoShapes_SetFType: this.angle = data.oldValue; break; case historyitem_AutoShapes_SetXfrm: this.scale = data.oldValue; break; } }, Redo: function (type, data) { switch (type) { case historyitem_AutoShapes_SetFType: this.angle = data.newValue; break; case historyitem_AutoShapes_SetXfrm: this.scale = data.newValue; break; } }, IsIdentical: function (lin) { if (this.angle != lin.angle) { return false; } if (this.scale != lin.scale) { return false; } return true; }, createDuplicate: function () { var duplicate = new GradLin(); duplicate.angle = this.angle; duplicate.scale = this.scale; return duplicate; }, compare: function (lin) { return null; } }; function GradPath() { this.path = 0; this.rect = null; } GradPath.prototype = { Write_ToBinary2: function (Writer) {}, Read_FromBinary2: function (Reader) {}, IsIdentical: function (path) { if (this.path != path.path) { return false; } return true; }, createDuplicate: function () { var duplicate = new GradPath(); duplicate.path = this.path; return duplicate; }, compare: function (path) { return null; } }; function CGradFill() { this.type = FILL_TYPE_GRAD; this.colors = new Array(); this.lin = null; this.path = null; this.Id = g_oIdCounter.Get_NewId(); g_oTableId.Add(this, this.Id); } CGradFill.prototype = { Write_ToBinary2: function (Writer) { Writer.WriteLong(this.type); var colors_count = this.colors.length; Writer.WriteLong(colors_count); for (var i = 0; i < colors_count; ++i) { this.colors[i].Write_ToBinary2(Writer); } Writer.WriteBool(isRealObject(this.lin)); if (isRealObject(this.lin)) { this.lin.Write_ToBinary2(Writer); } Writer.WriteBool(isRealObject(this.path)); if (isRealObject(this.path)) { this.path.Write_ToBinary2(Writer); } }, Read_FromBinary2: function (Reader) { var colors_count = Reader.GetLong(); for (var i = 0; i < colors_count; ++i) { this.colors[i] = new CGs(); this.colors[i].Read_FromBinary2(Reader); } if (Reader.GetBool()) { this.lin = new GradLin(); this.lin.Read_FromBinary2(Reader); } if (Reader.GetBool()) { this.path = new GradPath(); this.path.Read_FromBinary2(Reader); } }, Get_Id: function () { return this.Id; }, getObjectType: function () { return CLASS_TYPE_GRAD_FILL; }, addGS: function (gs) { var oldValue = isRealObject(gs) ? gs.Get_Id() : null; History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_SetFType, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, null))); this.colors.push(gs); }, setLin: function (lin) { var oldValue = isRealObject(this.lin) ? this.lin.Get_Id() : null; var newValue = isRealObject(lin) ? lin.Get_Id() : null; History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_SetXfrm, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, newValue))); this.lin = lin; }, setPath: function (path) { History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_SetGroup, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(isRealObject(this.path), isRealObject(path)))); this.path = path; }, Undo: function (type, data) { switch (type) { case historyitem_AutoShapes_SetFType: this.colors.length = this.colors.length - 1; break; case historyitem_AutoShapes_SetXfrm: this.lin = g_oTableId.Get_ById(data.oldValue); break; case historyitem_AutoShapes_SetGroup: if (data.oldValue) { this.path = new GradPath(); } else { this.path = null; } break; } }, Redo: function (type, data) { switch (type) { case historyitem_AutoShapes_SetFType: this.colors.push(g_oTableId.Get_ById(data.oldValue)); break; case historyitem_AutoShapes_SetXfrm: this.lin = g_oTableId.Get_ById(data.newValue); break; case historyitem_AutoShapes_SetGroup: if (data.newValue) { this.path = new GradPath(); } else { this.path = null; } break; } }, IsIdentical: function (fill) { if (fill == null) { return false; } if (fill.type != FILL_TYPE_GRAD) { return false; } if (fill.colors.length != this.colors.length) { return false; } for (var i = 0; i < this.colors.length; ++i) { if (!this.colors[i].IsIdentical(fill.colors[i])) { return false; } } return true; }, createDuplicate: function () { var duplicate = new CGradFill(); for (var i = 0; i < this.colors.length; ++i) { duplicate.colors[i] = this.colors[i].createDuplicate(); } if (this.lin) { duplicate.lin = this.lin.createDuplicate(); } if (this.path) { duplicate.path = this.path.createDuplicate(); } return duplicate; }, compare: function (fill) { if (fill == null || fill.type !== FILL_TYPE_GRAD) { return null; } var _ret = new CGradFill(); if (this.lin == null || fill.lin == null) { _ret.lin = null; } else { _ret.lin = new GradLin(); _ret.lin.angle = this.lin && this.lin.angle === fill.lin.angle ? fill.lin.angle : 5400000; _ret.lin.scale = this.lin && this.lin.scale === fill.lin.scale ? fill.lin.scale : true; } if (this.path == null || fill.path == null) { _ret.path = null; } else { _ret.path = new GradPath(); } if (this.colors.length === fill.colors.length) { for (var i = 0; i < this.colors.length; ++i) { var compare_unicolor = this.colors[i].compare(fill.colors[i]); if (!isRealObject(compare_unicolor)) { break; } _ret.colors[i] = compare_unicolor; } } return _ret; } }; function CPattFill() { this.type = FILL_TYPE_PATT; this.ftype = ""; this.fgClr = null; this.bgClr = null; this.Id = g_oIdCounter.Get_NewId(); g_oTableId.Add(this, this.Id); } CPattFill.prototype = { Get_Id: function () { return this.Id; }, getObjectType: function () { return CLASS_TYPE_PATTERN_FILL; }, Copy: function () { var ret = new CPattFill(); ret.setFType(this.ftype); if (isRealObject(this.fgClr)) { this.setFgColor(this.fgClr.Copy()); } if (isRealObject(this.bgClr)) { this.setFgColor(this.bgClr.Copy()); } return ret; }, setFType: function (fType) { var oldValue = this.ftype; var newValue = fType; History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_SetFType, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, newValue))); this.ftype = fType; }, setFgColor: function (unicolor) { var oldValue = isRealObject(this.fgClr) ? this.fgClr.Get_Id() : null; var newValue = isRealObject(unicolor) ? unicolor.Get_Id() : null; History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_SetFgColor, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, newValue))); this.fgClr = unicolor; }, setBgColor: function (unicolor) { var oldValue = isRealObject(this.bgClr) ? this.bgClr.Get_Id() : null; var newValue = isRealObject(unicolor) ? unicolor.Get_Id() : null; History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_SetBgColor, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, newValue))); this.bgClr = unicolor; }, Undo: function (type, data) { switch (type) { case historyitem_AutoShapes_SetFType: this.ftype = data.oldValue; break; case historyitem_AutoShapes_SetFgColor: this.fgClr = g_oTableId.Get_ById(data.oldValue); break; case historyitem_AutoShapes_SetBgColor: this.bgClr = g_oTableId.Get_ById(data.oldValue); break; } }, Redo: function (type, data) { switch (type) { case historyitem_AutoShapes_SetFType: this.ftype = data.newValue; break; case historyitem_AutoShapes_SetFgColor: this.fgClr = g_oTableId.Get_ById(data.newValue); break; case historyitem_AutoShapes_SetBgColor: this.bgClr = g_oTableId.Get_ById(data.newValue); break; } }, Write_ToBinary2: function (Writer) { Writer.WriteLong(this.type); Writer.WriteString2(this.ftype); this.fgClr.Write_ToBinary2(Writer); this.bgClr.Write_ToBinary2(Writer); }, Read_FromBinary2: function (Reader) { this.ftype = Reader.GetString2(); this.fgClr.Read_FromBinary2(Reader); this.bgClr.Read_FromBinary2(Reader); }, IsIdentical: function (fill) { if (fill == null) { return false; } if (fill.type != FILL_TYPE_PATT && this.ftype != fill.ftype) { return false; } return this.fgClr.IsIdentical(fill.fgClr) && this.bgClr.IsIdentical(fill.bgClr); }, createDuplicate: function () { var duplicate = new CPattFill(); duplicate.ftype = this.ftype; duplicate.fgClr = this.fgClr.createDuplicate(); duplicate.bgClr = this.bgClr.createDuplicate(); return duplicate; }, compare: function (fill) { if (fill == null) { return null; } if (fill.type !== FILL_TYPE_PATT) { return null; } var _ret = new CPattFill(); if (fill.ftype == this.ftype) { _ret.ftype = this.ftype; } _ret.fgClr = this.fgClr.compare(fill.fgClr); _ret.bgClr = this.bgClr.compare(fill.bgClr); return _ret; } }; function CNoFill() { this.type = FILL_TYPE_NOFILL; this.Id = g_oIdCounter.Get_NewId(); g_oTableId.Add(this, this.Id); } CNoFill.prototype = { Get_Id: function () { return this.Id; }, getObjectType: function () { return CLASS_TYPE_NO_FILL; }, Write_ToBinary2: function (Writer) { Writer.WriteLong(this.type); }, Read_FromBinary2: function (Reader) {}, createDuplicate: function () { return new CNoFill(); }, IsIdentical: function (fill) { if (fill == null) { return false; } return fill.type != FILL_TYPE_NOFILL; }, Copy: function () { return new CNoFill(); }, compare: function (nofill) { if (nofill == null) { return null; } if (nofill.type === this.type) { return new CNoFill(); } return null; } }; function CUniFill() { this.fill = undefined; this.transparent = null; this.isUnifill = true; this.Id = g_oIdCounter.Get_NewId(); g_oTableId.Add(this, this.Id); } CUniFill.prototype = { getObjectType: function () { return CLASS_TYPE_UNI_FILL; }, setFill: function (fill) { var oldValue = isRealObject(this.fill) ? this.fill.Get_Id() : null; var newValue = isRealObject(fill) ? fill.Get_Id() : null; History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_SetFill, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, newValue))); this.fill = fill; }, setTransparent: function (value) { var oldValue = this.transparent; var newValue = value; History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_SetTransparent, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, newValue))); this.transparent = value; }, Get_Id: function () { return this.Id; }, Write_ToBinary2: function (Writer) { var flag = isRealObject(this.fill); Writer.WriteBool(flag); if (flag) { this.fill.Write_ToBinary2(Writer); } flag = this.transparent != null; Writer.WriteBool(flag); if (flag) { Writer.WriteDouble(this.transparent); } }, Read_FromBinary2: function (reader) { var flag = reader.GetBool(); if (flag) { var fill_type = reader.GetLong(); switch (fill_type) { case FILL_TYPE_SOLID: this.setFill(new CSolidFill()); this.fill.Read_FromBinary2(reader); break; case FILL_TYPE_GRAD: this.setFill(new CGradFill()); this.fill.Read_FromBinary2(reader); break; case FILL_TYPE_BLIP: this.setFill(new CBlipFill()); this.fill.Read_FromBinary2(reader); break; case FILL_TYPE_NOFILL: this.setFill(new CNoFill()); this.fill.Read_FromBinary2(reader); break; case FILL_TYPE_PATT: this.setFill(new CPattFill()); this.fill.Read_FromBinary2(reader); break; } } flag = reader.GetBool(); if (flag) { this.setTransparent(reader.GetDouble()); } }, calculate: function (theme, clrMap, RGBA) { if (this.fill) { if (this.fill.color) { this.fill.color.Calculate(theme, clrMap, RGBA); } if (this.fill.colors) { for (var i = 0; i < this.fill.colors.length; ++i) { this.fill.colors[i].color.Calculate(theme, clrMap, RGBA); } } if (this.fill.fgClr) { this.fill.fgClr.Calculate(theme, clrMap, RGBA); } if (this.fill.bgClr) { this.fill.bgClr.Calculate(theme, clrMap, RGBA); } } }, getRGBAColor: function () { if (this.fill) { if (this.fill.type == FILL_TYPE_SOLID) { return this.fill.color.RGBA; } if (this.fill.type == FILL_TYPE_GRAD) { var RGBA = { R: 0, G: 0, B: 0, A: 255 }; var _colors = this.fill.colors; var _len = _colors.length; if (0 == _len) { return RGBA; } for (var i = 0; i < _len; i++) { RGBA.R += _colors[i].color.RGBA.R; RGBA.G += _colors[i].color.RGBA.G; RGBA.B += _colors[i].color.RGBA.B; } RGBA.R = (RGBA.R / _len) >> 0; RGBA.G = (RGBA.G / _len) >> 0; RGBA.B = (RGBA.B / _len) >> 0; return RGBA; } if (this.fill.type == FILL_TYPE_PATT) { return this.fill.fgClr.RGBA; } } return { R: 0, G: 0, B: 0, A: 255 }; }, createDuplicate: function () { var duplicate = new CUniFill(); if (this.fill != null) { duplicate.fill = this.fill.createDuplicate(); } duplicate.transparent = this.transparent; return duplicate; }, Copy: function () { var ret = new CUniFill(); if (isRealObject(this.fill) && typeof this.fill.Copy === "function") { ret.setFill(this.fill.Copy()); } ret.setTransparent(this.transparent); return ret; }, merge: function (unifill) { if (unifill) { if (unifill.fill != null) { this.fill = unifill.fill.createDuplicate(); } if (unifill.transparent != null) { this.transparent = unifill.transparent; } } }, IsIdentical: function (unifill) { if (unifill == null) { return false; } if (this.fill == null && unifill.fill == null) { return true; } if (this.fill != null) { return this.fill.IsIdentical(unifill.fill); } else { return false; } }, compare: function (unifill) { if (unifill == null) { return null; } var _ret = new CUniFill(); if (! (this.fill == null || unifill.fill == null)) { if (this.fill.compare) { _ret.fill = this.fill.compare(unifill.fill); } } return _ret.fill; }, Undo: function (type, data) { switch (type) { case historyitem_AutoShapes_SetFill: this.fill = g_oTableId.Get_ById(data.oldValue); break; case historyitem_AutoShapes_SetTransparent: this.transparent = data.oldValue; break; } }, Redo: function (type, data) { switch (type) { case historyitem_AutoShapes_SetFill: this.fill = g_oTableId.Get_ById(data.newValue); break; case historyitem_AutoShapes_SetTransparent: this.transparent = data.newValue; break; } } }; function CompareUniFill(unifill_1, unifill_2) { if (unifill_1 == null || unifill_2 == null) { return null; } var _ret = new CUniFill(); if (! (unifill_1.transparent === null || unifill_2.transparent === null || unifill_1.transparent !== unifill_2.transparent)) { _ret.transparent = unifill_1.transparent; } if (unifill_1.fill == null || unifill_2.fill == null || unifill_1.fill.type != unifill_2.fill.type) { return _ret; } _ret.fill = unifill_1.compare(unifill_2); return _ret; } function CompareShapeProperties(shapeProp1, shapeProp2) { var _result_shape_prop = new asc_CShapeProperty(); if (shapeProp1.type === shapeProp2.type) { _result_shape_prop.type = shapeProp1.type; } else { _result_shape_prop.type = null; } if (shapeProp1.stroke === null || shapeProp2.stroke === null) { _result_shape_prop.stroke = null; } else { _result_shape_prop.stroke = shapeProp1.stroke.compare(shapeProp2.stroke); } if (shapeProp1.canChangeArrows !== true || shapeProp2.canChangeArrows !== true) { _result_shape_prop.canChangeArrows = false; } else { _result_shape_prop.canChangeArrows = true; } _result_shape_prop.fill = CompareUniFill(shapeProp1.fill, shapeProp2.fill); _result_shape_prop.IsLocked = shapeProp1.IsLocked === true || shapeProp2.IsLocked === true; if (isRealObject(shapeProp1.paddings) && isRealObject(shapeProp2.paddings)) { _result_shape_prop.paddings = new asc_CPaddings(); _result_shape_prop.paddings.Left = isRealNumber(shapeProp1.paddings.Left) ? (shapeProp1.paddings.Left === shapeProp2.paddings.Left ? shapeProp1.paddings.Left : undefined) : undefined; _result_shape_prop.paddings.Top = isRealNumber(shapeProp1.paddings.Top) ? (shapeProp1.paddings.Top === shapeProp2.paddings.Top ? shapeProp1.paddings.Top : undefined) : undefined; _result_shape_prop.paddings.Right = isRealNumber(shapeProp1.paddings.Right) ? (shapeProp1.paddings.Right === shapeProp2.paddings.Right ? shapeProp1.paddings.Right : undefined) : undefined; _result_shape_prop.paddings.Bottom = isRealNumber(shapeProp1.paddings.Bottom) ? (shapeProp1.paddings.Bottom === shapeProp2.paddings.Bottom ? shapeProp1.paddings.Bottom : undefined) : undefined; } _result_shape_prop.canFill = shapeProp1.canFill === true || shapeProp2.canFill === true; return _result_shape_prop; } function CompareImageProperties(imgProps1, imgProps2) { var _result_image_properties = new asc_CImgProperty(); if (imgProps1.Width == null || imgProps2.Width == null) { _result_image_properties.Width = null; } else { _result_image_properties.Width = (imgProps1.Width === imgProps2.Width) ? imgProps1.Width : null; } if (imgProps1.Height == null || imgProps2.Height == null) { _result_image_properties.Height = null; } else { _result_image_properties.Height = (imgProps1.Height === imgProps2.Height) ? imgProps1.Height : null; } _result_image_properties.Paddings = ComparePaddings(imgProps1.Paddings, imgProps2.Paddings); _result_image_properties.Position = CompareImgPosition(imgProps1.Position, imgProps2.Position); if (! (typeof imgProps1.ImageUrl === "string") || !(typeof imgProps2.ImageUrl === "string") || imgProps1.ImageUrl !== imgProps2.ImageUrl) { _result_image_properties.ImageUrl = null; } else { _result_image_properties = imgProps1.ImageUrl; } return _result_image_properties; } var lg = 500, mid = 300, sm = 200; var ar_arrow = 0, ar_diamond = 1, ar_none = 2, ar_oval = 3, ar_stealth = 4, ar_triangle = 5; var LineEndType = { None: 0, Arrow: 1, Diamond: 2, Oval: 3, Stealth: 4, Triangle: 5 }; var LineEndSize = { Large: 0, Mid: 1, Small: 2 }; function EndArrow() { this.type = null; this.len = null; this.w = null; this.Write_ToBinary2 = function (Writer) { var flag = this.type != null; Writer.WriteBool(flag); if (flag) { Writer.WriteLong(this.type); } flag = this.len != null; Writer.WriteBool(flag); if (flag) { Writer.WriteLong(this.len); } flag = this.w != null; Writer.WriteBool(flag); if (flag) { Writer.WriteLong(this.w); } }; this.Read_FromBinary2 = function (Reader) { var flag = Reader.GetBool(); if (flag) { this.type = Reader.GetLong(); } flag = Reader.GetBool(); if (flag) { this.len = Reader.GetLong(); } flag = Reader.GetBool(); if (flag) { this.w = Reader.GetLong(); } }; this.compare = function (end_arrow) { if (end_arrow == null) { return null; } var _ret = new EndArrow(); if (this.type === end_arrow.type) { _ret.type = this.type; } if (this.len === end_arrow.len) { _ret.len = this.len; } if (this.w === end_arrow) { _ret.w = this.w; } return _ret; }; this.createDuplicate = function () { var duplicate = new EndArrow(); duplicate.type = this.type; duplicate.len = this.len; duplicate.w = this.w; return duplicate; }; this.IsIdentical = function (arrow) { return arrow && arrow.type == this.type && arrow.len == this.len && arrow.w == this.w; }; this.GetWidth = function (size) { if (null == this.w) { return size * 3; } switch (this.w) { case LineEndSize.Large: return 5 * size; case LineEndSize.Small: return 2 * size; default: break; } return 3 * size; }; this.GetLen = function (size) { if (null == this.len) { return size * 3; } switch (this.len) { case LineEndSize.Large: return 5 * size; case LineEndSize.Small: return 2 * size; default: break; } return 3 * size; }; } var LineJoinType = { Empty: 0, Round: 1, Bevel: 2, Miter: 3 }; function ConvertJoinAggType(_type) { switch (_type) { case LineJoinType.Round: return 2; case LineJoinType.Bevel: return 1; case LineJoinType.Miter: return 0; default: break; } return 2; } function LineJoin() { this.type = null; this.limit = null; this.Write_ToBinary2 = function (Writer) { var flag = this.type != null; Writer.WriteBool(flag); if (flag) { Writer.WriteLong(this.type); } flag = this.limit != null; Writer.WriteBool(flag); if (flag) { Writer.WriteLong(this.limit); } }; this.Read_FromBinary2 = function (Reader) { var flag = Reader.GetBool(); if (flag) { this.type = Reader.GetLong(); } flag = Reader.GetBool(); if (flag) { this.limit = Reader.GetLong(); } return this; }; this.createDuplicate = function () { var duplicate = new LineJoin(); duplicate.type = this.type; duplicate.limit = this.limit; return duplicate; }; } function CLn() { this.Fill = null; this.prstDash = null; this.Join = null; this.headEnd = null; this.tailEnd = null; this.algn = null; this.cap = null; this.cmpd = null; this.w = null; this.Id = g_oIdCounter.Get_NewId(); g_oTableId.Add(this, this.Id); } CLn.prototype = { setFill: function (unifill) { var oldValue = isRealObject(this.Fill) ? this.Fill.Get_Id() : null; var newValue = isRealObject(unifill) ? unifill.Get_Id() : null; History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_SetFill, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, newValue))); this.Fill = unifill; }, setW: function (w) { var oldValue = this.w; var newValue = w; History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_SetLineWidth, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(oldValue, newValue))); this.w = w; }, setTailEnd: function (end) { var old_value = null; if (this.tailEnd) { var w = new CMemory(); this.tailEnd.Write_ToBinary2(w); old_value = w.pos + ";" + w.GetBase64Memory(); } var new_value = null; if (end) { var w = new CMemory(); end.Write_ToBinary2(w); new_value = w.pos + ";" + w.GetBase64Memory(); } this.tailEnd = end; History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_SetTailEnd, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(old_value, new_value))); }, setHeadEnd: function (end) { var old_value = null; if (this.headEnd) { var w = new CMemory(); this.headEnd.Write_ToBinary2(w); old_value = w.pos + ";" + w.GetBase64Memory(); } var new_value = null; if (end) { var w = new CMemory(); end.Write_ToBinary2(w); new_value = w.pos + ";" + w.GetBase64Memory(); } this.headEnd = end; History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_SetTailEnd, null, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(old_value, new_value))); }, getObjectType: function () { return CLASS_TYPE_LINE; }, Get_Id: function () { return this.Id; }, Undo: function (type, data) { switch (type) { case historyitem_AutoShapes_SetFill: this.Fill = g_oTableId.Get_ById(data.oldValue); break; case historyitem_AutoShapes_SetLineWidth: this.w = data.oldValue; break; case historyitem_AutoShapes_SetTailEnd: if (typeof data.oldValue === "string") { this.tailEnd = new EndArrow(); var r = CreateBinaryReader(data.oldValue, 0, data.oldValue.length); this.tailEnd.Read_FromBinary2(r); } else { this.tailEnd = null; } break; case historyitem_AutoShapes_SetHeadEnd: if (typeof data.oldValue === "string") { this.headEnd = new EndArrow(); var r = CreateBinaryReader(data.oldValue, 0, data.oldValue.length); this.headEnd.Read_FromBinary2(r); } else { this.headEnd = null; } break; } }, Redo: function (type, data) { switch (type) { case historyitem_AutoShapes_SetFill: this.Fill = g_oTableId.Get_ById(data.newValue); break; case historyitem_AutoShapes_SetLineWidth: this.w = data.newValue; break; case historyitem_AutoShapes_SetTailEnd: if (typeof data.newValue === "string") { this.tailEnd = new EndArrow(); var r = CreateBinaryReader(data.newValue, 0, data.newValue.length); this.tailEnd.Read_FromBinary2(r); } else { this.tailEnd = null; } break; case historyitem_AutoShapes_SetHeadEnd: if (typeof data.newValue === "string") { this.headEnd = new EndArrow(); var r = CreateBinaryReader(data.newValue, 0, data.newValue.length); this.headEnd.Read_FromBinary2(r); } else { this.headEnd = null; } break; } }, Write_ToBinary2: function (Writer) { var flag = this.Fill != null; Writer.WriteBool(flag); if (flag) { this.Fill.Write_ToBinary2(Writer); } flag = this.Join != null; Writer.WriteBool(flag); if (flag) { this.Join.Write_ToBinary2(Writer); } flag = this.headEnd != null; Writer.WriteBool(flag); if (flag) { this.headEnd.Write_ToBinary2(Writer); } flag = this.tailEnd != null; Writer.WriteBool(flag); if (flag) { this.tailEnd.Write_ToBinary2(Writer); } flag = this.algn != null; Writer.WriteBool(flag); if (flag) { Writer.WriteLong(this.algn); } flag = this.cap != null; Writer.WriteBool(flag); if (flag) { Writer.WriteLong(this.cap); } flag = this.cmpd != null; Writer.WriteBool(flag); if (flag) { Writer.WriteLong(this.cmpd); } flag = this.w != null; Writer.WriteBool(flag); if (flag) { Writer.WriteLong(this.w); } }, Read_FromBinary2: function (Reader) { var flag = Reader.GetBool(); if (flag) { this.Fill = new CUniFill(); this.Fill.Read_FromBinary2(Reader); } flag = Reader.GetBool(); if (flag) { this.Join = new LineJoin(); this.Join.Read_FromBinary2(Reader); } flag = Reader.GetBool(); if (flag) { this.headEnd = new EndArrow(); this.headEnd.Read_FromBinary2(Reader); } flag = Reader.GetBool(); if (flag) { this.tailEnd = new EndArrow(); this.tailEnd.Read_FromBinary2(Reader); } flag = Reader.GetBool(); if (flag) { this.algn = Reader.GetLong(); } flag = Reader.GetBool(); if (flag) { this.cap = Reader.GetLong(); } flag = Reader.GetBool(); if (flag) { this.cmpd = Reader.GetLong(); } flag = Reader.GetBool(); if (flag) { this.w = Reader.GetLong(); } }, compare: function (line) { if (line == null) { return null; } var _ret = new CLn(); if (this.Fill != null) { _ret.Fill = CompareUniFill(this.Fill, line.Fill); } if (this.prstDash === line.prstDash) { _ret.prstDash = this.prstDash; } if (this.Join === line.Join) { _ret.Join = this.Join; } if (this.tailEnd != null) { _ret.tailEnd = this.tailEnd.compare(line.tailEnd); } if (this.headEnd != null) { _ret.headEnd = this.headEnd.compare(line.headEnd); } if (this.algn === line.algn) { _ret.algn = this.algn; } if (this.cap === line.cap) { _ret.cap = this.cap; } if (this.cmpd === line.cmpd) { _ret.cmpd = this.cmpd; } if (this.w === line.w) { _ret.w = this.w; } return _ret; }, merge: function (ln) { if (ln == null) { return; } if (ln.Fill != null && ln.Fill.fill != null) { this.Fill = ln.Fill.createDuplicate(); } if (ln.prstDash != null) { this.prstDash = ln.prstDash; } if (ln.Join != null) { this.Join = ln.Join.createDuplicate(); } if (ln.headEnd != null) { this.headEnd = ln.headEnd.createDuplicate(); } if (ln.tailEnd != null) { this.tailEnd = ln.tailEnd.createDuplicate(); } if (ln.algn != null) { this.algn = ln.algn; } if (ln.cap != null) { this.cap = ln.cap; } if (ln.cmpd != null) { this.cmpd = ln.cmpd; } if (ln.w != null) { this.w = ln.w; } }, calculate: function (theme) {}, createDuplicate: function () { var duplicate = new CLn(); if (null != this.Fill) { duplicate.Fill = this.Fill.createDuplicate(); } duplicate.prstDash = this.prstDash; duplicate.Join = this.Join; if (this.headEnd != null) { duplicate.headEnd = this.headEnd.createDuplicate(); } if (this.tailEnd != null) { duplicate.tailEnd = this.tailEnd.createDuplicate(); } duplicate.algn = this.algn; duplicate.cap = this.cap; duplicate.cmpd = this.cmpd; duplicate.w = this.w; return duplicate; }, IsIdentical: function (ln) { return ln && (this.Fill == null ? ln.Fill == null : this.Fill.IsIdentical(ln.Fill)) && this.Join == ln.Join && (this.headEnd == null ? ln.headEnd == null : this.headEnd.IsIdentical(ln.headEnd)) && (this.tailEnd == null ? ln.tailEnd == null : this.tailEnd.IsIdentical(ln.headEnd)) && this.algn == ln.algn && this.cap == ln.cap && this.cmpd == ln.cmpd && this.w == ln.w; } }; function DefaultShapeDefinition() { this.spPr = new CSpPr(); this.bodyPr = new CBodyPr(); this.lstStyle = new CTextStyle(); this.style = null; } function CNvPr() { this.id = 0; this.name = ""; this.createDuplicate = function () { var duplicate = new CNvPr(); duplicate.id = this.id; duplicate.name = this.name; return duplicate; }; } function NvPr() { this.isPhoto = false; this.userDrawn = false; this.ph = null; this.createDuplicate = function () { var duplicate = new NvPr(); duplicate.isPhoto = this.isPhoto; duplicate.userDrawn = this.userDrawn; if (this.ph != null) { duplicate.ph = this.ph.createDuplicate(); } return duplicate; }; } var phType_body = 0, phType_chart = 1, phType_clipArt = 2, phType_ctrTitle = 3, phType_dgm = 4, phType_dt = 5, phType_ftr = 6, phType_hdr = 7, phType_media = 8, phType_obj = 9, phType_pic = 10, phType_sldImg = 11, phType_sldNum = 12, phType_subTitle = 13, phType_tbl = 14, phType_title = 15; var szPh_full = 0, szPh_half = 1, szPh_quarter = 2; var orientPh_horz = 0, orientPh_vert = 1; function Ph() { this.hasCustomPrompt = false; this.idx = null; this.orient = null; this.sz = null; this.type = null; this.createDuplicate = function () { var duplicate = new Ph(); duplicate.hasCustomPrompt = this.hasCustomPrompt; duplicate.idx = this.idx; duplicate.orient = this.orient; duplicate.sz = this.sz; duplicate.type = this.type; return duplicate; }; } function UniNvPr() { this.cNvPr = new CNvPr(); this.UniPr = null; this.nvPr = new NvPr(); this.createDuplicate = function () { var duplicate = new UniNvPr(); duplicate.cNvPr = this.cNvPr.createDuplicate(); duplicate.UniPr = this.UniPr; duplicate.nvPr = this.nvPr.createDuplicate(); return duplicate; }; } function StyleRef() { this.idx = 0; this.Color = new CUniColor(); this.createDuplicate = function () { var duplicate = new StyleRef(); duplicate.idx = this.idx; duplicate.Color = this.Color.createDuplicate(); return duplicate; }; this.Write_ToBinary2 = function (Writer) { Writer.WriteLong(this.idx); this.Color.Write_ToBinary2(Writer); }; this.Read_FromBinary2 = function (Reader) { this.idx = Reader.GetLong(); this.Color.Read_FromBinary2(Reader); }; this.copyFromOther = function (s) { this.setIdx(s.idx); this.Color.copyFromOther(s.Color); }; this.setIdx = function (idx) { this.idx = idx; }; } var fntStyleInd_none = 2; var fntStyleInd_major = 0; var fntStyleInd_minor = 1; function FontRef() { this.idx = fntStyleInd_none; this.Color = null; this.createDuplicate = function () { var duplicate = new FontRef(); duplicate.idx = this.idx; if (this.Color) { duplicate.Color = this.Color.createDuplicate(); } return duplicate; }; this.Write_ToBinary2 = function (Writer) { Writer.WriteLong(this.idx); var flag = this.Color != null; Writer.WriteBool(flag); if (flag) { this.Color.Write_ToBinary2(Writer); } }; this.Read_FromBinary2 = function (Reader) { this.idx = Reader.GetLong(); if (Reader.GetBool()) { this.Color = new CUniColor(); this.Color.Read_FromBinary2(Reader); } }; this.copyFromOther = function (r) { this.setIdx(r.idx); if (isRealObject(r.Color)) { if (!isRealObject(this.Color)) { this.setColor(new CUniColor()); } this.Color.copyFromOther(r.Color); } }; this.setIdx = function (idx) { this.idx = idx; }; this.setColor = function (color) { this.Color = color; }; } function CShapeStyle() { this.lnRef = null; this.fillRef = null; this.effectRef = null; this.fontRef = null; this.Write_ToBinary2 = function (Writer) { var flag = this.lnRef != null; Writer.WriteBool(flag); if (flag) { this.lnRef.Write_ToBinary2(Writer); } flag = this.fillRef != null; Writer.WriteBool(flag); if (flag) { this.fillRef.Write_ToBinary2(Writer); } flag = this.effectRef != null; Writer.WriteBool(flag); if (flag) { this.effectRef.Write_ToBinary2(Writer); } flag = this.fontRef != null; Writer.WriteBool(flag); if (flag) { this.fontRef.Write_ToBinary2(Writer); } }; this.Read_FromBinary2 = function (Reader) { var flag = Reader.GetBool(); if (flag) { this.lnRef = new StyleRef(); this.lnRef.Read_FromBinary2(Reader); } flag = Reader.GetBool(); if (flag) { this.fillRef = new StyleRef(); this.fillRef.Read_FromBinary2(Reader); } flag = Reader.GetBool(); if (flag) { this.effectRef = new StyleRef(); this.effectRef.Read_FromBinary2(Reader); } flag = Reader.GetBool(); if (flag) { this.fontRef = new FontRef(); this.fontRef.Read_FromBinary2(Reader); } }; this.merge = function (style) { if (style != null) { if (style.lnRef != null) { this.lnRef = style.lnRef.createDuplicate(); } if (style.fillRef != null) { this.fillRef = style.fillRef.createDuplicate(); } if (style.effectRef != null) { this.effectRef = style.effectRef.createDuplicate(); } if (style.fontRef != null) { this.fontRef = style.fontRef.createDuplicate(); } } }; this.createDuplicate = function () { var duplicate = new CShapeStyle(); if (this.lnRef != null) { duplicate.lnRef = this.lnRef.createDuplicate(); } if (this.fillRef != null) { duplicate.fillRef = this.fillRef.createDuplicate(); } if (this.effectRef != null) { duplicate.effectRef = this.effectRef.createDuplicate(); } if (this.fontRef != null) { duplicate.fontRef = this.fontRef.createDuplicate(); } return duplicate; }; this.copyFromOther = function (s) { if (isRealObject(s.lnRef)) { if (!isRealObject(this.lnRef)) { this.setLnRef(new StyleRef()); } this.lnRef.copyFromOther(s.lnRef); } if (isRealObject(s.fillRef)) { if (!isRealObject(this.fillRef)) { this.setFillRef(new StyleRef()); } this.fillRef.copyFromOther(s.fillRef); } if (isRealObject(s.effectRef)) { if (!isRealObject(this.effectRef)) { this.setEffectRef(new StyleRef()); } this.effectRef.copyFromOther(s.effectRef); } if (isRealObject(s.fontRef)) { if (!isRealObject(this.fontRef)) { this.setFontRef(new FontRef()); } this.fontRef.copyFromOther(s.fontRef); } }; this.setLnRef = function (lnRef) { this.lnRef = lnRef; }; this.setFillRef = function (fillRef) { this.fillRef = fillRef; }; this.setEffectRef = function (effectRef) { this.effectRef = effectRef; }; this.setFontRef = function (fontRef) { this.fontRef = fontRef; }; } function CreateDefaultShapeStyle() { var style = new CShapeStyle(); style.lnRef = new StyleRef(); style.lnRef.idx = 2; style.lnRef.Color.color = new CSchemeColor(); style.lnRef.Color.color.id = g_clr_accent1; style.lnRef.Color.Mods.Mods.push({ name: "shade", val: 50000 }); style.fillRef = new StyleRef(); style.fillRef.idx = 1; style.fillRef.Color.color = new CSchemeColor(); style.fillRef.Color.color.id = g_clr_accent1; style.effectRef = new StyleRef(); style.effectRef.idx = 0; style.effectRef.Color.color = new CSchemeColor(); style.effectRef.Color.color.id = g_clr_accent1; style.fontRef = new FontRef(); style.fontRef.idx = fntStyleInd_minor; style.fontRef.Color = new CUniColor(); style.fontRef.Color.color = new CSchemeColor(); style.fontRef.Color.color.id = tx1; return style; } function CreateDefaultTextRectStyle() { var style = new CShapeStyle(); style.lnRef = new StyleRef(); style.lnRef.idx = 0; style.lnRef.Color.color = new CSchemeColor(); style.lnRef.Color.color.id = g_clr_accent1; style.lnRef.Color.Mods.Mods.push({ name: "shade", val: 50000 }); style.fillRef = new StyleRef(); style.fillRef.idx = 0; style.fillRef.Color.color = new CSchemeColor(); style.fillRef.Color.color.id = g_clr_accent1; style.effectRef = new StyleRef(); style.effectRef.idx = 0; style.effectRef.Color.color = new CSchemeColor(); style.effectRef.Color.color.id = g_clr_accent1; style.fontRef = new FontRef(); style.fontRef.idx = fntStyleInd_minor; style.fontRef.Color = new CUniColor(); style.fontRef.Color.color = new CSchemeColor(); style.fontRef.Color.color.id = 8; return style; } function CXfrm() { this.offX = null; this.offY = null; this.extX = null; this.extY = null; this.chOffX = null; this.chOffY = null; this.chExtX = null; this.chExtY = null; this.flipH = null; this.flipV = null; this.rot = null; this.isNotNull = function () { return isRealNumber(this.offX) && isRealNumber(this.offY) && isRealNumber(this.extX) && isRealNumber(this.extY); }; this.isNotNullForGroup = function () { return isRealNumber(this.offX) && isRealNumber(this.offY) && isRealNumber(this.chOffX) && isRealNumber(this.chOffY) && isRealNumber(this.extX) && isRealNumber(this.extY) && isRealNumber(this.chExtX) && isRealNumber(this.chExtY); }; this.Write_ToBinary2 = function (Writer) { var flag; flag = this.offX != null; Writer.WriteBool(flag); if (flag === true) { Writer.WriteDouble(this.offX); } flag = this.offY != null; Writer.WriteBool(flag); if (flag === true) { Writer.WriteDouble(this.offY); } flag = this.extX != null; Writer.WriteBool(flag); if (flag === true) { Writer.WriteDouble(this.extX); } flag = this.extY != null; Writer.WriteBool(flag); if (flag === true) { Writer.WriteDouble(this.extY); } flag = this.chOffX != null; Writer.WriteBool(flag); if (flag === true) { Writer.WriteDouble(this.chOffX); } flag = this.chOffY != null; Writer.WriteBool(flag); if (flag === true) { Writer.WriteDouble(this.chOffY); } flag = this.chExtX != null; Writer.WriteBool(flag); if (flag === true) { Writer.WriteDouble(this.chExtX); } flag = this.chExtY !== null; Writer.WriteBool(flag); if (flag === true) { Writer.WriteDouble(this.chExtY); } flag = this.flipH !== null; Writer.WriteBool(flag); if (flag) { Writer.WriteBool(this.flipH); } flag = this.flipV !== null; Writer.WriteBool(flag); if (flag) { Writer.WriteBool(this.flipV); } flag = this.rot !== null; Writer.WriteBool(flag); if (flag) { Writer.WriteDouble(this.rot); } }; this.Read_FromBinary2 = function (Reader) { var flag = Reader.GetBool(); if (flag) { this.offX = Reader.GetDouble(); } flag = Reader.GetBool(); if (flag) { this.offY = Reader.GetDouble(); } flag = Reader.GetBool(); if (flag) { this.extX = Reader.GetDouble(); } flag = Reader.GetBool(); if (flag) { this.extY = Reader.GetDouble(); } flag = Reader.GetBool(); if (flag) { this.chOffX = Reader.GetDouble(); } flag = Reader.GetBool(); if (flag) { this.chOffY = Reader.GetDouble(); } flag = Reader.GetBool(); if (flag) { this.chExtX = Reader.GetDouble(); } flag = Reader.GetBool(); if (flag) { this.chExtY = Reader.GetDouble(); } flag = Reader.GetBool(); if (flag) { this.flipH = Reader.GetBool(); } flag = Reader.GetBool(); if (flag) { this.flipV = Reader.GetBool(); } flag = Reader.GetBool(); if (flag) { this.rot = Reader.GetDouble(); } }; this.isEqual = function (xfrm) { return xfrm && this.offX == xfrm.offX && this.offY == xfrm.offY && this.extX == xfrm.extX && this.extY == xfrm.extY && this.chOffX == xfrm.chOffX && this.chOffY == xfrm.chOffY && this.chExtX == xfrm.chExtX && this.chExtY == xfrm.chExtY; }; this.merge = function (xfrm) { if (xfrm.offX != null) { this.offX = xfrm.offX; } if (xfrm.offY != null) { this.offY = xfrm.offY; } if (xfrm.extX != null) { this.extX = xfrm.extX; } if (xfrm.extY != null) { this.extY = xfrm.extY; } if (xfrm.chOffX != null) { this.chOffX = xfrm.chOffX; } if (xfrm.chOffY != null) { this.chOffY = xfrm.chOffY; } if (xfrm.chExtX != null) { this.chExtX = xfrm.chExtX; } if (xfrm.chExtY != null) { this.chExtY = xfrm.chExtY; } if (xfrm.flipH != null) { this.flipH = xfrm.flipH; } if (xfrm.flipV != null) { this.flipV = xfrm.flipV; } if (xfrm.rot != null) { this.rot = xfrm.rot; } }; this.createDuplicate = function () { var duplicate = new CXfrm(); duplicate.offX = this.offX; duplicate.offY = this.offY; duplicate.extX = this.extX; duplicate.extY = this.extY; duplicate.chOffX = this.chOffX; duplicate.chOffY = this.chOffY; duplicate.chExtX = this.chExtX; duplicate.chExtY = this.chExtY; duplicate.flipH = this.flipH; duplicate.flipV = this.flipV; duplicate.rot = this.rot; return duplicate; }; this.setPosition = function (posX, posY, model_id) { History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_Offset, model_id, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOPairProps(this.offX, this.offY, posX, posY))); this.offX = posX; this.offY = posY; }; this.setExtents = function (extX, extY, model_id) { History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_Extents, model_id, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOPairProps(this.extX, this.extY, extX, extY))); this.extX = extX; this.extY = extY; }; this.setChildOffsets = function (chOffX, chOffY, model_id) { History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_Child_Offset, model_id, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOPairProps(this.chOffX, this.chOffY, chOffX, chOffY))); this.chOffX = chOffX; this.chOffY = chOffY; }; this.setChildExtents = function (chExtX, chExtY, model_id) { History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_Child_Extents, model_id, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOPairProps(this.chExtX, this.chExtY, chExtX, chExtY))); this.chExtX = chExtX; this.chExtY = chExtY; }; this.setFlips = function (flipH, flipV, model_id) { History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_Flips, model_id, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOPairProps(this.flipH, this.flipV, flipH, flipV))); this.flipH = flipH; this.flipV = flipV; }; this.setRotate = function (rot, model_id) { History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_Rotate, model_id, null, new UndoRedoDataGraphicObjects(this.Get_Id(), new UndoRedoDataGOSingleProp(this.rot, rot))); this.rot = rot; }; this.copyFromOther = function (xfrm) { this.setPosition(xfrm.offX, xfrm.offY); this.setExtents(xfrm.extX, xfrm.extY); this.setChildOffsets(xfrm.chOffX, xfrm.chOffY); this.setChildExtents(xfrm.chExtX, xfrm.chExtY); this.setFlips(xfrm.flipH, xfrm.flipV); this.setRotate(xfrm.rot); }; this.Get_Id = function () { return this.Id; }; this.Undo = function (type, data) { switch (type) { case historyitem_AutoShapes_Offset: this.offX = data.oldValue1; this.offY = data.oldValue2; break; case historyitem_AutoShapes_Extents: this.extX = data.oldValue1; this.extY = data.oldValue2; break; case historyitem_AutoShapes_Child_Offset: this.chOffX = data.oldValue1; this.chOffY = data.oldValue2; break; case historyitem_AutoShapes_Child_Extents: this.chExtX = data.oldValue1; this.chExtY = data.oldValue2; break; case historyitem_AutoShapes_Flips: this.flipH = data.oldValue1; this.flipV = data.oldValue2; break; case historyitem_AutoShapes_Rotate: this.rot = data.oldValue; break; } }; this.Redo = function (type, data) { switch (type) { case historyitem_AutoShapes_Offset: this.offX = data.newValue1; this.offY = data.newValue2; break; case historyitem_AutoShapes_Extents: this.extX = data.newValue1; this.extY = data.newValue2; break; case historyitem_AutoShapes_Child_Offset: this.chOffX = data.newValue1; this.chOffY = data.newValue2; break; case historyitem_AutoShapes_Child_Extents: this.chExtX = data.newValue1; this.chExtY = data.newValue2; break; case historyitem_AutoShapes_Flips: this.flipH = data.newValue1; this.flipV = data.newValue2; break; case historyitem_AutoShapes_Rotate: this.rot = data.newValue; break; } }; this.getObjectType = function () { return CLASS_TYPE_XFRM; }; this.Id = g_oIdCounter.Get_NewId(); g_oTableId.Add(this, this.Id); } function CSpPr() { this.bwMode = 0; this.xfrm = null; this.geometry = null; this.Fill = null; this.ln = null; this.merge = function (spPr) { if (spPr.geometry != null) { this.geometry = spPr.geometry.createDuplicate(); } if (spPr.Fill != null && spPr.Fill.fill != null) {} }; this.createDuplicate = function () { var duplicate = new CSpPr(); duplicate.bwMode = this.bwMode; duplicate.xfrm = this.xfrm.createDuplicate(); if (this.geometry != null) { duplicate.geometry = this.geometry.createDuplicate(); } if (this.Fill != null) { duplicate.Fill = this.Fill.createDuplicate(); } if (this.ln != null) { duplicate.ln = this.ln.createDuplicate(); } return duplicate; }; this.Write_ToBinary2 = function (Writer) { var boolBWMode = this.bwMode == 1; Writer.WriteBool(boolBWMode); Writer.WriteBool(isRealObject(this.xfrm)); if (isRealObject(this.xfrm)) { this.xfrm.Write_ToBinary2(Writer); } var flag = this.geometry != null; Writer.WriteBool(flag); if (flag) { this.geometry.Write_ToBinary2(Writer); } flag = this.Fill != null; Writer.WriteBool(flag); if (flag) { this.Fill.Write_ToBinary2(Writer); } flag = this.ln != null; Writer.WriteBool(flag); if (flag) { this.ln.Write_ToBinary2(Writer); } }; this.Read_FromBinary2 = function (Reader) { var boolBWMode = Reader.GetBool(); this.bwMode = boolBWMode ? 1 : 0; if (Reader.GetBool()) { if (!this.xfrm) { this.xfrm = new CXfrm(); } this.xfrm.Read_FromBinary2(Reader); } var flag = Reader.GetBool(); if (flag) { this.geometry = new CGeometry(); this.geometry.Read_FromBinary2(Reader); } flag = Reader.GetBool(); if (flag) { this.Fill = new CUniFill(); this.Fill.Read_FromBinary2(Reader); } flag = Reader.GetBool(); if (flag) { this.ln = new CLn(); this.ln.Read_FromBinary2(Reader); } }; this.readFromBinaryForCopyPaste = function (r) {}; this.copyFromOther = function (spPr) { this.setBwMode(spPr.bwMode); this.xfrm.copyFromOther(spPr.xfrm); if (isRealObject(spPr.geometry)) { if (!isRealObject(this.geometry)) { this.setGeometry(new Geometry()); } this.geometry.copyFromOther(spPr.geometry); } if (isRealObject(spPr.Fill)) { if (!isRealObject(this.Fill)) { this.setFill(new CUniFill()); } this.Fill.copyFromOther(spPr.Fill); } if (isRealObject(spPr.ln)) { if (!isRealObject(this.ln)) { this.setFill(new CLn()); } this.ln.copyFromOther(spPr.ln); } }; this.setBwMode = function (bwMode) { this.bwMode = bwMode; }; this.setGeometry = function (geometry) { this.geometry = geometry; }; this.setFill = function (fill) { this.Fill = fill; }; } function CGrSpPr() { this.bwMode = 0; this.xfrm = null; this.Fill = null; this.ln = null; this.createDuplicate = function () { var duplicate = new CSpPr(); duplicate.bwMode = this.bwMode; duplicate.xfrm = this.xfrm.createDuplicate(); if (this.Fill != null) { duplicate.Fill = this.Fill.createDuplicate(); } if (this.ln != null) { duplicate.ln = this.ln.createDuplicate(); } return duplicate; }; } var g_clr_MIN = 0; var g_clr_accent1 = 0; var g_clr_accent2 = 1; var g_clr_accent3 = 2; var g_clr_accent4 = 3; var g_clr_accent5 = 4; var g_clr_accent6 = 5; var g_clr_dk1 = 6; var g_clr_dk2 = 7; var g_clr_folHlink = 8; var g_clr_hlink = 9; var g_clr_lt1 = 10; var g_clr_lt2 = 11; var g_clr_MAX = 11; var g_clr_bg1 = g_clr_lt1; var g_clr_bg2 = g_clr_lt2; var g_clr_tx1 = g_clr_dk1; var g_clr_tx2 = g_clr_dk2; var phClr = 14; var tx1 = 15; var tx2 = 16; function ClrScheme() { this.name = ""; this.colors = new Array(); for (var i = g_clr_MIN; i <= g_clr_MAX; i++) { this.colors[i] = null; } this.isIdentical = function (clrScheme) { if (clrScheme == null) { return false; } if (! (clrScheme instanceof ClrScheme)) { return false; } if (clrScheme.name != this.name) { return false; } for (var _clr_index = g_clr_MIN; _clr_index <= g_clr_MAX; ++_clr_index) { if (this.colors[i] != clrScheme.colors[i]) { return false; } } return true; }; this.createDuplicate = function () { var _duplicate = new ClrScheme(); for (var _clr_index = 0; _clr_index <= this.colors.length; ++_clr_index) { _duplicate.colors[_clr_index] = this.colors[_clr_index]; } return _duplicate; }; this.Write_ToBinary2 = function (w) { w.WriteLong(this.colors.length); for (var i = 0; i < this.colors.length; ++i) { var bool = isRealObject(this.colors[i]) && typeof this.colors[i].Write_ToBinary2 === "function"; w.WriteBool(bool); if (bool) { this.colors[i].Write_ToBinary2(w); } } }; this.Read_FromBinary2 = function (r) { var count = r.GetLong(); for (var i = 0; i < count; ++i) { if (r.GetBool()) { this.colors[i] = new CUniColor(); this.colors[i].Read_FromBinary2(r); } } }; } function ClrMap() { this.color_map = new Array(); for (var i = g_clr_MIN; i <= g_clr_MAX; i++) { this.color_map[i] = null; } this.createDuplicate = function () { var _copy = new ClrMap(); for (var _color_index = g_clr_MIN; _color_index <= this.color_map.length; ++_color_index) { _copy.color_map[_color_index] = this.color_map[_color_index]; } return _copy; }; } function ExtraClrScheme() { this.clrScheme = new ClrScheme(); this.clrMap = null; } function FontCollection() { this.latin = null; this.ea = null; this.cs = null; } function FontScheme() { this.name = ""; this.majorFont = new FontCollection(); this.minorFont = new FontCollection(); } function FmtScheme() { this.name = ""; this.fillStyleLst = new Array(); this.lnStyleLst = new Array(); this.effectStyleLst = null; this.bgFillStyleLst = new Array(); this.GetFillStyle = function (number) { if (number >= 1 && number <= 999) { var ret = this.fillStyleLst[number - 1]; if (undefined === ret) { return null; } return ret.createDuplicate(); } else { if (number >= 1001) { var ret = this.bgFillStyleLst[number - 1001]; if (undefined === ret) { return null; } return ret.createDuplicate(); } } return null; }; } function ThemeElements() { this.clrScheme = new ClrScheme(); this.fontScheme = new FontScheme(); this.fmtScheme = new FmtScheme(); } function CTheme() { this.name = ""; this.themeElements = new ThemeElements(); this.spDef = null; this.lnDef = null; this.txDef = null; this.extraClrSchemeLst = new Array(); this.presentation = null; this.clrMap = null; this.getFillStyle = function (idx) { if (this.themeElements.fmtScheme.fillStyleLst[idx - 1]) { return this.themeElements.fmtScheme.fillStyleLst[idx - 1].createDuplicate(); } return new CUniFill(); }; this.getLnStyle = function (idx) { if (this.themeElements.fmtScheme.lnStyleLst[idx - 1]) { return this.themeElements.fmtScheme.lnStyleLst[idx - 1].createDuplicate(); } return new CLn(); }; this.changeColorScheme = function (clrScheme) { this.themeElements.clrScheme = clrScheme; }; this.setFontScheme = function (fontScheme) { this.themeElements.fontScheme = fontScheme; }; this.setFormatScheme = function (fmtScheme) { this.themeElements.fmtScheme = fmtScheme; }; } function HF() { this.dt = true; this.ftr = true; this.hdr = true; this.sldNum = true; } function CBgPr() { this.Fill = null; this.shadeToTitle = false; this.merge = function (bgPr) { if (this.Fill == null) { this.Fill = new CUniFill(); if (bgPr.Fill != null) { this.Fill.merge(bgPr.Fill); } } }; this.createFullCopy = function () { var _copy = new CBgPr(); if (this.Fill != null) { _copy.Fill = this.Fill.createDuplicate(); } _copy.shadeToTitle = this.shadeToTitle; return _copy; }; } function CBg() { this.bwMode = null; this.bgPr = null; this.bgRef = null; this.merge = function (bg) { if (this.bgPr == null) { this.bgPr = new CBgPr(); if (bg.bgPr != null) { this.bgPr.merge(bg.bgPr); } } }; this.createFullCopy = function () { var _copy = new CBg(); _copy.bwMode = this.bwMode; if (this.bgPr != null) { _copy.bgPr = this.bgPr.createFullCopy(); } if (this.bgRef != null) { _copy.bgRef = this.bgRef.createDuplicate(); } return _copy; }; } function CSld() { this.name = ""; this.Bg = null; this.spTree = []; this.merge = function (cSld) {}; this.createFullCopy = function (parent, elementsManipulator) { var _copy = new CSld(); _copy.name = this.name; if (this.Bg != null) { _copy.Bg = this.Bg.createFullCopy(); } var _glyph_index; for (_glyph_index = 0; _glyph_index < this.spTree.length; ++_glyph_index) { _copy.spTree[_glyph_index] = this.spTree[_glyph_index].createFullCopy(parent, elementsManipulator); _copy.spTree[_glyph_index].Recalculate(); _copy.spTree[_glyph_index].updateCursorTypes(); } return _copy; }; } function CTextStyle() { this.defPPr = null; this.lvl1pPr = null; this.lvl2pPr = null; this.lvl3pPr = null; this.lvl4pPr = null; this.lvl5pPr = null; this.lvl6pPr = null; this.lvl7pPr = null; this.lvl8pPr = null; this.lvl9pPr = null; } function CTextStyles() { this.titleStyle = null; this.bodyStyle = null; this.otherStyle = null; } function MasterSlide(presentation, theme) { this.cSld = new CSld(); this.clrMap = new ClrMap(); this.hf = new HF(); this.sldLayoutLst = []; this.txStyles = new CTextStyles(); this.preserve = false; this.ImageBase64 = ""; this.ThemeIndex = 0; this.Theme = null; this.TableStyles = null; this.Vml = null; this.DrawingDocument = presentation.DrawingDocument; this.draw = function (graphics) { for (var i = 0; i < this.cSld.spTree.length; ++i) { if (!this.cSld.spTree[i].isPlaceholder()) { this.cSld.spTree[i].Draw(graphics); } } }; this.calculateColors = function () { var _shapes = this.cSld.spTree; var _shapes_count = _shapes.length; var _shape_index; for (_shape_index = 0; _shape_index < _shapes_count; ++_shape_index) { if (_shapes[_shape_index].calculateColors) { _shapes[_shape_index].calculateColors(); } } }; this.getMatchingLayout = function (type, matchingName, cSldName, themeFlag) { var layoutType = type; var _layoutName = null, _layout_index, _layout; if (type === nSldLtTTitle && !(themeFlag === true)) { layoutType = nSldLtTObj; } if (layoutType != null) { for (var i = 0; i < this.sldLayoutLst.length; ++i) { if (this.sldLayoutLst[i].type == layoutType) { return this.sldLayoutLst[i]; } } } if (type === nSldLtTTitle && !(themeFlag === true)) { layoutType = nSldLtTTx; for (i = 0; i < this.sldLayoutLst.length; ++i) { if (this.sldLayoutLst[i].type == layoutType) { return this.sldLayoutLst[i]; } } } if (matchingName != "" && matchingName != null) { _layoutName = matchingName; } else { if (cSldName != "" && cSldName != null) { _layoutName = cSldName; } } if (_layoutName != null) { var _layout_name; for (_layout_index = 0; _layout_index < this.sldLayoutLst.length; ++_layout_index) { _layout = this.sldLayoutLst[_layout_index]; _layout_name = null; if (_layout.matchingName != null && _layout.matchingName != "") { _layout_name = _layout.matchingName; } else { if (_layout.cSld.name != null && _layout.cSld.name != "") { _layout_name = _layout.cSld.name; } } if (_layout_name == _layoutName) { return _layout; } } } for (_layout_index = 0; _layout_index < this.sldLayoutLst.length; ++_layout_index) { _layout = this.sldLayoutLst[_layout_index]; _layout_name = null; if (_layout.type != nSldLtTTitle) { return _layout; } } return this.sldLayoutLst[0]; }; this.Calculate = function () { var titleStyles = this.txStyles.titleStyle; }; this.presentation = presentation; this.theme = theme; this.kind = MASTER_KIND; this.getMatchingShape = function (type, idx) { var _input_reduced_type; if (type == null) { _input_reduced_type = phType_body; } else { if (type == phType_ctrTitle) { _input_reduced_type = phType_title; } else { _input_reduced_type = type; } } var _input_reduced_index; if (idx == null) { _input_reduced_index = 0; } else { _input_reduced_index = idx; } var _sp_tree = this.cSld.spTree; var _shape_index; var _index, _type; var _final_index, _final_type; var _glyph; for (_shape_index = 0; _shape_index < _sp_tree.length; ++_shape_index) { _glyph = _sp_tree[_shape_index]; if (_glyph.isPlaceholder()) { if (_glyph instanceof CShape) { _index = _glyph.nvSpPr.nvPr.ph.idx; _type = _glyph.nvSpPr.nvPr.ph.type; } if (_glyph instanceof CImage2) { _index = _glyph.nvPicPr.nvPr.ph.idx; _type = _glyph.nvPicPr.nvPr.ph.type; } if (_glyph instanceof GroupShape) { _index = _glyph.nvGrpSpPr.nvPr.ph.idx; _type = _glyph.nvGrpSpPr.nvPr.ph.type; } if (_type == null) { _final_type = phType_body; } else { if (_type == phType_ctrTitle) { _final_type = phType_title; } else { _final_type = _type; } } if (_index == null) { _final_index = 0; } else { _final_index = _index; } if (_input_reduced_type == _final_type && _input_reduced_index == _final_index) { return _glyph; } } } if (_input_reduced_type == phType_sldNum || _input_reduced_type == phType_dt || _input_reduced_type == phType_ftr || _input_reduced_type == phType_hdr) { for (_shape_index = 0; _shape_index < _sp_tree.length; ++_shape_index) { _glyph = _sp_tree[_shape_index]; if (_glyph.isPlaceholder()) { if (_glyph instanceof CShape) { _type = _glyph.nvSpPr.nvPr.ph.type; } if (_glyph instanceof CImage2) { _type = _glyph.nvPicPr.nvPr.ph.type; } if (_glyph instanceof GroupShape) { _type = _glyph.nvGrpSpPr.nvPr.ph.type; } if (_input_reduced_type == _type) { return _glyph; } } } } return null; }; } var nSldLtTBlank = 0; var nSldLtTChart = 1; var nSldLtTChartAndTx = 2; var nSldLtTClipArtAndTx = 3; var nSldLtTClipArtAndVertTx = 4; var nSldLtTCust = 5; var nSldLtTDgm = 6; var nSldLtTFourObj = 7; var nSldLtTMediaAndTx = 8; var nSldLtTObj = 9; var nSldLtTObjAndTwoObj = 10; var nSldLtTObjAndTx = 11; var nSldLtTObjOnly = 12; var nSldLtTObjOverTx = 13; var nSldLtTObjTx = 14; var nSldLtTPicTx = 15; var nSldLtTSecHead = 16; var nSldLtTTbl = 17; var nSldLtTTitle = 18; var nSldLtTTitleOnly = 19; var nSldLtTTwoColTx = 20; var nSldLtTTwoObj = 21; var nSldLtTTwoObjAndObj = 22; var nSldLtTTwoObjAndTx = 23; var nSldLtTTwoObjOverTx = 24; var nSldLtTTwoTxTwoObj = 25; var nSldLtTTx = 26; var nSldLtTTxAndChart = 27; var nSldLtTTxAndClipArt = 28; var nSldLtTTxAndMedia = 29; var nSldLtTTxAndObj = 30; var nSldLtTTxAndTwoObj = 31; var nSldLtTTxOverObj = 32; var nSldLtTVertTitleAndTx = 33; var nSldLtTVertTitleAndTxOverChart = 34; var nSldLtTVertTx = 35; var _weight_body = 9; var _weight_chart = 5; var _weight_clipArt = 2; var _weight_ctrTitle = 11; var _weight_dgm = 4; var _weight_media = 3; var _weight_obj = 8; var _weight_pic = 7; var _weight_subTitle = 10; var _weight_tbl = 6; var _weight_title = 11; var _ph_multiplier = 4; var _ph_summ_blank = 0; var _ph_summ_chart = Math.pow(_ph_multiplier, _weight_title) + Math.pow(_ph_multiplier, _weight_chart); var _ph_summ_chart_and_tx = Math.pow(_ph_multiplier, _weight_title) + Math.pow(_ph_multiplier, _weight_chart) + Math.pow(_ph_multiplier, _weight_body); var _ph_summ_dgm = Math.pow(_ph_multiplier, _weight_title) + Math.pow(_ph_multiplier, _weight_dgm); var _ph_summ_four_obj = Math.pow(_ph_multiplier, _weight_title) + 4 * Math.pow(_ph_multiplier, _weight_obj); var _ph_summ__media_and_tx = Math.pow(_ph_multiplier, _weight_title) + Math.pow(_ph_multiplier, _weight_media) + Math.pow(_ph_multiplier, _weight_body); var _ph_summ__obj = Math.pow(_ph_multiplier, _weight_title) + Math.pow(_ph_multiplier, _weight_obj); var _ph_summ__obj_and_two_obj = Math.pow(_ph_multiplier, _weight_title) + 3 * Math.pow(_ph_multiplier, _weight_obj); var _ph_summ__obj_and_tx = Math.pow(_ph_multiplier, _weight_title) + Math.pow(_ph_multiplier, _weight_obj) + Math.pow(_ph_multiplier, _weight_body); var _ph_summ__obj_only = Math.pow(_ph_multiplier, _weight_obj); var _ph_summ__pic_tx = Math.pow(_ph_multiplier, _weight_title) + Math.pow(_ph_multiplier, _weight_pic) + Math.pow(_ph_multiplier, _weight_body); var _ph_summ__sec_head = Math.pow(_ph_multiplier, _weight_title) + Math.pow(_ph_multiplier, _weight_subTitle); var _ph_summ__tbl = Math.pow(_ph_multiplier, _weight_title) + Math.pow(_ph_multiplier, _weight_tbl); var _ph_summ__title_only = Math.pow(_ph_multiplier, _weight_title); var _ph_summ__two_col_tx = Math.pow(_ph_multiplier, _weight_title) + 2 * Math.pow(_ph_multiplier, _weight_body); var _ph_summ__two_obj_and_tx = Math.pow(_ph_multiplier, _weight_title) + 2 * Math.pow(_ph_multiplier, _weight_obj) + Math.pow(_ph_multiplier, _weight_body); var _ph_summ__two_obj_and_two_tx = Math.pow(_ph_multiplier, _weight_title) + 2 * Math.pow(_ph_multiplier, _weight_obj) + 2 * Math.pow(_ph_multiplier, _weight_body); var _ph_summ__tx = Math.pow(_ph_multiplier, _weight_title) + Math.pow(_ph_multiplier, _weight_body); var _ph_summ__tx_and_clip_art = Math.pow(_ph_multiplier, _weight_title) + Math.pow(_ph_multiplier, _weight_body) + +Math.pow(_ph_multiplier, _weight_clipArt); var _arr_lt_types_weight = []; _arr_lt_types_weight[0] = _ph_summ_blank; _arr_lt_types_weight[1] = _ph_summ_chart; _arr_lt_types_weight[2] = _ph_summ_chart_and_tx; _arr_lt_types_weight[3] = _ph_summ_dgm; _arr_lt_types_weight[4] = _ph_summ_four_obj; _arr_lt_types_weight[5] = _ph_summ__media_and_tx; _arr_lt_types_weight[6] = _ph_summ__obj; _arr_lt_types_weight[7] = _ph_summ__obj_and_two_obj; _arr_lt_types_weight[8] = _ph_summ__obj_and_tx; _arr_lt_types_weight[9] = _ph_summ__obj_only; _arr_lt_types_weight[10] = _ph_summ__pic_tx; _arr_lt_types_weight[11] = _ph_summ__sec_head; _arr_lt_types_weight[12] = _ph_summ__tbl; _arr_lt_types_weight[13] = _ph_summ__title_only; _arr_lt_types_weight[14] = _ph_summ__two_col_tx; _arr_lt_types_weight[15] = _ph_summ__two_obj_and_tx; _arr_lt_types_weight[16] = _ph_summ__two_obj_and_two_tx; _arr_lt_types_weight[17] = _ph_summ__tx; _arr_lt_types_weight[18] = _ph_summ__tx_and_clip_art; _arr_lt_types_weight.sort(function (a, b) { return a - b; }); var _global_layout_summs_array = {}; _global_layout_summs_array["_" + _ph_summ_blank] = nSldLtTBlank; _global_layout_summs_array["_" + _ph_summ_chart] = nSldLtTChart; _global_layout_summs_array["_" + _ph_summ_chart_and_tx] = nSldLtTChartAndTx; _global_layout_summs_array["_" + _ph_summ_dgm] = nSldLtTDgm; _global_layout_summs_array["_" + _ph_summ_four_obj] = nSldLtTFourObj; _global_layout_summs_array["_" + _ph_summ__media_and_tx] = nSldLtTMediaAndTx; _global_layout_summs_array["_" + _ph_summ__obj] = nSldLtTObj; _global_layout_summs_array["_" + _ph_summ__obj_and_two_obj] = nSldLtTObjAndTwoObj; _global_layout_summs_array["_" + _ph_summ__obj_and_tx] = nSldLtTObjAndTx; _global_layout_summs_array["_" + _ph_summ__obj_only] = nSldLtTObjOnly; _global_layout_summs_array["_" + _ph_summ__pic_tx] = nSldLtTPicTx; _global_layout_summs_array["_" + _ph_summ__sec_head] = nSldLtTSecHead; _global_layout_summs_array["_" + _ph_summ__tbl] = nSldLtTTbl; _global_layout_summs_array["_" + _ph_summ__title_only] = nSldLtTTitleOnly; _global_layout_summs_array["_" + _ph_summ__two_col_tx] = nSldLtTTwoColTx; _global_layout_summs_array["_" + _ph_summ__two_obj_and_tx] = nSldLtTTwoObjAndTx; _global_layout_summs_array["_" + _ph_summ__two_obj_and_two_tx] = nSldLtTTwoTxTwoObj; _global_layout_summs_array["_" + _ph_summ__tx] = nSldLtTTx; _global_layout_summs_array["_" + _ph_summ__tx_and_clip_art] = nSldLtTTxAndClipArt; function SlideLayout(slideMaster) { this.cSld = new CSld(); this.clrMap = null; this.hf = new HF(); this.matchingName = ""; this.preserve = false; this.showMasterPhAnim = false; this.type = null; this.userDrawn = true; this.ImageBase64 = ""; this.Master = slideMaster; this.Theme = null; this.TableStyles = null; this.Vml = null; this.kind = LAYOUT_KIND; this.Calculate = function () {}; this.calculateColors = function () { var _shapes = this.cSld.spTree; var _shapes_count = _shapes.length; var _shape_index; for (_shape_index = 0; _shape_index < _shapes_count; ++_shape_index) { if (_shapes[_shape_index].calculateColors) { _shapes[_shape_index].calculateColors(); } } }; this.draw = function (graphics) { for (var i = 0; i < this.cSld.spTree.length; ++i) { if (!this.cSld.spTree[i].isPlaceholder()) { this.cSld.spTree[i].Draw(graphics); } } }; this.getMatchingShape = function (type, idx) { var _input_reduced_type; if (type == null) { _input_reduced_type = phType_body; } else { if (type == phType_ctrTitle) { _input_reduced_type = phType_title; } else { _input_reduced_type = type; } } var _input_reduced_index; if (idx == null) { _input_reduced_index = 0; } else { _input_reduced_index = idx; } var _sp_tree = this.cSld.spTree; var _shape_index; var _index, _type; var _final_index, _final_type; var _glyph; for (_shape_index = 0; _shape_index < _sp_tree.length; ++_shape_index) { _glyph = _sp_tree[_shape_index]; if (_glyph.isPlaceholder()) { if (_glyph instanceof CShape) { _index = _glyph.nvSpPr.nvPr.ph.idx; _type = _glyph.nvSpPr.nvPr.ph.type; } if (_glyph instanceof CImage2) { _index = _glyph.nvPicPr.nvPr.ph.idx; _type = _glyph.nvPicPr.nvPr.ph.type; } if (_glyph instanceof GroupShape) { _index = _glyph.nvGrpSpPr.nvPr.ph.idx; _type = _glyph.nvGrpSpPr.nvPr.ph.type; } if (_type == null) { _final_type = phType_body; } else { if (_type == phType_ctrTitle) { _final_type = phType_title; } else { _final_type = _type; } } if (_index == null) { _final_index = 0; } else { _final_index = _index; } if (_input_reduced_type == _final_type && _input_reduced_index == _final_index) { return _glyph; } } } if (_input_reduced_type == phType_sldNum || _input_reduced_type == phType_dt || _input_reduced_type == phType_ftr || _input_reduced_type == phType_hdr) { for (_shape_index = 0; _shape_index < _sp_tree.length; ++_shape_index) { _glyph = _sp_tree[_shape_index]; if (_glyph.isPlaceholder()) { if (_glyph instanceof CShape) { _type = _glyph.nvSpPr.nvPr.ph.type; } if (_glyph instanceof CImage2) { _type = _glyph.nvPicPr.nvPr.ph.type; } if (_glyph instanceof GroupShape) { _type = _glyph.nvGrpSpPr.nvPr.ph.type; } if (_input_reduced_type == _type) { return _glyph; } } } } for (_shape_index = 0; _shape_index < _sp_tree.length; ++_shape_index) { _glyph = _sp_tree[_shape_index]; if (_glyph.isPlaceholder()) { if (_glyph instanceof CShape) { _type = _glyph.nvSpPr.nvPr.ph.type; } if (_glyph instanceof CImage2) { _type = _glyph.nvPicPr.nvPr.ph.type; } if (_glyph instanceof GroupShape) { _type = _glyph.nvGrpSpPr.nvPr.ph.type; } if (_type == null) { _final_type = phType_body; } else { if (_type == phType_ctrTitle) { _final_type = phType_title; } else { _final_type = _type; } } if (this.type === nSldLtTTitle && (_input_reduced_type === phType_body || _input_reduced_type === phType_subTitle) && (_final_type === phType_body || _final_type === phType_subTitle)) { return _glyph; } } } return null; }; this.calculateType = function () { if (this.type !== null) { this.calculatedType = this.type; return; } var _ph_types_array = []; var _matchedLayoutTypes = []; for (var _ph_type_index = 0; _ph_type_index < 16; ++_ph_type_index) { _ph_types_array[_ph_type_index] = 0; } for (var _layout_type_index = 0; _layout_type_index < 36; ++_layout_type_index) { _matchedLayoutTypes[_layout_type_index] = false; } var _shapes = this.cSld.spTree; var _shape_index; var _shape; for (_shape_index = 0; _shape_index < _shapes.length; ++_shape_index) { _shape = _shapes[_shape_index]; if (_shape.isPlaceholder()) { var _cur_type = _shape.getPhType(); if (! (typeof(_cur_type) == "number")) { _cur_type = phType_body; } if (typeof _ph_types_array[_cur_type] == "number") { ++_ph_types_array[_cur_type]; } } } var _weight = Math.pow(_ph_multiplier, _weight_body) * _ph_types_array[phType_body] + Math.pow(_ph_multiplier, _weight_chart) * _ph_types_array[phType_chart] + Math.pow(_ph_multiplier, _weight_clipArt) * _ph_types_array[phType_clipArt] + Math.pow(_ph_multiplier, _weight_ctrTitle) * _ph_types_array[phType_ctrTitle] + Math.pow(_ph_multiplier, _weight_dgm) * _ph_types_array[phType_dgm] + Math.pow(_ph_multiplier, _weight_media) * _ph_types_array[phType_media] + Math.pow(_ph_multiplier, _weight_obj) * _ph_types_array[phType_obj] + Math.pow(_ph_multiplier, _weight_pic) * _ph_types_array[phType_pic] + Math.pow(_ph_multiplier, _weight_subTitle) * _ph_types_array[phType_subTitle] + Math.pow(_ph_multiplier, _weight_tbl) * _ph_types_array[phType_tbl] + Math.pow(_ph_multiplier, _weight_title) * _ph_types_array[phType_title]; for (var _index = 0; _index < 18; ++_index) { if (_weight >= _arr_lt_types_weight[_index] && _weight <= _arr_lt_types_weight[_index + 1]) { if (Math.abs(_arr_lt_types_weight[_index] - _weight) <= Math.abs(_arr_lt_types_weight[_index + 1] - _weight)) { this.calculatedType = _global_layout_summs_array["_" + _arr_lt_types_weight[_index]]; return; } else { this.calculatedType = _global_layout_summs_array["_" + _arr_lt_types_weight[_index + 1]]; return; } } } this.calculatedType = _global_layout_summs_array["_" + _arr_lt_types_weight[18]]; }; this.calculateMatchedTypes = function () { this.matchedTypes = []; for (var i = 0; i < 36; ++i) { this.matchedTypes[i] = false; } if (this.calculatedType != null) { switch (this.calculatedType) { case nSldLtTBlank: this.matchedTypes[nSldLtTBlank] = true; break; case nSldLtTChart: this.matchedTypes[nSldLtTChart] = true; break; case nSldLtTChartAndTx: case nSldLtTTxAndChart: case nSldLtTVertTitleAndTxOverChart: this.matchedTypes[nSldLtTChartAndTx] = true; this.matchedTypes[nSldLtTTxAndChart] = true; this.matchedTypes[nSldLtTVertTitleAndTxOverChart] = true; break; case nSldLtTClipArtAndTx: case nSldLtTTxAndClipArt: case nSldLtTClipArtAndVertTx: this.matchedTypes[nSldLtTClipArtAndTx] = true; this.matchedTypes[nSldLtTTxAndClipArt] = true; break; case nSldLtTDgm: this.matchedTypes[nSldLtTDgm] = true; break; case nSldLtTFourObj: this.matchedTypes[nSldLtTFourObj] = true; break; case nSldLtTMediaAndTx: case nSldLtTTxAndMedia: this.matchedTypes[nSldLtTMediaAndTx] = true; this.matchedTypes[nSldLtTTxAndMedia] = true; break; case nSldLtTObj: this.matchedTypes[nSldLtTObj] = true; break; case nSldLtTObjAndTwoObj: case nSldLtTTwoObjAndObj: this.matchedTypes[nSldLtTObjAndTwoObj] = true; this.matchedTypes[nSldLtTTwoObjAndObj] = true; break; case nSldLtTObjAndTx: case nSldLtTTxAndObj: case nSldLtTTxOverObj: case nSldLtTObjOverTx: case nSldLtTObjTx: this.matchedTypes[nSldLtTObjAndTx] = true; this.matchedTypes[nSldLtTTxAndObj] = true; this.matchedTypes[nSldLtTTxOverObj] = true; break; case nSldLtTObjOnly: this.matchedTypes[nSldLtTObjOnly] = true; break; case nSldLtTPicTx: this.matchedTypes[nSldLtTPicTx] = true; break; case nSldLtTSecHead: case nSldLtTTitle: this.matchedTypes[nSldLtTSecHead] = true; this.matchedTypes[nSldLtTTitle] = true; break; case nSldLtTTbl: this.matchedTypes[nSldLtTTbl] = true; break; case nSldLtTTitleOnly: this.matchedTypes[nSldLtTTitleOnly] = true; break; case nSldLtTTwoColTx: this.matchedTypes[nSldLtTTwoColTx] = true; break; case nSldLtTTwoObj: this.matchedTypes[nSldLtTTwoObj] = true; break; case nSldLtTTwoObjAndTx: case nSldLtTTwoObjOverTx: case nSldLtTTxAndTwoObj: this.matchedTypes[nSldLtTTwoObjAndTx] = true; this.matchedTypes[nSldLtTTwoObjOverTx] = true; this.matchedTypes[nSldLtTTxAndTwoObj] = true; break; case nSldLtTTwoTxTwoObj: this.matchedTypes[nSldLtTTwoTxTwoObj] = true; break; case nSldLtTTx: case nSldLtTVertTx: case nSldLtTVertTitleAndTx: this.matchedTypes[nSldLtTTx] = true; this.matchedTypes[nSldLtTVertTx] = true; this.matchedTypes[nSldLtTVertTitleAndTx] = true; break; } } else {} }; } function NoteMaster() { this.cSld = new CSld(); this.clrMap = new ClrMap(); this.hf = new HF(); this.notesStyle = null; this.Theme = null; this.TableStyles = null; this.Calculate = function () {}; } function NoteSlide() { this.cSld = new CSld(); this.clrMap = null; this.showMasterPhAnim = false; this.showMasterSp = false; this.Calculate = function () {}; } function isThemeFont(sFont) { return sFont == "+mj-lt" || sFont == "+mn-lt" || sFont == "+mj-ea" || sFont == "+mn-ea" || sFont == "+mj-cs" || sFont == "+mn-cs"; } function getFontInfo(sFont) { switch (sFont) { case "+mj-lt": return function (obj) { return obj.majorFont.latin; }; case "+mn-lt": return function (obj) { return obj.minorFont.latin; }; case "+mj-ea": return function (obj) { return obj.majorFont.ea; }; case "+mn-ea": return function (obj) { return obj.minorFont.ea; }; case "+mj-cs": return function (obj) { return obj.majorFont.cs; }; case "+mn-cs": return function (obj) { return obj.minorFont.cs; }; default: return function (obj) { return sFont; }; } } function redrawSlide(slide, presentation, arr_layouts, direction, arr_slides) { var _history_is_on = History.Is_On(); if (_history_is_on) { History.TurnOff(); } var _new_layout = slide.Layout; if (!_new_layout.calculated) { _new_layout.elementsManipulator = new AutoShapesContainer(editor.WordControl.m_oLogicDocument, 0); var _arr_shapes = _new_layout.cSld.spTree; var _shape_index; if (Math.abs(presentation.Width - 254) > 1 || Math.abs(presentation.Width - 190.5) > 1) { var kx = presentation.Width / 254; var ky = presentation.Height / 190.5; for (_shape_index = 0; _shape_index < _arr_shapes.length; ++_shape_index) { _arr_shapes[_shape_index].resizeToFormat(kx, ky); } } for (_shape_index = 0; _shape_index < _arr_shapes.length; ++_shape_index) { _arr_shapes[_shape_index].setParent(_new_layout); _arr_shapes[_shape_index].setContainer(_new_layout.elementsManipulator); _arr_shapes[_shape_index].calculate(); } _new_layout.calculated = true; } slide.calculate2(); presentation.DrawingDocument.OnRecalculatePage(slide.num, slide); if (_history_is_on) { History.TurnOn(); } if (direction == 0) { if (slide.num > 0) { presentation.backChangeThemeTimeOutId = setTimeout(function () { redrawSlide(arr_slides[slide.num - 1], presentation, arr_layouts, -1, arr_slides); }, 30); } else { presentation.backChangeThemeTimeOutId = null; } if (slide.num < presentation.Slides.length - 1) { presentation.forwardChangeThemeTimeOutId = setTimeout(function () { redrawSlide(arr_slides[slide.num + 1], presentation, arr_layouts, +1, arr_slides); }, 30); } else { presentation.forwardChangeThemeTimeOutId = null; } presentation.startChangeThemeTimeOutId = null; } if (direction > 0) { if (slide.num < presentation.Slides.length - 1) { presentation.forwardChangeThemeTimeOutId = setTimeout(function () { redrawSlide(arr_slides[slide.num + 1], presentation, arr_layouts, +1, arr_slides); }, 30); } else { presentation.forwardChangeThemeTimeOutId = null; } } if (direction < 0) { if (slide.num > 0) { presentation.backChangeThemeTimeOutId = setTimeout(function () { redrawSlide(arr_slides[slide.num - 1], presentation, arr_layouts, -1, arr_slides); }, 30); } else { presentation.backChangeThemeTimeOutId = null; } } } function redrawSlide2(slide, presentation, arrInd, pos, arr_layouts, direction, arr_slides) { var _history_is_on = History.Is_On(); if (_history_is_on) { History.TurnOff(); } var _new_layout = arr_layouts[pos]; if (!_new_layout.calculated) { _new_layout.elementsManipulator = new AutoShapesContainer(editor.WordControl.m_oLogicDocument, 0); var _arr_shapes = _new_layout.cSld.spTree; var _shape_index; if (Math.abs(presentation.Width - 254) > 1 || Math.abs(presentation.Width - 190.5) > 1) { var kx = presentation.Width / 254; var ky = presentation.Height / 190.5; for (_shape_index = 0; _shape_index < _arr_shapes.length; ++_shape_index) { _arr_shapes[_shape_index].resizeToFormat(kx, ky); } } for (_shape_index = 0; _shape_index < _arr_shapes.length; ++_shape_index) { _arr_shapes[_shape_index].setParent(_new_layout); _arr_shapes[_shape_index].setContainer(_new_layout.elementsManipulator); _arr_shapes[_shape_index].calculate(); } _new_layout.calculated = true; } slide.calculate2(); presentation.DrawingDocument.OnRecalculatePage(slide.num, slide); if (_history_is_on) { History.TurnOn(); } if (direction == 0) { if (pos > 0) { presentation.backChangeThemeTimeOutId = setTimeout(function () { redrawSlide2(arr_slides[arrInd[pos - 1]], presentation, arrInd, pos - 1, arr_layouts, -1, arr_slides); }, 30); } else { presentation.backChangeThemeTimeOutId = null; } if (pos < arrInd.length - 1) { presentation.forwardChangeThemeTimeOutId = setTimeout(function () { redrawSlide2(arr_slides[arrInd[pos + 1]], presentation, arrInd, pos + 1, arr_layouts, +1, arr_slides); }, 30); } else { presentation.forwardChangeThemeTimeOutId = null; } presentation.startChangeThemeTimeOutId = null; } if (direction > 0) { if (pos < arrInd.length - 1) { presentation.forwardChangeThemeTimeOutId = setTimeout(function () { redrawSlide2(arr_slides[arrInd[pos + 1]], presentation, arrInd, pos + 1, arr_layouts, +1, arr_slides); }, 30); } else { presentation.forwardChangeThemeTimeOutId = null; } } if (direction < 0) { if (pos > 0) { presentation.backChangeThemeTimeOutId = setTimeout(function () { redrawSlide2(arr_slides[arrInd[pos - 1]], presentation, arrInd, pos - 1, arr_layouts, -1, arr_slides); }, 30); } else { presentation.backChangeThemeTimeOutId = null; } } } function recalculateSlideAfterChangeThemeColors(slide, presentation, direction, arr_slides) { var _history_is_on = History.Is_On(); if (_history_is_on) { History.TurnOff(); } slide.calculateColors(); slide.Layout.calculateColors(); slide.Layout.Master.calculateColors(); presentation.DrawingDocument.OnRecalculatePage(slide.num, slide); if (presentation.CurPos.Type === docpostype_FlowObjects) { if (presentation.CurPage === slide.num) { presentation.RecalculateCurPos(); } } if (_history_is_on) { History.TurnOn(); } if (direction == 0) { if (slide.num > 0) { setTimeout(function () { recalculateSlideAfterChangeThemeColors(arr_slides[slide.num - 1], presentation, -1, arr_slides); }, 30); } if (slide.num < presentation.Slides.length - 1) { setTimeout(function () { recalculateSlideAfterChangeThemeColors(arr_slides[slide.num + 1], presentation, +1, arr_slides); }, 30); } presentation.startChangeThemeTimeOutId = null; } if (direction > 0) { if (slide.num < presentation.Slides.length - 1) { setTimeout(function () { recalculateSlideAfterChangeThemeColors(arr_slides[slide.num + 1], presentation, +1, arr_slides); }, 30); } } if (direction < 0) { if (slide.num > 0) { setTimeout(function () { recalculateSlideAfterChangeThemeColors(arr_slides[slide.num - 1], presentation, -1, arr_slides); }, 30); } } } function Slide(presentation, slideLayout, slideNum) { this.maxId = 0; this.cSld = new CSld(); this.clrMap = null; this.show = true; this.showMasterPhAnim = false; this.presentation = presentation; this.Layout = slideLayout; this.Master = null; this.Note = null; this.Theme = null; this.TableStyles = null; this.Vml = null; this.changeLayout = function (layout) { var _slide_shapes = this.cSld.spTree; var _slide_shape; var _new_layout_shapes = layout.cSld.spTree; var _layout_shape; var _shape_index; var _history_obj; _history_obj = {}; _history_obj.oldLayout = this.Layout; _history_obj.undo_function = function (data) { this.Layout = data.oldLayout; for (var i = 0; i < this.elementsManipulator.ArrGlyph.length; ++i) { if (this.elementsManipulator.ArrGlyph[i].resetTextStyles) { this.elementsManipulator.ArrGlyph[i].resetTextStyles(); } } this.calculate2(); }; _history_obj.redo_function = function (data) {}; History.Add(this, _history_obj); for (_shape_index = 0; _shape_index < _slide_shapes.length; ++_shape_index) { _slide_shape = _slide_shapes[_shape_index]; if (_slide_shape.isEmptyPlaceholder()) { _history_obj = {}; _history_obj.shape = _slide_shape; _history_obj.shapeIndex = _shape_index; _history_obj.slideShapes = _slide_shapes; _history_obj.undo_function = function (data) { data.slideShapes.splice(data.shapeIndex, 0, data.shape); }; _history_obj.redo_function = function (data) { data.slideShapes.splice(data.shapeIndex, 1); }; History.Add(this, _history_obj); _slide_shapes.splice(_shape_index, 1); --_shape_index; continue; } var _slide_shape_xfrm = _slide_shape.spPr.xfrm; if (_slide_shape_xfrm && _slide_shape_xfrm.offX != null) { _history_obj = {}; _history_obj.shape = _slide_shape; _history_obj.oldXfrmOffX = _slide_shape_xfrm.offX; _history_obj.oldXfrmOffY = _slide_shape_xfrm.offY; _history_obj.oldXfrmExtX = _slide_shape_xfrm.extX; _history_obj.oldXfrmExtY = _slide_shape_xfrm.extY; _history_obj.oldXfrmFlipH = _slide_shape_xfrm.flipH; _history_obj.oldXfrmFlipV = _slide_shape_xfrm.flipV; _history_obj.oldXfrmRot = _slide_shape_xfrm.rot; _history_obj.newXfrmOffX = _slide_shape.pH; _history_obj.newXfrmOffY = _slide_shape.pV; _history_obj.newXfrmExtX = _slide_shape.ext.cx; _history_obj.newXfrmExtY = _slide_shape.ext.cy; _history_obj.newXfrmFlipH = _slide_shape.flipH; _history_obj.newXfrmFlipV = _slide_shape.flipV; _history_obj.newXfrmRot = _slide_shape.flipV; _history_obj.undo_function = function (data) { data.shape.spPr.xfrm.offX = data.oldXfrmOffX; data.shape.spPr.xfrm.offY = data.oldXfrmOffY; data.shape.spPr.xfrm.extX = data.oldXfrmExtX; data.shape.spPr.xfrm.extY = data.oldXfrmExtY; data.shape.spPr.xfrm.flipH = data.oldXfrmFlipH; data.shape.spPr.xfrm.flipV = data.oldXfrmFlipV; data.shape.spPr.xfrm.rot = data.oldXfrmRot; }; _history_obj.redo_function = function (data) { data.shape.spPr.xfrm.offX = data.newXfrmOffX; data.shape.spPr.xfrm.offY = data.newXfrmOffY; data.shape.spPr.xfrm.extX = data.newXfrmExtX; data.shape.spPr.xfrm.extY = data.newXfrmExtY; data.shape.spPr.xfrm.flipH = data.newXfrmFlipH; data.shape.spPr.xfrm.flipV = data.newXfrmFlipV; data.shape.spPr.xfrm.rot = data.newXfrmRot; }; History.Add(this, _history_obj); _slide_shape.spPr.xfrm.offX = _slide_shape.pH; _slide_shape.spPr.xfrm.offY = _slide_shape.pV; _slide_shape.spPr.xfrm.extX = _slide_shape.ext.cx; _slide_shape.spPr.xfrm.extY = _slide_shape.ext.cy; _slide_shape.spPr.xfrm.flipH = _slide_shape.flipH; _slide_shape.spPr.xfrm.flipV = _slide_shape.flipV; _slide_shape.spPr.xfrm.rot = _slide_shape.rot; } else { if (_slide_shape.isPlaceholder()) { var _new_master = layout.Master; var _ph_idx = null, _ph_type = null; if (_slide_shape instanceof CShape) { _ph_idx = _slide_shape.nvSpPr.nvPr.ph.idx; _ph_type = _slide_shape.nvSpPr.nvPr.ph.type; } if (_slide_shape instanceof CImage2) { _ph_idx = _slide_shape.nvPicPr.nvPr.ph.idx; _ph_type = _slide_shape.nvPicPr.nvPr.ph.type; } var _merged_xfrm = new CXfrm(); var _master_shape = _new_master.getMatchingShape(_ph_type, _ph_idx); var _layout_shape = layout.getMatchingShape(_ph_type, _ph_idx); var _master_shape_xfrm = null; if (_master_shape != null && _master_shape.spPr) { _merged_xfrm.merge(_master_shape.spPr.xfrm); } if (_layout_shape != null && _layout_shape.spPr) { _merged_xfrm.merge(_layout_shape.spPr.xfrm); } if (_merged_xfrm.offX == null) { _history_obj = {}; _history_obj.shape = _slide_shape; _history_obj.oldXfrmOffX = _slide_shape_xfrm.offX; _history_obj.oldXfrmOffY = _slide_shape_xfrm.offY; _history_obj.oldXfrmExtX = _slide_shape_xfrm.extX; _history_obj.oldXfrmExtY = _slide_shape_xfrm.extY; _history_obj.oldXfrmFlipH = _slide_shape_xfrm.flipH; _history_obj.oldXfrmFlipV = _slide_shape_xfrm.flipV; _history_obj.oldXfrmRot = _slide_shape_xfrm.rot; _history_obj.newXfrmOffX = _slide_shape.pH; _history_obj.newXfrmOffY = _slide_shape.pV; _history_obj.newXfrmExtX = _slide_shape.ext.cx; _history_obj.newXfrmExtY = _slide_shape.ext.cy; _history_obj.newXfrmFlipH = _slide_shape.flipH; _history_obj.newXfrmFlipV = _slide_shape.flipV; _history_obj.newXfrmRot = _slide_shape.flipV; _history_obj.undo_function = function (data) { data.shape.spPr.xfrm.offX = data.oldXfrmOffX; data.shape.spPr.xfrm.offY = data.oldXfrmOffY; data.shape.spPr.xfrm.extX = data.oldXfrmExtX; data.shape.spPr.xfrm.extY = data.oldXfrmExtY; data.shape.spPr.xfrm.flipH = data.oldXfrmFlipH; data.shape.spPr.xfrm.flipV = data.oldXfrmFlipV; data.shape.spPr.xfrm.rot = data.oldXfrmRot; }; _history_obj.redo_function = function (data) { data.shape.spPr.xfrm.offX = data.newXfrmOffX; data.shape.spPr.xfrm.offY = data.newXfrmOffY; data.shape.spPr.xfrm.extX = data.newXfrmExtX; data.shape.spPr.xfrm.extY = data.newXfrmExtY; data.shape.spPr.xfrm.flipH = data.newXfrmFlipH; data.shape.spPr.xfrm.flipV = data.newXfrmFlipV; data.shape.spPr.xfrm.rot = data.newXfrmRot; }; History.Add(this, _history_obj); _slide_shape.spPr.xfrm.offX = _slide_shape.pH; _slide_shape.spPr.xfrm.offY = _slide_shape.pV; _slide_shape.spPr.xfrm.extX = _slide_shape.ext.cx; _slide_shape.spPr.xfrm.extY = _slide_shape.ext.cy; _slide_shape.spPr.xfrm.flipH = _slide_shape.flipH; _slide_shape.spPr.xfrm.flipV = _slide_shape.flipV; _slide_shape.spPr.xfrm.rot = _slide_shape.rot; } } } } for (_shape_index = 0; _shape_index < _new_layout_shapes.length; ++_shape_index) { _layout_shape = _new_layout_shapes[_shape_index]; if (_layout_shape.isPlaceholder()) { if (_layout_shape instanceof CShape) { _ph_idx = _layout_shape.nvSpPr.nvPr.ph.idx; _ph_type = _layout_shape.nvSpPr.nvPr.ph.type; } if (_layout_shape instanceof CImage2) { _ph_idx = _layout_shape.nvPicPr.nvPr.ph.idx; _ph_type = _layout_shape.nvPicPr.nvPr.ph.type; } var _matching_slide_shape = this.getMatchingShape(_ph_type, _ph_idx); if (_matching_slide_shape == null && (_ph_type != phType_dt && _ph_type != phType_ftr && _ph_type != phType_hdr && _ph_type != phType_sldNum)) { var _index = _shape_index > _slide_shapes.length ? _slide_shapes.length : _shape_index; var _added_shape = _layout_shape.createDuplicate2(this, this.elementsManipulator); _added_shape.txBody = _layout_shape.txBody.createFullCopy(_added_shape); _added_shape.txBody.content = new CDocumentContent(_added_shape, this.elementsManipulator.DrawingDocument, 0, 0, 0, 0, false, false); var text = pHText[0][_added_shape.nvSpPr.nvPr.ph.type] != undefined ? pHText[0][_added_shape.nvSpPr.nvPr.ph.type] : pHText[0][phType_body]; _added_shape.txBody.content2 = new CDocumentContent(_added_shape, this.elementsManipulator.DrawingDocument, 0, 0, 0, 0, false, false); _added_shape.txBody.content2.Content.length = 0; var par = new Paragraph(this.elementsManipulator.DrawingDocument, _added_shape.txBody.content2, 0, 0, 0, 0, 0); var EndPos = 0; _added_shape.spPr.Fill = new CUniFill(); _added_shape.spPr.ln = new CLn(); _added_shape.spPr.xfrm = new CXfrm(); var _h_is_on = History.Is_On(); if (_h_is_on) { History.TurnOff(); } for (var key = 0; key < text.length; ++key) { par.Internal_Content_Add(EndPos++, new ParaText(text[key])); } _added_shape.txBody.content2.Internal_Content_Add(0, par); if (_h_is_on) { History.TurnOn(); } _history_obj = {}; _history_obj.layoutShape = _added_shape; _history_obj.shapeIndex = _index; _history_obj.slideShapes = _slide_shapes; _history_obj.undo_function = function (data) { data.slideShapes.splice(data.shapeIndex, 1); }; _history_obj.redo_function = function (data) { data.slideShapes.splice(data.shapeIndex, 0, data.layoutShape); }; History.Add(this, _history_obj); _slide_shapes.splice(_index, 0, _added_shape); } } } _history_obj = {}; _history_obj.newLayout = layout; _history_obj.undo_function = function (data) {}; _history_obj.redo_function = function (data) { this.Layout = data.newLayout; for (var i = 0; i < this.elementsManipulator.ArrGlyph.length; ++i) { if (this.elementsManipulator.ArrGlyph[i].resetTextStyles) { this.elementsManipulator.ArrGlyph[i].resetTextStyles(); } } this.calculate2(); }; History.Add(this, _history_obj); this.Layout = layout; for (var i = 0; i < this.elementsManipulator.ArrGlyph.length; ++i) { if (this.elementsManipulator.ArrGlyph[i].resetTextStyles) { this.elementsManipulator.ArrGlyph[i].resetTextStyles(); } } this.calculate2(); }; this.prepareToChangeTheme = function (_new_layout) { for (var i = 0, glyphs = this.elementsManipulator.ArrGlyph, n = glyphs.length; i < n; ++i) { if (glyphs[i].prepareToChangeTheme) { glyphs[i].prepareToChangeTheme(_new_layout); } } }; this.prepareToChangeTheme2 = function (_new_layout) { for (var i = 0, glyphs = this.elementsManipulator.ArrGlyph, n = glyphs.length; i < n; ++i) { if (glyphs[i].prepareToChangeTheme2) { glyphs[i].prepareToChangeTheme2(); } } }; this.createFullCopy = function (_slide_num) { var _history_is_on = History.Is_On(); if (_history_is_on) { History.TurnOff(); } var _copy = new Slide(this.presentation, this.Layout, _slide_num); _copy.Layout = this.Layout; _copy.Master = this.Master; _copy.Theme = this.Theme; _copy.cSld = this.cSld.createFullCopy(_copy, _copy.elementsManipulator); _copy.elementsManipulator.ArrGlyph = _copy.cSld.spTree; if (_history_is_on) { History.TurnOn(); } return _copy; }; this.CreateFontMap = function (FontMap) { var _arr_glyph = this.elementsManipulator.ArrGlyph; for (var i = 0; i < _arr_glyph.length; ++i) { if (_arr_glyph[i].CreateFontMap != undefined) { _arr_glyph[i].CreateFontMap(FontMap); } } }; this.calculateColors = function () { var _shapes = this.cSld.spTree; var _shapes_count = _shapes.length; var _shape_index; for (_shape_index = 0; _shape_index < _shapes_count; ++_shape_index) { _shapes[_shape_index].calculateColors(); } }; this.kind = SLIDE_KIND; this.num = slideNum; this.compiledShapes = []; this.elementsManipulator = new AutoShapesContainer(presentation, slideNum); this.elementsManipulator.ArrGlyph = this.cSld.spTree; this.Width = presentation.Width; this.Height = presentation.Height; this.searchingArray = new Array(); this.selectionArray = new Array(); this.Margins = { Left: X_Left_Field, Right: X_Right_Field, Top: Y_Top_Field, Bottom: Y_Bottom_Field }; this.Save_Changes = function () {}; this.getMatchingShape = function (type, idx) { var _input_reduced_type; if (type == null) { _input_reduced_type = phType_body; } else { if (type == phType_ctrTitle) { _input_reduced_type = phType_title; } else { _input_reduced_type = type; } } var _input_reduced_index; if (idx == null) { _input_reduced_index = 0; } else { _input_reduced_index = idx; } var _sp_tree = this.cSld.spTree; var _shape_index; var _index, _type; var _final_index, _final_type; var _glyph; for (_shape_index = 0; _shape_index < _sp_tree.length; ++_shape_index) { _glyph = _sp_tree[_shape_index]; if (_glyph.isPlaceholder()) { if (_glyph instanceof CShape) { _index = _glyph.nvSpPr.nvPr.ph.idx; _type = _glyph.nvSpPr.nvPr.ph.type; } if (_glyph instanceof CImage2) { _index = _glyph.nvPicPr.nvPr.ph.idx; _type = _glyph.nvPicPr.nvPr.ph.type; } if (_glyph instanceof GroupShape) { _index = _glyph.nvGrpSpPr.nvPr.ph.idx; _type = _glyph.nvGrpSpPr.nvPr.ph.type; } if (_type == null) { _final_type = phType_body; } else { if (_type == phType_ctrTitle) { _final_type = phType_title; } else { _final_type = _type; } } if (_index == null) { _final_index = 0; } else { _final_index = _index; } if (_input_reduced_type == _final_type && _input_reduced_index == _final_index) { return _glyph; } } } if (_input_reduced_type == phType_sldNum || _input_reduced_type == phType_dt || _input_reduced_type == phType_ftr || _input_reduced_type == phType_hdr) { for (_shape_index = 0; _shape_index < _sp_tree.length; ++_shape_index) { _glyph = _sp_tree[_shape_index]; if (_glyph.isPlaceholder()) { if (_glyph instanceof CShape) { _type = _glyph.nvSpPr.nvPr.ph.type; } if (_glyph instanceof CImage2) { _type = _glyph.nvPicPr.nvPr.ph.type; } if (_glyph instanceof GroupShape) { _type = _glyph.nvGrpSpPr.nvPr.ph.type; } if (_input_reduced_type == _type) { return _glyph; } } } } return null; }; this.calculate = function () { this.compiledShapes.length = 0; var slideSpTree = this.cSld.spTree; for (var i = 0; i < slideSpTree.length; ++i) { slideSpTree[i].calculate(); } this.elementsManipulator.ArrGlyph = slideSpTree; }; this.calculate2 = function () { var spTree = this.cSld.spTree; for (var i = 0, n = spTree.length; i < n; ++i) { if (spTree[i].calculate2) { spTree[i].calculate2(); } } }; this.changeNum = function (num) { this.num = num; this.elementsManipulator.SlideNum = num; var _arr_glyph = this.cSld.spTree; var _shape_index; for (_shape_index = 0; _shape_index < _arr_glyph.length; ++_shape_index) { if (_arr_glyph[_shape_index].isPlaceholder()) { if (_arr_glyph[_shape_index] instanceof CShape) { if (_arr_glyph[_shape_index].nvSpPr.nvPr.ph.type == phType_sldNum && _arr_glyph[_shape_index].txBody.textFieldFlag) { _arr_glyph[_shape_index].txBody.recalculate(_arr_glyph[_shape_index]); } } } } }; this.calculateAfterChangeLayout = function () { var historyData; var _history_is_on = History.Is_On(); if (_history_is_on) { History.TurnOff(); } for (var i = this.cSld.spTree.length - 1; i > -1; --i) { if (this.cSld.spTree[i].isEmptyPlaceholder()) { var deletedShape = this.cSld.spTree.splice(i, 1)[0]; historyData = {}; historyData.deletedShape = deletedShape; historyData.shapeIndex = i; historyData.undo_function = function (data) { this.cSld.spTree.splice(data.shapeIndex, 0, data.deletedShape); }; historyData.redo_function = function (data) { this.cSld.spTree.splice(data.shapeIndex, 1); }; } } for (i = this.Layout.cSld.spTree.length - 1; i > -1; --i) { if (this.Layout.cSld.spTree[i].isPlaceholder()) { var matchingShape; var _ph_type = this.Layout.cSld.spTree[i].nvSpPr.nvPr.ph.type; if (((matchingShape = this.getMatchingShape(this.Layout.cSld.spTree[i].nvSpPr.nvPr.ph.type, this.Layout.cSld.spTree[i].nvSpPr.nvPr.ph.idx)) == null) && ((_ph_type != phType_dt && _ph_type != phType_ftr && _ph_type != phType_hdr && _ph_type != phType_sldNum))) { var duplicate = this.Layout.cSld.spTree[i].createDuplicate2(this, this.elementsManipulator); if (this.Layout.cSld.spTree[i] instanceof CShape) { var _body_pr; if (this.Layout.cSld.spTree[i].txBody && this.Layout.cSld.spTree[i].txBody.bodyPr) { _body_pr = this.Layout.cSld.spTree[i].txBody.bodyPr.createDuplicate(); } else { _body_pr = new CBodyPr(); } duplicate.txBody = new CTextBody(duplicate); duplicate.txBody.bodyPr = _body_pr; duplicate.txBody.content = new CDocumentContent(duplicate, this.elementsManipulator.DrawingDocument, 0, 0, 0, 0, false, false); } duplicate.spPr.xfrm = new CXfrm(); duplicate.spPr.Fill = new CUniFill(); duplicate.spPr.ln = new CLn(); duplicate.calculate(); duplicate.setParent(this); duplicate.setContainer(this.elementsManipulator); this.cSld.spTree.splice(i, 0, duplicate); historyData = {}; historyData.addedShape = duplicate; historyData.shapeIndex = i; historyData.undo_function = function (data) { this.cSld.spTree.splice(data.shapeIndex, 1); }; historyData.redo_function = function (data) { this.cSld.spTree.splice(data.shapeIndex, 0, data.addedShape); }; } else { if (matchingShape != null) { _ph_type = this.Layout.cSld.spTree[i].nvSpPr.nvPr.ph.type; if (this.Layout.cSld.spTree[i].spPr.xfrm.extX != undefined) { historyData = {}; historyData.old_SpPrXfrm = clone(matchingShape.spPr.xfrm); historyData.old_pH = matchingShape.pH; historyData.old_pV = matchingShape.pV; historyData.old_ext = clone(matchingShape.ext); historyData.shape = matchingShape; historyData.undo_function = function (data) { data.shape.spPr.xfrm.offX = data.old_SpPrXfrm.offX; data.shape.spPr.xfrm.offY = data.old_SpPrXfrm.offY; data.shape.spPr.xfrm.extX = data.old_SpPrXfrm.extX; data.shape.spPr.xfrm.extY = data.old_SpPrXfrm.extY; data.shape.spPr.xfrm.chOffX = data.old_SpPrXfrm.chOffX; data.shape.spPr.xfrm.chOffY = data.old_SpPrXfrm.chOffY; data.shape.spPr.xfrm.chExtX = data.old_SpPrXfrm.chExtX; data.shape.spPr.xfrm.chExtY = data.old_SpPrXfrm.chExtY; }; historyData.redo_function = function (data) { data.shape.spPr.xfrm = new CXfrm(); }; matchingShape.spPr.xfrm = new CXfrm(); } else { var masterMatchingShape = this.Layout.Master.getMatchingShape(this.Layout.cSld.spTree[i].nvSpPr.nvPr.ph.type, this.Layout.cSld.spTree[i].nvSpPr.nvPr.ph.idx); if (masterMatchingShape != null && masterMatchingShape.spPr.xfrm.extX != undefined) { historyData = {}; historyData.old_SpPrXfrm = clone(matchingShape.spPr.xfrm); historyData.old_pH = matchingShape.pH; historyData.old_pV = matchingShape.pV; historyData.old_ext = clone(matchingShape.ext); historyData.shape = matchingShape; historyData.undo_function = function (data) { data.shape.spPr.xfrm.offX = data.old_SpPrXfrm.offX; data.shape.spPr.xfrm.offY = data.old_SpPrXfrm.offY; data.shape.spPr.xfrm.extX = data.old_SpPrXfrm.extX; data.shape.spPr.xfrm.extY = data.old_SpPrXfrm.extY; data.shape.spPr.xfrm.chOffX = data.old_SpPrXfrm.chOffX; data.shape.spPr.xfrm.chOffY = data.old_SpPrXfrm.chOffY; data.shape.spPr.xfrm.chExtX = data.old_SpPrXfrm.chExtX; data.shape.spPr.xfrm.chExtY = data.old_SpPrXfrm.chExtY; }; historyData.redo_function = function (data) { data.shape.spPr.xfrm = new CXfrm(); }; matchingShape.spPr.xfrm = new CXfrm(); } } } } } } historyData = {}; historyData.undo_function = function (data) {}; historyData.redo_function = function (data) { for (var i = 0; i < this.cSld.spTree.length; ++i) { this.cSld.spTree[i].calculate2(); } }; for (i = 0; i < this.cSld.spTree.length; ++i) { this.cSld.spTree[i].calculate2(); } if (_history_is_on) { History.TurnOn(); } }; this.drawSelect = function () { this.elementsManipulator.drawSelect(); }; this.getBackground = function () { var _back_fill = null; var RGBA = { R: 0, G: 0, B: 0, A: 255 }; var _layout = this.Layout; var _master = _layout.Master; var _theme = _master.Theme; if (this.cSld.Bg != null) { if (null != this.cSld.Bg.bgPr) { _back_fill = this.cSld.Bg.bgPr.Fill; } else { if (this.cSld.Bg.bgRef != null) { this.cSld.Bg.bgRef.Color.Calculate(_theme, this, _layout, _master, RGBA); RGBA = this.cSld.Bg.bgRef.Color.RGBA; _back_fill = _theme.themeElements.fmtScheme.GetFillStyle(this.cSld.Bg.bgRef.idx); } } } else { if (_layout != null) { if (_layout.cSld.Bg != null) { if (null != _layout.cSld.Bg.bgPr) { _back_fill = _layout.cSld.Bg.bgPr.Fill; } else { if (_layout.cSld.Bg.bgRef != null) { _layout.cSld.Bg.bgRef.Color.Calculate(_theme, this, _layout, _master, RGBA); RGBA = _layout.cSld.Bg.bgRef.Color.RGBA; _back_fill = _theme.themeElements.fmtScheme.GetFillStyle(_layout.cSld.Bg.bgRef.idx); } } } else { if (_master != null) { if (_master.cSld.Bg != null) { if (null != _master.cSld.Bg.bgPr) { _back_fill = _master.cSld.Bg.bgPr.Fill; } else { if (_master.cSld.Bg.bgRef != null) { _master.cSld.Bg.bgRef.Color.Calculate(_theme, this, _layout, _master, RGBA); RGBA = _master.cSld.Bg.bgRef.Color.RGBA; _back_fill = _theme.themeElements.fmtScheme.GetFillStyle(_master.cSld.Bg.bgRef.idx); } } } else { _back_fill = new CUniFill(); _back_fill.fill = new CSolidFill(); _back_fill.fill.color.color = new CRGBColor(); _back_fill.fill.color.color.RGBA = { R: 255, G: 255, B: 255, A: 255 }; } } } } } if (_back_fill != null) { _back_fill.calculate(_theme, this, _layout, _master, RGBA); } return _back_fill; }; this.draw = function (graphics) { var _back_fill = this.getBackground(); DrawBackground(graphics, _back_fill, 0, 0, this.Width, this.Height); if (this.showMasterSp || (this.showMasterSp === undefined && (this.Layout.showMasterSp === undefined || this.Layout.showMasterSp))) { this.Layout.Master.draw(graphics); } this.Layout.draw(graphics); for (var i = 0; i < this.elementsManipulator.ArrGlyph.length; ++i) { this.elementsManipulator.ArrGlyph[i].Draw(graphics); } }; this.Undo = function (data) { data.undo_function.call(this, data); }; this.Redo = function (data) { data.redo_function.call(this, data); }; this.changeBg = function (bg) { var historyData = {}; historyData.old_bg = this.cSld.Bg; historyData.new_bg = bg; historyData.undo_function = function (data) { this.cSld.Bg = data.old_bg; this.elementsManipulator.DrawingDocument.OnRecalculatePage(this.num, this); }; historyData.undo_function = function (data) { this.cSld.Bg = data.new_bg; this.elementsManipulator.DrawingDocument.OnRecalculatePage(this.num, this); }; this.cSld.Bg = bg; this.elementsManipulator.DrawingDocument.OnRecalculatePage(this.num, this); }; this.OnMouseDown = function (e, X, Y) { this.elementsManipulator.OnMouseDown(e, X, Y, this.SlideNum); }; this.OnMouseMove = function (e, X, Y) { this.elementsManipulator.OnMouseMove(e, X, Y, this.SlideNum); }; this.OnMouseUp = function (e, X, Y) { this.elementsManipulator.OnMouseUp(e, X, Y, this.SlideNum); }; } var VERTICAL_ANCHOR_TYPE_BOTTOM = 0; var VERTICAL_ANCHOR_TYPE_CENTER = 1; var VERTICAL_ANCHOR_TYPE_DISTRIBUTED = 2; var VERTICAL_ANCHOR_TYPE_JUSTIFIED = 3; var VERTICAL_ANCHOR_TYPE_TOP = 4; var nOTClip = 0; var nOTEllipsis = 1; var nOTOwerflow = 2; var nTextATB = 0; var nTextATCtr = 1; var nTextATDist = 2; var nTextATJust = 3; var nTextATT = 4; var nVertTTeaVert = 0; var nVertTThorz = 1; var nVertTTmongolianVert = 2; var nVertTTvert = 3; var nVertTTvert270 = 4; var nVertTTwordArtVert = 5; var nVertTTwordArtVertRtl = 6; var nTWTNone = 0; var nTWTSquare = 1; var text_fit_No = 0; var text_fit_Auto = 1; var text_fit_NormAuto = 2; function CTextFit() { this.type = 0; this.fontScale = null; this.lnSpcReduction = null; } CTextFit.prototype = { CreateDublicate: function () { var d = new CTextFit(); d.type = this.type; d.fontScale = this.fontScale; d.lnSpcReduction = this.lnSpcReduction; return d; } }; function CBodyPr() { this.flatTx = null; this.anchor = null; this.anchorCtr = null; this.bIns = null; this.compatLnSpc = null; this.forceAA = null; this.fromWordArt = null; this.horzOverflow = null; this.lIns = null; this.numCol = null; this.rIns = null; this.rot = null; this.rtlCol = null; this.spcCol = null; this.spcFirstLastPara = null; this.tIns = null; this.upright = null; this.vert = null; this.vertOverflow = null; this.wrap = null; this.textFit = null; this.Write_ToBinary2 = function (w) { var flag = this.flatTx != null; w.WriteBool(flag); if (flag) { w.WriteLong(this.flatTx); } flag = this.anchor != null; w.WriteBool(flag); if (flag) { w.WriteLong(this.anchor); } flag = this.anchorCtr != null; w.WriteBool(flag); if (flag) { w.WriteBool(this.anchorCtr); } flag = this.bIns != null; w.WriteBool(flag); if (flag) { w.WriteDouble(this.bIns); } flag = this.compatLnSpc != null; w.WriteBool(flag); if (flag) { w.WriteBool(this.compatLnSpc); } flag = this.forceAA != null; w.WriteBool(flag); if (flag) { w.WriteBool(this.forceAA); } flag = this.fromWordArt != null; w.WriteBool(flag); if (flag) { w.WriteBool(this.fromWordArt); } flag = this.horzOverflow != null; w.WriteBool(flag); if (flag) { w.WriteLong(this.horzOverflow); } flag = this.lIns != null; w.WriteBool(flag); if (flag) { w.WriteDouble(this.lIns); } flag = this.numCol != null; w.WriteBool(flag); if (flag) { w.WriteLong(this.numCol); } flag = this.rIns != null; w.WriteBool(flag); if (flag) { w.WriteDouble(this.rIns); } flag = this.rot != null; w.WriteBool(flag); if (flag) { w.WriteDouble(this.rot); } flag = this.rtlCol != null; w.WriteBool(flag); if (flag) { w.WriteBool(this.rtlCol); } flag = this.spcCol != null; w.WriteBool(flag); if (flag) { w.WriteBool(this.spcCol); } flag = this.spcFirstLastPara != null; w.WriteBool(flag); if (flag) { w.WriteBool(this.spcFirstLastPara); } flag = this.tIns != null; w.WriteBool(flag); if (flag) { w.WriteDouble(this.tIns); } flag = this.upright != null; w.WriteBool(flag); if (flag) { w.WriteBool(this.upright); } flag = this.vert != null; w.WriteBool(flag); if (flag) { w.WriteLong(this.vert); } flag = this.vertOverflow != null; w.WriteBool(flag); if (flag) { w.WriteLong(this.vertOverflow); } flag = this.wrap != null; w.WriteBool(flag); if (flag) { w.WriteLong(this.wrap); } }; this.Read_FromBinary2 = function (r) { var flag = r.GetBool(); if (flag) { this.flatTx = r.GetLong(); } flag = r.GetBool(); if (flag) { this.anchor = r.GetLong(); } flag = r.GetBool(); if (flag) { this.anchorCtr = r.GetBool(); } flag = r.GetBool(); if (flag) { this.bIns = r.GetDouble(); } flag = r.GetBool(); if (flag) { this.compatLnSpc = r.GetBool(); } flag = r.GetBool(); if (flag) { this.forceAA = r.GetBool(); } flag = r.GetBool(); if (flag) { this.fromWordArt = r.GetBool(); } flag = r.GetBool(); if (flag) { this.horzOverflow = r.GetLong(); } flag = r.GetBool(); if (flag) { this.lIns = r.GetDouble(); } flag = r.GetBool(); if (flag) { this.numCol = r.GetLong(); } flag = r.GetBool(); if (flag) { this.rIns = r.GetDouble(); } flag = r.GetBool(); if (flag) { this.rot = r.GetDouble(); } flag = r.GetBool(); if (flag) { this.rtlCol = r.GetBool(); } flag = r.GetBool(); if (flag) { this.spcCol = r.GetBool(); } flag = r.GetBool(); if (flag) { this.spcFirstLastPara = r.GetBool(); } flag = r.GetBool(); if (flag) { this.tIns = r.GetDouble(); } flag = r.GetBool(); if (flag) { this.upright = r.GetBool(); } flag = r.GetBool(); if (flag) { this.vert = r.GetLong(); } flag = r.GetBool(); if (flag) { this.vertOverflow = r.GetLong(); } flag = r.GetBool(); if (flag) { this.wrap = r.GetLong(); } }; this.setDefault = function () { this.flatTx = null; this.anchor = VERTICAL_ANCHOR_TYPE_CENTER; this.anchorCtr = false; this.bIns = 45720 / 36000; this.compatLnSpc = false; this.forceAA = false; this.fromWordArt = false; this.horzOverflow = nOTOwerflow; this.lIns = 91440 / 36000; this.numCol = 1; this.rIns = 91440 / 36000; this.rot = null; this.rtlCol = false; this.spcCol = false; this.spcFirstLastPara = null; this.tIns = 45720 / 36000; this.upright = false; this.vert = nVertTThorz; this.vertOverflow = nOTOwerflow; this.wrap = nTWTSquare; }; this.setChartTitleInsets = function () { this.rIns = 0.3; this.lIns = 0.3; this.tIns = 0.3; this.bIns = 0; }; this.setVert = function (vert) { this.vert = vert; }; this.createDuplicate = function () { var duplicate = new CBodyPr(); duplicate.flatTx = this.flatTx; duplicate.anchor = this.anchor; duplicate.anchorCtr = this.anchorCtr; duplicate.bIns = this.bIns; duplicate.compatLnSpc = this.compatLnSpc; duplicate.forceAA = this.forceAA; duplicate.fromWordArt = this.fromWordArt; duplicate.horzOverflow = this.horzOverflow; duplicate.lIns = this.lIns; duplicate.rIns = this.rIns; duplicate.rot = this.rot; duplicate.rtlCol = this.rtlCol; duplicate.spcCol = this.spcCol; duplicate.spcFirstLastPara = this.spcFirstLastPara; duplicate.tIns = this.tIns; duplicate.upright = this.upright; duplicate.vert = this.vert; duplicate.vertOverflow = this.vertOverflow; duplicate.wrap = this.wrap; return duplicate; }; this.merge = function (bodyPr) { if (bodyPr.flatTx != null) { this.flatTx = bodyPr.flatTx; } if (bodyPr.anchor != null) { this.anchor = bodyPr.anchor; } if (bodyPr.anchorCtr != null) { this.anchorCtr = bodyPr.anchorCtr; } if (bodyPr.bIns != null) { this.bIns = bodyPr.bIns; } if (bodyPr.compatLnSpc != null) { this.compatLnSpc = bodyPr.compatLnSpc; } if (bodyPr.forceAA != null) { this.forceAA = bodyPr.forceAA; } if (bodyPr.fromWordArt != null) { this.fromWordArt = bodyPr.fromWordArt; } if (bodyPr.horzOverflow != null) { this.horzOverflow = bodyPr.horzOverflow; } if (bodyPr.lIns != null) { this.lIns = bodyPr.lIns; } if (bodyPr.rIns != null) { this.rIns = bodyPr.rIns; } if (bodyPr.rot != null) { this.rot = bodyPr.rot; } if (bodyPr.rtlCol != null) { this.rtlCol = bodyPr.rtlCol; } if (bodyPr.spcCol != null) { this.spcCol = bodyPr.spcCol; } if (bodyPr.spcFirstLastPara != null) { this.spcFirstLastPara = bodyPr.spcFirstLastPara; } if (bodyPr.tIns != null) { this.tIns = bodyPr.tIns; } if (bodyPr.upright != null) { this.upright = bodyPr.upright; } if (bodyPr.vert != null) { this.vert = bodyPr.vert; } if (bodyPr.vertOverflow != null) { this.vertOverflow = bodyPr.vertOverflow; } if (bodyPr.wrap != null) { this.wrap = bodyPr.wrap; } }; } function CHyperlink() { this.url = ""; this.action = ""; } function CTextParagraphPr() { this.bullet = new CBullet(); this.lvl = null; this.pPr = new CParaPr(); this.rPr = null; this.createDuplicate = function () { var duplicate = new CTextParagraphPr(); duplicate.bullet = this.bullet.createDuplicate(); duplicate.lvl = this.lvl; duplicate.pPr = clone(this.pPr); duplicate.rPr = clone(this.rPr); return duplicate; }; } function CBullet() { this.bulletColor = null; this.bulletSize = null; this.bulletTypeface = null; this.bulletType = null; this.Bullet = null; this.createDuplicate = function () { var duplicate = new CBullet(); if (this.bulletColor) { duplicate.bulletColor = this.bulletColor.createDuplicate(); } if (this.bulletSize) { duplicate.bulletSize = this.bulletSize.createDuplicate(); } if (this.bulletTypeface) { duplicate.bulletTypeface = this.bulletTypeface.createDuplicate(); } if (this.bulletType) { duplicate.bulletType = this.bulletType.createDuplicate(); } duplicate.Bullet = this.Bullet; return duplicate; }; this.isBullet = function () { return this.bulletType != null && this.bulletType.type != null; }; } var BULLET_TYPE_COLOR_NONE = 0; var BULLET_TYPE_COLOR_CLRTX = 1; var BULLET_TYPE_COLOR_CLR = 2; function CBulletColor() { this.type = BULLET_TYPE_COLOR_NONE; this.UniColor = null; this.createDuplicate = function () { var duplicate = new CBulletColor(); duplicate.type = this.type; if (this.UniColor != null) { duplicate.UniColor = this.UniColor.createDuplicate(); } return duplicate; }; } var BULLET_TYPE_SIZE_NONE = 0; var BULLET_TYPE_SIZE_TX = 1; var BULLET_TYPE_SIZE_PCT = 2; var BULLET_TYPE_SIZE_PTS = 3; function CBulletSize() { this.type = BULLET_TYPE_SIZE_NONE; this.val = 0; this.createDuplicate = function () { var d = new CBulletSize(); d.type = this.type; d.val = this.val; return d; }; } var BULLET_TYPE_TYPEFACE_NONE = 0; var BULLET_TYPE_TYPEFACE_TX = 1; var BULLET_TYPE_TYPEFACE_BUFONT = 2; function CBulletTypeface() { this.type = BULLET_TYPE_TYPEFACE_NONE; this.typeface = ""; this.createDuplicate = function () { var d = new CBulletTypeface(); d.type = this.type; d.typeface = this.typeface; return d; }; } var BULLET_TYPE_BULLET_NONE = 0; var BULLET_TYPE_BULLET_CHAR = 1; var BULLET_TYPE_BULLET_AUTONUM = 2; var BULLET_TYPE_BULLET_BLIP = 3; function CBulletType() { this.type = null; this.Char = "*"; this.AutoNumType = 0; this.startAt = 1; this.createDuplicate = function () { var d = new CBulletType(); d.type = this.type; d.Char = this.Char; d.AutoNumType = this.AutoNumType; d.startAt = this.startAt; return d; }; } function TextListStyle() { this.levels = new Array(10); for (var i = 0; i < 10; i++) { this.levels[i] = null; } this.createDuplicate = function () { var duplicate = new TextListStyle(); for (var i = 0; i < 10; ++i) { if (this.levels[i] != null) { duplicate.levels[i] = this.levels[i].createDuplicate(); } } return duplicate; }; } function CPresParagraph() { this.textPr = null; this.endRunPr = null; this.Content = []; this.createDuplicate = function () { var duplicate = new CPresParagraph(); duplicate.textPr = clone(this.textPr); duplicate.endRunPr = clone(this.endRunPr); duplicate.Content = clone(this.Content); return duplicate; }; } function copyParagraph(paragraph, parent) { var copy = new Paragraph(paragraph.DrawingDocument, parent, 0, 0, 0, 0, 0); if (paragraph.bullet) { copy.bullet = paragraph.bullet.createDuplicate(); } copy.Pr = clone(paragraph.Pr); copy.rPr = clone(paragraph.rPr); for (var i = 0, n = paragraph.Content.length; i < n; ++i) { copy.Content[i] = paragraph.Content[i].createDuplicate(); } return copy; } var PARRUN_TYPE_NONE = 0; var PARRUN_TYPE_RUN = 1; var PARRUN_TYPE_FLD = 2; var PARRUN_TYPE_BR = 3; function GenerateDefaultTheme(presentation) { var theme = new CTheme(); theme.presentation = presentation; theme.themeElements.fontScheme.majorFont.latin = "Arial"; theme.themeElements.fontScheme.minorFont.latin = "Arial"; var scheme = theme.themeElements.clrScheme; scheme.colors[8] = CreateUniColorRGB(0, 0, 0); scheme.colors[12] = CreateUniColorRGB(255, 255, 255); scheme.colors[9] = CreateUniColorRGB(31, 73, 125); scheme.colors[13] = CreateUniColorRGB(238, 236, 225); scheme.colors[0] = CreateUniColorRGB(79, 129, 189); scheme.colors[1] = CreateUniColorRGB(192, 80, 77); scheme.colors[2] = CreateUniColorRGB(155, 187, 89); scheme.colors[3] = CreateUniColorRGB(128, 100, 162); scheme.colors[4] = CreateUniColorRGB(75, 172, 198); scheme.colors[5] = CreateUniColorRGB(247, 150, 70); scheme.colors[11] = CreateUniColorRGB(0, 0, 255); scheme.colors[10] = CreateUniColorRGB(128, 0, 128); var brush = new CUniFill(); brush.fill = new CSolidFill(); brush.fill.color = new CUniColor(); brush.fill.color.color = new CSchemeColor(); brush.fill.color.color.id = phClr; theme.themeElements.fmtScheme.fillStyleLst.push(brush); brush = new CUniFill(); brush.fill = new CSolidFill(); brush.fill.color = new CUniColor(); brush.fill.color.color = CreateUniColorRGB(0, 0, 0); theme.themeElements.fmtScheme.fillStyleLst.push(brush); brush = new CUniFill(); brush.fill = new CSolidFill(); brush.fill.color = new CUniColor(); brush.fill.color.color = CreateUniColorRGB(0, 0, 0); theme.themeElements.fmtScheme.fillStyleLst.push(brush); brush = new CUniFill(); brush.fill = new CSolidFill(); brush.fill.color = new CUniColor(); brush.fill.color.color = new CSchemeColor(); brush.fill.color.color.id = phClr; theme.themeElements.fmtScheme.bgFillStyleLst.push(brush); brush = new CUniFill(); brush.fill = new CSolidFill(); brush.fill.color = new CUniColor(); brush.fill.color.color = CreateUniColorRGB(0, 0, 0); theme.themeElements.fmtScheme.bgFillStyleLst.push(brush); brush = new CUniFill(); brush.fill = new CSolidFill(); brush.fill.color = new CUniColor(); brush.fill.color.color = CreateUniColorRGB(0, 0, 0); theme.themeElements.fmtScheme.bgFillStyleLst.push(brush); var pen = new CLn(); pen.w = 9525; pen.Fill = new CUniFill(); pen.Fill.fill = new CSolidFill(); pen.Fill.fill.color = new CUniColor(); pen.Fill.fill.color.color = new CSchemeColor(); pen.Fill.fill.color.color.id = phClr; pen.Fill.fill.color.Mods.Mods.push({ name: "shade", val: 95000 }); pen.Fill.fill.color.Mods.Mods.push({ name: "satMod", val: 105000 }); theme.themeElements.fmtScheme.lnStyleLst.push(pen); pen = new CLn(); pen.w = 25400; pen.Fill = new CUniFill(); pen.Fill.fill = new CSolidFill(); pen.Fill.fill.color = new CUniColor(); pen.Fill.fill.color.color = new CSchemeColor(); pen.Fill.fill.color.color.id = phClr; theme.themeElements.fmtScheme.lnStyleLst.push(pen); pen = new CLn(); pen.w = 38100; pen.Fill = new CUniFill(); pen.Fill.fill = new CSolidFill(); pen.Fill.fill.color = new CUniColor(); pen.Fill.fill.color.color = new CSchemeColor(); pen.Fill.fill.color.color.id = phClr; theme.themeElements.fmtScheme.lnStyleLst.push(pen); theme.extraClrSchemeLst = new Array(); return theme; } function GenerateDefaultColorMap() { var clrMap = new ClrMap(); clrMap.color_map[0] = 0; clrMap.color_map[1] = 1; clrMap.color_map[2] = 2; clrMap.color_map[3] = 3; clrMap.color_map[4] = 4; clrMap.color_map[5] = 5; clrMap.color_map[10] = 10; clrMap.color_map[11] = 11; clrMap.color_map[6] = 12; clrMap.color_map[7] = 13; clrMap.color_map[15] = 8; clrMap.color_map[16] = 9; return clrMap; } function GenerateDefaultMasterSlide(theme) { var master = new MasterSlide(theme.presentation, theme); master.Theme = theme; master.sldLayoutLst[0] = GenerateDefaultSlideLayout(master); return master; } function GenerateDefaultSlideLayout(master) { var layout = new SlideLayout(master); layout.Theme = master.Theme; return layout; } function GenerateDefaultSlide(layout) { var slide = new Slide(layout.Master.presentation, layout, 0); slide.Master = layout.Master; slide.Theme = layout.Master.Theme; return slide; }