diff --git a/apps/spreadsheeteditor/main/app/controller/Toolbar.js b/apps/spreadsheeteditor/main/app/controller/Toolbar.js index 4412ec225..f702fa061 100644 --- a/apps/spreadsheeteditor/main/app/controller/Toolbar.js +++ b/apps/spreadsheeteditor/main/app/controller/Toolbar.js @@ -120,6 +120,9 @@ define([ bold: undefined, italic: undefined, underline: undefined, + strikeout: undefined, + subscript: undefined, + superscript: undefined, wrap: undefined, merge: undefined, angle: undefined, @@ -247,6 +250,9 @@ define([ toolbar.btnBold.on('click', _.bind(this.onBold, this)); toolbar.btnItalic.on('click', _.bind(this.onItalic, this)); toolbar.btnUnderline.on('click', _.bind(this.onUnderline, this)); + toolbar.btnStrikeout.on('click', _.bind(this.onStrikeout, this)); + toolbar.btnSubscript.on('click', _.bind(this.onSubscript, this)); + toolbar.btnSubscript.menu.on('item:click', _.bind(this.onSubscriptMenu, this)); toolbar.btnTextColor.on('click', _.bind(this.onTextColor, this)); toolbar.btnBackColor.on('click', _.bind(this.onBackColor, this)); toolbar.mnuTextColorPicker.on('select', _.bind(this.onTextColorSelect, this)); @@ -463,6 +469,51 @@ define([ Common.component.Analytics.trackEvent('ToolBar', 'Underline'); }, + onStrikeout: function(btn, e) { + this._state.strikeout = undefined; + if (this.api) + this.api.asc_setCellStrikeout(btn.pressed); + + Common.NotificationCenter.trigger('edit:complete', this.toolbar, {restorefocus:true}); + Common.component.Analytics.trackEvent('ToolBar', 'Strikeout'); + }, + + onSubscriptMenu: function(menu, item) { + var btnSubscript = this.toolbar.btnSubscript, + iconEl = $('.icon', btnSubscript.cmpEl); + + if (item.value == 'sub') { + this._state.subscript = undefined; + this.api.asc_setCellSubscript(item.checked); + } else { + this._state.superscript = undefined; + this.api.asc_setCellSuperscript(item.checked); + } + if (item.checked) { + iconEl.removeClass(btnSubscript.options.icls); + btnSubscript.options.icls = item.options.icls; + iconEl.addClass(btnSubscript.options.icls); + } + + Common.NotificationCenter.trigger('edit:complete', this.toolbar); + Common.component.Analytics.trackEvent('ToolBar', (item.value == 'sub') ? 'Subscript' : 'Superscript'); + }, + + onSubscript: function(btn, e) { + var subscript = (btn.options.icls == 'btn-subscript'); + + if (subscript) { + this._state.subscript = undefined; + this.api.asc_setCellSubscript(btn.pressed); + } else { + this._state.superscript = undefined; + this.api.asc_setCellSuperscript(btn.pressed); + } + + Common.NotificationCenter.trigger('edit:complete', this.toolbar); + Common.component.Analytics.trackEvent('ToolBar', (subscript) ? 'Subscript' : 'Superscript'); + }, + onTextColor: function() { this.toolbar.mnuTextColorPicker.trigger('select', this.toolbar.mnuTextColorPicker, this.toolbar.mnuTextColorPicker.currentColor, true); }, @@ -1648,7 +1699,7 @@ define([ toolbar.lockToolbar(SSE.enumLock.editFormula, is_formula, { array: [toolbar.cmbFontName, toolbar.cmbFontSize, toolbar.btnIncFontSize, toolbar.btnDecFontSize, - toolbar.btnBold, toolbar.btnItalic, toolbar.btnUnderline, toolbar.btnTextColor]}); + toolbar.btnBold, toolbar.btnItalic, toolbar.btnUnderline, toolbar.btnStrikeout, toolbar.btnSubscript, toolbar.btnTextColor]}); toolbar.lockToolbar(SSE.enumLock.editText, is_text, {array:[toolbar.btnInsertFormula]}); } this._state.coauthdisable = undefined; @@ -1706,6 +1757,37 @@ define([ toolbar.btnUnderline.toggle(val === true, true); this._state.underline = val; } + val = fontobj.asc_getStrikeout(); + if (this._state.strikeout !== val) { + toolbar.btnStrikeout.toggle(val === true, true); + this._state.strikeout = val; + } + + var subsc = fontobj.asc_getSubscript(), + supersc = fontobj.asc_getSuperscript(); + + if (this._state.subscript !== subsc || this._state.superscript !== supersc) { + var index = (subsc) ? 0 : (supersc ? 1 : -1), + btnSubscript = toolbar.btnSubscript; + + btnSubscript.toggle(index>-1, true); + if (index < 0) { + this._clearChecked(btnSubscript.menu); + } else { + btnSubscript.menu.items[index].setChecked(true); + if (btnSubscript.rendered) { + var iconEl = $('.icon', btnSubscript.cmpEl); + if (iconEl) { + iconEl.removeClass(btnSubscript.options.icls); + btnSubscript.options.icls = btnSubscript.menu.items[index].options.icls; + iconEl.addClass(btnSubscript.options.icls); + } + } + } + + this._state.subscript = subsc; + this._state.superscript = supersc; + } } /* read font size */ @@ -1816,6 +1898,37 @@ define([ toolbar.btnUnderline.toggle(val === true, true); this._state.underline = val; } + val = fontobj.asc_getStrikeout(); + if (this._state.strikeout !== val) { + toolbar.btnStrikeout.toggle(val === true, true); + this._state.strikeout = val; + } + + var subsc = fontobj.asc_getSubscript(), + supersc = fontobj.asc_getSuperscript(); + + if (this._state.subscript !== subsc || this._state.superscript !== supersc) { + var index = (subsc) ? 0 : (supersc ? 1 : -1), + btnSubscript = toolbar.btnSubscript; + + btnSubscript.toggle(index>-1, true); + if (index < 0) { + this._clearChecked(btnSubscript.menu); + } else { + btnSubscript.menu.items[index].setChecked(true); + if (btnSubscript.rendered) { + var iconEl = $('.icon', btnSubscript.cmpEl); + if (iconEl) { + iconEl.removeClass(btnSubscript.options.icls); + btnSubscript.options.icls = btnSubscript.menu.items[index].options.icls; + iconEl.addClass(btnSubscript.options.icls); + } + } + } + + this._state.subscript = subsc; + this._state.superscript = supersc; + } } /* read font color */ diff --git a/apps/spreadsheeteditor/main/app/template/Toolbar.template b/apps/spreadsheeteditor/main/app/template/Toolbar.template index 669121df3..b4c6605f6 100644 --- a/apps/spreadsheeteditor/main/app/template/Toolbar.template +++ b/apps/spreadsheeteditor/main/app/template/Toolbar.template @@ -56,6 +56,8 @@ + + diff --git a/apps/spreadsheeteditor/main/app/view/Toolbar.js b/apps/spreadsheeteditor/main/app/view/Toolbar.js index dda3a9cc8..40fa31d76 100644 --- a/apps/spreadsheeteditor/main/app/view/Toolbar.js +++ b/apps/spreadsheeteditor/main/app/view/Toolbar.js @@ -411,6 +411,46 @@ define([ enableToggle: true }); + me.btnStrikeout = new Common.UI.Button({ + id: 'id-toolbar-btn-strikeout', + cls: 'btn-toolbar', + iconCls: 'btn-strikeout', + lock : [_set.selImage, _set.editFormula, _set.selRange, _set.coAuth, _set.coAuthText, _set.lostConnect], + enableToggle: true + }); + + me.btnSubscript = new Common.UI.Button({ + id : 'id-toolbar-btn-subscript', + cls : 'btn-toolbar', + iconCls : 'btn-subscript', + icls : 'btn-subscript', + split : true, + enableToggle: true, + lock : [_set.selImage, _set.editFormula, _set.selRange, _set.coAuth, _set.coAuthText, _set.lostConnect], + menu : new Common.UI.Menu({ + items: [ + { + caption : me.textSubscript, + iconCls : 'mnu-text-subscript', + icls : 'btn-subscript', + checkable : true, + allowDepress: true, + toggleGroup : 'textsubscriptgroup', + value : 'sub' + }, + { + caption : me.textSuperscript, + iconCls : 'mnu-text-superscript', + icls : 'btn-superscript', + checkable : true, + allowDepress: true, + toggleGroup : 'textsubscriptgroup', + value : 'super' + } + ] + }) + }); + me.mnuTextColorPicker = dummyCmp(); me.btnTextColor = new Common.UI.Button({ id : 'id-toolbar-btn-fontcolor', @@ -1199,7 +1239,7 @@ define([ me.lockControls = [ me.cmbFontName, me.cmbFontSize, me.btnIncFontSize, me.btnDecFontSize, me.btnBold, - me.btnItalic, me.btnUnderline, me.btnTextColor, me.btnHorizontalAlign, me.btnAlignLeft, + me.btnItalic, me.btnUnderline, me.btnStrikeout, me.btnSubscript, me.btnTextColor, me.btnHorizontalAlign, me.btnAlignLeft, me.btnAlignCenter,me.btnAlignRight,me.btnAlignJust, me.btnVerticalAlign, me.btnAlignTop, me.btnAlignMiddle, me.btnAlignBottom, me.btnWrap, me.btnTextOrient, me.btnBackColor, me.btnMerge, me.btnInsertFormula, me.btnNamedRange, me.btnIncDecimal, me.btnInsertShape, me.btnInsertEquation, @@ -1214,7 +1254,7 @@ define([ var _temp_array = [me.cmbFontName, me.cmbFontSize, me.btnAlignLeft,me.btnAlignCenter,me.btnAlignRight,me.btnAlignJust,me.btnAlignTop, me.btnAlignMiddle, me.btnAlignBottom, me.btnHorizontalAlign, me.btnVerticalAlign, me.btnInsertImage, me.btnInsertText, me.btnInsertTextArt, me.btnInsertShape, me.btnInsertEquation, me.btnIncFontSize, - me.btnDecFontSize, me.btnBold, me.btnItalic, me.btnUnderline, me.btnTextColor, me.btnBackColor, + me.btnDecFontSize, me.btnBold, me.btnItalic, me.btnUnderline, me.btnStrikeout, me.btnSubscript, me.btnTextColor, me.btnBackColor, me.btnInsertHyperlink, me.btnBorders, me.btnTextOrient, me.btnPercentStyle, me.btnCurrencyStyle, me.btnColorSchemas, me.btnSettings, me.btnInsertFormula, me.btnNamedRange, me.btnDecDecimal, me.btnIncDecimal, me.cmbNumberFormat, me.btnWrap, me.btnInsertChart, me.btnMerge, me.btnAddCell, me.btnDeleteCell, me.btnShowMode, me.btnPrint, @@ -1309,6 +1349,8 @@ define([ _injectComponent('#slot-btn-bold', this.btnBold); _injectComponent('#slot-btn-italic', this.btnItalic); _injectComponent('#slot-btn-underline', this.btnUnderline); + _injectComponent('#slot-btn-strikeout', this.btnStrikeout); + _injectComponent('#slot-btn-subscript', this.btnSubscript); _injectComponent('#slot-btn-fontcolor', this.btnTextColor); _injectComponent('#slot-btn-fillparag', this.btnBackColor); _injectComponent('#slot-btn-borders', this.btnBorders); @@ -1377,6 +1419,8 @@ define([ _updateHint(this.btnBold, this.textBold + Common.Utils.String.platformKey('Ctrl+B')); _updateHint(this.btnItalic, this.textItalic + Common.Utils.String.platformKey('Ctrl+I')); _updateHint(this.btnUnderline, this.textUnderline + Common.Utils.String.platformKey('Ctrl+U')); + _updateHint(this.btnStrikeout, this.textStrikeout); + _updateHint(this.btnSubscript, this.textSubSuperscript); _updateHint(this.btnTextColor, this.tipFontColor); _updateHint(this.btnBackColor, this.tipPrColor); _updateHint(this.btnBorders, this.tipBorders); @@ -1890,6 +1934,10 @@ define([ textBold: 'Bold', textItalic: 'Italic', textUnderline: 'Underline', + textStrikeout: 'Strikeout', + textSuperscript: 'Superscript', + textSubscript: 'Subscript', + textSubSuperscript: 'Subscript/Superscript', tipFontName: 'Font Name', tipFontSize: 'Font Size', tipCellStyle: 'Cell Style', diff --git a/apps/spreadsheeteditor/main/locale/en.json b/apps/spreadsheeteditor/main/locale/en.json index 75138eb95..304ca1554 100644 --- a/apps/spreadsheeteditor/main/locale/en.json +++ b/apps/spreadsheeteditor/main/locale/en.json @@ -1655,6 +1655,10 @@ "SSE.Views.Toolbar.textTabInsert": "Insert", "SSE.Views.Toolbar.textTopBorders": "Top Borders", "SSE.Views.Toolbar.textUnderline": "Underline", + "SSE.Views.Toolbar.textStrikeout": "Strikeout", + "SSE.Views.Toolbar.textSuperscript": "Superscript", + "SSE.Views.Toolbar.textSubscript": "Subscript", + "SSE.Views.Toolbar.textSubSuperscript": "Subscript/Superscript", "SSE.Views.Toolbar.textWinLossSpark": "Win/Loss", "SSE.Views.Toolbar.textZoom": "Zoom", "SSE.Views.Toolbar.tipAdvSettings": "Advanced settings", diff --git a/apps/spreadsheeteditor/main/resources/img/popupmenu-btns.png b/apps/spreadsheeteditor/main/resources/img/popupmenu-btns.png index 497177a43..c0c39cc28 100644 Binary files a/apps/spreadsheeteditor/main/resources/img/popupmenu-btns.png and b/apps/spreadsheeteditor/main/resources/img/popupmenu-btns.png differ diff --git a/apps/spreadsheeteditor/main/resources/img/popupmenu-btns@2x.png b/apps/spreadsheeteditor/main/resources/img/popupmenu-btns@2x.png index 8fed5436f..185eee394 100644 Binary files a/apps/spreadsheeteditor/main/resources/img/popupmenu-btns@2x.png and b/apps/spreadsheeteditor/main/resources/img/popupmenu-btns@2x.png differ diff --git a/apps/spreadsheeteditor/main/resources/img/toolbar-menu.png b/apps/spreadsheeteditor/main/resources/img/toolbar-menu.png index 91577a92e..81b64aed3 100644 Binary files a/apps/spreadsheeteditor/main/resources/img/toolbar-menu.png and b/apps/spreadsheeteditor/main/resources/img/toolbar-menu.png differ diff --git a/apps/spreadsheeteditor/main/resources/img/toolbar-menu@2x.png b/apps/spreadsheeteditor/main/resources/img/toolbar-menu@2x.png index 0b67bd39b..523941d68 100644 Binary files a/apps/spreadsheeteditor/main/resources/img/toolbar-menu@2x.png and b/apps/spreadsheeteditor/main/resources/img/toolbar-menu@2x.png differ diff --git a/apps/spreadsheeteditor/main/resources/less/toolbar.less b/apps/spreadsheeteditor/main/resources/less/toolbar.less index 4dbf880eb..1f18561a5 100644 --- a/apps/spreadsheeteditor/main/resources/less/toolbar.less +++ b/apps/spreadsheeteditor/main/resources/less/toolbar.less @@ -30,7 +30,7 @@ } .font-attr-top { - width: 186px; + width: 243px; > .btn-slot { float: left; @@ -167,6 +167,9 @@ .toolbar-btn-icon(btn-named-range, 77, @toolbar-icon-size); //.toolbar-btn-icon(btn-insertequation, 82, @toolbar-icon-size); +.toolbar-btn-icon(btn-strikeout, 84, @toolbar-icon-size); +.toolbar-btn-icon(btn-subscript, 85, @toolbar-icon-size); +.toolbar-btn-icon(btn-superscript, 86, @toolbar-icon-size); @menu-icon-size: 22px; .menu-btn-icon(mnu-align-center, 0, @menu-icon-size); @@ -206,6 +209,9 @@ // .menu-btn-icon(mnu-border-diagup, 36, @menu-icon-size); .menu-btn-icon(mnu-border-diagdown, 37, @menu-icon-size); +// +.menu-btn-icon(mnu-text-subscript, 38, @menu-icon-size); +.menu-btn-icon(mnu-text-superscript, 39, @menu-icon-size); .username-tip { background-color: #ee3525; @@ -246,7 +252,7 @@ } #slot-field-fontname { - width: 91px; + width: 148px; } #slot-field-fontsize {