From d3748cdd940eabac5e1fa408164366a3e8b04eef Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Mon, 24 Oct 2016 13:58:34 +0300 Subject: [PATCH 1/5] [DE][SSE] 1 call of fillEquations. --- apps/documenteditor/main/app/controller/Toolbar.js | 2 +- apps/spreadsheeteditor/main/app/controller/Main.js | 1 + apps/spreadsheeteditor/main/app/controller/Toolbar.js | 2 +- apps/spreadsheeteditor/main/app/template/Toolbar.template | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/documenteditor/main/app/controller/Toolbar.js b/apps/documenteditor/main/app/controller/Toolbar.js index a38741c38..8ed872111 100644 --- a/apps/documenteditor/main/app/controller/Toolbar.js +++ b/apps/documenteditor/main/app/controller/Toolbar.js @@ -2198,7 +2198,7 @@ define([ }, fillEquations: function() { - if (!this.toolbar.btnInsertEquation.rendered) return; + if (!this.toolbar.btnInsertEquation.rendered || this.toolbar.btnInsertEquation.menu.items.length>0) return; var me = this, equationsStore = this.getApplication().getCollection('EquationGroups'); diff --git a/apps/spreadsheeteditor/main/app/controller/Main.js b/apps/spreadsheeteditor/main/app/controller/Main.js index 72472d56f..41d842f24 100644 --- a/apps/spreadsheeteditor/main/app/controller/Main.js +++ b/apps/spreadsheeteditor/main/app/controller/Main.js @@ -77,6 +77,7 @@ define([ models: [], collections: [ 'ShapeGroups', + 'EquationGroups', 'TableTemplates', 'Common.Collections.TextArt' ], diff --git a/apps/spreadsheeteditor/main/app/controller/Toolbar.js b/apps/spreadsheeteditor/main/app/controller/Toolbar.js index 83c256d72..362db1612 100644 --- a/apps/spreadsheeteditor/main/app/controller/Toolbar.js +++ b/apps/spreadsheeteditor/main/app/controller/Toolbar.js @@ -2054,7 +2054,7 @@ define([ }, fillEquations: function() { - if (!this.toolbar.btnInsertEquation.rendered) return; + if (!this.toolbar.btnInsertEquation.rendered || this.toolbar.btnInsertEquation.menu.items.length>0) return; var me = this, equationsStore = this.getApplication().getCollection('EquationGroups'); diff --git a/apps/spreadsheeteditor/main/app/template/Toolbar.template b/apps/spreadsheeteditor/main/app/template/Toolbar.template index 201a58329..45a6cf555 100644 --- a/apps/spreadsheeteditor/main/app/template/Toolbar.template +++ b/apps/spreadsheeteditor/main/app/template/Toolbar.template @@ -223,7 +223,7 @@
- +
From 381e886ef92801da8b280fd6525495a4f915f7b2 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Mon, 24 Oct 2016 14:56:11 +0300 Subject: [PATCH 2/5] [SSE] Context menu for equations. --- .../main/app/controller/DocumentHolder.js | 714 +++++++++++++++++- .../main/app/controller/Toolbar.js | 6 +- .../main/app/view/DocumentHolder.js | 5 + .../main/app/view/Toolbar.js | 59 +- 4 files changed, 746 insertions(+), 38 deletions(-) diff --git a/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js b/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js index 828c754c1..c5f0f1127 100644 --- a/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js +++ b/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js @@ -78,6 +78,8 @@ define([ me.popupmenu = false; me.rangeSelectionMode = false; me.namedrange_locked = false; + me._currentMathObj = undefined; + me._currentParaObjDisabled = false; /** coauthoring begin **/ this.wrapEvents = { @@ -1194,7 +1196,8 @@ define([ documentHolder.pmiTextAdvanced.textInfo = undefined; - var selectedObjects = this.api.asc_getGraphicObjectProps(); + var selectedObjects = this.api.asc_getGraphicObjectProps(), + isEquation = false; for (var i = 0; i < selectedObjects.length; i++) { var elType = selectedObjects[i].asc_getObjectType(); @@ -1213,6 +1216,9 @@ define([ } else if (elType == Asc.c_oAscTypeSelectElement.Paragraph) { documentHolder.pmiTextAdvanced.textInfo = selectedObjects[i].asc_getObjectValue(); isObjLocked = isObjLocked || documentHolder.pmiTextAdvanced.textInfo.asc_getLocked(); + } else if (elType == Asc.c_oAscTypeSelectElement.Math) { + this._currentMathObj = selectedObjects[i].asc_getObjectValue(); + isEquation = true; } } @@ -1221,13 +1227,24 @@ define([ documentHolder.menuHyperlinkShape.setVisible(istextshapemenu && can_add_hyperlink!==false && hyperinfo); documentHolder.menuAddHyperlinkShape.setVisible(istextshapemenu && can_add_hyperlink!==false && !hyperinfo); - documentHolder.menuParagraphVAlign.setVisible(istextchartmenu!==true); // убрать после того, как заголовок можно будет растягивать по вертикали!! - documentHolder.menuParagraphDirection.setVisible(istextchartmenu!==true); // убрать после того, как заголовок можно будет растягивать по вертикали!! + documentHolder.menuParagraphVAlign.setVisible(istextchartmenu!==true && !isEquation); // убрать после того, как заголовок можно будет растягивать по вертикали!! + documentHolder.menuParagraphDirection.setVisible(istextchartmenu!==true && !isEquation); // убрать после того, как заголовок можно будет растягивать по вертикали!! documentHolder.pmiTextAdvanced.setVisible(documentHolder.pmiTextAdvanced.textInfo!==undefined); + _.each(documentHolder.textInShapeMenu.items, function(item) { item.setDisabled(isObjLocked); }); documentHolder.pmiTextCopy.setDisabled(false); + + //equation menu + var eqlen = 0; + this._currentParaObjDisabled = isObjLocked; + if (isEquation) { + eqlen = this.addEquationMenu(4); + } else + this.clearEquationMenu(4); + documentHolder.menuEquationSeparator.setVisible(isEquation && eqlen>0); + if (showMenu) this.showPopupMenu(documentHolder.textInShapeMenu, {}, event); documentHolder.textInShapeMenu.items[3].setVisible( documentHolder.menuHyperlinkShape.isVisible() || documentHolder.menuAddHyperlinkShape.isVisible() || @@ -1543,6 +1560,624 @@ define([ this.namedrange_locked = (state == Asc.c_oAscDefinedNameReason.LockDefNameManager); }, + initEquationMenu: function() { + if (!me._currentMathObj) return; + var me = this, + type = me._currentMathObj.get_Type(), + value = me._currentMathObj, + mnu, arr = []; + + switch (type) { + case Asc.c_oAscMathInterfaceType.Accent: + mnu = new Common.UI.MenuItem({ + caption : me.txtRemoveAccentChar, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'remove_AccentCharacter'} + }); + arr.push(mnu); + break; + case Asc.c_oAscMathInterfaceType.BorderBox: + mnu = new Common.UI.MenuItem({ + caption : me.txtBorderProps, + equation : true, + disabled : me._currentParaObjDisabled, + menu : new Common.UI.Menu({ + menuAlign: 'tl-tr', + items : [ + { + caption: value.get_HideTop() ? me.txtAddTop : me.txtHideTop, + equationProps: {type: type, callback: 'put_HideTop', value: !value.get_HideTop()} + }, + { + caption: value.get_HideBottom() ? me.txtAddBottom : me.txtHideBottom, + equationProps: {type: type, callback: 'put_HideBottom', value: !value.get_HideBottom()} + }, + { + caption: value.get_HideLeft() ? me.txtAddLeft : me.txtHideLeft, + equationProps: {type: type, callback: 'put_HideLeft', value: !value.get_HideLeft()} + }, + { + caption: value.get_HideRight() ? me.txtAddRight : me.txtHideRight, + equationProps: {type: type, callback: 'put_HideRight', value: !value.get_HideRight()} + }, + { + caption: value.get_HideHor() ? me.txtAddHor : me.txtHideHor, + equationProps: {type: type, callback: 'put_HideHor', value: !value.get_HideHor()} + }, + { + caption: value.get_HideVer() ? me.txtAddVer : me.txtHideVer, + equationProps: {type: type, callback: 'put_HideVer', value: !value.get_HideVer()} + }, + { + caption: value.get_HideTopLTR() ? me.txtAddLT : me.txtHideLT, + equationProps: {type: type, callback: 'put_HideTopLTR', value: !value.get_HideTopLTR()} + }, + { + caption: value.get_HideTopRTL() ? me.txtAddLB : me.txtHideLB, + equationProps: {type: type, callback: 'put_HideTopRTL', value: !value.get_HideTopRTL()} + } + ] + }) + }); + arr.push(mnu); + break; + case Asc.c_oAscMathInterfaceType.Bar: + mnu = new Common.UI.MenuItem({ + caption : me.txtRemoveBar, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'remove_Bar'} + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : (value.get_Pos()==Asc.c_oAscMathInterfaceBarPos.Top) ? me.txtUnderbar : me.txtOverbar, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_Pos', value: (value.get_Pos()==Asc.c_oAscMathInterfaceBarPos.Top) ? Asc.c_oAscMathInterfaceBarPos.Bottom : Asc.c_oAscMathInterfaceBarPos.Top} + }); + arr.push(mnu); + break; + case Asc.c_oAscMathInterfaceType.Script: + var scripttype = value.get_ScriptType(); + if (scripttype == Asc.c_oAscMathInterfaceScript.PreSubSup) { + mnu = new Common.UI.MenuItem({ + caption : me.txtScriptsAfter, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_ScriptType', value: Asc.c_oAscMathInterfaceScript.SubSup} + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : me.txtRemScripts, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_ScriptType', value: Asc.c_oAscMathInterfaceScript.None} + }); + arr.push(mnu); + } else { + if (scripttype == Asc.c_oAscMathInterfaceScript.SubSup) { + mnu = new Common.UI.MenuItem({ + caption : me.txtScriptsBefore, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_ScriptType', value: Asc.c_oAscMathInterfaceScript.PreSubSup} + }); + arr.push(mnu); + } + if (scripttype == Asc.c_oAscMathInterfaceScript.SubSup || scripttype == Asc.c_oAscMathInterfaceScript.Sub ) { + mnu = new Common.UI.MenuItem({ + caption : me.txtRemSubscript, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_ScriptType', value: (scripttype == Asc.c_oAscMathInterfaceScript.SubSup) ? Asc.c_oAscMathInterfaceScript.Sup : Asc.c_oAscMathInterfaceScript.None } + }); + arr.push(mnu); + } + if (scripttype == Asc.c_oAscMathInterfaceScript.SubSup || scripttype == Asc.c_oAscMathInterfaceScript.Sup ) { + mnu = new Common.UI.MenuItem({ + caption : me.txtRemSuperscript, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_ScriptType', value: (scripttype == Asc.c_oAscMathInterfaceScript.SubSup) ? Asc.c_oAscMathInterfaceScript.Sub : Asc.c_oAscMathInterfaceScript.None } + }); + arr.push(mnu); + } + } + break; + case Asc.c_oAscMathInterfaceType.Fraction: + var fraction = value.get_FractionType(); + if (fraction==Asc.c_oAscMathInterfaceFraction.Skewed || fraction==Asc.c_oAscMathInterfaceFraction.Linear) { + mnu = new Common.UI.MenuItem({ + caption : me.txtFractionStacked, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_FractionType', value: Asc.c_oAscMathInterfaceFraction.Bar} + }); + arr.push(mnu); + } + if (fraction==Asc.c_oAscMathInterfaceFraction.Bar || fraction==Asc.c_oAscMathInterfaceFraction.Linear) { + mnu = new Common.UI.MenuItem({ + caption : me.txtFractionSkewed, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_FractionType', value: Asc.c_oAscMathInterfaceFraction.Skewed} + }); + arr.push(mnu); + } + if (fraction==Asc.c_oAscMathInterfaceFraction.Bar || fraction==Asc.c_oAscMathInterfaceFraction.Skewed) { + mnu = new Common.UI.MenuItem({ + caption : me.txtFractionLinear, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_FractionType', value: Asc.c_oAscMathInterfaceFraction.Linear} + }); + arr.push(mnu); + } + if (fraction==Asc.c_oAscMathInterfaceFraction.Bar || fraction==Asc.c_oAscMathInterfaceFraction.NoBar) { + mnu = new Common.UI.MenuItem({ + caption : (fraction==Asc.c_oAscMathInterfaceFraction.Bar) ? me.txtRemFractionBar : me.txtAddFractionBar, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_FractionType', value: (fraction==Asc.c_oAscMathInterfaceFraction.Bar) ? Asc.c_oAscMathInterfaceFraction.NoBar : Asc.c_oAscMathInterfaceFraction.Bar} + }); + arr.push(mnu); + } + break; + case Asc.c_oAscMathInterfaceType.Limit: + mnu = new Common.UI.MenuItem({ + caption : (value.get_Pos()==Asc.c_oAscMathInterfaceLimitPos.Top) ? me.txtLimitUnder : me.txtLimitOver, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_Pos', value: (value.get_Pos()==Asc.c_oAscMathInterfaceLimitPos.Top) ? Asc.c_oAscMathInterfaceLimitPos.Bottom : Asc.c_oAscMathInterfaceLimitPos.Top} + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : me.txtRemLimit, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_Pos', value: Asc.c_oAscMathInterfaceLimitPos.None} + }); + arr.push(mnu); + break; + case Asc.c_oAscMathInterfaceType.Matrix: + mnu = new Common.UI.MenuItem({ + caption : value.get_HidePlaceholder() ? me.txtShowPlaceholder : me.txtHidePlaceholder, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_HidePlaceholder', value: !value.get_HidePlaceholder()} + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : me.insertText, + equation : true, + disabled : me._currentParaObjDisabled, + menu : new Common.UI.Menu({ + menuAlign: 'tl-tr', + items : [ + { + caption: me.insertRowAboveText, + equationProps: {type: type, callback: 'insert_MatrixRow', value: true} + }, + { + caption: me.insertRowBelowText, + equationProps: {type: type, callback: 'insert_MatrixRow', value: false} + }, + { + caption: me.insertColumnLeftText, + equationProps: {type: type, callback: 'insert_MatrixColumn', value: true} + }, + { + caption: me.insertColumnRightText, + equationProps: {type: type, callback: 'insert_MatrixColumn', value: false} + } + ] + }) + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : me.deleteText, + equation : true, + disabled : me._currentParaObjDisabled, + menu : new Common.UI.Menu({ + menuAlign: 'tl-tr', + items : [ + { + caption: me.deleteRowText, + equationProps: {type: type, callback: 'delete_MatrixRow'} + }, + { + caption: me.deleteColumnText, + equationProps: {type: type, callback: 'delete_MatrixColumn'} + } + ] + }) + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : me.txtMatrixAlign, + equation : true, + disabled : me._currentParaObjDisabled, + menu : new Common.UI.Menu({ + menuAlign: 'tl-tr', + items : [ + { + caption: me.txtTop, + checkable : true, + checked : (value.get_MatrixAlign()==Asc.c_oAscMathInterfaceMatrixMatrixAlign.Top), + equationProps: {type: type, callback: 'put_MatrixAlign', value: Asc.c_oAscMathInterfaceMatrixMatrixAlign.Top} + }, + { + caption: me.centerText, + checkable : true, + checked : (value.get_MatrixAlign()==Asc.c_oAscMathInterfaceMatrixMatrixAlign.Center), + equationProps: {type: type, callback: 'put_MatrixAlign', value: Asc.c_oAscMathInterfaceMatrixMatrixAlign.Center} + }, + { + caption: me.txtBottom, + checkable : true, + checked : (value.get_MatrixAlign()==Asc.c_oAscMathInterfaceMatrixMatrixAlign.Bottom), + equationProps: {type: type, callback: 'put_MatrixAlign', value: Asc.c_oAscMathInterfaceMatrixMatrixAlign.Bottom} + } + ] + }) + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : me.txtColumnAlign, + equation : true, + disabled : me._currentParaObjDisabled, + menu : new Common.UI.Menu({ + menuAlign: 'tl-tr', + items : [ + { + caption: me.leftText, + checkable : true, + checked : (value.get_ColumnAlign()==Asc.c_oAscMathInterfaceMatrixColumnAlign.Left), + equationProps: {type: type, callback: 'put_ColumnAlign', value: Asc.c_oAscMathInterfaceMatrixColumnAlign.Left} + }, + { + caption: me.centerText, + checkable : true, + checked : (value.get_ColumnAlign()==Asc.c_oAscMathInterfaceMatrixColumnAlign.Center), + equationProps: {type: type, callback: 'put_ColumnAlign', value: Asc.c_oAscMathInterfaceMatrixColumnAlign.Center} + }, + { + caption: me.rightText, + checkable : true, + checked : (value.get_ColumnAlign()==Asc.c_oAscMathInterfaceMatrixColumnAlign.Right), + equationProps: {type: type, callback: 'put_ColumnAlign', value: Asc.c_oAscMathInterfaceMatrixColumnAlign.Right} + } + ] + }) + }); + arr.push(mnu); + break; + case Asc.c_oAscMathInterfaceType.EqArray: + mnu = new Common.UI.MenuItem({ + caption : me.txtInsertEqBefore, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'insert_Equation', value: true} + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : me.txtInsertEqAfter, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'insert_Equation', value: false} + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : me.txtDeleteEq, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'delete_Equation'} + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : me.alignmentText, + equation : true, + disabled : me._currentParaObjDisabled, + menu : new Common.UI.Menu({ + menuAlign: 'tl-tr', + items : [ + { + caption: me.txtTop, + checkable : true, + checked : (value.get_Align()==Asc.c_oAscMathInterfaceEqArrayAlign.Top), + equationProps: {type: type, callback: 'put_Align', value: Asc.c_oAscMathInterfaceEqArrayAlign.Top} + }, + { + caption: me.centerText, + checkable : true, + checked : (value.get_Align()==Asc.c_oAscMathInterfaceEqArrayAlign.Center), + equationProps: {type: type, callback: 'put_Align', value: Asc.c_oAscMathInterfaceEqArrayAlign.Center} + }, + { + caption: me.txtBottom, + checkable : true, + checked : (value.get_Align()==Asc.c_oAscMathInterfaceEqArrayAlign.Bottom), + equationProps: {type: type, callback: 'put_Align', value: Asc.c_oAscMathInterfaceEqArrayAlign.Bottom} + } + ] + }) + }); + arr.push(mnu); + break; + case Asc.c_oAscMathInterfaceType.LargeOperator: + mnu = new Common.UI.MenuItem({ + caption : me.txtLimitChange, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_LimitLocation', value: (value.get_LimitLocation() == Asc.c_oAscMathInterfaceNaryLimitLocation.UndOvr) ? Asc.c_oAscMathInterfaceNaryLimitLocation.SubSup : Asc.c_oAscMathInterfaceNaryLimitLocation.UndOvr} + }); + arr.push(mnu); + if (value.get_HideUpper() !== undefined) { + mnu = new Common.UI.MenuItem({ + caption : value.get_HideUpper() ? me.txtShowTopLimit : me.txtHideTopLimit, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_HideUpper', value: !value.get_HideUpper()} + }); + arr.push(mnu); + } + if (value.get_HideLower() !== undefined) { + mnu = new Common.UI.MenuItem({ + caption : value.get_HideLower() ? me.txtShowBottomLimit : me.txtHideBottomLimit, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_HideLower', value: !value.get_HideLower()} + }); + arr.push(mnu); + } + break; + case Asc.c_oAscMathInterfaceType.Delimiter: + mnu = new Common.UI.MenuItem({ + caption : me.txtInsertArgBefore, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'insert_DelimiterArgument', value: true} + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : me.txtInsertArgAfter, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'insert_DelimiterArgument', value: false} + }); + arr.push(mnu); + if (value.can_DeleteArgument()) { + mnu = new Common.UI.MenuItem({ + caption : me.txtDeleteArg, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'delete_DelimiterArgument'} + }); + arr.push(mnu); + } + mnu = new Common.UI.MenuItem({ + caption : value.has_Separators() ? me.txtDeleteCharsAndSeparators : me.txtDeleteChars, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'remove_DelimiterCharacters'} + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : value.get_HideOpeningBracket() ? me.txtShowOpenBracket : me.txtHideOpenBracket, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_HideOpeningBracket', value: !value.get_HideOpeningBracket()} + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : value.get_HideClosingBracket() ? me.txtShowCloseBracket : me.txtHideCloseBracket, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_HideClosingBracket', value: !value.get_HideClosingBracket()} + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : me.txtStretchBrackets, + equation : true, + disabled : me._currentParaObjDisabled, + checkable : true, + checked : value.get_StretchBrackets(), + equationProps: {type: type, callback: 'put_StretchBrackets', value: !value.get_StretchBrackets()} + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : me.txtMatchBrackets, + equation : true, + disabled : (!value.get_StretchBrackets() || me._currentParaObjDisabled), + checkable : true, + checked : value.get_StretchBrackets() && value.get_MatchBrackets(), + equationProps: {type: type, callback: 'put_MatchBrackets', value: !value.get_MatchBrackets()} + }); + arr.push(mnu); + break; + case Asc.c_oAscMathInterfaceType.GroupChar: + if (value.can_ChangePos()) { + mnu = new Common.UI.MenuItem({ + caption : (value.get_Pos()==Asc.c_oAscMathInterfaceGroupCharPos.Top) ? me.txtGroupCharUnder : me.txtGroupCharOver, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_Pos', value: (value.get_Pos()==Asc.c_oAscMathInterfaceGroupCharPos.Top) ? Asc.c_oAscMathInterfaceGroupCharPos.Bottom : Asc.c_oAscMathInterfaceGroupCharPos.Top} + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : me.txtDeleteGroupChar, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_Pos', value: Asc.c_oAscMathInterfaceGroupCharPos.None} + }); + arr.push(mnu); + } + break; + case Asc.c_oAscMathInterfaceType.Radical: + if (value.get_HideDegree() !== undefined) { + mnu = new Common.UI.MenuItem({ + caption : value.get_HideDegree() ? me.txtShowDegree : me.txtHideDegree, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_HideDegree', value: !value.get_HideDegree()} + }); + arr.push(mnu); + } + mnu = new Common.UI.MenuItem({ + caption : me.txtDeleteRadical, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'remove_Radical'} + }); + arr.push(mnu); + break; + } + if (value.can_IncreaseArgumentSize()) { + mnu = new Common.UI.MenuItem({ + caption : me.txtIncreaseArg, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'increase_ArgumentSize'} + }); + arr.push(mnu); + } + if (value.can_DecreaseArgumentSize()) { + mnu = new Common.UI.MenuItem({ + caption : me.txtDecreaseArg, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'decrease_ArgumentSize'} + }); + arr.push(mnu); + } + if (value.can_InsertManualBreak()) { + mnu = new Common.UI.MenuItem({ + caption : me.txtInsertBreak, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'insert_ManualBreak'} + }); + arr.push(mnu); + } + if (value.can_DeleteManualBreak()) { + mnu = new Common.UI.MenuItem({ + caption : me.txtDeleteBreak, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'delete_ManualBreak'} + }); + arr.push(mnu); + } + if (value.can_AlignToCharacter()) { + mnu = new Common.UI.MenuItem({ + caption : me.txtAlignToChar, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'align_ToCharacter'} + }); + arr.push(mnu); + } + return arr; + }, + + addEquationMenu: function(insertIdx) { + var me = this; + + me.clearEquationMenu(insertIdx); + + var equationMenu = me.documentHolder.textInShapeMenu, + menuItems = me.initEquationMenu(); + + if (menuItems.length > 0) { + _.each(menuItems, function(menuItem, index) { + if (menuItem.menu) { + _.each(menuItem.menu.items, function(item) { + item.on('click', _.bind(me.equationCallback, me, item.options.equationProps)); + }); + } else + menuItem.on('click', _.bind(me.equationCallback, me, menuItem.options.equationProps)); + equationMenu.insertItem(insertIdx, menuItem); + insertIdx++; + }); + } + return menuItems.length; + }, + + clearEquationMenu: function(insertIdx) { + var me = this; + var equationMenu = me.documentHolder.textInShapeMenu; + for (var i = insertIdx; i < equationMenu.items.length; i++) { + if (equationMenu.items[i].options.equation) { + if (equationMenu.items[i].menu) { + _.each(equationMenu.items[i].menu.items, function(item) { + item.off('click'); + }); + } else + equationMenu.items[i].off('click'); + equationMenu.removeItem(equationMenu.items[i]); + i--; + } else + break; + } + }, + + equationCallback: function(eqProps) { + var me = this; + if (eqProps) { + var eqObj; + switch (eqProps.type) { + case Asc.c_oAscMathInterfaceType.Accent: + eqObj = new CMathMenuAccent(); + break; + case Asc.c_oAscMathInterfaceType.BorderBox: + eqObj = new CMathMenuBorderBox(); + break; + case Asc.c_oAscMathInterfaceType.Box: + eqObj = new CMathMenuBox(); + break; + case Asc.c_oAscMathInterfaceType.Bar: + eqObj = new CMathMenuBar(); + break; + case Asc.c_oAscMathInterfaceType.Script: + eqObj = new CMathMenuScript(); + break; + case Asc.c_oAscMathInterfaceType.Fraction: + eqObj = new CMathMenuFraction(); + break; + case Asc.c_oAscMathInterfaceType.Limit: + eqObj = new CMathMenuLimit(); + break; + case Asc.c_oAscMathInterfaceType.Matrix: + eqObj = new CMathMenuMatrix(); + break; + case Asc.c_oAscMathInterfaceType.EqArray: + eqObj = new CMathMenuEqArray(); + break; + case Asc.c_oAscMathInterfaceType.LargeOperator: + eqObj = new CMathMenuNary(); + break; + case Asc.c_oAscMathInterfaceType.Delimiter: + eqObj = new CMathMenuDelimiter(); + break; + case Asc.c_oAscMathInterfaceType.GroupChar: + eqObj = new CMathMenuGroupCharacter(); + break; + case Asc.c_oAscMathInterfaceType.Radical: + eqObj = new CMathMenuRadical(); + break; + case Asc.c_oAscMathInterfaceType.Common: + eqObj = new CMathMenuBase(); + break; + } + if (eqObj) { + eqObj[eqProps.callback](eqProps.value); + me.api.asc_SetMathProps(eqObj); + } + } + Common.NotificationCenter.trigger('edit:complete', me.documentHolder); + }, + guestText : 'Guest', textCtrlClick : 'Press CTRL and click link', txtHeight : 'Height', @@ -1554,7 +2189,78 @@ define([ textInsertTop : 'Insert Top', textSym : 'sym', notcriticalErrorTitle: 'Warning', - errorInvalidLink: 'The link reference does not exist. Please correct the link or delete it.' + errorInvalidLink: 'The link reference does not exist. Please correct the link or delete it.', + txtRemoveAccentChar: 'Remove accent character', + txtBorderProps: 'Borders property', + txtHideTop: 'Hide top border', + txtHideBottom: 'Hide bottom border', + txtHideLeft: 'Hide left border', + txtHideRight: 'Hide right border', + txtHideHor: 'Hide horizontal line', + txtHideVer: 'Hide vertical line', + txtHideLT: 'Hide left top line', + txtHideLB: 'Hide left bottom line', + txtAddTop: 'Add top border', + txtAddBottom: 'Add bottom border', + txtAddLeft: 'Add left border', + txtAddRight: 'Add right border', + txtAddHor: 'Add horizontal line', + txtAddVer: 'Add vertical line', + txtAddLT: 'Add left top line', + txtAddLB: 'Add left bottom line', + txtRemoveBar: 'Remove bar', + txtOverbar: 'Bar over text', + txtUnderbar: 'Bar under text', + txtRemScripts: 'Remove scripts', + txtRemSubscript: 'Remove subscript', + txtRemSuperscript: 'Remove superscript', + txtScriptsAfter: 'Scripts after text', + txtScriptsBefore: 'Scripts before text', + txtFractionStacked: 'Change to stacked fraction', + txtFractionSkewed: 'Change to skewed fraction', + txtFractionLinear: 'Change to linear fraction', + txtRemFractionBar: 'Remove fraction bar', + txtAddFractionBar: 'Add fraction bar', + txtRemLimit: 'Remove limit', + txtLimitOver: 'Limit over text', + txtLimitUnder: 'Limit under text', + txtHidePlaceholder: 'Hide placeholder', + txtShowPlaceholder: 'Show placeholder', + txtMatrixAlign: 'Matrix alignment', + txtColumnAlign: 'Column alignment', + txtTop: 'Top', + txtBottom: 'Bottom', + txtInsertEqBefore: 'Insert equation before', + txtInsertEqAfter: 'Insert equation after', + txtDeleteEq: 'Delete equation', + txtLimitChange: 'Change limits location', + txtHideTopLimit: 'Hide top limit', + txtShowTopLimit: 'Show top limit', + txtHideBottomLimit: 'Hide bottom limit', + txtShowBottomLimit: 'Show bottom limit', + txtInsertArgBefore: 'Insert argument before', + txtInsertArgAfter: 'Insert argument after', + txtDeleteArg: 'Delete argument', + txtHideOpenBracket: 'Hide opening bracket', + txtShowOpenBracket: 'Show opening bracket', + txtHideCloseBracket: 'Hide closing bracket', + txtShowCloseBracket: 'Show closing bracket', + txtStretchBrackets: 'Stretch brackets', + txtMatchBrackets: 'Match brackets to argument height', + txtGroupCharOver: 'Char over text', + txtGroupCharUnder: 'Char under text', + txtDeleteGroupChar: 'Delete char', + txtHideDegree: 'Hide degree', + txtShowDegree: 'Show degree', + txtIncreaseArg: 'Increase argument size', + txtDecreaseArg: 'Decrease argument size', + txtInsertBreak: 'Insert manual break', + txtDeleteBreak: 'Delete manual break', + txtAlignToChar: 'Align to character', + txtDeleteRadical: 'Delete radical', + txtDeleteChars: 'Delete enclosing characters', + txtDeleteCharsAndSeparators: 'Delete enclosing characters and separators' + }, SSE.Controllers.DocumentHolder || {})); }); \ No newline at end of file diff --git a/apps/spreadsheeteditor/main/app/controller/Toolbar.js b/apps/spreadsheeteditor/main/app/controller/Toolbar.js index 362db1612..759679f5d 100644 --- a/apps/spreadsheeteditor/main/app/controller/Toolbar.js +++ b/apps/spreadsheeteditor/main/app/controller/Toolbar.js @@ -2296,8 +2296,7 @@ define([ is_shape_text = seltype == Asc.c_oAscSelectionType.RangeShapeText, is_shape = seltype == Asc.c_oAscSelectionType.RangeShape, is_image = seltype == Asc.c_oAscSelectionType.RangeImage, - is_equation = seltype == Asc.c_oAscSelectionType.RangeMath, - is_mode_2 = is_shape_text || is_shape || is_chart_text || is_chart || is_equation; + is_mode_2 = is_shape_text || is_shape || is_chart_text || is_chart; if ( coauth_disable ) { toolbar.lockToolbar(SSE.enumLock.coAuth, coauth_disable); @@ -2310,7 +2309,6 @@ define([ case Asc.c_oAscSelectionType.RangeShapeText: type = _set.selShapeText; break; case Asc.c_oAscSelectionType.RangeChart: type = _set.selChart; break; case Asc.c_oAscSelectionType.RangeChartText: type = _set.selChartText; break; - case Asc.c_oAscSelectionType.RangeMath: type = _set.selEquation; break; } toolbar.lockToolbar(type, type != seltype, { @@ -2325,7 +2323,7 @@ define([ toolbar.mnuitemClearFilter ], merge: true, - clear: [_set.selImage, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selEquation, _set.coAuth] + clear: [_set.selImage, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.coAuth] }); } diff --git a/apps/spreadsheeteditor/main/app/view/DocumentHolder.js b/apps/spreadsheeteditor/main/app/view/DocumentHolder.js index c2df2c638..f58c608ef 100644 --- a/apps/spreadsheeteditor/main/app/view/DocumentHolder.js +++ b/apps/spreadsheeteditor/main/app/view/DocumentHolder.js @@ -558,12 +558,17 @@ define([ value : 'paste' }); + me.menuEquationSeparator = new Common.UI.MenuItem({ + caption : '--' + }); + this.textInShapeMenu = new Common.UI.Menu({ items: [ me.pmiTextCut, me.pmiTextCopy, me.pmiTextPaste, {caption: '--'}, + me.menuEquationSeparator, me.menuParagraphVAlign, me.menuParagraphDirection, me.menuAddHyperlinkShape, diff --git a/apps/spreadsheeteditor/main/app/view/Toolbar.js b/apps/spreadsheeteditor/main/app/view/Toolbar.js index 1804a5a24..0279c464b 100644 --- a/apps/spreadsheeteditor/main/app/view/Toolbar.js +++ b/apps/spreadsheeteditor/main/app/view/Toolbar.js @@ -75,8 +75,7 @@ define([ ruleFilter: 'rule-filter', ruleDelFilter: 'rule-clear-filter', menuFileOpen: 'menu-file-open', - cantPrint: 'cant-print', - selEquation: 'sel-equation' + cantPrint: 'cant-print' }; SSE.Views.Toolbar = Backbone.View.extend(_.extend({ @@ -326,7 +325,7 @@ define([ icls : 'btn-border-out', borderId : 'outer', borderswidth: 'thin', - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selEquation, _set.lostConnect, _set.coAuth], + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth], split : true, menu : true }); @@ -374,7 +373,7 @@ define([ enableToggle: true, allowDepress: true, split : true, - lock : [_set.editCell, _set.selShape, _set.selShapeText, _set.selChart, _set.selChartText, _set.selImage, _set.selEquation, _set.lostConnect, _set.coAuth, _set.ruleMerge], + lock : [_set.editCell, _set.selShape, _set.selShapeText, _set.selChart, _set.selChartText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleMerge], menu : new Common.UI.Menu({ items: [ { @@ -428,7 +427,7 @@ define([ id : 'id-toolbar-rtn-wrap', cls : 'btn-toolbar', iconCls : 'btn-wrap', - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selEquation, _set.lostConnect, _set.coAuth], + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth], enableToggle: true, allowDepress: true }); @@ -437,7 +436,7 @@ define([ id : 'id-toolbar-rtn-textorient', cls : 'btn-toolbar', iconCls : 'btn-text-orient', - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selEquation, _set.lostConnect, _set.coAuth], + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth], menu : new Common.UI.Menu({ items: [ { @@ -561,21 +560,21 @@ define([ id : 'id-toolbar-btn-sort-down', cls : 'btn-toolbar', iconCls : 'btn-sort-down', - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selEquation, _set.lostConnect, _set.coAuth, _set.ruleFilter] + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleFilter] }); me.btnSortUp = new Common.UI.Button({ id : 'id-toolbar-btn-sort-up', cls : 'btn-toolbar', iconCls : 'btn-sort-up', - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selEquation, _set.lostConnect, _set.coAuth, _set.ruleFilter] + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleFilter] }); me.btnSetAutofilter = new Common.UI.Button({ id : 'id-toolbar-btn-setautofilter', cls : 'btn-toolbar', iconCls : 'btn-autofilter', - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selEquation, _set.lostConnect, _set.coAuth, _set.ruleFilter], + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleFilter], enableToggle: true }); @@ -583,7 +582,7 @@ define([ id : 'id-toolbar-btn-clearfilter', cls : 'btn-toolbar', iconCls : 'btn-clear-filter', - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selEquation, _set.lostConnect, _set.coAuth, _set.ruleDelFilter] + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleDelFilter] }); me.btnSearch = new Common.UI.Button({ @@ -597,7 +596,7 @@ define([ id : 'id-toolbar-btn-ttempl', cls : 'btn-toolbar', iconCls : 'btn-ttempl', - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selEquation, _set.lostConnect, _set.coAuth, _set.ruleFilter], + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleFilter], menu : new Common.UI.Menu({ items: [ { template: _.template('
') } @@ -612,7 +611,7 @@ define([ itemHeight : 38, hint : this.tipCellStyle, menuMaxHeight : 226, - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selEquation, _set.lostConnect, _set.coAuth], + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth], beforeOpenHandler: function(e) { var cmp = this, menu = cmp.openButton.menu, @@ -648,7 +647,7 @@ define([ cls : 'btn-toolbar btn-text-value', caption : me.txtGeneral, style : 'width: 100%;', - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selRange, _set.selEquation, _set.lostConnect, _set.coAuth], + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selRange, _set.lostConnect, _set.coAuth], menu : true }); @@ -656,7 +655,7 @@ define([ id : 'id-toolbar-btn-percent-style', cls : 'btn-toolbar', iconCls : 'btn-percent-style', - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selEquation, _set.lostConnect, _set.coAuth], + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth], styleName : 'Percent' }); @@ -664,7 +663,7 @@ define([ id : 'id-toolbar-btn-accounting-style', cls : 'btn-toolbar', iconCls : 'btn-currency-style', - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selEquation, _set.lostConnect, _set.coAuth], + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth], styleName : 'Currency', split : true, menu : new Common.UI.Menu({ @@ -698,14 +697,14 @@ define([ id : 'id-toolbar-btn-decdecimal', cls : 'btn-toolbar', iconCls : 'btn-decdecimal', - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selEquation, _set.lostConnect, _set.coAuth] + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth] }); me.btnIncDecimal = new Common.UI.Button({ id : 'id-toolbar-btn-incdecimal', cls : 'btn-toolbar', iconCls : 'btn-incdecimal', - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selEquation, _set.lostConnect, _set.coAuth] + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth] }); me.btnInsertFormula = new Common.UI.Button({ @@ -713,7 +712,7 @@ define([ cls : 'btn-toolbar', iconCls : 'btn-formula', split : true, - lock : [_set.editText, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selRange, _set.selEquation, _set.lostConnect, _set.coAuth], + lock : [_set.editText, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selRange, _set.lostConnect, _set.coAuth], menu : new Common.UI.Menu({ style : 'min-width: 110px', items : [ @@ -734,7 +733,7 @@ define([ id : 'id-toolbar-btn-insertrange', cls : 'btn-toolbar', iconCls : 'btn-named-range', - lock : [_set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selEquation, _set.lostConnect, _set.coAuth, _set.selRange], + lock : [_set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.selRange], menu : new Common.UI.Menu({ style : 'min-width: 110px', items : [ @@ -770,22 +769,22 @@ define([ }, { caption : me.txtClearText, - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selEquation, _set.coAuth], + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.coAuth], value : Asc.c_oAscCleanOptions.Text }, { caption : me.txtClearFormat, - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selEquation, _set.coAuth], + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.coAuth], value : Asc.c_oAscCleanOptions.Format }, { caption : me.txtClearComments, - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selEquation, _set.coAuth], + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.coAuth], value : Asc.c_oAscCleanOptions.Comments }, { caption : me.txtClearHyper, - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selEquation, _set.coAuth], + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.coAuth], value : Asc.c_oAscCleanOptions.Hyperlinks } ] @@ -804,7 +803,7 @@ define([ id : 'id-toolbar-btn-addcell', cls : 'btn-toolbar', iconCls : 'btn-addcell', - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selEquation, _set.lostConnect, _set.coAuth], + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth], menu : new Common.UI.Menu({ items : [ { @@ -831,7 +830,7 @@ define([ id : 'id-toolbar-btn-delcell', cls : 'btn-toolbar', iconCls : 'btn-delcell', - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selEquation, _set.lostConnect, _set.coAuth], + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth], menu : new Common.UI.Menu({ items : [ { @@ -1021,32 +1020,32 @@ define([ id : 'id-toolbar-btn-autofilter', cls : 'btn-toolbar', iconCls : 'btn-autofilter', - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selEquation, _set.lostConnect, _set.coAuth, _set.ruleFilter], + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.lostConnect, _set.coAuth, _set.ruleFilter], menu : new Common.UI.Menu({ items : [ me.mnuitemSortAZ = new Common.UI.MenuItem({ caption : me.txtSortAZ, iconCls : 'mnu-sort-asc', - lock : [_set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selEquation, _set.coAuth, _set.ruleFilter], + lock : [_set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.coAuth, _set.ruleFilter], value : Asc.c_oAscSortOptions.Ascending }), me.mnuitemSortZA = new Common.UI.MenuItem({ caption : me.txtSortZA, iconCls : 'mnu-sort-desc', - lock : [_set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selEquation, _set.coAuth, _set.ruleFilter], + lock : [_set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.coAuth, _set.ruleFilter], value : Asc.c_oAscSortOptions.Descending }), me.mnuitemAutoFilter = new Common.UI.MenuItem({ caption : me.txtFilter, iconCls : 'mnu-filter-add', checkable: true, - lock : [_set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selEquation, _set.coAuth, _set.ruleFilter], + lock : [_set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.coAuth, _set.ruleFilter], value : 'set-filter' }), me.mnuitemClearFilter = new Common.UI.MenuItem({ caption : me.txtClearFilter, iconCls : 'mnu-filter-clear', - lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.selEquation, _set.coAuth, _set.ruleDelFilter], + lock : [_set.editCell, _set.selChart, _set.selChartText, _set.selShape, _set.selShapeText, _set.selImage, _set.coAuth, _set.ruleDelFilter], value : 'clear-filter' }) /*,{ From 65251b5250a3ecb25b8ae624fc576a2ce8c373fd Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Mon, 24 Oct 2016 16:40:06 +0300 Subject: [PATCH 3/5] [SSE] Debug equations. --- .../main/app/controller/DocumentHolder.js | 5 ++--- .../main/app/view/DocumentHolder.js | 5 ----- .../main/resources/img/toolbar/math.png | Bin 0 -> 38982 bytes .../main/resources/img/toolbar/math@2x.png | Bin 0 -> 97624 bytes .../main/resources/less/toolbar.less | 5 +++++ 5 files changed, 7 insertions(+), 8 deletions(-) create mode 100644 apps/spreadsheeteditor/main/resources/img/toolbar/math.png create mode 100644 apps/spreadsheeteditor/main/resources/img/toolbar/math@2x.png diff --git a/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js b/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js index c5f0f1127..2735950b0 100644 --- a/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js +++ b/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js @@ -1243,12 +1243,11 @@ define([ eqlen = this.addEquationMenu(4); } else this.clearEquationMenu(4); - documentHolder.menuEquationSeparator.setVisible(isEquation && eqlen>0); if (showMenu) this.showPopupMenu(documentHolder.textInShapeMenu, {}, event); documentHolder.textInShapeMenu.items[3].setVisible( documentHolder.menuHyperlinkShape.isVisible() || documentHolder.menuAddHyperlinkShape.isVisible() || - documentHolder.menuParagraphVAlign.isVisible()); + documentHolder.menuParagraphVAlign.isVisible() || isEquation); } else if (!this.permissions.isEditMailMerge && !this.permissions.isEditDiagram || (seltype !== Asc.c_oAscSelectionType.RangeImage && seltype !== Asc.c_oAscSelectionType.RangeShape && seltype !== Asc.c_oAscSelectionType.RangeChart && seltype !== Asc.c_oAscSelectionType.RangeChartText && seltype !== Asc.c_oAscSelectionType.RangeShapeText)) { if (!showMenu && !documentHolder.ssMenu.isVisible()) return; @@ -1561,7 +1560,7 @@ define([ }, initEquationMenu: function() { - if (!me._currentMathObj) return; + if (!this._currentMathObj) return; var me = this, type = me._currentMathObj.get_Type(), value = me._currentMathObj, diff --git a/apps/spreadsheeteditor/main/app/view/DocumentHolder.js b/apps/spreadsheeteditor/main/app/view/DocumentHolder.js index f58c608ef..c2df2c638 100644 --- a/apps/spreadsheeteditor/main/app/view/DocumentHolder.js +++ b/apps/spreadsheeteditor/main/app/view/DocumentHolder.js @@ -558,17 +558,12 @@ define([ value : 'paste' }); - me.menuEquationSeparator = new Common.UI.MenuItem({ - caption : '--' - }); - this.textInShapeMenu = new Common.UI.Menu({ items: [ me.pmiTextCut, me.pmiTextCopy, me.pmiTextPaste, {caption: '--'}, - me.menuEquationSeparator, me.menuParagraphVAlign, me.menuParagraphDirection, me.menuAddHyperlinkShape, diff --git a/apps/spreadsheeteditor/main/resources/img/toolbar/math.png b/apps/spreadsheeteditor/main/resources/img/toolbar/math.png new file mode 100644 index 0000000000000000000000000000000000000000..173efd6f9f2544203c25b5b3fccdda6fe2dc742d GIT binary patch literal 38982 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�}_FB>1(IL1A{`6WMyYu>CAJ9cqfT7!bWwcK*) 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 literal 0 HcmV?d00001 diff --git a/apps/spreadsheeteditor/main/resources/img/toolbar/math@2x.png b/apps/spreadsheeteditor/main/resources/img/toolbar/math@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c3ca01890251e5b5a6891296a3e78719d3c89994 GIT binary patch literal 97624 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�oI9wY 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

S@y+G|fre?)gHEJZx;?wGLy<|mrOL^=f%*LOUz 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 literal 0 HcmV?d00001 diff --git a/apps/spreadsheeteditor/main/resources/less/toolbar.less b/apps/spreadsheeteditor/main/resources/less/toolbar.less index 568bcb470..7b060baac 100644 --- a/apps/spreadsheeteditor/main/resources/less/toolbar.less +++ b/apps/spreadsheeteditor/main/resources/less/toolbar.less @@ -253,3 +253,8 @@ margin-bottom: -2px; } } + +.item-equation { + border: 1px solid @gray; + .background-ximage('@{app-image-path}/toolbar/math.png', '@{app-image-path}/toolbar/math@2x.png', 1500px); +} From 0a853a9c0d3b7642d97adb1b26aee58b2f19b87a Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Mon, 24 Oct 2016 17:04:34 +0300 Subject: [PATCH 4/5] [SSE] Added translations for equations. --- apps/spreadsheeteditor/main/locale/en.json | 398 +++++++++++++++++++++ 1 file changed, 398 insertions(+) diff --git a/apps/spreadsheeteditor/main/locale/en.json b/apps/spreadsheeteditor/main/locale/en.json index 167a1dca4..92f7f6ebd 100644 --- a/apps/spreadsheeteditor/main/locale/en.json +++ b/apps/spreadsheeteditor/main/locale/en.json @@ -111,6 +111,76 @@ "SSE.Controllers.DocumentHolder.txtHeight": "Height", "SSE.Controllers.DocumentHolder.txtRowHeight": "Row Height", "SSE.Controllers.DocumentHolder.txtWidth": "Width", + "SSE.Controllers.DocumentHolder.txtRemoveAccentChar": "Remove accent character", + "SSE.Controllers.DocumentHolder.txtBorderProps": "Borders property", + "SSE.Controllers.DocumentHolder.txtHideTop": "Hide top border", + "SSE.Controllers.DocumentHolder.txtHideBottom": "Hide bottom border", + "SSE.Controllers.DocumentHolder.txtHideLeft": "Hide left border", + "SSE.Controllers.DocumentHolder.txtHideRight": "Hide right border", + "SSE.Controllers.DocumentHolder.txtHideHor": "Hide horizontal line", + "SSE.Controllers.DocumentHolder.txtHideVer": "Hide vertical line", + "SSE.Controllers.DocumentHolder.txtHideLT": "Hide left top line", + "SSE.Controllers.DocumentHolder.txtHideLB": "Hide left bottom line", + "SSE.Controllers.DocumentHolder.txtAddTop": "Add top border", + "SSE.Controllers.DocumentHolder.txtAddBottom": "Add bottom border", + "SSE.Controllers.DocumentHolder.txtAddLeft": "Add left border", + "SSE.Controllers.DocumentHolder.txtAddRight": "Add right border", + "SSE.Controllers.DocumentHolder.txtAddHor": "Add horizontal line", + "SSE.Controllers.DocumentHolder.txtAddVer": "Add vertical line", + "SSE.Controllers.DocumentHolder.txtAddLT": "Add left top line", + "SSE.Controllers.DocumentHolder.txtAddLB": "Add left bottom line", + "SSE.Controllers.DocumentHolder.txtRemoveBar": "Remove bar", + "SSE.Controllers.DocumentHolder.txtOverbar": "Bar over text", + "SSE.Controllers.DocumentHolder.txtUnderbar": "Bar under text", + "SSE.Controllers.DocumentHolder.txtRemScripts": "Remove scripts", + "SSE.Controllers.DocumentHolder.txtRemSubscript": "Remove subscript", + "SSE.Controllers.DocumentHolder.txtRemSuperscript": "Remove superscript", + "SSE.Controllers.DocumentHolder.txtScriptsAfter": "Scripts after text", + "SSE.Controllers.DocumentHolder.txtScriptsBefore": "Scripts before text", + "SSE.Controllers.DocumentHolder.txtFractionStacked": "Change to stacked fraction", + "SSE.Controllers.DocumentHolder.txtFractionSkewed": "Change to skewed fraction", + "SSE.Controllers.DocumentHolder.txtFractionLinear": "Change to linear fraction", + "SSE.Controllers.DocumentHolder.txtRemFractionBar": "Remove fraction bar", + "SSE.Controllers.DocumentHolder.txtAddFractionBar": "Add fraction bar", + "SSE.Controllers.DocumentHolder.txtRemLimit": "Remove limit", + "SSE.Controllers.DocumentHolder.txtLimitOver": "Limit over text", + "SSE.Controllers.DocumentHolder.txtLimitUnder": "Limit under text", + "SSE.Controllers.DocumentHolder.txtHidePlaceholder": "Hide placeholder", + "SSE.Controllers.DocumentHolder.txtShowPlaceholder": "Show placeholder", + "SSE.Controllers.DocumentHolder.txtMatrixAlign": "Matrix alignment", + "SSE.Controllers.DocumentHolder.txtColumnAlign": "Column alignment", + "SSE.Controllers.DocumentHolder.txtTop": "Top", + "SSE.Controllers.DocumentHolder.txtBottom": "Bottom", + "SSE.Controllers.DocumentHolder.txtInsertEqBefore": "Insert equation before", + "SSE.Controllers.DocumentHolder.txtInsertEqAfter": "Insert equation after", + "SSE.Controllers.DocumentHolder.txtDeleteEq": "Delete equation", + "SSE.Controllers.DocumentHolder.txtLimitChange": "Change limits location", + "SSE.Controllers.DocumentHolder.txtHideTopLimit": "Hide top limit", + "SSE.Controllers.DocumentHolder.txtShowTopLimit": "Show top limit", + "SSE.Controllers.DocumentHolder.txtHideBottomLimit": "Hide bottom limit", + "SSE.Controllers.DocumentHolder.txtShowBottomLimit": "Show bottom limit", + "SSE.Controllers.DocumentHolder.txtInsertArgBefore": "Insert argument before", + "SSE.Controllers.DocumentHolder.txtInsertArgAfter": "Insert argument after", + "SSE.Controllers.DocumentHolder.txtDeleteArg": "Delete argument", + "SSE.Controllers.DocumentHolder.txtHideOpenBracket": "Hide opening bracket", + "SSE.Controllers.DocumentHolder.txtShowOpenBracket": "Show opening bracket", + "SSE.Controllers.DocumentHolder.txtHideCloseBracket": "Hide closing bracket", + "SSE.Controllers.DocumentHolder.txtShowCloseBracket": "Show closing bracket", + "SSE.Controllers.DocumentHolder.txtStretchBrackets": "Stretch brackets", + "SSE.Controllers.DocumentHolder.txtMatchBrackets": "Match brackets to argument height", + "SSE.Controllers.DocumentHolder.txtGroupCharOver": "Char over text", + "SSE.Controllers.DocumentHolder.txtGroupCharUnder": "Char under text", + "SSE.Controllers.DocumentHolder.txtDeleteGroupChar": "Delete char", + "SSE.Controllers.DocumentHolder.txtHideDegree": "Hide degree", + "SSE.Controllers.DocumentHolder.txtShowDegree": "Show degree", + "SSE.Controllers.DocumentHolder.txtIncreaseArg": "Increase argument size", + "SSE.Controllers.DocumentHolder.txtDecreaseArg": "Decrease argument size", + "SSE.Controllers.DocumentHolder.txtInsertBreak": "Insert manual break", + "SSE.Controllers.DocumentHolder.txtDeleteBreak": "Delete manual break", + "SSE.Controllers.DocumentHolder.txtAlignToChar": "Align to character", + "SSE.Controllers.DocumentHolder.txtDeleteRadical": "Delete radical", + "SSE.Controllers.DocumentHolder.txtDeleteChars": "Delete enclosing characters", + "SSE.Controllers.DocumentHolder.txtDeleteCharsAndSeparators": "Delete enclosing characters and separators", "SSE.Controllers.LeftMenu.newDocumentTitle": "Unnamed spreadsheet", "SSE.Controllers.LeftMenu.textByColumns": "By columns", "SSE.Controllers.LeftMenu.textByRows": "By rows", @@ -258,6 +328,334 @@ "SSE.Controllers.Toolbar.textFontSizeErr": "The entered value is incorrect.
Please enter a numeric value between 1 and 409", "SSE.Controllers.Toolbar.textWarning": "Warning", "SSE.Controllers.Toolbar.warnMergeLostData": "Only the data from the upper-left cell will remain in the merged cell.
Are you sure you want to continue?", + "SSE.Controllers.Toolbar.textAccent": "Accents", + "SSE.Controllers.Toolbar.textBracket": "Brackets", + "SSE.Controllers.Toolbar.textFraction": "Fractions", + "SSE.Controllers.Toolbar.textFunction": "Functions", + "SSE.Controllers.Toolbar.textIntegral": "Integrals", + "SSE.Controllers.Toolbar.textLargeOperator": "Large Operators", + "SSE.Controllers.Toolbar.textLimitAndLog": "Limits And Logarithms", + "SSE.Controllers.Toolbar.textMatrix": "Matrices", + "SSE.Controllers.Toolbar.textOperator": "Operators", + "SSE.Controllers.Toolbar.textRadical": "Radicals", + "SSE.Controllers.Toolbar.textScript": "Scripts", + "SSE.Controllers.Toolbar.textSymbols": "Symbols", + "SSE.Controllers.Toolbar.txtAccent_Accent": "Acute", + "SSE.Controllers.Toolbar.txtAccent_ArrowD": "Right-Left Arrow Above", + "SSE.Controllers.Toolbar.txtAccent_ArrowL": "Leftwards Arrow Above", + "SSE.Controllers.Toolbar.txtAccent_ArrowR": "Rightwards Arrow Above", + "SSE.Controllers.Toolbar.txtAccent_Bar": "Bar", + "SSE.Controllers.Toolbar.txtAccent_BarBot": "Underbar", + "SSE.Controllers.Toolbar.txtAccent_BarTop": "Overbar", + "SSE.Controllers.Toolbar.txtAccent_BorderBox": "Boxed Formula (With Placeholder)", + "SSE.Controllers.Toolbar.txtAccent_BorderBoxCustom": "Boxed Formula(Example)", + "SSE.Controllers.Toolbar.txtAccent_Check": "Check", + "SSE.Controllers.Toolbar.txtAccent_CurveBracketBot": "Underbrace", + "SSE.Controllers.Toolbar.txtAccent_CurveBracketTop": "Overbrace", + "SSE.Controllers.Toolbar.txtAccent_Custom_1": "Vector A", + "SSE.Controllers.Toolbar.txtAccent_Custom_2": "ABC With Overbar", + "SSE.Controllers.Toolbar.txtAccent_Custom_3": "x XOR y With Overbar", + "SSE.Controllers.Toolbar.txtAccent_DDDot": "Triple Dot", + "SSE.Controllers.Toolbar.txtAccent_DDot": "Double Dot", + "SSE.Controllers.Toolbar.txtAccent_Dot": "Dot", + "SSE.Controllers.Toolbar.txtAccent_DoubleBar": "Double Overbar", + "SSE.Controllers.Toolbar.txtAccent_Grave": "Grave", + "SSE.Controllers.Toolbar.txtAccent_GroupBot": "Grouping Character Below", + "SSE.Controllers.Toolbar.txtAccent_GroupTop": "Grouping Character Above", + "SSE.Controllers.Toolbar.txtAccent_HarpoonL": "Leftwards Harpoon Above", + "SSE.Controllers.Toolbar.txtAccent_HarpoonR": "Rightwards Harpoon Above", + "SSE.Controllers.Toolbar.txtAccent_Hat": "Hat", + "SSE.Controllers.Toolbar.txtAccent_Smile": "Breve", + "SSE.Controllers.Toolbar.txtAccent_Tilde": "Tilde", + "SSE.Controllers.Toolbar.txtBracket_Angle": "Brackets", + "SSE.Controllers.Toolbar.txtBracket_Angle_Delimiter_2": "Brackets with Separators", + "SSE.Controllers.Toolbar.txtBracket_Angle_Delimiter_3": "Brackets with Separators", + "SSE.Controllers.Toolbar.txtBracket_Angle_NoneOpen": "Single Bracket", + "SSE.Controllers.Toolbar.txtBracket_Angle_OpenNone": "Single Bracket", + "SSE.Controllers.Toolbar.txtBracket_Curve": "Brackets", + "SSE.Controllers.Toolbar.txtBracket_Curve_Delimiter_2": "Brackets with Separators", + "SSE.Controllers.Toolbar.txtBracket_Curve_NoneOpen": "Single Bracket", + "SSE.Controllers.Toolbar.txtBracket_Curve_OpenNone": "Single Bracket", + "SSE.Controllers.Toolbar.txtBracket_Custom_1": "Cases (Two Conditions)", + "SSE.Controllers.Toolbar.txtBracket_Custom_2": "Cases (Three Conditions)", + "SSE.Controllers.Toolbar.txtBracket_Custom_3": "Stack Object", + "SSE.Controllers.Toolbar.txtBracket_Custom_4": "Stack Object", + "SSE.Controllers.Toolbar.txtBracket_Custom_5": "Cases Example", + "SSE.Controllers.Toolbar.txtBracket_Custom_6": "Binomial Coefficient", + "SSE.Controllers.Toolbar.txtBracket_Custom_7": "Binomial Coefficient", + "SSE.Controllers.Toolbar.txtBracket_Line": "Brackets", + "SSE.Controllers.Toolbar.txtBracket_Line_NoneOpen": "Single Bracket", + "SSE.Controllers.Toolbar.txtBracket_Line_OpenNone": "Single Bracket", + "SSE.Controllers.Toolbar.txtBracket_LineDouble": "Brackets", + "SSE.Controllers.Toolbar.txtBracket_LineDouble_NoneOpen": "Single Bracket", + "SSE.Controllers.Toolbar.txtBracket_LineDouble_OpenNone": "Single Bracket", + "SSE.Controllers.Toolbar.txtBracket_LowLim": "Brackets", + "SSE.Controllers.Toolbar.txtBracket_LowLim_NoneNone": "Single Bracket", + "SSE.Controllers.Toolbar.txtBracket_LowLim_OpenNone": "Single Bracket", + "SSE.Controllers.Toolbar.txtBracket_Round": "Brackets", + "SSE.Controllers.Toolbar.txtBracket_Round_Delimiter_2": "Brackets with Separators", + "SSE.Controllers.Toolbar.txtBracket_Round_NoneOpen": "Single Bracket", + "SSE.Controllers.Toolbar.txtBracket_Round_OpenNone": "Single Bracket", + "SSE.Controllers.Toolbar.txtBracket_Square": "Brackets", + "SSE.Controllers.Toolbar.txtBracket_Square_CloseClose": "Brackets", + "SSE.Controllers.Toolbar.txtBracket_Square_CloseOpen": "Brackets", + "SSE.Controllers.Toolbar.txtBracket_Square_NoneOpen": "Single Bracket", + "SSE.Controllers.Toolbar.txtBracket_Square_OpenNone": "Single Bracket", + "SSE.Controllers.Toolbar.txtBracket_Square_OpenOpen": "Brackets", + "SSE.Controllers.Toolbar.txtBracket_SquareDouble": "Brackets", + "SSE.Controllers.Toolbar.txtBracket_SquareDouble_NoneOpen": "Single Bracket", + "SSE.Controllers.Toolbar.txtBracket_SquareDouble_OpenNone": "Single Bracket", + "SSE.Controllers.Toolbar.txtBracket_UppLim": "Brackets", + "SSE.Controllers.Toolbar.txtBracket_UppLim_NoneOpen": "Single Bracket", + "SSE.Controllers.Toolbar.txtBracket_UppLim_OpenNone": "Single Bracket", + "SSE.Controllers.Toolbar.txtFractionDiagonal": "Skewed Fraction", + "SSE.Controllers.Toolbar.txtFractionDifferential_1": "Differential", + "SSE.Controllers.Toolbar.txtFractionDifferential_2": "Differential", + "SSE.Controllers.Toolbar.txtFractionDifferential_3": "Differential", + "SSE.Controllers.Toolbar.txtFractionDifferential_4": "Differential", + "SSE.Controllers.Toolbar.txtFractionHorizontal": "Linear Fraction", + "SSE.Controllers.Toolbar.txtFractionPi_2": "Pi Over 2", + "SSE.Controllers.Toolbar.txtFractionSmall": "Small Fraction", + "SSE.Controllers.Toolbar.txtFractionVertical": "Stacked Fraction", + "SSE.Controllers.Toolbar.txtFunction_1_Cos": "Inverse Cosine Function", + "SSE.Controllers.Toolbar.txtFunction_1_Cosh": "Hyperbolic Inverse Cosine Function", + "SSE.Controllers.Toolbar.txtFunction_1_Cot": "Inverse Cotangent Function", + "SSE.Controllers.Toolbar.txtFunction_1_Coth": "Hyperbolic Inverse Cotangent Function", + "SSE.Controllers.Toolbar.txtFunction_1_Csc": "Inverse Cosecant Function", + "SSE.Controllers.Toolbar.txtFunction_1_Csch": "Hyperbolic Inverse Cosecant Function", + "SSE.Controllers.Toolbar.txtFunction_1_Sec": "Inverse Secant Function", + "SSE.Controllers.Toolbar.txtFunction_1_Sech": "Hyperbolic Inverse Secant Function", + "SSE.Controllers.Toolbar.txtFunction_1_Sin": "Inverse Sine Function", + "SSE.Controllers.Toolbar.txtFunction_1_Sinh": "Hyperbolic Inverse Sine Function", + "SSE.Controllers.Toolbar.txtFunction_1_Tan": "Inverse Tangent Function", + "SSE.Controllers.Toolbar.txtFunction_1_Tanh": "Hyperbolic Inverse Tangent Function", + "SSE.Controllers.Toolbar.txtFunction_Cos": "Cosine Function", + "SSE.Controllers.Toolbar.txtFunction_Cosh": "Hyperbolic Cosine Function", + "SSE.Controllers.Toolbar.txtFunction_Cot": "Cotangent Function", + "SSE.Controllers.Toolbar.txtFunction_Coth": "Hyperbolic Cotangent Function", + "SSE.Controllers.Toolbar.txtFunction_Csc": "Cosecant Function", + "SSE.Controllers.Toolbar.txtFunction_Csch": "Hyperbolic Cosecant Function", + "SSE.Controllers.Toolbar.txtFunction_Custom_1": "Sine theta", + "SSE.Controllers.Toolbar.txtFunction_Custom_2": "Cos 2x", + "SSE.Controllers.Toolbar.txtFunction_Custom_3": "Tangent formula", + "SSE.Controllers.Toolbar.txtFunction_Sec": "Secant Function", + "SSE.Controllers.Toolbar.txtFunction_Sech": "Hyperbolic Secant Function", + "SSE.Controllers.Toolbar.txtFunction_Sin": "Sine Function", + "SSE.Controllers.Toolbar.txtFunction_Sinh": "Hyperbolic Sine Function", + "SSE.Controllers.Toolbar.txtFunction_Tan": "Tangent Function", + "SSE.Controllers.Toolbar.txtFunction_Tanh": "Hyperbolic Tangent Function", + "SSE.Controllers.Toolbar.txtIntegral": "Integral", + "SSE.Controllers.Toolbar.txtIntegral_dtheta": "Differential theta", + "SSE.Controllers.Toolbar.txtIntegral_dx": "Differential x", + "SSE.Controllers.Toolbar.txtIntegral_dy": "Differential y", + "SSE.Controllers.Toolbar.txtIntegralCenterSubSup": "Integral", + "SSE.Controllers.Toolbar.txtIntegralDouble": "Double Integral", + "SSE.Controllers.Toolbar.txtIntegralDoubleCenterSubSup": "Double Integral", + "SSE.Controllers.Toolbar.txtIntegralDoubleSubSup": "Double Integral", + "SSE.Controllers.Toolbar.txtIntegralOriented": "Contour Integral", + "SSE.Controllers.Toolbar.txtIntegralOrientedCenterSubSup": "Contour Integral", + "SSE.Controllers.Toolbar.txtIntegralOrientedDouble": "Surface Integral", + "SSE.Controllers.Toolbar.txtIntegralOrientedDoubleCenterSubSup": "Surface Integral", + "SSE.Controllers.Toolbar.txtIntegralOrientedDoubleSubSup": "Surface Integral", + "SSE.Controllers.Toolbar.txtIntegralOrientedSubSup": "Contour Integral", + "SSE.Controllers.Toolbar.txtIntegralOrientedTriple": "Volume Integral", + "SSE.Controllers.Toolbar.txtIntegralOrientedTripleCenterSubSup": "Volume Integral", + "SSE.Controllers.Toolbar.txtIntegralOrientedTripleSubSup": "Volume Integral", + "SSE.Controllers.Toolbar.txtIntegralSubSup": "Integral", + "SSE.Controllers.Toolbar.txtIntegralTriple": "Triple Integral", + "SSE.Controllers.Toolbar.txtIntegralTripleCenterSubSup": "Triple Integral", + "SSE.Controllers.Toolbar.txtIntegralTripleSubSup": "Triple Integral", + "SSE.Controllers.Toolbar.txtLargeOperator_Conjunction": "Wedge", + "SSE.Controllers.Toolbar.txtLargeOperator_Conjunction_CenterSub": "Wedge", + "SSE.Controllers.Toolbar.txtLargeOperator_Conjunction_CenterSubSup": "Wedge", + "SSE.Controllers.Toolbar.txtLargeOperator_Conjunction_Sub": "Wedge", + "SSE.Controllers.Toolbar.txtLargeOperator_Conjunction_SubSup": "Wedge", + "SSE.Controllers.Toolbar.txtLargeOperator_CoProd": "Co-Product", + "SSE.Controllers.Toolbar.txtLargeOperator_CoProd_CenterSub": "Co-Product", + "SSE.Controllers.Toolbar.txtLargeOperator_CoProd_CenterSubSup": "Co-Product", + "SSE.Controllers.Toolbar.txtLargeOperator_CoProd_Sub": "Co-Product", + "SSE.Controllers.Toolbar.txtLargeOperator_CoProd_SubSup": "Co-Product", + "SSE.Controllers.Toolbar.txtLargeOperator_Custom_1": "Summation", + "SSE.Controllers.Toolbar.txtLargeOperator_Custom_2": "Summation", + "SSE.Controllers.Toolbar.txtLargeOperator_Custom_3": "Summation", + "SSE.Controllers.Toolbar.txtLargeOperator_Custom_4": "Product", + "SSE.Controllers.Toolbar.txtLargeOperator_Custom_5": "Union", + "SSE.Controllers.Toolbar.txtLargeOperator_Disjunction": "Vee", + "SSE.Controllers.Toolbar.txtLargeOperator_Disjunction_CenterSub": "Vee", + "SSE.Controllers.Toolbar.txtLargeOperator_Disjunction_CenterSubSup": "Vee", + "SSE.Controllers.Toolbar.txtLargeOperator_Disjunction_Sub": "Vee", + "SSE.Controllers.Toolbar.txtLargeOperator_Disjunction_SubSup": "Vee", + "SSE.Controllers.Toolbar.txtLargeOperator_Intersection": "Intersection", + "SSE.Controllers.Toolbar.txtLargeOperator_Intersection_CenterSub": "Intersection", + "SSE.Controllers.Toolbar.txtLargeOperator_Intersection_CenterSubSup": "Intersection", + "SSE.Controllers.Toolbar.txtLargeOperator_Intersection_Sub": "Intersection", + "SSE.Controllers.Toolbar.txtLargeOperator_Intersection_SubSup": "Intersection", + "SSE.Controllers.Toolbar.txtLargeOperator_Prod": "Product", + "SSE.Controllers.Toolbar.txtLargeOperator_Prod_CenterSub": "Product", + "SSE.Controllers.Toolbar.txtLargeOperator_Prod_CenterSubSup": "Product", + "SSE.Controllers.Toolbar.txtLargeOperator_Prod_Sub": "Product", + "SSE.Controllers.Toolbar.txtLargeOperator_Prod_SubSup": "Product", + "SSE.Controllers.Toolbar.txtLargeOperator_Sum": "Summation", + "SSE.Controllers.Toolbar.txtLargeOperator_Sum_CenterSub": "Summation", + "SSE.Controllers.Toolbar.txtLargeOperator_Sum_CenterSubSup": "Summation", + "SSE.Controllers.Toolbar.txtLargeOperator_Sum_Sub": "Summation", + "SSE.Controllers.Toolbar.txtLargeOperator_Sum_SubSup": "Summation", + "SSE.Controllers.Toolbar.txtLargeOperator_Union": "Union", + "SSE.Controllers.Toolbar.txtLargeOperator_Union_CenterSub": "Union", + "SSE.Controllers.Toolbar.txtLargeOperator_Union_CenterSubSup": "Union", + "SSE.Controllers.Toolbar.txtLargeOperator_Union_Sub": "Union", + "SSE.Controllers.Toolbar.txtLargeOperator_Union_SubSup": "Union", + "SSE.Controllers.Toolbar.txtLimitLog_Custom_1": "Limit Example", + "SSE.Controllers.Toolbar.txtLimitLog_Custom_2": "Maximum Example", + "SSE.Controllers.Toolbar.txtLimitLog_Lim": "Limit", + "SSE.Controllers.Toolbar.txtLimitLog_Ln": "Natural Logarithm", + "SSE.Controllers.Toolbar.txtLimitLog_Log": "Logarithm", + "SSE.Controllers.Toolbar.txtLimitLog_LogBase": "Logarithm", + "SSE.Controllers.Toolbar.txtLimitLog_Max": "Maximum", + "SSE.Controllers.Toolbar.txtLimitLog_Min": "Minimum", + "SSE.Controllers.Toolbar.txtMatrix_1_2": "1x2 Empty Matrix", + "SSE.Controllers.Toolbar.txtMatrix_1_3": "1x3 Empty Matrix", + "SSE.Controllers.Toolbar.txtMatrix_2_1": "2x1 Empty Matrix", + "SSE.Controllers.Toolbar.txtMatrix_2_2": "2x2 Empty Matrix", + "SSE.Controllers.Toolbar.txtMatrix_2_2_DLineBracket": "Empty Matrix with Brackets", + "SSE.Controllers.Toolbar.txtMatrix_2_2_LineBracket": "Empty Matrix with Brackets", + "SSE.Controllers.Toolbar.txtMatrix_2_2_RoundBracket": "Empty Matrix with Brackets", + "SSE.Controllers.Toolbar.txtMatrix_2_2_SquareBracket": "Empty Matrix with Brackets", + "SSE.Controllers.Toolbar.txtMatrix_2_3": "2x3 Empty Matrix", + "SSE.Controllers.Toolbar.txtMatrix_3_1": "3x1 Empty Matrix", + "SSE.Controllers.Toolbar.txtMatrix_3_2": "3x2 Empty Matrix", + "SSE.Controllers.Toolbar.txtMatrix_3_3": "3x3 Empty Matrix", + "SSE.Controllers.Toolbar.txtMatrix_Dots_Baseline": "Baseline Dots", + "SSE.Controllers.Toolbar.txtMatrix_Dots_Center": "Midline Dots", + "SSE.Controllers.Toolbar.txtMatrix_Dots_Diagonal": "Diagonal Dots", + "SSE.Controllers.Toolbar.txtMatrix_Dots_Vertical": "Vertical Dots", + "SSE.Controllers.Toolbar.txtMatrix_Flat_Round": "Sparse Matrix", + "SSE.Controllers.Toolbar.txtMatrix_Flat_Square": "Sparse Matrix", + "SSE.Controllers.Toolbar.txtMatrix_Identity_2": "2x2 Identity Matrix", + "SSE.Controllers.Toolbar.txtMatrix_Identity_2_NoZeros": "3x3 Identity Matrix", + "SSE.Controllers.Toolbar.txtMatrix_Identity_3": "3x3 Identity Matrix", + "SSE.Controllers.Toolbar.txtMatrix_Identity_3_NoZeros": "3x3 Identity Matrix", + "SSE.Controllers.Toolbar.txtOperator_ArrowD_Bot": "Right-Left Arrow Below", + "SSE.Controllers.Toolbar.txtOperator_ArrowD_Top": "Right-Left Arrow Above", + "SSE.Controllers.Toolbar.txtOperator_ArrowL_Bot": "Leftwards Arrow Below", + "SSE.Controllers.Toolbar.txtOperator_ArrowL_Top": "Leftwards Arrow Above", + "SSE.Controllers.Toolbar.txtOperator_ArrowR_Bot": "Rightwards Arrow Below", + "SSE.Controllers.Toolbar.txtOperator_ArrowR_Top": "Rightwards Arrow Above", + "SSE.Controllers.Toolbar.txtOperator_ColonEquals": "Colon Equal", + "SSE.Controllers.Toolbar.txtOperator_Custom_1": "Yields", + "SSE.Controllers.Toolbar.txtOperator_Custom_2": "Delta Yields", + "SSE.Controllers.Toolbar.txtOperator_Definition": "Equal to By Definition", + "SSE.Controllers.Toolbar.txtOperator_DeltaEquals": "Delta Equal To", + "SSE.Controllers.Toolbar.txtOperator_DoubleArrowD_Bot": "Right-Left Arrow Below", + "SSE.Controllers.Toolbar.txtOperator_DoubleArrowD_Top": "Right-Left Arrow Above", + "SSE.Controllers.Toolbar.txtOperator_DoubleArrowL_Bot": "Leftwards Arrow Below", + "SSE.Controllers.Toolbar.txtOperator_DoubleArrowL_Top": "Leftwards Arrow Above", + "SSE.Controllers.Toolbar.txtOperator_DoubleArrowR_Bot": "Rightwards Arrow Below", + "SSE.Controllers.Toolbar.txtOperator_DoubleArrowR_Top": "Rightwards Arrow Above", + "SSE.Controllers.Toolbar.txtOperator_EqualsEquals": "Equal Equal", + "SSE.Controllers.Toolbar.txtOperator_MinusEquals": "Minus Equal", + "SSE.Controllers.Toolbar.txtOperator_PlusEquals": "Plus Equal", + "SSE.Controllers.Toolbar.txtOperator_UnitOfMeasure": "Measured By", + "SSE.Controllers.Toolbar.txtRadicalCustom_1": "Radical", + "SSE.Controllers.Toolbar.txtRadicalCustom_2": "Radical", + "SSE.Controllers.Toolbar.txtRadicalRoot_2": "Square Root With Degree", + "SSE.Controllers.Toolbar.txtRadicalRoot_3": "Cubic Root", + "SSE.Controllers.Toolbar.txtRadicalRoot_n": "Radical With Degree", + "SSE.Controllers.Toolbar.txtRadicalSqrt": "Square Root", + "SSE.Controllers.Toolbar.txtScriptCustom_1": "Script", + "SSE.Controllers.Toolbar.txtScriptCustom_2": "Script", + "SSE.Controllers.Toolbar.txtScriptCustom_3": "Script", + "SSE.Controllers.Toolbar.txtScriptCustom_4": "Script", + "SSE.Controllers.Toolbar.txtScriptSub": "Subscript", + "SSE.Controllers.Toolbar.txtScriptSubSup": "Subscript-Superscript", + "SSE.Controllers.Toolbar.txtScriptSubSupLeft": "LeftSubscript-Superscript", + "SSE.Controllers.Toolbar.txtScriptSup": "Superscript", + "SSE.Controllers.Toolbar.txtSymbol_about": "Approximately", + "SSE.Controllers.Toolbar.txtSymbol_additional": "Complement", + "SSE.Controllers.Toolbar.txtSymbol_aleph": "Alef", + "SSE.Controllers.Toolbar.txtSymbol_alpha": "Alpha", + "SSE.Controllers.Toolbar.txtSymbol_approx": "Almost Equal To", + "SSE.Controllers.Toolbar.txtSymbol_ast": "Asterisk Operator", + "SSE.Controllers.Toolbar.txtSymbol_beta": "Beta", + "SSE.Controllers.Toolbar.txtSymbol_beth": "Bet", + "SSE.Controllers.Toolbar.txtSymbol_bullet": "Bullet Operator", + "SSE.Controllers.Toolbar.txtSymbol_cap": "Intersection", + "SSE.Controllers.Toolbar.txtSymbol_cbrt": "Cube Root", + "SSE.Controllers.Toolbar.txtSymbol_cdots": "Midline Horizontal Ellipsis", + "SSE.Controllers.Toolbar.txtSymbol_celsius": "Degrees Celsius", + "SSE.Controllers.Toolbar.txtSymbol_chi": "Chi", + "SSE.Controllers.Toolbar.txtSymbol_cong": "Approximately Equal To", + "SSE.Controllers.Toolbar.txtSymbol_cup": "Union", + "SSE.Controllers.Toolbar.txtSymbol_ddots": "Down Right Diagonal Ellipsis", + "SSE.Controllers.Toolbar.txtSymbol_degree": "Degrees", + "SSE.Controllers.Toolbar.txtSymbol_delta": "Delta", + "SSE.Controllers.Toolbar.txtSymbol_div": "Division Sign", + "SSE.Controllers.Toolbar.txtSymbol_downarrow": "Down Arrow", + "SSE.Controllers.Toolbar.txtSymbol_emptyset": "Empty Set", + "SSE.Controllers.Toolbar.txtSymbol_epsilon": "Epsilon", + "SSE.Controllers.Toolbar.txtSymbol_equals": "Equal", + "SSE.Controllers.Toolbar.txtSymbol_equiv": "Identical To", + "SSE.Controllers.Toolbar.txtSymbol_eta": "Eta", + "SSE.Controllers.Toolbar.txtSymbol_exists": "There Exist", + "SSE.Controllers.Toolbar.txtSymbol_factorial": "Factorial", + "SSE.Controllers.Toolbar.txtSymbol_fahrenheit": "Degrees Fahrenheit", + "SSE.Controllers.Toolbar.txtSymbol_forall": "For All", + "SSE.Controllers.Toolbar.txtSymbol_gamma": "Gamma", + "SSE.Controllers.Toolbar.txtSymbol_geq": "Greater Than or Equal To", + "SSE.Controllers.Toolbar.txtSymbol_gg": "Much Greater Than", + "SSE.Controllers.Toolbar.txtSymbol_greater": "Greater Than", + "SSE.Controllers.Toolbar.txtSymbol_in": "Element Of", + "SSE.Controllers.Toolbar.txtSymbol_inc": "Increment", + "SSE.Controllers.Toolbar.txtSymbol_infinity": "Infinity", + "SSE.Controllers.Toolbar.txtSymbol_iota": "Iota", + "SSE.Controllers.Toolbar.txtSymbol_kappa": "Kappa", + "SSE.Controllers.Toolbar.txtSymbol_lambda": "Lambda", + "SSE.Controllers.Toolbar.txtSymbol_leftarrow": "Left Arrow", + "SSE.Controllers.Toolbar.txtSymbol_leftrightarrow": "Left-Right Arrow", + "SSE.Controllers.Toolbar.txtSymbol_leq": "Less Than or Equal To", + "SSE.Controllers.Toolbar.txtSymbol_less": "Less Than", + "SSE.Controllers.Toolbar.txtSymbol_ll": "Much Less Than", + "SSE.Controllers.Toolbar.txtSymbol_minus": "Minus", + "SSE.Controllers.Toolbar.txtSymbol_mp": "Minus Plus", + "SSE.Controllers.Toolbar.txtSymbol_mu": "Mu", + "SSE.Controllers.Toolbar.txtSymbol_nabla": "Nabla", + "SSE.Controllers.Toolbar.txtSymbol_neq": "Not Equal To", + "SSE.Controllers.Toolbar.txtSymbol_ni": "Contains as Member", + "SSE.Controllers.Toolbar.txtSymbol_not": "Not Sign", + "SSE.Controllers.Toolbar.txtSymbol_notexists": "There Does Not Exist", + "SSE.Controllers.Toolbar.txtSymbol_nu": "Nu", + "SSE.Controllers.Toolbar.txtSymbol_o": "Omicron", + "SSE.Controllers.Toolbar.txtSymbol_omega": "Omega", + "SSE.Controllers.Toolbar.txtSymbol_partial": "Partial Differential", + "SSE.Controllers.Toolbar.txtSymbol_percent": "Percentage", + "SSE.Controllers.Toolbar.txtSymbol_phi": "Phi", + "SSE.Controllers.Toolbar.txtSymbol_pi": "Pi", + "SSE.Controllers.Toolbar.txtSymbol_plus": "Plus", + "SSE.Controllers.Toolbar.txtSymbol_pm": "Plus Minus", + "SSE.Controllers.Toolbar.txtSymbol_propto": "Proportional To", + "SSE.Controllers.Toolbar.txtSymbol_psi": "Psi", + "SSE.Controllers.Toolbar.txtSymbol_qdrt": "Fourth Root", + "SSE.Controllers.Toolbar.txtSymbol_qed": "End of Proof", + "SSE.Controllers.Toolbar.txtSymbol_rddots": "Up Right Diagonal Ellipsis", + "SSE.Controllers.Toolbar.txtSymbol_rho": "Rho", + "SSE.Controllers.Toolbar.txtSymbol_rightarrow": "Right Arrow", + "SSE.Controllers.Toolbar.txtSymbol_sigma": "Sigma", + "SSE.Controllers.Toolbar.txtSymbol_sqrt": "Radical Sign", + "SSE.Controllers.Toolbar.txtSymbol_tau": "Tau", + "SSE.Controllers.Toolbar.txtSymbol_therefore": "Therefore", + "SSE.Controllers.Toolbar.txtSymbol_theta": "Theta", + "SSE.Controllers.Toolbar.txtSymbol_times": "Multiplication Sign", + "SSE.Controllers.Toolbar.txtSymbol_uparrow": "Up Arrow", + "SSE.Controllers.Toolbar.txtSymbol_upsilon": "Upsilon", + "SSE.Controllers.Toolbar.txtSymbol_varepsilon": "Epsilon Variant", + "SSE.Controllers.Toolbar.txtSymbol_varphi": "Phi Variant", + "SSE.Controllers.Toolbar.txtSymbol_varpi": "Pi Variant", + "SSE.Controllers.Toolbar.txtSymbol_varrho": "Rho Variant", + "SSE.Controllers.Toolbar.txtSymbol_varsigma": "Sigma Variant", + "SSE.Controllers.Toolbar.txtSymbol_vartheta": "Theta Variant", + "SSE.Controllers.Toolbar.txtSymbol_vdots": "Vertical Ellipsis", + "SSE.Controllers.Toolbar.txtSymbol_xsi": "Xi", + "SSE.Controllers.Toolbar.txtSymbol_zeta": "Zeta", "SSE.Views.AutoFilterDialog.btnCustomFilter": "Custom Filter", "SSE.Views.AutoFilterDialog.cancelButtonText": "Cancel", "SSE.Views.AutoFilterDialog.okButtonText": "OK", From 054319793f72e25e32b2a34538b063f3f269e08b Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Tue, 25 Oct 2016 13:48:31 +0300 Subject: [PATCH 5/5] [PE] Added equations. --- .../main/app/collection/EquationGroups.js | 53 ++ .../main/app/controller/Main.js | 4 +- .../main/app/controller/Toolbar.js | 554 ++++++++++++- .../main/app/model/EquationGroup.js | 71 ++ .../main/app/template/Toolbar.template | 1 + .../main/app/view/DocumentHolder.js | 735 +++++++++++++++++- .../main/app/view/Toolbar.js | 28 +- apps/presentationeditor/main/locale/en.json | 399 ++++++++++ .../main/resources/img/toolbar/math.png | Bin 0 -> 38982 bytes .../main/resources/img/toolbar/math@2x.png | Bin 0 -> 97624 bytes .../main/resources/less/toolbar.less | 6 + .../main/app/controller/Toolbar.js | 2 +- apps/spreadsheeteditor/main/locale/en.json | 1 + 13 files changed, 1840 insertions(+), 14 deletions(-) create mode 100644 apps/presentationeditor/main/app/collection/EquationGroups.js create mode 100644 apps/presentationeditor/main/app/model/EquationGroup.js create mode 100644 apps/presentationeditor/main/resources/img/toolbar/math.png create mode 100644 apps/presentationeditor/main/resources/img/toolbar/math@2x.png diff --git a/apps/presentationeditor/main/app/collection/EquationGroups.js b/apps/presentationeditor/main/app/collection/EquationGroups.js new file mode 100644 index 000000000..85f7a1842 --- /dev/null +++ b/apps/presentationeditor/main/app/collection/EquationGroups.js @@ -0,0 +1,53 @@ +/* + * + * (c) Copyright Ascensio System Limited 2010-2016 + * + * 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 + * +*/ +/** + * EquationGroups.js + * + * Created by Alexey Musinov on 29/10/14 + * Copyright (c) 2014 Ascensio System SIA. All rights reserved. + * + */ + +define([ + 'backbone', + 'presentationeditor/main/app/model/EquationGroup' +], function(Backbone){ 'use strict'; + if (Common === undefined) + var Common = {}; + + Common.Collections = Common.Collections || {}; + + PE.Collections.EquationGroups = Backbone.Collection.extend({ + model: PE.Models.EquationGroup + }); +}); diff --git a/apps/presentationeditor/main/app/controller/Main.js b/apps/presentationeditor/main/app/controller/Main.js index d07eb6e80..bdc4e7bd8 100644 --- a/apps/presentationeditor/main/app/controller/Main.js +++ b/apps/presentationeditor/main/app/controller/Main.js @@ -50,7 +50,8 @@ define([ 'common/main/lib/collection/TextArt', 'common/main/lib/view/OpenDialog', 'presentationeditor/main/app/collection/ShapeGroups', - 'presentationeditor/main/app/collection/SlideLayouts' + 'presentationeditor/main/app/collection/SlideLayouts', + 'presentationeditor/main/app/collection/EquationGroups' ], function () { 'use strict'; PE.Controllers.Main = Backbone.Controller.extend(_.extend((function() { @@ -72,6 +73,7 @@ define([ collections: [ 'ShapeGroups', 'SlideLayouts', + 'EquationGroups', 'Common.Collections.TextArt' ], views: [], diff --git a/apps/presentationeditor/main/app/controller/Toolbar.js b/apps/presentationeditor/main/app/controller/Toolbar.js index bb2a14ba5..1fdb231a1 100644 --- a/apps/presentationeditor/main/app/controller/Toolbar.js +++ b/apps/presentationeditor/main/app/controller/Toolbar.js @@ -47,6 +47,7 @@ define([ 'common/main/lib/view/CopyWarningDialog', 'common/main/lib/view/ImageFromUrlDialog', 'common/main/lib/view/InsertTableDialog', + 'common/main/lib/util/define', 'presentationeditor/main/app/view/Toolbar', 'presentationeditor/main/app/view/HyperlinkSettingsDialog', 'presentationeditor/main/app/view/SlideSizeSettings', @@ -93,7 +94,8 @@ define([ can_hyper: undefined, zoom_type: undefined, zoom_percent: undefined, - fontsize: undefined + fontsize: undefined, + in_equation: undefined }; this._isAddingShape = false; this.slideSizeArr = [ @@ -246,6 +248,7 @@ define([ toolbar.btnFitWidth.on('toggle', _.bind(this.onZoomToWidthToggle, this)); toolbar.mnuZoomIn.on('click', _.bind(this.onZoomInClick, this)); toolbar.mnuZoomOut.on('click', _.bind(this.onZoomOutClick, this)); + toolbar.btnInsertEquation.on('click', _.bind(this.onInsertEquationClick, this)); }, setApi: function(api) { @@ -289,6 +292,7 @@ define([ this.api.asc_registerCallback('asc_onInitEditorStyles', _.bind(this.onApiInitEditorStyles, this)); this.api.asc_registerCallback('asc_onCountPages', _.bind(this.onApiCountPages, this)); + this.api.asc_registerCallback('asc_onMathTypes', _.bind(this.onMathTypes, this)); this.onSetupCopyStyleButton(); }, @@ -565,7 +569,8 @@ define([ slide_layout_lock = undefined, no_paragraph = true, no_text = true, - no_object = true; + no_object = true, + in_equation = false; while (++i < selectedObjects.length) { type = selectedObjects[i].get_ObjectType(); @@ -584,6 +589,8 @@ define([ if (type !== Asc.c_oAscTypeSelectElement.Image) { no_text = false; } + } else if (type === Asc.c_oAscTypeSelectElement.Math) { + in_equation = true; } } @@ -622,6 +629,11 @@ define([ if (this._state.activated) this._state.slidecontrolsdisable = slide_deleted; this.toolbar.lockToolbar(PE.enumLock.slideDeleted, slide_deleted, {array: me.toolbar.slideOnlyControls.concat(me.toolbar.paragraphControls)}); } + + if (this._state.in_equation !== in_equation) { + if (this._state.activated) this._state.in_equation = in_equation; + this.toolbar.lockToolbar(PE.enumLock.inEquation, in_equation, {array: [me.toolbar.btnSuperscript, me.toolbar.btnSubscript]}); + } }, onApiStyleChange: function(v) { @@ -1693,6 +1705,200 @@ define([ } }, + fillEquations: function() { + if (!this.toolbar.btnInsertEquation.rendered || this.toolbar.btnInsertEquation.menu.items.length>0) return; + + var me = this, equationsStore = this.getApplication().getCollection('EquationGroups'); + + me.equationPickers = []; + me.toolbar.btnInsertEquation.menu.removeAll(); + + for (var i = 0; i < equationsStore.length; ++i) { + var equationGroup = equationsStore.at(i); + + var menuItem = new Common.UI.MenuItem({ + caption: equationGroup.get('groupName'), + menu: new Common.UI.Menu({ + menuAlign: 'tl-tr', + items: [ + { template: _.template('

') } + ] + }) + }); + + me.toolbar.btnInsertEquation.menu.addItem(menuItem); + + var equationPicker = new Common.UI.DataView({ + el: $('#id-toolbar-menu-equationgroup' + i), + store: equationGroup.get('groupStore'), + parentMenu: menuItem.menu, + showLast: false, + itemTemplate: _.template('
' + + '
') + }); + if (equationGroup.get('groupHeight').length) { + + me.equationPickers.push(equationPicker); + me.toolbar.btnInsertEquation.menu.on('show:after', function () { + + if (me.equationPickers.length) { + var element = $(this.el).find('.over').find('.menu-shape'); + if (element.length) { + for (var i = 0; i < me.equationPickers.length; ++i) { + if (element[0].id == me.equationPickers[i].el.id) { + me.equationPickers[i].scroller.update({alwaysVisibleY: true}); + me.equationPickers.splice(i, 1); + return; + } + } + } + } + }); + } + + equationPicker.on('item:click', function(picker, item, record, e) { + if (me.api) { + me.api.asc_AddMath(record.get('data').equationType); + + if (me.toolbar.btnInsertText.pressed) { + me.toolbar.btnInsertText.toggle(false, true); + } + if (me.toolbar.btnInsertShape.pressed) { + me.toolbar.btnInsertShape.toggle(false, true); + } + + if (e.type !== 'click') + me.toolbar.btnInsertEquation.menu.hide(); + Common.NotificationCenter.trigger('edit:complete', me.toolbar, me.toolbar.btnInsertEquation); + Common.component.Analytics.trackEvent('ToolBar', 'Add Equation'); + } + }); + } + }, + + onInsertEquationClick: function() { + if (this.api) { + this.api.asc_AddMath(); + Common.component.Analytics.trackEvent('ToolBar', 'Add Equation'); + } + Common.NotificationCenter.trigger('edit:complete', this.toolbar, this.toolbar.btnInsertEquation); + }, + + onMathTypes: function(equation) { + var equationgrouparray = [], + equationsStore = this.getCollection('EquationGroups'); + + equationsStore.reset(); + + // equations groups + + var c_oAscMathMainTypeStrings = {}; + + // [translate, count cells, scroll] + + c_oAscMathMainTypeStrings[Common.define.c_oAscMathMainType.Symbol ] = [this.textSymbols, 11]; + c_oAscMathMainTypeStrings[Common.define.c_oAscMathMainType.Fraction ] = [this.textFraction, 4]; + c_oAscMathMainTypeStrings[Common.define.c_oAscMathMainType.Script ] = [this.textScript, 4]; + c_oAscMathMainTypeStrings[Common.define.c_oAscMathMainType.Radical ] = [this.textRadical, 4]; + c_oAscMathMainTypeStrings[Common.define.c_oAscMathMainType.Integral ] = [this.textIntegral, 3, true]; + c_oAscMathMainTypeStrings[Common.define.c_oAscMathMainType.LargeOperator] = [this.textLargeOperator, 5, true]; + c_oAscMathMainTypeStrings[Common.define.c_oAscMathMainType.Bracket ] = [this.textBracket, 4, true]; + c_oAscMathMainTypeStrings[Common.define.c_oAscMathMainType.Function ] = [this.textFunction, 3, true]; + c_oAscMathMainTypeStrings[Common.define.c_oAscMathMainType.Accent ] = [this.textAccent, 4]; + c_oAscMathMainTypeStrings[Common.define.c_oAscMathMainType.LimitLog ] = [this.textLimitAndLog, 3]; + c_oAscMathMainTypeStrings[Common.define.c_oAscMathMainType.Operator ] = [this.textOperator, 4]; + c_oAscMathMainTypeStrings[Common.define.c_oAscMathMainType.Matrix ] = [this.textMatrix, 4, true]; + + // equations sub groups + + // equations types + + var translationTable = {}, name = '', translate = ''; + for (name in Common.define.c_oAscMathType) { + if (Common.define.c_oAscMathType.hasOwnProperty(name)) { + var arr = name.split('_'); + if (arr.length==2 && arr[0]=='Symbol') { + translate = 'txt' + arr[0] + '_' + arr[1].toLocaleLowerCase(); + } else + translate = 'txt' + name; + translationTable[Common.define.c_oAscMathType[name]] = this[translate]; + } + } + + var i,id = 0, count = 0, length = 0, width = 0, height = 0, store = null, list = null, eqStore = null, eq = null; + + if (equation) { + + count = equation.get_Data().length; + + if (count) { + for (var j = 0; j < count; ++j) { + id = equation.get_Data()[j].get_Id(); + width = equation.get_Data()[j].get_W(); + height = equation.get_Data()[j].get_H(); + + store = new Backbone.Collection([], { + model: PE.Models.EquationModel + }); + + if (store) { + + var allItemsCount = 0, itemsCount = 0, ids = 0; + + length = equation.get_Data()[j].get_Data().length; + + for (i = 0; i < length; ++i) { + eqStore = equation.get_Data()[j].get_Data()[i]; + + itemsCount = eqStore.get_Data().length; + for (var p = 0; p < itemsCount; ++p) { + + eq = eqStore.get_Data()[p]; + ids = eq.get_Id(); + + translate = ''; + + if (translationTable.hasOwnProperty(ids)) { + translate = translationTable[ids]; + } + + store.add({ + data : {equationType: ids}, + tip : translate, + allowSelected : true, + selected : false, + width : eqStore.get_W(), + height : eqStore.get_H(), + posX : -eq.get_X(), + posY : -eq.get_Y() + }); + } + + allItemsCount += itemsCount; + } + + width = c_oAscMathMainTypeStrings[id][1] * (width + 10); // 4px margin + 4px margin + 1px border + 1px border + + var normHeight = parseInt(370 / (height + 10)) * (height + 10); + equationgrouparray.push({ + groupName : c_oAscMathMainTypeStrings[id][0], + groupStore : store, + groupWidth : width, + groupHeight : c_oAscMathMainTypeStrings[id][2] ? ' height:'+ normHeight +'px!important; ' : '' + }); + } + } + + equationsStore.add(equationgrouparray); + + this.fillEquations(); + } + } + }, + updateThemeColors: function() { if (Common.Utils.ThemeColor.getEffectColors()===undefined) return; @@ -1838,6 +2044,348 @@ define([ textEmptyImgUrl : 'You need to specify image URL.', textWarning : 'Warning', textFontSizeErr : 'The entered value must be more than 0', - confirmAddFontName: 'The font you are going to save is not available on the current device.
The text style will be displayed using one of the device fonts, the saved font will be used when it is available.
Do you want to continue?' + confirmAddFontName: 'The font you are going to save is not available on the current device.
The text style will be displayed using one of the device fonts, the saved font will be used when it is available.
Do you want to continue?', + textSymbols : 'Symbols', + textFraction : 'Fraction', + textScript : 'Script', + textRadical : 'Radical', + textIntegral : 'Integral', + textLargeOperator : 'Large Operator', + textBracket : 'Bracket', + textFunction : 'Function', + textAccent : 'Accent', + textLimitAndLog : 'Limit And Log', + textOperator : 'Operator', + textMatrix : 'Matrix', + + txtSymbol_pm : 'Plus Minus', + txtSymbol_infinity : 'Infinity', + txtSymbol_equals : 'Equal', + txtSymbol_neq : 'Not Equal To', + txtSymbol_about : 'Approximately', + txtSymbol_times : 'Multiplication Sign', + txtSymbol_div : 'Division Sign', + txtSymbol_factorial : 'Factorial', + txtSymbol_propto : 'Proportional To', + txtSymbol_less : 'Less Than', + txtSymbol_ll : 'Much Less Than', + txtSymbol_greater : 'Greater Than', + txtSymbol_gg : 'Much Greater Than', + txtSymbol_leq : 'Less Than or Equal To', + txtSymbol_geq : 'Greater Than or Equal To', + txtSymbol_mp : 'Minus Plus', + txtSymbol_cong : 'Approximately Equal To', + txtSymbol_approx : 'Almost Equal To', + txtSymbol_equiv : 'Identical To', + txtSymbol_forall : 'For All', + txtSymbol_additional : 'Complement', + txtSymbol_partial : 'Partial Differential', + txtSymbol_sqrt : 'Radical Sign', + txtSymbol_cbrt : 'Cube Root', + txtSymbol_qdrt : 'Fourth Root', + txtSymbol_cup : 'Union', + txtSymbol_cap : 'Intersection', + txtSymbol_emptyset : 'Empty Set', + txtSymbol_percent : 'Percentage', + txtSymbol_degree : 'Degrees', + txtSymbol_fahrenheit : 'Degrees Fahrenheit', + txtSymbol_celsius : 'Degrees Celsius', + txtSymbol_inc : 'Increment', + txtSymbol_nabla : 'Nabla', + txtSymbol_exists : 'There Exist', + txtSymbol_notexists : 'There Does Not Exist', + txtSymbol_in : 'Element Of', + txtSymbol_ni : 'Contains as Member', + txtSymbol_leftarrow : 'Left Arrow', + txtSymbol_uparrow : 'Up Arrow', + txtSymbol_rightarrow : 'Right Arrow', + txtSymbol_downarrow : 'Down Arrow', + txtSymbol_leftrightarrow : 'Left-Right Arrow', + txtSymbol_therefore : 'Therefore', + txtSymbol_plus : 'Plus', + txtSymbol_minus : 'Minus', + txtSymbol_not : 'Not Sign', + txtSymbol_ast : 'Asterisk Operator', + txtSymbol_bullet : 'Bulet Operator', + txtSymbol_vdots : 'Vertical Ellipsis', + txtSymbol_cdots : 'Midline Horizontal Ellipsis', + txtSymbol_rddots : 'Up Right Diagonal Ellipsis', + txtSymbol_ddots : 'Down Right Diagonal Ellipsis', + txtSymbol_aleph : 'Alef', + txtSymbol_beth : 'Bet', + txtSymbol_qed : 'End of Proof', + txtSymbol_alpha : 'Alpha', + txtSymbol_beta : 'Beta', + txtSymbol_gamma : 'Gamma', + txtSymbol_delta : 'Delta', + txtSymbol_varepsilon : 'Epsilon Variant', + txtSymbol_epsilon : 'Epsilon', + txtSymbol_zeta : 'Zeta', + txtSymbol_eta : 'Eta', + txtSymbol_theta : 'Theta', + txtSymbol_vartheta : 'Theta Variant', + txtSymbol_iota : 'Iota', + txtSymbol_kappa : 'Kappa', + txtSymbol_lambda : 'Lambda', + txtSymbol_mu : 'Mu', + txtSymbol_nu : 'Nu', + txtSymbol_xsi : 'Xi', + txtSymbol_o : 'Omicron', + txtSymbol_pi : 'Pi', + txtSymbol_varpi : 'Pi Variant', + txtSymbol_rho : 'Rho', + txtSymbol_varrho : 'Rho Variant', + txtSymbol_sigma : 'Sigma', + txtSymbol_varsigma : 'Sigma Variant', + txtSymbol_tau : 'Tau', + txtSymbol_upsilon : 'Upsilon', + txtSymbol_varphi : 'Phi Variant', + txtSymbol_phi : 'Phi', + txtSymbol_chi : 'Chi', + txtSymbol_psi : 'Psi', + txtSymbol_omega : 'Omega', + + txtFractionVertical : 'Stacked Fraction', + txtFractionDiagonal : 'Skewed Fraction', + txtFractionHorizontal : 'Linear Fraction', + txtFractionSmall : 'Small Fraction', + txtFractionDifferential_1 : 'Differential', + txtFractionDifferential_2 : 'Differential', + txtFractionDifferential_3 : 'Differential', + txtFractionDifferential_4 : 'Differential', + txtFractionPi_2 : 'Pi Over 2', + + txtScriptSup : 'Superscript', + txtScriptSub : 'Subscript', + txtScriptSubSup : 'Subscript-Superscript', + txtScriptSubSupLeft : 'Left Subscript-Superscript', + txtScriptCustom_1 : 'Script', + txtScriptCustom_2 : 'Script', + txtScriptCustom_3 : 'Script', + txtScriptCustom_4 : 'Script', + + txtRadicalSqrt : 'Square Root', + txtRadicalRoot_n : 'Radical With Degree', + txtRadicalRoot_2 : 'Square Root With Degree', + txtRadicalRoot_3 : 'Cubic Root', + txtRadicalCustom_1 : 'Radical', + txtRadicalCustom_2 : 'Radical', + + txtIntegral : 'Integral', + txtIntegralSubSup : 'Integral', + txtIntegralCenterSubSup : 'Integral', + txtIntegralDouble : 'Double Integral', + txtIntegralDoubleSubSup : 'Double Integral', + txtIntegralDoubleCenterSubSup : 'Double Integral', + txtIntegralTriple : 'Triple Integral', + txtIntegralTripleSubSup : 'Triple Integral', + txtIntegralTripleCenterSubSup : 'Triple Integral', + txtIntegralOriented : 'Contour Integral', + txtIntegralOrientedSubSup : 'Contour Integral', + txtIntegralOrientedCenterSubSup : 'Contour Integral', + txtIntegralOrientedDouble : 'Surface Integral', + txtIntegralOrientedDoubleSubSup : 'Surface Integral', + txtIntegralOrientedDoubleCenterSubSup : 'Surface Integral', + txtIntegralOrientedTriple : 'Volume Integral', + txtIntegralOrientedTripleSubSup : 'Volume Integral', + txtIntegralOrientedTripleCenterSubSup : 'Volume Integral', + txtIntegral_dx : 'Differential x', + txtIntegral_dy : 'Differential y', + txtIntegral_dtheta : 'Differential theta', + + txtLargeOperator_Sum : 'Summation', + txtLargeOperator_Sum_CenterSubSup : 'Summation', + txtLargeOperator_Sum_SubSup : 'Summation', + txtLargeOperator_Sum_CenterSub : 'Summation', + txtLargeOperator_Sum_Sub : 'Summation', + txtLargeOperator_Prod : 'Product', + txtLargeOperator_Prod_CenterSubSup : 'Product', + txtLargeOperator_Prod_SubSup : 'Product', + txtLargeOperator_Prod_CenterSub : 'Product', + txtLargeOperator_Prod_Sub : 'Product', + txtLargeOperator_CoProd : 'Co-Product', + txtLargeOperator_CoProd_CenterSubSup : 'Co-Product', + txtLargeOperator_CoProd_SubSup : 'Co-Product', + txtLargeOperator_CoProd_CenterSub : 'Co-Product', + txtLargeOperator_CoProd_Sub : 'Co-Product', + txtLargeOperator_Union : 'Union', + txtLargeOperator_Union_CenterSubSup : 'Union', + txtLargeOperator_Union_SubSup : 'Union', + txtLargeOperator_Union_CenterSub : 'Union', + txtLargeOperator_Union_Sub : 'Union', + txtLargeOperator_Intersection : 'Intersection', + txtLargeOperator_Intersection_CenterSubSup : 'Intersection', + txtLargeOperator_Intersection_SubSup : 'Intersection', + txtLargeOperator_Intersection_CenterSub : 'Intersection', + txtLargeOperator_Intersection_Sub : 'Intersection', + txtLargeOperator_Disjunction : 'Vee', + txtLargeOperator_Disjunction_CenterSubSup : 'Vee', + txtLargeOperator_Disjunction_SubSup : 'Vee', + txtLargeOperator_Disjunction_CenterSub : 'Vee', + txtLargeOperator_Disjunction_Sub : 'Vee', + txtLargeOperator_Conjunction : 'Wedge', + txtLargeOperator_Conjunction_CenterSubSup : 'Wedge', + txtLargeOperator_Conjunction_SubSup : 'Wedge', + txtLargeOperator_Conjunction_CenterSub : 'Wedge', + txtLargeOperator_Conjunction_Sub : 'Wedge', + txtLargeOperator_Custom_1 : 'Summation', + txtLargeOperator_Custom_2 : 'Summation', + txtLargeOperator_Custom_3 : 'Summation', + txtLargeOperator_Custom_4 : 'Product', + txtLargeOperator_Custom_5 : 'Union', + + txtBracket_Round : 'Brackets', + txtBracket_Square : 'Brackets', + txtBracket_Curve : 'Brackets', + txtBracket_Angle : 'Brackets', + txtBracket_LowLim : 'Brackets', + txtBracket_UppLim : 'Brackets', + txtBracket_Line : 'Brackets', + txtBracket_LineDouble : 'Brackets', + txtBracket_Square_OpenOpen : 'Brackets', + txtBracket_Square_CloseClose : 'Brackets', + txtBracket_Square_CloseOpen : 'Brackets', + txtBracket_SquareDouble : 'Brackets', + + txtBracket_Round_Delimiter_2 : 'Brackets with Separators', + txtBracket_Curve_Delimiter_2 : 'Brackets with Separators', + txtBracket_Angle_Delimiter_2 : 'Brackets with Separators', + txtBracket_Angle_Delimiter_3 : 'Brackets with Separators', + txtBracket_Round_OpenNone : 'Single Bracket', + txtBracket_Round_NoneOpen : 'Single Bracket', + txtBracket_Square_OpenNone : 'Single Bracket', + txtBracket_Square_NoneOpen : 'Single Bracket', + txtBracket_Curve_OpenNone : 'Single Bracket', + txtBracket_Curve_NoneOpen : 'Single Bracket', + txtBracket_Angle_OpenNone : 'Single Bracket', + txtBracket_Angle_NoneOpen : 'Single Bracket', + txtBracket_LowLim_OpenNone : 'Single Bracket', + txtBracket_LowLim_NoneNone : 'Single Bracket', + txtBracket_UppLim_OpenNone : 'Single Bracket', + txtBracket_UppLim_NoneOpen : 'Single Bracket', + txtBracket_Line_OpenNone : 'Single Bracket', + txtBracket_Line_NoneOpen : 'Single Bracket', + txtBracket_LineDouble_OpenNone : 'Single Bracket', + txtBracket_LineDouble_NoneOpen : 'Single Bracket', + txtBracket_SquareDouble_OpenNone : 'Single Bracket', + txtBracket_SquareDouble_NoneOpen : 'Single Bracket', + txtBracket_Custom_1 : 'Case (Two Conditions)', + txtBracket_Custom_2 : 'Cases (Three Conditions)', + txtBracket_Custom_3 : 'Stack Object', + txtBracket_Custom_4 : 'Stack Object', + txtBracket_Custom_5 : 'Cases Example', + txtBracket_Custom_6 : 'Binomial Coefficient', + txtBracket_Custom_7 : 'Binomial Coefficient', + + txtFunction_Sin : 'Sine Function', + txtFunction_Cos : 'Cosine Function', + txtFunction_Tan : 'Tangent Function', + txtFunction_Csc : 'Cosecant Function', + txtFunction_Sec : 'Secant Function', + txtFunction_Cot : 'Cotangent Function', + txtFunction_1_Sin : 'Inverse Sine Function', + txtFunction_1_Cos : 'Inverse Cosine Function', + txtFunction_1_Tan : 'Inverse Tangent Function', + txtFunction_1_Csc : 'Inverse Cosecant Function', + txtFunction_1_Sec : 'Inverse Secant Function', + txtFunction_1_Cot : 'Inverse Cotangent Function', + txtFunction_Sinh : 'Hyperbolic Sine Function', + txtFunction_Cosh : 'Hyperbolic Cosine Function', + txtFunction_Tanh : 'Hyperbolic Tangent Function', + txtFunction_Csch : 'Hyperbolic Cosecant Function', + txtFunction_Sech : 'Hyperbolic Secant Function', + txtFunction_Coth : 'Hyperbolic Cotangent Function', + txtFunction_1_Sinh : 'Hyperbolic Inverse Sine Function', + txtFunction_1_Cosh : 'Hyperbolic Inverse Cosine Function', + txtFunction_1_Tanh : 'Hyperbolic Inverse Tangent Function', + txtFunction_1_Csch : 'Hyperbolic Inverse Cosecant Function', + txtFunction_1_Sech : 'Hyperbolic Inverse Secant Function', + txtFunction_1_Coth : 'Hyperbolic Inverse Cotangent Function', + txtFunction_Custom_1 : 'Sine theta', + txtFunction_Custom_2 : 'Cos 2x', + txtFunction_Custom_3 : 'Tangent formula', + + txtAccent_Dot : 'Dot', + txtAccent_DDot : 'Double Dot', + txtAccent_DDDot : 'Triple Dot', + txtAccent_Hat : 'Hat', + txtAccent_Check : 'Check', + txtAccent_Accent : 'Acute', + txtAccent_Grave : 'Grave', + txtAccent_Smile : 'Breve', + txtAccent_Tilde : 'Tilde', + txtAccent_Bar : 'Bar', + txtAccent_DoubleBar : 'Double Overbar', + txtAccent_CurveBracketTop : 'Overbrace', + txtAccent_CurveBracketBot : 'Underbrace', + txtAccent_GroupTop : 'Grouping Character Above', + txtAccent_GroupBot : 'Grouping Character Below', + txtAccent_ArrowL : 'Leftwards Arrow Above', + txtAccent_ArrowR : 'Rightwards Arrow Above', + txtAccent_ArrowD : 'Right-Left Arrow Above', + txtAccent_HarpoonL : 'Leftwards Harpoon Above', + txtAccent_HarpoonR : 'Rightwards Harpoon Above', + txtAccent_BorderBox : 'Boxed Formula (With Placeholder)', + txtAccent_BorderBoxCustom : 'Boxed Formula (Example)', + txtAccent_BarTop : 'Overbar', + txtAccent_BarBot : 'Underbar', + txtAccent_Custom_1 : 'Vector A', + txtAccent_Custom_2 : 'ABC With Overbar', + txtAccent_Custom_3 : 'x XOR y With Overbar', + + txtLimitLog_LogBase : 'Logarithm', + txtLimitLog_Log : 'Logarithm', + txtLimitLog_Lim : 'Limit', + txtLimitLog_Min : 'Minimum', + txtLimitLog_Max : 'Maximum', + txtLimitLog_Ln : 'Natural Logarithm', + txtLimitLog_Custom_1 : 'Limit Example', + txtLimitLog_Custom_2 : 'Maximum Example', + + txtOperator_ColonEquals : 'Colon Equal', + txtOperator_EqualsEquals : 'Equal Equal', + txtOperator_PlusEquals : 'Plus Equal', + txtOperator_MinusEquals : 'Minus Equal', + txtOperator_Definition : 'Equal to By Definition', + txtOperator_UnitOfMeasure : 'Measured By', + txtOperator_DeltaEquals : 'Delta Equal To', + txtOperator_ArrowL_Top : 'Leftwards Arrow Above', + txtOperator_ArrowR_Top : 'Rightwards Arrow Above', + txtOperator_ArrowL_Bot : 'Leftwards Arrow Below', + txtOperator_ArrowR_Bot : 'Rightwards Arrow Below', + txtOperator_DoubleArrowL_Top : 'Leftwards Arrow Above', + txtOperator_DoubleArrowR_Top : 'Rightwards Arrow Above', + txtOperator_DoubleArrowL_Bot : 'Leftwards Arrow Below', + txtOperator_DoubleArrowR_Bot : 'Rightwards Arrow Below', + txtOperator_ArrowD_Top : 'Right-Left Arrow Above', + txtOperator_ArrowD_Bot : 'Right-Left Arrow Above', + txtOperator_DoubleArrowD_Top : 'Right-Left Arrow Below', + txtOperator_DoubleArrowD_Bot : 'Right-Left Arrow Below', + txtOperator_Custom_1 : 'Yileds', + txtOperator_Custom_2 : 'Delta Yields', + + txtMatrix_1_2 : '1x2 Empty Matrix', + txtMatrix_2_1 : '2x1 Empty Matrix', + txtMatrix_1_3 : '1x3 Empty Matrix', + txtMatrix_3_1 : '3x1 Empty Matrix', + txtMatrix_2_2 : '2x2 Empty Matrix', + txtMatrix_2_3 : '2x3 Empty Matrix', + txtMatrix_3_2 : '3x2 Empty Matrix', + txtMatrix_3_3 : '3x3 Empty Matrix', + txtMatrix_Dots_Center : 'Midline Dots', + txtMatrix_Dots_Baseline : 'Baseline Dots', + txtMatrix_Dots_Vertical : 'Vertical Dots', + txtMatrix_Dots_Diagonal : 'Diagonal Dots', + txtMatrix_Identity_2 : '2x2 Identity Matrix', + txtMatrix_Identity_2_NoZeros : '3x3 Identity Matrix', + txtMatrix_Identity_3 : '3x3 Identity Matrix', + txtMatrix_Identity_3_NoZeros : '3x3 Identity Matrix', + txtMatrix_2_2_RoundBracket : 'Empty Matrix with Brackets', + txtMatrix_2_2_SquareBracket : 'Empty Matrix with Brackets', + txtMatrix_2_2_LineBracket : 'Empty Matrix with Brackets', + txtMatrix_2_2_DLineBracket : 'Empty Matrix with Brackets', + txtMatrix_Flat_Round : 'Sparse Matrix', + txtMatrix_Flat_Square : 'Sparse Matrix' + }, PE.Controllers.Toolbar || {})); }); \ No newline at end of file diff --git a/apps/presentationeditor/main/app/model/EquationGroup.js b/apps/presentationeditor/main/app/model/EquationGroup.js new file mode 100644 index 000000000..258a28dfa --- /dev/null +++ b/apps/presentationeditor/main/app/model/EquationGroup.js @@ -0,0 +1,71 @@ +/* + * + * (c) Copyright Ascensio System Limited 2010-2016 + * + * 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 + * +*/ +/** + * EquationGroup.js + * + * Created by Alexey Musinov on 29/10/14 + * Copyright (c) 2014 Ascensio System SIA. All rights reserved. + * + */ + + +define([ + 'backbone' +], function(Backbone){ 'use strict'; + + PE.Models = PE.Models || {}; + + PE.Models.EquationModel = Backbone.Model.extend({ + defaults: function() { + return { + id : Common.UI.getId(), + data : null, + width : 0, + height : 0, + posX : 0, + posY : 0 + } + } + }); + + PE.Models.EquationGroup = Backbone.Model.extend({ + defaults: function() { + return { + id : Common.UI.getId(), + groupName : null, + groupId : null, + groupStore : null + } + } + }); +}); diff --git a/apps/presentationeditor/main/app/template/Toolbar.template b/apps/presentationeditor/main/app/template/Toolbar.template index e00acacc4..aa3993020 100644 --- a/apps/presentationeditor/main/app/template/Toolbar.template +++ b/apps/presentationeditor/main/app/template/Toolbar.template @@ -163,6 +163,7 @@ +
diff --git a/apps/presentationeditor/main/app/view/DocumentHolder.js b/apps/presentationeditor/main/app/view/DocumentHolder.js index 30dddf552..9e2c73086 100644 --- a/apps/presentationeditor/main/app/view/DocumentHolder.js +++ b/apps/presentationeditor/main/app/view/DocumentHolder.js @@ -62,6 +62,9 @@ define([ me._TtHeight = 20; me.slidesCount = 0; me.fastcoauthtips = []; + me._currentMathObj = undefined; + me._currentParaObjDisabled = false; + /** coauthoring begin **/ var usersStore = PE.getCollection('Common.Collections.Users'); /** coauthoring end **/ @@ -156,6 +159,10 @@ define([ if ( (menu_props.shapeProps && menu_props.shapeProps.value || menu_props.chartProps && menu_props.chartProps.value)&& // text in shape, need to show paragraph menu with vertical align _.isUndefined(menu_props.tableProps)) menu_to_show = me.textMenu; + } else if (Asc.c_oAscTypeSelectElement.Math == elType) { + menu_props.mathProps = {}; + menu_props.mathProps.value = elValue; + me._currentMathObj = elValue; } }); if (menu_to_show === null) { @@ -632,6 +639,623 @@ define([ } }; + this.initEquationMenu = function() { + if (!me._currentMathObj) return; + var type = me._currentMathObj.get_Type(), + value = me._currentMathObj, + mnu, arr = []; + + switch (type) { + case Asc.c_oAscMathInterfaceType.Accent: + mnu = new Common.UI.MenuItem({ + caption : me.txtRemoveAccentChar, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'remove_AccentCharacter'} + }); + arr.push(mnu); + break; + case Asc.c_oAscMathInterfaceType.BorderBox: + mnu = new Common.UI.MenuItem({ + caption : me.txtBorderProps, + equation : true, + disabled : me._currentParaObjDisabled, + menu : new Common.UI.Menu({ + menuAlign: 'tl-tr', + items : [ + { + caption: value.get_HideTop() ? me.txtAddTop : me.txtHideTop, + equationProps: {type: type, callback: 'put_HideTop', value: !value.get_HideTop()} + }, + { + caption: value.get_HideBottom() ? me.txtAddBottom : me.txtHideBottom, + equationProps: {type: type, callback: 'put_HideBottom', value: !value.get_HideBottom()} + }, + { + caption: value.get_HideLeft() ? me.txtAddLeft : me.txtHideLeft, + equationProps: {type: type, callback: 'put_HideLeft', value: !value.get_HideLeft()} + }, + { + caption: value.get_HideRight() ? me.txtAddRight : me.txtHideRight, + equationProps: {type: type, callback: 'put_HideRight', value: !value.get_HideRight()} + }, + { + caption: value.get_HideHor() ? me.txtAddHor : me.txtHideHor, + equationProps: {type: type, callback: 'put_HideHor', value: !value.get_HideHor()} + }, + { + caption: value.get_HideVer() ? me.txtAddVer : me.txtHideVer, + equationProps: {type: type, callback: 'put_HideVer', value: !value.get_HideVer()} + }, + { + caption: value.get_HideTopLTR() ? me.txtAddLT : me.txtHideLT, + equationProps: {type: type, callback: 'put_HideTopLTR', value: !value.get_HideTopLTR()} + }, + { + caption: value.get_HideTopRTL() ? me.txtAddLB : me.txtHideLB, + equationProps: {type: type, callback: 'put_HideTopRTL', value: !value.get_HideTopRTL()} + } + ] + }) + }); + arr.push(mnu); + break; + case Asc.c_oAscMathInterfaceType.Bar: + mnu = new Common.UI.MenuItem({ + caption : me.txtRemoveBar, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'remove_Bar'} + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : (value.get_Pos()==Asc.c_oAscMathInterfaceBarPos.Top) ? me.txtUnderbar : me.txtOverbar, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_Pos', value: (value.get_Pos()==Asc.c_oAscMathInterfaceBarPos.Top) ? Asc.c_oAscMathInterfaceBarPos.Bottom : Asc.c_oAscMathInterfaceBarPos.Top} + }); + arr.push(mnu); + break; + case Asc.c_oAscMathInterfaceType.Script: + var scripttype = value.get_ScriptType(); + if (scripttype == Asc.c_oAscMathInterfaceScript.PreSubSup) { + mnu = new Common.UI.MenuItem({ + caption : me.txtScriptsAfter, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_ScriptType', value: Asc.c_oAscMathInterfaceScript.SubSup} + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : me.txtRemScripts, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_ScriptType', value: Asc.c_oAscMathInterfaceScript.None} + }); + arr.push(mnu); + } else { + if (scripttype == Asc.c_oAscMathInterfaceScript.SubSup) { + mnu = new Common.UI.MenuItem({ + caption : me.txtScriptsBefore, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_ScriptType', value: Asc.c_oAscMathInterfaceScript.PreSubSup} + }); + arr.push(mnu); + } + if (scripttype == Asc.c_oAscMathInterfaceScript.SubSup || scripttype == Asc.c_oAscMathInterfaceScript.Sub ) { + mnu = new Common.UI.MenuItem({ + caption : me.txtRemSubscript, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_ScriptType', value: (scripttype == Asc.c_oAscMathInterfaceScript.SubSup) ? Asc.c_oAscMathInterfaceScript.Sup : Asc.c_oAscMathInterfaceScript.None } + }); + arr.push(mnu); + } + if (scripttype == Asc.c_oAscMathInterfaceScript.SubSup || scripttype == Asc.c_oAscMathInterfaceScript.Sup ) { + mnu = new Common.UI.MenuItem({ + caption : me.txtRemSuperscript, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_ScriptType', value: (scripttype == Asc.c_oAscMathInterfaceScript.SubSup) ? Asc.c_oAscMathInterfaceScript.Sub : Asc.c_oAscMathInterfaceScript.None } + }); + arr.push(mnu); + } + } + break; + case Asc.c_oAscMathInterfaceType.Fraction: + var fraction = value.get_FractionType(); + if (fraction==Asc.c_oAscMathInterfaceFraction.Skewed || fraction==Asc.c_oAscMathInterfaceFraction.Linear) { + mnu = new Common.UI.MenuItem({ + caption : me.txtFractionStacked, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_FractionType', value: Asc.c_oAscMathInterfaceFraction.Bar} + }); + arr.push(mnu); + } + if (fraction==Asc.c_oAscMathInterfaceFraction.Bar || fraction==Asc.c_oAscMathInterfaceFraction.Linear) { + mnu = new Common.UI.MenuItem({ + caption : me.txtFractionSkewed, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_FractionType', value: Asc.c_oAscMathInterfaceFraction.Skewed} + }); + arr.push(mnu); + } + if (fraction==Asc.c_oAscMathInterfaceFraction.Bar || fraction==Asc.c_oAscMathInterfaceFraction.Skewed) { + mnu = new Common.UI.MenuItem({ + caption : me.txtFractionLinear, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_FractionType', value: Asc.c_oAscMathInterfaceFraction.Linear} + }); + arr.push(mnu); + } + if (fraction==Asc.c_oAscMathInterfaceFraction.Bar || fraction==Asc.c_oAscMathInterfaceFraction.NoBar) { + mnu = new Common.UI.MenuItem({ + caption : (fraction==Asc.c_oAscMathInterfaceFraction.Bar) ? me.txtRemFractionBar : me.txtAddFractionBar, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_FractionType', value: (fraction==Asc.c_oAscMathInterfaceFraction.Bar) ? Asc.c_oAscMathInterfaceFraction.NoBar : Asc.c_oAscMathInterfaceFraction.Bar} + }); + arr.push(mnu); + } + break; + case Asc.c_oAscMathInterfaceType.Limit: + mnu = new Common.UI.MenuItem({ + caption : (value.get_Pos()==Asc.c_oAscMathInterfaceLimitPos.Top) ? me.txtLimitUnder : me.txtLimitOver, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_Pos', value: (value.get_Pos()==Asc.c_oAscMathInterfaceLimitPos.Top) ? Asc.c_oAscMathInterfaceLimitPos.Bottom : Asc.c_oAscMathInterfaceLimitPos.Top} + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : me.txtRemLimit, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_Pos', value: Asc.c_oAscMathInterfaceLimitPos.None} + }); + arr.push(mnu); + break; + case Asc.c_oAscMathInterfaceType.Matrix: + mnu = new Common.UI.MenuItem({ + caption : value.get_HidePlaceholder() ? me.txtShowPlaceholder : me.txtHidePlaceholder, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_HidePlaceholder', value: !value.get_HidePlaceholder()} + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : me.insertText, + equation : true, + disabled : me._currentParaObjDisabled, + menu : new Common.UI.Menu({ + menuAlign: 'tl-tr', + items : [ + { + caption: me.insertRowAboveText, + equationProps: {type: type, callback: 'insert_MatrixRow', value: true} + }, + { + caption: me.insertRowBelowText, + equationProps: {type: type, callback: 'insert_MatrixRow', value: false} + }, + { + caption: me.insertColumnLeftText, + equationProps: {type: type, callback: 'insert_MatrixColumn', value: true} + }, + { + caption: me.insertColumnRightText, + equationProps: {type: type, callback: 'insert_MatrixColumn', value: false} + } + ] + }) + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : me.deleteText, + equation : true, + disabled : me._currentParaObjDisabled, + menu : new Common.UI.Menu({ + menuAlign: 'tl-tr', + items : [ + { + caption: me.deleteRowText, + equationProps: {type: type, callback: 'delete_MatrixRow'} + }, + { + caption: me.deleteColumnText, + equationProps: {type: type, callback: 'delete_MatrixColumn'} + } + ] + }) + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : me.txtMatrixAlign, + equation : true, + disabled : me._currentParaObjDisabled, + menu : new Common.UI.Menu({ + menuAlign: 'tl-tr', + items : [ + { + caption: me.txtTop, + checkable : true, + checked : (value.get_MatrixAlign()==Asc.c_oAscMathInterfaceMatrixMatrixAlign.Top), + equationProps: {type: type, callback: 'put_MatrixAlign', value: Asc.c_oAscMathInterfaceMatrixMatrixAlign.Top} + }, + { + caption: me.centerText, + checkable : true, + checked : (value.get_MatrixAlign()==Asc.c_oAscMathInterfaceMatrixMatrixAlign.Center), + equationProps: {type: type, callback: 'put_MatrixAlign', value: Asc.c_oAscMathInterfaceMatrixMatrixAlign.Center} + }, + { + caption: me.txtBottom, + checkable : true, + checked : (value.get_MatrixAlign()==Asc.c_oAscMathInterfaceMatrixMatrixAlign.Bottom), + equationProps: {type: type, callback: 'put_MatrixAlign', value: Asc.c_oAscMathInterfaceMatrixMatrixAlign.Bottom} + } + ] + }) + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : me.txtColumnAlign, + equation : true, + disabled : me._currentParaObjDisabled, + menu : new Common.UI.Menu({ + menuAlign: 'tl-tr', + items : [ + { + caption: me.leftText, + checkable : true, + checked : (value.get_ColumnAlign()==Asc.c_oAscMathInterfaceMatrixColumnAlign.Left), + equationProps: {type: type, callback: 'put_ColumnAlign', value: Asc.c_oAscMathInterfaceMatrixColumnAlign.Left} + }, + { + caption: me.centerText, + checkable : true, + checked : (value.get_ColumnAlign()==Asc.c_oAscMathInterfaceMatrixColumnAlign.Center), + equationProps: {type: type, callback: 'put_ColumnAlign', value: Asc.c_oAscMathInterfaceMatrixColumnAlign.Center} + }, + { + caption: me.rightText, + checkable : true, + checked : (value.get_ColumnAlign()==Asc.c_oAscMathInterfaceMatrixColumnAlign.Right), + equationProps: {type: type, callback: 'put_ColumnAlign', value: Asc.c_oAscMathInterfaceMatrixColumnAlign.Right} + } + ] + }) + }); + arr.push(mnu); + break; + case Asc.c_oAscMathInterfaceType.EqArray: + mnu = new Common.UI.MenuItem({ + caption : me.txtInsertEqBefore, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'insert_Equation', value: true} + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : me.txtInsertEqAfter, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'insert_Equation', value: false} + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : me.txtDeleteEq, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'delete_Equation'} + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : me.alignmentText, + equation : true, + disabled : me._currentParaObjDisabled, + menu : new Common.UI.Menu({ + menuAlign: 'tl-tr', + items : [ + { + caption: me.txtTop, + checkable : true, + checked : (value.get_Align()==Asc.c_oAscMathInterfaceEqArrayAlign.Top), + equationProps: {type: type, callback: 'put_Align', value: Asc.c_oAscMathInterfaceEqArrayAlign.Top} + }, + { + caption: me.centerText, + checkable : true, + checked : (value.get_Align()==Asc.c_oAscMathInterfaceEqArrayAlign.Center), + equationProps: {type: type, callback: 'put_Align', value: Asc.c_oAscMathInterfaceEqArrayAlign.Center} + }, + { + caption: me.txtBottom, + checkable : true, + checked : (value.get_Align()==Asc.c_oAscMathInterfaceEqArrayAlign.Bottom), + equationProps: {type: type, callback: 'put_Align', value: Asc.c_oAscMathInterfaceEqArrayAlign.Bottom} + } + ] + }) + }); + arr.push(mnu); + break; + case Asc.c_oAscMathInterfaceType.LargeOperator: + mnu = new Common.UI.MenuItem({ + caption : me.txtLimitChange, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_LimitLocation', value: (value.get_LimitLocation() == Asc.c_oAscMathInterfaceNaryLimitLocation.UndOvr) ? Asc.c_oAscMathInterfaceNaryLimitLocation.SubSup : Asc.c_oAscMathInterfaceNaryLimitLocation.UndOvr} + }); + arr.push(mnu); + if (value.get_HideUpper() !== undefined) { + mnu = new Common.UI.MenuItem({ + caption : value.get_HideUpper() ? me.txtShowTopLimit : me.txtHideTopLimit, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_HideUpper', value: !value.get_HideUpper()} + }); + arr.push(mnu); + } + if (value.get_HideLower() !== undefined) { + mnu = new Common.UI.MenuItem({ + caption : value.get_HideLower() ? me.txtShowBottomLimit : me.txtHideBottomLimit, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_HideLower', value: !value.get_HideLower()} + }); + arr.push(mnu); + } + break; + case Asc.c_oAscMathInterfaceType.Delimiter: + mnu = new Common.UI.MenuItem({ + caption : me.txtInsertArgBefore, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'insert_DelimiterArgument', value: true} + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : me.txtInsertArgAfter, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'insert_DelimiterArgument', value: false} + }); + arr.push(mnu); + if (value.can_DeleteArgument()) { + mnu = new Common.UI.MenuItem({ + caption : me.txtDeleteArg, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'delete_DelimiterArgument'} + }); + arr.push(mnu); + } + mnu = new Common.UI.MenuItem({ + caption : value.has_Separators() ? me.txtDeleteCharsAndSeparators : me.txtDeleteChars, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'remove_DelimiterCharacters'} + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : value.get_HideOpeningBracket() ? me.txtShowOpenBracket : me.txtHideOpenBracket, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_HideOpeningBracket', value: !value.get_HideOpeningBracket()} + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : value.get_HideClosingBracket() ? me.txtShowCloseBracket : me.txtHideCloseBracket, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_HideClosingBracket', value: !value.get_HideClosingBracket()} + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : me.txtStretchBrackets, + equation : true, + disabled : me._currentParaObjDisabled, + checkable : true, + checked : value.get_StretchBrackets(), + equationProps: {type: type, callback: 'put_StretchBrackets', value: !value.get_StretchBrackets()} + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : me.txtMatchBrackets, + equation : true, + disabled : (!value.get_StretchBrackets() || me._currentParaObjDisabled), + checkable : true, + checked : value.get_StretchBrackets() && value.get_MatchBrackets(), + equationProps: {type: type, callback: 'put_MatchBrackets', value: !value.get_MatchBrackets()} + }); + arr.push(mnu); + break; + case Asc.c_oAscMathInterfaceType.GroupChar: + if (value.can_ChangePos()) { + mnu = new Common.UI.MenuItem({ + caption : (value.get_Pos()==Asc.c_oAscMathInterfaceGroupCharPos.Top) ? me.txtGroupCharUnder : me.txtGroupCharOver, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_Pos', value: (value.get_Pos()==Asc.c_oAscMathInterfaceGroupCharPos.Top) ? Asc.c_oAscMathInterfaceGroupCharPos.Bottom : Asc.c_oAscMathInterfaceGroupCharPos.Top} + }); + arr.push(mnu); + mnu = new Common.UI.MenuItem({ + caption : me.txtDeleteGroupChar, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_Pos', value: Asc.c_oAscMathInterfaceGroupCharPos.None} + }); + arr.push(mnu); + } + break; + case Asc.c_oAscMathInterfaceType.Radical: + if (value.get_HideDegree() !== undefined) { + mnu = new Common.UI.MenuItem({ + caption : value.get_HideDegree() ? me.txtShowDegree : me.txtHideDegree, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'put_HideDegree', value: !value.get_HideDegree()} + }); + arr.push(mnu); + } + mnu = new Common.UI.MenuItem({ + caption : me.txtDeleteRadical, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'remove_Radical'} + }); + arr.push(mnu); + break; + } + if (value.can_IncreaseArgumentSize()) { + mnu = new Common.UI.MenuItem({ + caption : me.txtIncreaseArg, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'increase_ArgumentSize'} + }); + arr.push(mnu); + } + if (value.can_DecreaseArgumentSize()) { + mnu = new Common.UI.MenuItem({ + caption : me.txtDecreaseArg, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'decrease_ArgumentSize'} + }); + arr.push(mnu); + } + if (value.can_InsertManualBreak()) { + mnu = new Common.UI.MenuItem({ + caption : me.txtInsertBreak, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'insert_ManualBreak'} + }); + arr.push(mnu); + } + if (value.can_DeleteManualBreak()) { + mnu = new Common.UI.MenuItem({ + caption : me.txtDeleteBreak, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'delete_ManualBreak'} + }); + arr.push(mnu); + } + if (value.can_AlignToCharacter()) { + mnu = new Common.UI.MenuItem({ + caption : me.txtAlignToChar, + equation : true, + disabled : me._currentParaObjDisabled, + equationProps: {type: type, callback: 'align_ToCharacter'} + }); + arr.push(mnu); + } + return arr; + }; + + this.addEquationMenu = function(isParagraph, insertIdx) { + if (_.isUndefined(isParagraph)) { + isParagraph = me.textMenu.isVisible(); + } + + me.clearEquationMenu(isParagraph, insertIdx); + + var equationMenu = (isParagraph) ? me.textMenu : me.tableMenu, + menuItems = me.initEquationMenu(); + + if (menuItems.length > 0) { + _.each(menuItems, function(menuItem, index) { + if (menuItem.menu) { + _.each(menuItem.menu.items, function(item) { + item.on('click', _.bind(me.equationCallback, me, item.options.equationProps)); + }); + } else + menuItem.on('click', _.bind(me.equationCallback, me, menuItem.options.equationProps)); + equationMenu.insertItem(insertIdx, menuItem); + insertIdx++; + }); + } + return menuItems.length; + }; + + this.clearEquationMenu = function(isParagraph, insertIdx) { + var equationMenu = (isParagraph) ? me.textMenu : me.tableMenu; + for (var i = insertIdx; i < equationMenu.items.length; i++) { + if (equationMenu.items[i].options.equation) { + if (equationMenu.items[i].menu) { + _.each(equationMenu.items[i].menu.items, function(item) { + item.off('click'); + }); + } else + equationMenu.items[i].off('click'); + equationMenu.removeItem(equationMenu.items[i]); + i--; + } else + break; + } + }; + + this.equationCallback = function(eqProps) { + if (eqProps) { + var eqObj; + switch (eqProps.type) { + case Asc.c_oAscMathInterfaceType.Accent: + eqObj = new CMathMenuAccent(); + break; + case Asc.c_oAscMathInterfaceType.BorderBox: + eqObj = new CMathMenuBorderBox(); + break; + case Asc.c_oAscMathInterfaceType.Box: + eqObj = new CMathMenuBox(); + break; + case Asc.c_oAscMathInterfaceType.Bar: + eqObj = new CMathMenuBar(); + break; + case Asc.c_oAscMathInterfaceType.Script: + eqObj = new CMathMenuScript(); + break; + case Asc.c_oAscMathInterfaceType.Fraction: + eqObj = new CMathMenuFraction(); + break; + case Asc.c_oAscMathInterfaceType.Limit: + eqObj = new CMathMenuLimit(); + break; + case Asc.c_oAscMathInterfaceType.Matrix: + eqObj = new CMathMenuMatrix(); + break; + case Asc.c_oAscMathInterfaceType.EqArray: + eqObj = new CMathMenuEqArray(); + break; + case Asc.c_oAscMathInterfaceType.LargeOperator: + eqObj = new CMathMenuNary(); + break; + case Asc.c_oAscMathInterfaceType.Delimiter: + eqObj = new CMathMenuDelimiter(); + break; + case Asc.c_oAscMathInterfaceType.GroupChar: + eqObj = new CMathMenuGroupCharacter(); + break; + case Asc.c_oAscMathInterfaceType.Radical: + eqObj = new CMathMenuRadical(); + break; + case Asc.c_oAscMathInterfaceType.Common: + eqObj = new CMathMenuBase(); + break; + } + if (eqObj) { + eqObj[eqProps.callback](eqProps.value); + me.api.asc_SetMathProps(eqObj); + } + } + me.fireEvent('editcomplete', me); + }; + this.changePosition = function() { me._XY = [ me.cmpEl.offset().left - $(window).scrollLeft(), @@ -1698,6 +2322,14 @@ define([ value : 'cut' }).on('click', _.bind(me.onCutCopyPaste, me)); + var menuEquationSeparator = new Common.UI.MenuItem({ + caption : '--' + }); + + var menuEquationSeparatorInTable = new Common.UI.MenuItem({ + caption : '--' + }); + me.textMenu = new Common.UI.Menu({ initMenu: function(value){ var isInShape = (value.shapeProps && !_.isNull(value.shapeProps.value)); @@ -1706,9 +2338,11 @@ define([ var disabled = (value.paraProps!==undefined && value.paraProps.locked) || (value.slideProps!==undefined && value.slideProps.locked) || (isInShape && value.shapeProps.locked); + var isEquation= (value.mathProps && value.mathProps.value); + me._currentParaObjDisabled = disabled; - menuParagraphVAlign.setVisible(isInShape && !isInChart); // после того, как заголовок можно будет растягивать по вертикали, вернуть "|| isInChart" !! - menuParagraphDirection.setVisible(isInShape && !isInChart); // после того, как заголовок можно будет растягивать по вертикали, вернуть "|| isInChart" !! + menuParagraphVAlign.setVisible(isInShape && !isInChart && !isEquation); // после того, как заголовок можно будет растягивать по вертикали, вернуть "|| isInChart" !! + menuParagraphDirection.setVisible(isInShape && !isInChart && !isEquation); // после того, как заголовок можно будет растягивать по вертикали, вернуть "|| isInChart" !! if (isInShape || isInChart) { var align = value.shapeProps.value.get_VerticalTextAlign(); me.menuParagraphTop.setChecked(align == Asc.c_oAscVerticalTextAlign.TEXT_ALIGN_TOP); @@ -1755,11 +2389,20 @@ define([ menuParagraphAdvanced.setDisabled(disabled); menuParaCut.setDisabled(disabled); menuParaPaste.setDisabled(disabled); + + //equation menu + var eqlen = 0; + if (isEquation) { + eqlen = me.addEquationMenu(true, 4); + } else + me.clearEquationMenu(true, 4); + menuEquationSeparator.setVisible(isEquation && eqlen>0); }, items: [ menuParaCut, menuParaCopy, menuParaPaste, + menuEquationSeparator, { caption: '--' }, menuParagraphVAlign, menuParagraphDirection, @@ -1787,6 +2430,11 @@ define([ if (_.isUndefined(value.tableProps)) return; + var isEquation= (value.mathProps && value.mathProps.value); + for (var i = 4; i < 14; i++) { + me.tableMenu.items[i].setVisible(!isEquation); + } + var disabled = (value.slideProps!==undefined && value.slideProps.locked); me.menuTableCellTop.setChecked(value.tableProps.value.get_CellsVAlign() == Asc.c_oAscVertAlignJc.Top); @@ -1826,14 +2474,22 @@ define([ if (!_.isUndefined(value.paraProps)) { menuAddHyperlinkTable.setDisabled(value.paraProps.locked || disabled); menuHyperlinkTable.setDisabled(value.paraProps.locked || disabled); + me._currentParaObjDisabled = value.paraProps.locked || disabled; } /** coauthoring begin **/ menuAddCommentTable.setVisible(me.api.can_AddQuotedComment()!==false && me.mode.canCoAuthoring && me.mode.canComments); menuAddCommentTable.setDisabled(!_.isUndefined(value.paraProps) && value.paraProps.locked || disabled); /** coauthoring end **/ - menuHyperlinkSeparator.setVisible(menuAddHyperlinkTable.isVisible() || menuHyperlinkTable.isVisible() /** coauthoring begin **/|| menuAddCommentTable.isVisible()/** coauthoring end **/); + + //equation menu + var eqlen = 0; + if (isEquation) { + eqlen = me.addEquationMenu(false, 4); + menuHyperlinkSeparator.setVisible(menuHyperlinkSeparator.isVisible() && eqlen>0); + } else + me.clearEquationMenu(false, 4); }, items: [ menuTableCut, @@ -2085,7 +2741,78 @@ define([ directionText: 'Text Direction', directHText: 'Horizontal', direct90Text: 'Rotate at 90°', - direct270Text: 'Rotate at 270°' + direct270Text: 'Rotate at 270°', + txtRemoveAccentChar: 'Remove accent character', + txtBorderProps: 'Borders property', + txtHideTop: 'Hide top border', + txtHideBottom: 'Hide bottom border', + txtHideLeft: 'Hide left border', + txtHideRight: 'Hide right border', + txtHideHor: 'Hide horizontal line', + txtHideVer: 'Hide vertical line', + txtHideLT: 'Hide left top line', + txtHideLB: 'Hide left bottom line', + txtAddTop: 'Add top border', + txtAddBottom: 'Add bottom border', + txtAddLeft: 'Add left border', + txtAddRight: 'Add right border', + txtAddHor: 'Add horizontal line', + txtAddVer: 'Add vertical line', + txtAddLT: 'Add left top line', + txtAddLB: 'Add left bottom line', + txtRemoveBar: 'Remove bar', + txtOverbar: 'Bar over text', + txtUnderbar: 'Bar under text', + txtRemScripts: 'Remove scripts', + txtRemSubscript: 'Remove subscript', + txtRemSuperscript: 'Remove superscript', + txtScriptsAfter: 'Scripts after text', + txtScriptsBefore: 'Scripts before text', + txtFractionStacked: 'Change to stacked fraction', + txtFractionSkewed: 'Change to skewed fraction', + txtFractionLinear: 'Change to linear fraction', + txtRemFractionBar: 'Remove fraction bar', + txtAddFractionBar: 'Add fraction bar', + txtRemLimit: 'Remove limit', + txtLimitOver: 'Limit over text', + txtLimitUnder: 'Limit under text', + txtHidePlaceholder: 'Hide placeholder', + txtShowPlaceholder: 'Show placeholder', + txtMatrixAlign: 'Matrix alignment', + txtColumnAlign: 'Column alignment', + txtTop: 'Top', + txtBottom: 'Bottom', + txtInsertEqBefore: 'Insert equation before', + txtInsertEqAfter: 'Insert equation after', + txtDeleteEq: 'Delete equation', + txtLimitChange: 'Change limits location', + txtHideTopLimit: 'Hide top limit', + txtShowTopLimit: 'Show top limit', + txtHideBottomLimit: 'Hide bottom limit', + txtShowBottomLimit: 'Show bottom limit', + txtInsertArgBefore: 'Insert argument before', + txtInsertArgAfter: 'Insert argument after', + txtDeleteArg: 'Delete argument', + txtHideOpenBracket: 'Hide opening bracket', + txtShowOpenBracket: 'Show opening bracket', + txtHideCloseBracket: 'Hide closing bracket', + txtShowCloseBracket: 'Show closing bracket', + txtStretchBrackets: 'Stretch brackets', + txtMatchBrackets: 'Match brackets to argument height', + txtGroupCharOver: 'Char over text', + txtGroupCharUnder: 'Char under text', + txtDeleteGroupChar: 'Delete char', + txtHideDegree: 'Hide degree', + txtShowDegree: 'Show degree', + txtIncreaseArg: 'Increase argument size', + txtDecreaseArg: 'Decrease argument size', + txtInsertBreak: 'Insert manual break', + txtDeleteBreak: 'Delete manual break', + txtAlignToChar: 'Align to character', + txtDeleteRadical: 'Delete radical', + txtDeleteChars: 'Delete enclosing characters', + txtDeleteCharsAndSeparators: 'Delete enclosing characters and separators' + }, PE.Views.DocumentHolder || {})); }); \ No newline at end of file diff --git a/apps/presentationeditor/main/app/view/Toolbar.js b/apps/presentationeditor/main/app/view/Toolbar.js index ee71a21b9..7f5cd4a58 100644 --- a/apps/presentationeditor/main/app/view/Toolbar.js +++ b/apps/presentationeditor/main/app/view/Toolbar.js @@ -80,7 +80,8 @@ define([ noObjectSelected: 'no-object', disableOnStart: 'on-start', cantPrint: 'cant-print', - noTextSelected: 'no-text' + noTextSelected: 'no-text', + inEquation: 'in-equation' }; PE.Views.Toolbar = Backbone.View.extend(_.extend({ @@ -297,7 +298,7 @@ define([ id : 'id-toolbar-btn-superscript', cls : 'btn-toolbar', iconCls : 'btn-superscript', - lock : [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noTextSelected, _set.shapeLock], + lock : [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noTextSelected, _set.shapeLock, _set.inEquation], enableToggle: true, toggleGroup : 'superscriptGroup' }); @@ -307,7 +308,7 @@ define([ id : 'id-toolbar-btn-subscript', cls : 'btn-toolbar', iconCls : 'btn-subscript', - lock : [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noTextSelected, _set.shapeLock], + lock : [_set.slideDeleted, _set.paragraphLock, _set.lostConnect, _set.noSlides, _set.noTextSelected, _set.shapeLock, _set.inEquation], enableToggle: true, toggleGroup : 'superscriptGroup' }); @@ -632,6 +633,16 @@ define([ }); me.slideOnlyControls.push(me.btnInsertText); + this.btnInsertEquation = new Common.UI.Button({ + id : 'id-toolbar-btn-insertequation', + cls : 'btn-toolbar', + iconCls : 'btn-insertequation', + lock : [_set.slideDeleted, _set.lostConnect, _set.noSlides, _set.disableOnStart], + split : true, + menu : new Common.UI.Menu({cls: 'menu-shapes'}) + }); + this.slideOnlyControls.push(this.btnInsertEquation); + me.btnInsertHyperlink = new Common.UI.Button({ id : 'id-toolbar-btn-inserthyperlink', cls : 'btn-toolbar', @@ -899,7 +910,7 @@ define([ this.btnSubscript, this.btnFontColor, this.btnClearStyle, this.btnCopyStyle, this.btnMarkers, this.btnNumbers, this.btnDecLeftOffset, this.btnIncLeftOffset, this.btnLineSpace, this.btnHorizontalAlign, this.btnVerticalAlign, this.btnShapeArrange, this.btnShapeAlign, this.btnInsertTable, this.btnInsertImage, - this.btnInsertChart, this.btnInsertText, + this.btnInsertChart, this.btnInsertText, this.btnInsertEquation, this.btnInsertHyperlink, this.btnInsertShape, this.btnColorSchemas, this.btnSlideSize, this.listTheme, this.mnuShowSettings ]; @@ -1034,6 +1045,7 @@ define([ replacePlacholder('#id-toolbar-' + prefix + '-placeholder-btn-align-shape', this.btnShapeAlign); replacePlacholder('#id-toolbar-' + prefix + '-placeholder-btn-insertshape', this.btnInsertShape); replacePlacholder('#id-toolbar-' + prefix + '-placeholder-btn-inserttext', this.btnInsertText); + replacePlacholder('#id-toolbar-' + prefix + '-placeholder-btn-insertequation', this.btnInsertEquation); replacePlacholder('#id-toolbar-' + prefix + '-placeholder-btn-inserthyperlink',this.btnInsertHyperlink); replacePlacholder('#id-toolbar-' + prefix + '-placeholder-btn-inserttable', this.btnInsertTable); replacePlacholder('#id-toolbar-' + prefix + '-placeholder-btn-insertimage', this.btnInsertImage); @@ -1080,6 +1092,7 @@ define([ this.btnInsertImage.updateHint(this.tipInsertImage); this.btnInsertChart.updateHint(this.tipInsertChart); this.btnInsertText.updateHint(this.tipInsertText); + this.btnInsertEquation.updateHint(this.tipInsertEquation); this.btnInsertHyperlink.updateHint(this.tipInsertHyperlink + Common.Utils.String.platformKey('Ctrl+K')); this.btnInsertShape.updateHint(this.tipInsertShape); this.btnColorSchemas.updateHint(this.tipColorSchemas); @@ -1397,6 +1410,10 @@ define([ if (me.listTheme.menuPicker.store.length > 0 && listStylesVisible){ me.listTheme.fillComboView(me.listTheme.menuPicker.getSelectedRec(), true); } + + if (me.btnInsertEquation.rendered) + PE.getController('Toolbar').fillEquations(); + }, 100); } @@ -1694,6 +1711,7 @@ define([ textInsTextArt: 'Insert Text Art', textShowBegin: 'Show from Beginning', textShowCurrent: 'Show from Current slide', - textShowSettings: 'Show Settings' + textShowSettings: 'Show Settings', + tipInsertEquation: 'Insert Equation' }, PE.Views.Toolbar || {})); }); \ No newline at end of file diff --git a/apps/presentationeditor/main/locale/en.json b/apps/presentationeditor/main/locale/en.json index 7f5687b99..a85d361a4 100644 --- a/apps/presentationeditor/main/locale/en.json +++ b/apps/presentationeditor/main/locale/en.json @@ -245,6 +245,334 @@ "PE.Controllers.Toolbar.textEmptyImgUrl": "You need to specify image URL.", "PE.Controllers.Toolbar.textFontSizeErr": "The entered value is incorrect.
Please enter a numeric value between 1 and 100", "PE.Controllers.Toolbar.textWarning": "Warning", + "PE.Controllers.Toolbar.textAccent": "Accents", + "PE.Controllers.Toolbar.textBracket": "Brackets", + "PE.Controllers.Toolbar.textFraction": "Fractions", + "PE.Controllers.Toolbar.textFunction": "Functions", + "PE.Controllers.Toolbar.textIntegral": "Integrals", + "PE.Controllers.Toolbar.textLargeOperator": "Large Operators", + "PE.Controllers.Toolbar.textLimitAndLog": "Limits And Logarithms", + "PE.Controllers.Toolbar.textMatrix": "Matrices", + "PE.Controllers.Toolbar.textOperator": "Operators", + "PE.Controllers.Toolbar.textRadical": "Radicals", + "PE.Controllers.Toolbar.textScript": "Scripts", + "PE.Controllers.Toolbar.textSymbols": "Symbols", + "PE.Controllers.Toolbar.txtAccent_Accent": "Acute", + "PE.Controllers.Toolbar.txtAccent_ArrowD": "Right-Left Arrow Above", + "PE.Controllers.Toolbar.txtAccent_ArrowL": "Leftwards Arrow Above", + "PE.Controllers.Toolbar.txtAccent_ArrowR": "Rightwards Arrow Above", + "PE.Controllers.Toolbar.txtAccent_Bar": "Bar", + "PE.Controllers.Toolbar.txtAccent_BarBot": "Underbar", + "PE.Controllers.Toolbar.txtAccent_BarTop": "Overbar", + "PE.Controllers.Toolbar.txtAccent_BorderBox": "Boxed Formula (With Placeholder)", + "PE.Controllers.Toolbar.txtAccent_BorderBoxCustom": "Boxed Formula(Example)", + "PE.Controllers.Toolbar.txtAccent_Check": "Check", + "PE.Controllers.Toolbar.txtAccent_CurveBracketBot": "Underbrace", + "PE.Controllers.Toolbar.txtAccent_CurveBracketTop": "Overbrace", + "PE.Controllers.Toolbar.txtAccent_Custom_1": "Vector A", + "PE.Controllers.Toolbar.txtAccent_Custom_2": "ABC With Overbar", + "PE.Controllers.Toolbar.txtAccent_Custom_3": "x XOR y With Overbar", + "PE.Controllers.Toolbar.txtAccent_DDDot": "Triple Dot", + "PE.Controllers.Toolbar.txtAccent_DDot": "Double Dot", + "PE.Controllers.Toolbar.txtAccent_Dot": "Dot", + "PE.Controllers.Toolbar.txtAccent_DoubleBar": "Double Overbar", + "PE.Controllers.Toolbar.txtAccent_Grave": "Grave", + "PE.Controllers.Toolbar.txtAccent_GroupBot": "Grouping Character Below", + "PE.Controllers.Toolbar.txtAccent_GroupTop": "Grouping Character Above", + "PE.Controllers.Toolbar.txtAccent_HarpoonL": "Leftwards Harpoon Above", + "PE.Controllers.Toolbar.txtAccent_HarpoonR": "Rightwards Harpoon Above", + "PE.Controllers.Toolbar.txtAccent_Hat": "Hat", + "PE.Controllers.Toolbar.txtAccent_Smile": "Breve", + "PE.Controllers.Toolbar.txtAccent_Tilde": "Tilde", + "PE.Controllers.Toolbar.txtBracket_Angle": "Brackets", + "PE.Controllers.Toolbar.txtBracket_Angle_Delimiter_2": "Brackets with Separators", + "PE.Controllers.Toolbar.txtBracket_Angle_Delimiter_3": "Brackets with Separators", + "PE.Controllers.Toolbar.txtBracket_Angle_NoneOpen": "Single Bracket", + "PE.Controllers.Toolbar.txtBracket_Angle_OpenNone": "Single Bracket", + "PE.Controllers.Toolbar.txtBracket_Curve": "Brackets", + "PE.Controllers.Toolbar.txtBracket_Curve_Delimiter_2": "Brackets with Separators", + "PE.Controllers.Toolbar.txtBracket_Curve_NoneOpen": "Single Bracket", + "PE.Controllers.Toolbar.txtBracket_Curve_OpenNone": "Single Bracket", + "PE.Controllers.Toolbar.txtBracket_Custom_1": "Cases (Two Conditions)", + "PE.Controllers.Toolbar.txtBracket_Custom_2": "Cases (Three Conditions)", + "PE.Controllers.Toolbar.txtBracket_Custom_3": "Stack Object", + "PE.Controllers.Toolbar.txtBracket_Custom_4": "Stack Object", + "PE.Controllers.Toolbar.txtBracket_Custom_5": "Cases Example", + "PE.Controllers.Toolbar.txtBracket_Custom_6": "Binomial Coefficient", + "PE.Controllers.Toolbar.txtBracket_Custom_7": "Binomial Coefficient", + "PE.Controllers.Toolbar.txtBracket_Line": "Brackets", + "PE.Controllers.Toolbar.txtBracket_Line_NoneOpen": "Single Bracket", + "PE.Controllers.Toolbar.txtBracket_Line_OpenNone": "Single Bracket", + "PE.Controllers.Toolbar.txtBracket_LineDouble": "Brackets", + "PE.Controllers.Toolbar.txtBracket_LineDouble_NoneOpen": "Single Bracket", + "PE.Controllers.Toolbar.txtBracket_LineDouble_OpenNone": "Single Bracket", + "PE.Controllers.Toolbar.txtBracket_LowLim": "Brackets", + "PE.Controllers.Toolbar.txtBracket_LowLim_NoneNone": "Single Bracket", + "PE.Controllers.Toolbar.txtBracket_LowLim_OpenNone": "Single Bracket", + "PE.Controllers.Toolbar.txtBracket_Round": "Brackets", + "PE.Controllers.Toolbar.txtBracket_Round_Delimiter_2": "Brackets with Separators", + "PE.Controllers.Toolbar.txtBracket_Round_NoneOpen": "Single Bracket", + "PE.Controllers.Toolbar.txtBracket_Round_OpenNone": "Single Bracket", + "PE.Controllers.Toolbar.txtBracket_Square": "Brackets", + "PE.Controllers.Toolbar.txtBracket_Square_CloseClose": "Brackets", + "PE.Controllers.Toolbar.txtBracket_Square_CloseOpen": "Brackets", + "PE.Controllers.Toolbar.txtBracket_Square_NoneOpen": "Single Bracket", + "PE.Controllers.Toolbar.txtBracket_Square_OpenNone": "Single Bracket", + "PE.Controllers.Toolbar.txtBracket_Square_OpenOpen": "Brackets", + "PE.Controllers.Toolbar.txtBracket_SquareDouble": "Brackets", + "PE.Controllers.Toolbar.txtBracket_SquareDouble_NoneOpen": "Single Bracket", + "PE.Controllers.Toolbar.txtBracket_SquareDouble_OpenNone": "Single Bracket", + "PE.Controllers.Toolbar.txtBracket_UppLim": "Brackets", + "PE.Controllers.Toolbar.txtBracket_UppLim_NoneOpen": "Single Bracket", + "PE.Controllers.Toolbar.txtBracket_UppLim_OpenNone": "Single Bracket", + "PE.Controllers.Toolbar.txtFractionDiagonal": "Skewed Fraction", + "PE.Controllers.Toolbar.txtFractionDifferential_1": "Differential", + "PE.Controllers.Toolbar.txtFractionDifferential_2": "Differential", + "PE.Controllers.Toolbar.txtFractionDifferential_3": "Differential", + "PE.Controllers.Toolbar.txtFractionDifferential_4": "Differential", + "PE.Controllers.Toolbar.txtFractionHorizontal": "Linear Fraction", + "PE.Controllers.Toolbar.txtFractionPi_2": "Pi Over 2", + "PE.Controllers.Toolbar.txtFractionSmall": "Small Fraction", + "PE.Controllers.Toolbar.txtFractionVertical": "Stacked Fraction", + "PE.Controllers.Toolbar.txtFunction_1_Cos": "Inverse Cosine Function", + "PE.Controllers.Toolbar.txtFunction_1_Cosh": "Hyperbolic Inverse Cosine Function", + "PE.Controllers.Toolbar.txtFunction_1_Cot": "Inverse Cotangent Function", + "PE.Controllers.Toolbar.txtFunction_1_Coth": "Hyperbolic Inverse Cotangent Function", + "PE.Controllers.Toolbar.txtFunction_1_Csc": "Inverse Cosecant Function", + "PE.Controllers.Toolbar.txtFunction_1_Csch": "Hyperbolic Inverse Cosecant Function", + "PE.Controllers.Toolbar.txtFunction_1_Sec": "Inverse Secant Function", + "PE.Controllers.Toolbar.txtFunction_1_Sech": "Hyperbolic Inverse Secant Function", + "PE.Controllers.Toolbar.txtFunction_1_Sin": "Inverse Sine Function", + "PE.Controllers.Toolbar.txtFunction_1_Sinh": "Hyperbolic Inverse Sine Function", + "PE.Controllers.Toolbar.txtFunction_1_Tan": "Inverse Tangent Function", + "PE.Controllers.Toolbar.txtFunction_1_Tanh": "Hyperbolic Inverse Tangent Function", + "PE.Controllers.Toolbar.txtFunction_Cos": "Cosine Function", + "PE.Controllers.Toolbar.txtFunction_Cosh": "Hyperbolic Cosine Function", + "PE.Controllers.Toolbar.txtFunction_Cot": "Cotangent Function", + "PE.Controllers.Toolbar.txtFunction_Coth": "Hyperbolic Cotangent Function", + "PE.Controllers.Toolbar.txtFunction_Csc": "Cosecant Function", + "PE.Controllers.Toolbar.txtFunction_Csch": "Hyperbolic Cosecant Function", + "PE.Controllers.Toolbar.txtFunction_Custom_1": "Sine theta", + "PE.Controllers.Toolbar.txtFunction_Custom_2": "Cos 2x", + "PE.Controllers.Toolbar.txtFunction_Custom_3": "Tangent formula", + "PE.Controllers.Toolbar.txtFunction_Sec": "Secant Function", + "PE.Controllers.Toolbar.txtFunction_Sech": "Hyperbolic Secant Function", + "PE.Controllers.Toolbar.txtFunction_Sin": "Sine Function", + "PE.Controllers.Toolbar.txtFunction_Sinh": "Hyperbolic Sine Function", + "PE.Controllers.Toolbar.txtFunction_Tan": "Tangent Function", + "PE.Controllers.Toolbar.txtFunction_Tanh": "Hyperbolic Tangent Function", + "PE.Controllers.Toolbar.txtIntegral": "Integral", + "PE.Controllers.Toolbar.txtIntegral_dtheta": "Differential theta", + "PE.Controllers.Toolbar.txtIntegral_dx": "Differential x", + "PE.Controllers.Toolbar.txtIntegral_dy": "Differential y", + "PE.Controllers.Toolbar.txtIntegralCenterSubSup": "Integral", + "PE.Controllers.Toolbar.txtIntegralDouble": "Double Integral", + "PE.Controllers.Toolbar.txtIntegralDoubleCenterSubSup": "Double Integral", + "PE.Controllers.Toolbar.txtIntegralDoubleSubSup": "Double Integral", + "PE.Controllers.Toolbar.txtIntegralOriented": "Contour Integral", + "PE.Controllers.Toolbar.txtIntegralOrientedCenterSubSup": "Contour Integral", + "PE.Controllers.Toolbar.txtIntegralOrientedDouble": "Surface Integral", + "PE.Controllers.Toolbar.txtIntegralOrientedDoubleCenterSubSup": "Surface Integral", + "PE.Controllers.Toolbar.txtIntegralOrientedDoubleSubSup": "Surface Integral", + "PE.Controllers.Toolbar.txtIntegralOrientedSubSup": "Contour Integral", + "PE.Controllers.Toolbar.txtIntegralOrientedTriple": "Volume Integral", + "PE.Controllers.Toolbar.txtIntegralOrientedTripleCenterSubSup": "Volume Integral", + "PE.Controllers.Toolbar.txtIntegralOrientedTripleSubSup": "Volume Integral", + "PE.Controllers.Toolbar.txtIntegralSubSup": "Integral", + "PE.Controllers.Toolbar.txtIntegralTriple": "Triple Integral", + "PE.Controllers.Toolbar.txtIntegralTripleCenterSubSup": "Triple Integral", + "PE.Controllers.Toolbar.txtIntegralTripleSubSup": "Triple Integral", + "PE.Controllers.Toolbar.txtLargeOperator_Conjunction": "Wedge", + "PE.Controllers.Toolbar.txtLargeOperator_Conjunction_CenterSub": "Wedge", + "PE.Controllers.Toolbar.txtLargeOperator_Conjunction_CenterSubSup": "Wedge", + "PE.Controllers.Toolbar.txtLargeOperator_Conjunction_Sub": "Wedge", + "PE.Controllers.Toolbar.txtLargeOperator_Conjunction_SubSup": "Wedge", + "PE.Controllers.Toolbar.txtLargeOperator_CoProd": "Co-Product", + "PE.Controllers.Toolbar.txtLargeOperator_CoProd_CenterSub": "Co-Product", + "PE.Controllers.Toolbar.txtLargeOperator_CoProd_CenterSubSup": "Co-Product", + "PE.Controllers.Toolbar.txtLargeOperator_CoProd_Sub": "Co-Product", + "PE.Controllers.Toolbar.txtLargeOperator_CoProd_SubSup": "Co-Product", + "PE.Controllers.Toolbar.txtLargeOperator_Custom_1": "Summation", + "PE.Controllers.Toolbar.txtLargeOperator_Custom_2": "Summation", + "PE.Controllers.Toolbar.txtLargeOperator_Custom_3": "Summation", + "PE.Controllers.Toolbar.txtLargeOperator_Custom_4": "Product", + "PE.Controllers.Toolbar.txtLargeOperator_Custom_5": "Union", + "PE.Controllers.Toolbar.txtLargeOperator_Disjunction": "Vee", + "PE.Controllers.Toolbar.txtLargeOperator_Disjunction_CenterSub": "Vee", + "PE.Controllers.Toolbar.txtLargeOperator_Disjunction_CenterSubSup": "Vee", + "PE.Controllers.Toolbar.txtLargeOperator_Disjunction_Sub": "Vee", + "PE.Controllers.Toolbar.txtLargeOperator_Disjunction_SubSup": "Vee", + "PE.Controllers.Toolbar.txtLargeOperator_Intersection": "Intersection", + "PE.Controllers.Toolbar.txtLargeOperator_Intersection_CenterSub": "Intersection", + "PE.Controllers.Toolbar.txtLargeOperator_Intersection_CenterSubSup": "Intersection", + "PE.Controllers.Toolbar.txtLargeOperator_Intersection_Sub": "Intersection", + "PE.Controllers.Toolbar.txtLargeOperator_Intersection_SubSup": "Intersection", + "PE.Controllers.Toolbar.txtLargeOperator_Prod": "Product", + "PE.Controllers.Toolbar.txtLargeOperator_Prod_CenterSub": "Product", + "PE.Controllers.Toolbar.txtLargeOperator_Prod_CenterSubSup": "Product", + "PE.Controllers.Toolbar.txtLargeOperator_Prod_Sub": "Product", + "PE.Controllers.Toolbar.txtLargeOperator_Prod_SubSup": "Product", + "PE.Controllers.Toolbar.txtLargeOperator_Sum": "Summation", + "PE.Controllers.Toolbar.txtLargeOperator_Sum_CenterSub": "Summation", + "PE.Controllers.Toolbar.txtLargeOperator_Sum_CenterSubSup": "Summation", + "PE.Controllers.Toolbar.txtLargeOperator_Sum_Sub": "Summation", + "PE.Controllers.Toolbar.txtLargeOperator_Sum_SubSup": "Summation", + "PE.Controllers.Toolbar.txtLargeOperator_Union": "Union", + "PE.Controllers.Toolbar.txtLargeOperator_Union_CenterSub": "Union", + "PE.Controllers.Toolbar.txtLargeOperator_Union_CenterSubSup": "Union", + "PE.Controllers.Toolbar.txtLargeOperator_Union_Sub": "Union", + "PE.Controllers.Toolbar.txtLargeOperator_Union_SubSup": "Union", + "PE.Controllers.Toolbar.txtLimitLog_Custom_1": "Limit Example", + "PE.Controllers.Toolbar.txtLimitLog_Custom_2": "Maximum Example", + "PE.Controllers.Toolbar.txtLimitLog_Lim": "Limit", + "PE.Controllers.Toolbar.txtLimitLog_Ln": "Natural Logarithm", + "PE.Controllers.Toolbar.txtLimitLog_Log": "Logarithm", + "PE.Controllers.Toolbar.txtLimitLog_LogBase": "Logarithm", + "PE.Controllers.Toolbar.txtLimitLog_Max": "Maximum", + "PE.Controllers.Toolbar.txtLimitLog_Min": "Minimum", + "PE.Controllers.Toolbar.txtMatrix_1_2": "1x2 Empty Matrix", + "PE.Controllers.Toolbar.txtMatrix_1_3": "1x3 Empty Matrix", + "PE.Controllers.Toolbar.txtMatrix_2_1": "2x1 Empty Matrix", + "PE.Controllers.Toolbar.txtMatrix_2_2": "2x2 Empty Matrix", + "PE.Controllers.Toolbar.txtMatrix_2_2_DLineBracket": "Empty Matrix with Brackets", + "PE.Controllers.Toolbar.txtMatrix_2_2_LineBracket": "Empty Matrix with Brackets", + "PE.Controllers.Toolbar.txtMatrix_2_2_RoundBracket": "Empty Matrix with Brackets", + "PE.Controllers.Toolbar.txtMatrix_2_2_SquareBracket": "Empty Matrix with Brackets", + "PE.Controllers.Toolbar.txtMatrix_2_3": "2x3 Empty Matrix", + "PE.Controllers.Toolbar.txtMatrix_3_1": "3x1 Empty Matrix", + "PE.Controllers.Toolbar.txtMatrix_3_2": "3x2 Empty Matrix", + "PE.Controllers.Toolbar.txtMatrix_3_3": "3x3 Empty Matrix", + "PE.Controllers.Toolbar.txtMatrix_Dots_Baseline": "Baseline Dots", + "PE.Controllers.Toolbar.txtMatrix_Dots_Center": "Midline Dots", + "PE.Controllers.Toolbar.txtMatrix_Dots_Diagonal": "Diagonal Dots", + "PE.Controllers.Toolbar.txtMatrix_Dots_Vertical": "Vertical Dots", + "PE.Controllers.Toolbar.txtMatrix_Flat_Round": "Sparse Matrix", + "PE.Controllers.Toolbar.txtMatrix_Flat_Square": "Sparse Matrix", + "PE.Controllers.Toolbar.txtMatrix_Identity_2": "2x2 Identity Matrix", + "PE.Controllers.Toolbar.txtMatrix_Identity_2_NoZeros": "3x3 Identity Matrix", + "PE.Controllers.Toolbar.txtMatrix_Identity_3": "3x3 Identity Matrix", + "PE.Controllers.Toolbar.txtMatrix_Identity_3_NoZeros": "3x3 Identity Matrix", + "PE.Controllers.Toolbar.txtOperator_ArrowD_Bot": "Right-Left Arrow Below", + "PE.Controllers.Toolbar.txtOperator_ArrowD_Top": "Right-Left Arrow Above", + "PE.Controllers.Toolbar.txtOperator_ArrowL_Bot": "Leftwards Arrow Below", + "PE.Controllers.Toolbar.txtOperator_ArrowL_Top": "Leftwards Arrow Above", + "PE.Controllers.Toolbar.txtOperator_ArrowR_Bot": "Rightwards Arrow Below", + "PE.Controllers.Toolbar.txtOperator_ArrowR_Top": "Rightwards Arrow Above", + "PE.Controllers.Toolbar.txtOperator_ColonEquals": "Colon Equal", + "PE.Controllers.Toolbar.txtOperator_Custom_1": "Yields", + "PE.Controllers.Toolbar.txtOperator_Custom_2": "Delta Yields", + "PE.Controllers.Toolbar.txtOperator_Definition": "Equal to By Definition", + "PE.Controllers.Toolbar.txtOperator_DeltaEquals": "Delta Equal To", + "PE.Controllers.Toolbar.txtOperator_DoubleArrowD_Bot": "Right-Left Arrow Below", + "PE.Controllers.Toolbar.txtOperator_DoubleArrowD_Top": "Right-Left Arrow Above", + "PE.Controllers.Toolbar.txtOperator_DoubleArrowL_Bot": "Leftwards Arrow Below", + "PE.Controllers.Toolbar.txtOperator_DoubleArrowL_Top": "Leftwards Arrow Above", + "PE.Controllers.Toolbar.txtOperator_DoubleArrowR_Bot": "Rightwards Arrow Below", + "PE.Controllers.Toolbar.txtOperator_DoubleArrowR_Top": "Rightwards Arrow Above", + "PE.Controllers.Toolbar.txtOperator_EqualsEquals": "Equal Equal", + "PE.Controllers.Toolbar.txtOperator_MinusEquals": "Minus Equal", + "PE.Controllers.Toolbar.txtOperator_PlusEquals": "Plus Equal", + "PE.Controllers.Toolbar.txtOperator_UnitOfMeasure": "Measured By", + "PE.Controllers.Toolbar.txtRadicalCustom_1": "Radical", + "PE.Controllers.Toolbar.txtRadicalCustom_2": "Radical", + "PE.Controllers.Toolbar.txtRadicalRoot_2": "Square Root With Degree", + "PE.Controllers.Toolbar.txtRadicalRoot_3": "Cubic Root", + "PE.Controllers.Toolbar.txtRadicalRoot_n": "Radical With Degree", + "PE.Controllers.Toolbar.txtRadicalSqrt": "Square Root", + "PE.Controllers.Toolbar.txtScriptCustom_1": "Script", + "PE.Controllers.Toolbar.txtScriptCustom_2": "Script", + "PE.Controllers.Toolbar.txtScriptCustom_3": "Script", + "PE.Controllers.Toolbar.txtScriptCustom_4": "Script", + "PE.Controllers.Toolbar.txtScriptSub": "Subscript", + "PE.Controllers.Toolbar.txtScriptSubSup": "Subscript-Superscript", + "PE.Controllers.Toolbar.txtScriptSubSupLeft": "LeftSubscript-Superscript", + "PE.Controllers.Toolbar.txtScriptSup": "Superscript", + "PE.Controllers.Toolbar.txtSymbol_about": "Approximately", + "PE.Controllers.Toolbar.txtSymbol_additional": "Complement", + "PE.Controllers.Toolbar.txtSymbol_aleph": "Alef", + "PE.Controllers.Toolbar.txtSymbol_alpha": "Alpha", + "PE.Controllers.Toolbar.txtSymbol_approx": "Almost Equal To", + "PE.Controllers.Toolbar.txtSymbol_ast": "Asterisk Operator", + "PE.Controllers.Toolbar.txtSymbol_beta": "Beta", + "PE.Controllers.Toolbar.txtSymbol_beth": "Bet", + "PE.Controllers.Toolbar.txtSymbol_bullet": "Bullet Operator", + "PE.Controllers.Toolbar.txtSymbol_cap": "Intersection", + "PE.Controllers.Toolbar.txtSymbol_cbrt": "Cube Root", + "PE.Controllers.Toolbar.txtSymbol_cdots": "Midline Horizontal Ellipsis", + "PE.Controllers.Toolbar.txtSymbol_celsius": "Degrees Celsius", + "PE.Controllers.Toolbar.txtSymbol_chi": "Chi", + "PE.Controllers.Toolbar.txtSymbol_cong": "Approximately Equal To", + "PE.Controllers.Toolbar.txtSymbol_cup": "Union", + "PE.Controllers.Toolbar.txtSymbol_ddots": "Down Right Diagonal Ellipsis", + "PE.Controllers.Toolbar.txtSymbol_degree": "Degrees", + "PE.Controllers.Toolbar.txtSymbol_delta": "Delta", + "PE.Controllers.Toolbar.txtSymbol_div": "Division Sign", + "PE.Controllers.Toolbar.txtSymbol_downarrow": "Down Arrow", + "PE.Controllers.Toolbar.txtSymbol_emptyset": "Empty Set", + "PE.Controllers.Toolbar.txtSymbol_epsilon": "Epsilon", + "PE.Controllers.Toolbar.txtSymbol_equals": "Equal", + "PE.Controllers.Toolbar.txtSymbol_equiv": "Identical To", + "PE.Controllers.Toolbar.txtSymbol_eta": "Eta", + "PE.Controllers.Toolbar.txtSymbol_exists": "There Exist", + "PE.Controllers.Toolbar.txtSymbol_factorial": "Factorial", + "PE.Controllers.Toolbar.txtSymbol_fahrenheit": "Degrees Fahrenheit", + "PE.Controllers.Toolbar.txtSymbol_forall": "For All", + "PE.Controllers.Toolbar.txtSymbol_gamma": "Gamma", + "PE.Controllers.Toolbar.txtSymbol_geq": "Greater Than or Equal To", + "PE.Controllers.Toolbar.txtSymbol_gg": "Much Greater Than", + "PE.Controllers.Toolbar.txtSymbol_greater": "Greater Than", + "PE.Controllers.Toolbar.txtSymbol_in": "Element Of", + "PE.Controllers.Toolbar.txtSymbol_inc": "Increment", + "PE.Controllers.Toolbar.txtSymbol_infinity": "Infinity", + "PE.Controllers.Toolbar.txtSymbol_iota": "Iota", + "PE.Controllers.Toolbar.txtSymbol_kappa": "Kappa", + "PE.Controllers.Toolbar.txtSymbol_lambda": "Lambda", + "PE.Controllers.Toolbar.txtSymbol_leftarrow": "Left Arrow", + "PE.Controllers.Toolbar.txtSymbol_leftrightarrow": "Left-Right Arrow", + "PE.Controllers.Toolbar.txtSymbol_leq": "Less Than or Equal To", + "PE.Controllers.Toolbar.txtSymbol_less": "Less Than", + "PE.Controllers.Toolbar.txtSymbol_ll": "Much Less Than", + "PE.Controllers.Toolbar.txtSymbol_minus": "Minus", + "PE.Controllers.Toolbar.txtSymbol_mp": "Minus Plus", + "PE.Controllers.Toolbar.txtSymbol_mu": "Mu", + "PE.Controllers.Toolbar.txtSymbol_nabla": "Nabla", + "PE.Controllers.Toolbar.txtSymbol_neq": "Not Equal To", + "PE.Controllers.Toolbar.txtSymbol_ni": "Contains as Member", + "PE.Controllers.Toolbar.txtSymbol_not": "Not Sign", + "PE.Controllers.Toolbar.txtSymbol_notexists": "There Does Not Exist", + "PE.Controllers.Toolbar.txtSymbol_nu": "Nu", + "PE.Controllers.Toolbar.txtSymbol_o": "Omicron", + "PE.Controllers.Toolbar.txtSymbol_omega": "Omega", + "PE.Controllers.Toolbar.txtSymbol_partial": "Partial Differential", + "PE.Controllers.Toolbar.txtSymbol_percent": "Percentage", + "PE.Controllers.Toolbar.txtSymbol_phi": "Phi", + "PE.Controllers.Toolbar.txtSymbol_pi": "Pi", + "PE.Controllers.Toolbar.txtSymbol_plus": "Plus", + "PE.Controllers.Toolbar.txtSymbol_pm": "Plus Minus", + "PE.Controllers.Toolbar.txtSymbol_propto": "Proportional To", + "PE.Controllers.Toolbar.txtSymbol_psi": "Psi", + "PE.Controllers.Toolbar.txtSymbol_qdrt": "Fourth Root", + "PE.Controllers.Toolbar.txtSymbol_qed": "End of Proof", + "PE.Controllers.Toolbar.txtSymbol_rddots": "Up Right Diagonal Ellipsis", + "PE.Controllers.Toolbar.txtSymbol_rho": "Rho", + "PE.Controllers.Toolbar.txtSymbol_rightarrow": "Right Arrow", + "PE.Controllers.Toolbar.txtSymbol_sigma": "Sigma", + "PE.Controllers.Toolbar.txtSymbol_sqrt": "Radical Sign", + "PE.Controllers.Toolbar.txtSymbol_tau": "Tau", + "PE.Controllers.Toolbar.txtSymbol_therefore": "Therefore", + "PE.Controllers.Toolbar.txtSymbol_theta": "Theta", + "PE.Controllers.Toolbar.txtSymbol_times": "Multiplication Sign", + "PE.Controllers.Toolbar.txtSymbol_uparrow": "Up Arrow", + "PE.Controllers.Toolbar.txtSymbol_upsilon": "Upsilon", + "PE.Controllers.Toolbar.txtSymbol_varepsilon": "Epsilon Variant", + "PE.Controllers.Toolbar.txtSymbol_varphi": "Phi Variant", + "PE.Controllers.Toolbar.txtSymbol_varpi": "Pi Variant", + "PE.Controllers.Toolbar.txtSymbol_varrho": "Rho Variant", + "PE.Controllers.Toolbar.txtSymbol_varsigma": "Sigma Variant", + "PE.Controllers.Toolbar.txtSymbol_vartheta": "Theta Variant", + "PE.Controllers.Toolbar.txtSymbol_vdots": "Vertical Ellipsis", + "PE.Controllers.Toolbar.txtSymbol_xsi": "Xi", + "PE.Controllers.Toolbar.txtSymbol_zeta": "Zeta", "PE.Views.ChartSettings.textArea": "Area Chart", "PE.Views.ChartSettings.textBar": "Bar Chart", "PE.Views.ChartSettings.textChartType": "Change Chart Type", @@ -331,6 +659,76 @@ "PE.Views.DocumentHolder.txtSlide": "Slide", "PE.Views.DocumentHolder.txtUngroup": "Ungroup", "PE.Views.DocumentHolder.vertAlignText": "Vertical Alignment", + "PE.Views.DocumentHolder.txtRemoveAccentChar": "Remove accent character", + "PE.Views.DocumentHolder.txtBorderProps": "Borders property", + "PE.Views.DocumentHolder.txtHideTop": "Hide top border", + "PE.Views.DocumentHolder.txtHideBottom": "Hide bottom border", + "PE.Views.DocumentHolder.txtHideLeft": "Hide left border", + "PE.Views.DocumentHolder.txtHideRight": "Hide right border", + "PE.Views.DocumentHolder.txtHideHor": "Hide horizontal line", + "PE.Views.DocumentHolder.txtHideVer": "Hide vertical line", + "PE.Views.DocumentHolder.txtHideLT": "Hide left top line", + "PE.Views.DocumentHolder.txtHideLB": "Hide left bottom line", + "PE.Views.DocumentHolder.txtAddTop": "Add top border", + "PE.Views.DocumentHolder.txtAddBottom": "Add bottom border", + "PE.Views.DocumentHolder.txtAddLeft": "Add left border", + "PE.Views.DocumentHolder.txtAddRight": "Add right border", + "PE.Views.DocumentHolder.txtAddHor": "Add horizontal line", + "PE.Views.DocumentHolder.txtAddVer": "Add vertical line", + "PE.Views.DocumentHolder.txtAddLT": "Add left top line", + "PE.Views.DocumentHolder.txtAddLB": "Add left bottom line", + "PE.Views.DocumentHolder.txtRemoveBar": "Remove bar", + "PE.Views.DocumentHolder.txtOverbar": "Bar over text", + "PE.Views.DocumentHolder.txtUnderbar": "Bar under text", + "PE.Views.DocumentHolder.txtRemScripts": "Remove scripts", + "PE.Views.DocumentHolder.txtRemSubscript": "Remove subscript", + "PE.Views.DocumentHolder.txtRemSuperscript": "Remove superscript", + "PE.Views.DocumentHolder.txtScriptsAfter": "Scripts after text", + "PE.Views.DocumentHolder.txtScriptsBefore": "Scripts before text", + "PE.Views.DocumentHolder.txtFractionStacked": "Change to stacked fraction", + "PE.Views.DocumentHolder.txtFractionSkewed": "Change to skewed fraction", + "PE.Views.DocumentHolder.txtFractionLinear": "Change to linear fraction", + "PE.Views.DocumentHolder.txtRemFractionBar": "Remove fraction bar", + "PE.Views.DocumentHolder.txtAddFractionBar": "Add fraction bar", + "PE.Views.DocumentHolder.txtRemLimit": "Remove limit", + "PE.Views.DocumentHolder.txtLimitOver": "Limit over text", + "PE.Views.DocumentHolder.txtLimitUnder": "Limit under text", + "PE.Views.DocumentHolder.txtHidePlaceholder": "Hide placeholder", + "PE.Views.DocumentHolder.txtShowPlaceholder": "Show placeholder", + "PE.Views.DocumentHolder.txtMatrixAlign": "Matrix alignment", + "PE.Views.DocumentHolder.txtColumnAlign": "Column alignment", + "PE.Views.DocumentHolder.txtTop": "Top", + "PE.Views.DocumentHolder.txtBottom": "Bottom", + "PE.Views.DocumentHolder.txtInsertEqBefore": "Insert equation before", + "PE.Views.DocumentHolder.txtInsertEqAfter": "Insert equation after", + "PE.Views.DocumentHolder.txtDeleteEq": "Delete equation", + "PE.Views.DocumentHolder.txtLimitChange": "Change limits location", + "PE.Views.DocumentHolder.txtHideTopLimit": "Hide top limit", + "PE.Views.DocumentHolder.txtShowTopLimit": "Show top limit", + "PE.Views.DocumentHolder.txtHideBottomLimit": "Hide bottom limit", + "PE.Views.DocumentHolder.txtShowBottomLimit": "Show bottom limit", + "PE.Views.DocumentHolder.txtInsertArgBefore": "Insert argument before", + "PE.Views.DocumentHolder.txtInsertArgAfter": "Insert argument after", + "PE.Views.DocumentHolder.txtDeleteArg": "Delete argument", + "PE.Views.DocumentHolder.txtHideOpenBracket": "Hide opening bracket", + "PE.Views.DocumentHolder.txtShowOpenBracket": "Show opening bracket", + "PE.Views.DocumentHolder.txtHideCloseBracket": "Hide closing bracket", + "PE.Views.DocumentHolder.txtShowCloseBracket": "Show closing bracket", + "PE.Views.DocumentHolder.txtStretchBrackets": "Stretch brackets", + "PE.Views.DocumentHolder.txtMatchBrackets": "Match brackets to argument height", + "PE.Views.DocumentHolder.txtGroupCharOver": "Char over text", + "PE.Views.DocumentHolder.txtGroupCharUnder": "Char under text", + "PE.Views.DocumentHolder.txtDeleteGroupChar": "Delete char", + "PE.Views.DocumentHolder.txtHideDegree": "Hide degree", + "PE.Views.DocumentHolder.txtShowDegree": "Show degree", + "PE.Views.DocumentHolder.txtIncreaseArg": "Increase argument size", + "PE.Views.DocumentHolder.txtDecreaseArg": "Decrease argument size", + "PE.Views.DocumentHolder.txtInsertBreak": "Insert manual break", + "PE.Views.DocumentHolder.txtDeleteBreak": "Delete manual break", + "PE.Views.DocumentHolder.txtAlignToChar": "Align to character", + "PE.Views.DocumentHolder.txtDeleteRadical": "Delete radical", + "PE.Views.DocumentHolder.txtDeleteChars": "Delete enclosing characters", + "PE.Views.DocumentHolder.txtDeleteCharsAndSeparators": "Delete enclosing characters and separators", "PE.Views.DocumentPreview.goToSlideText": "Go to Slide", "PE.Views.DocumentPreview.slideIndexText": "Slide {0} of {1}", "PE.Views.DocumentPreview.txtClose": "Close Slideshow", @@ -838,6 +1236,7 @@ "PE.Views.Toolbar.tipHideBars": "Hide Title bar & Status bar", "PE.Views.Toolbar.tipIncPrLeft": "Increase Indent", "PE.Views.Toolbar.tipInsertChart": "Insert Chart", + "PE.Views.Toolbar.tipInsertEquation": "Insert Equation", "PE.Views.Toolbar.tipInsertHyperlink": "Add Hyperlink", "PE.Views.Toolbar.tipInsertImage": "Insert Picture", "PE.Views.Toolbar.tipInsertShape": "Insert Autoshape", diff --git a/apps/presentationeditor/main/resources/img/toolbar/math.png b/apps/presentationeditor/main/resources/img/toolbar/math.png new file mode 100644 index 0000000000000000000000000000000000000000..173efd6f9f2544203c25b5b3fccdda6fe2dc742d GIT binary patch literal 38982 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�}_FB>1(IL1A{`6WMyYu>CAJ9cqfT7!bWwcK*) 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 literal 0 HcmV?d00001 diff --git a/apps/presentationeditor/main/resources/img/toolbar/math@2x.png b/apps/presentationeditor/main/resources/img/toolbar/math@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c3ca01890251e5b5a6891296a3e78719d3c89994 GIT binary patch literal 97624 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�oI9wY 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

S@y+G|fre?)gHEJZx;?wGLy<|mrOL^=f%*LOUz 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 literal 0 HcmV?d00001 diff --git a/apps/presentationeditor/main/resources/less/toolbar.less b/apps/presentationeditor/main/resources/less/toolbar.less index a9c16d6ca..83235f262 100644 --- a/apps/presentationeditor/main/resources/less/toolbar.less +++ b/apps/presentationeditor/main/resources/less/toolbar.less @@ -344,6 +344,7 @@ .toolbar-btn-icon(btn-zoomin, 61, @toolbar-icon-size); .toolbar-btn-icon(btn-zoomout, 60, @toolbar-icon-size); .toolbar-btn-icon(btn-save-coauth, 69, @toolbar-icon-size); +.toolbar-btn-icon(btn-insertequation, 74, @toolbar-icon-size); // add slide .btn-toolbar .btn-addslide {background-position: 0 -120px;} @@ -393,4 +394,9 @@ color: #ffffff; font: 11px arial; white-space: nowrap; +} + +.item-equation { + border: 1px solid @gray; + .background-ximage('@{app-image-path}/toolbar/math.png', '@{app-image-path}/toolbar/math@2x.png', 1500px); } \ No newline at end of file diff --git a/apps/spreadsheeteditor/main/app/controller/Toolbar.js b/apps/spreadsheeteditor/main/app/controller/Toolbar.js index 759679f5d..de00631bc 100644 --- a/apps/spreadsheeteditor/main/app/controller/Toolbar.js +++ b/apps/spreadsheeteditor/main/app/controller/Toolbar.js @@ -2128,7 +2128,7 @@ define([ }, onInsertEquationClick: function() { - if (this.api && !this._state.in_equation) { + if (this.api) { this.api.asc_AddMath(); Common.component.Analytics.trackEvent('ToolBar', 'Add Equation'); } diff --git a/apps/spreadsheeteditor/main/locale/en.json b/apps/spreadsheeteditor/main/locale/en.json index 92f7f6ebd..9304abbe5 100644 --- a/apps/spreadsheeteditor/main/locale/en.json +++ b/apps/spreadsheeteditor/main/locale/en.json @@ -1464,6 +1464,7 @@ "SSE.Views.Toolbar.tipIncDecimal": "Increase Decimal", "SSE.Views.Toolbar.tipIncFont": "Increment font size", "SSE.Views.Toolbar.tipInsertChart": "Insert Chart", + "SSE.Views.Toolbar.tipInsertEquation": "Insert Equation", "SSE.Views.Toolbar.tipInsertHyperlink": "Add Hyperlink", "SSE.Views.Toolbar.tipInsertImage": "Insert Picture", "SSE.Views.Toolbar.tipInsertOpt": "Insert Cells",