[SSE] Context menu for equations.

This commit is contained in:
Julia Radzhabova 2016-10-24 14:56:11 +03:00
parent d3748cdd94
commit 381e886ef9
4 changed files with 746 additions and 38 deletions

View file

@ -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 || {}));
});

View file

@ -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]
});
}

View file

@ -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,

View file

@ -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('<div id="id-toolbar-menu-table-templates" style="width: 288px; height: 300px; margin: 0px 4px;"></div>') }
@ -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'
})
/*,{