diff --git a/apps/common/main/lib/view/SymbolTableDialog.js b/apps/common/main/lib/view/SymbolTableDialog.js
index 55316f740..014e91d5e 100644
--- a/apps/common/main/lib/view/SymbolTableDialog.js
+++ b/apps/common/main/lib/view/SymbolTableDialog.js
@@ -322,6 +322,9 @@ define([
oRangeNames[272] = 'Supplementary Private Use Area A';
oRangeNames[273] = 'Supplementary Private Use Area B';
+ var CELL_WIDTH = 31;
+ var CELL_HEIGHT = 33;
+
var aFontSelects = [];
var aRanges = [];
var aRecents = [];
@@ -337,11 +340,16 @@ define([
var sInitSymbol = "";
var nLastScroll = -1000;
- var bShowTooltip = true;
+
+ var sLastId = "";
+ var nLastTime = -1000;
+
+ var lastTime = -1;
+ var lastKeyCode = -1;
Common.Views.SymbolTableDialog = Common.UI.Window.extend(_.extend({
options: {
- width: 400,
+ width: 450,
style: 'min-width: 230px;',
cls: 'modal-dlg',
buttons: ['ok', 'cancel']
@@ -353,8 +361,8 @@ define([
}, options || {});
this.template = [
- '
',
- '
',
+ '',
+ '
',
'',
'',
'',
@@ -366,21 +374,38 @@ define([
' | ',
'
',
'',
- '',
- '',
+ ' | ',
+ '',
' | ',
'
',
'',
- '',
+ ' | ',
'',
- '',
+ ' | ',
'
',
'',
- '',
+ ' | ',
'',
+ ' | ',
+ '',
+ ' | ',
+ '
',
+ '',
+ '',
'',
' | ',
+ '',
+ '',
+ ' | ',
'
',
'
',
'
'
@@ -389,6 +414,9 @@ define([
this.options.tpl = _.template(this.template)(this.options);
this.api = this.options.api;
+ var filter = Common.localStorage.getKeysFilter();
+ this.appPrefix = (filter && filter.length) ? filter.split(',')[0] : '';
+
var fontList = this.api.pluginMethod_GetFontList();
fontList.sort(function(a, b){
if(a.m_wsFontName < b.m_wsFontName) return -1;
@@ -487,7 +515,8 @@ define([
cls : 'input-group-nr',
data : aFontSelects,
editable : false,
- menuStyle : 'min-width: 100%; max-height: 200px;'
+ search : true,
+ menuStyle : 'min-width: 100%; max-height: 209px;'
}).on('selected', function(combo, record) {
var oCurrentRange = me.getRangeBySymbol(aRanges, nCurrentSymbol);
nCurrentFont = record.value;
@@ -507,6 +536,7 @@ define([
}
bMainFocus = true;
me.updateView();
+ me.previewPanel.focus();
});
this.cmbFonts.setValue(nCurrentFont);
@@ -514,7 +544,13 @@ define([
el : $window.find('#symbol-table-cmb-range'),
cls : 'input-group-nr',
editable : false,
- menuStyle : 'min-width: 100%; max-height: 200px;'
+ menuStyle : 'min-width: 100%; max-height: 209px;'
+ }).on('selected', function(combo, record) {
+ var oCurrentRange = me.getRangeByName(aRanges, parseInt(record.value));
+ nCurrentSymbol = oCurrentRange.Start;
+ bMainFocus = true;
+ me.updateView(undefined, undefined, undefined, undefined, false);
+ me.previewPanel.focus();
});
this.updateRangeSelector();
@@ -526,10 +562,36 @@ define([
validateOnBlur: false,
validateOnChange: true
}).on('changing', function(cmp, newValue, oldValue) {
- me.isTextChanged = true;
+ var value = parseInt(newValue, 16);
+ if(!isNaN(value) && value > 0x1F){
+ var oRange = me.getRangeBySymbol(aRanges, value);
+ if(oRange){
+ var bUpdateTable = (me.$window.find("#c" + value).length === 0);
+ nCurrentSymbol = value;
+ bMainFocus = true;
+ me.updateView(bUpdateTable, undefined, false);
+ }
+ }
+ }).on('change:after', function(cmp, newValue, oldValue) {
+ me.updateInput();
});
- // this.updateView(undefined, undefined, undefined, true);
+ //fill recents
+ this.fillRecentSymbols();
+
+ var container = this.$window.find('#fake-symbol-table-wrap');
+ container.perfectScrollbar({
+ theme: 'custom-theme',
+ minScrollbarLength: 50
+ });
+
+ this.previewPanel = this.$window.find('#id-preview-data');
+ this.previewParent = this.previewPanel.parent();
+ this.previewScrolled = this.$window.find('#id-preview');
+ this.previewInner = this.previewScrolled.find('div:first-child');
+ this.recentPanel = this.$window.find('#symbol-table-recent');
+ this.fontLabel = this.$window.find("#symbol-table-label-font");
+ this.updateView(undefined, undefined, undefined, true);
$window.find('.dlg-btn').on('click', _.bind(this.onBtnClick, this));
},
@@ -537,16 +599,43 @@ define([
show: function() {
Common.UI.Window.prototype.show.apply(this, arguments);
+ if (!this.binding)
+ this.binding = {};
+ this.binding.keydownSymbols = _.bind(this.onKeyDown,this);
+ this.binding.keypressSymbols = _.bind(this.onKeyPress,this);
+ $(document).on('keydown.' + this.cid, '#symbol-table-scrollable-div #id-preview-data, #symbol-table-recent', this.binding.keydownSymbols);
+ $(document).on('keypress.' + this.cid, '#symbol-table-scrollable-div #id-preview-data, #symbol-table-recent', this.binding.keypressSymbols);
+
var me = this;
_.delay(function(){
- // me.inputUrl.cmpEl.find('input').focus();
+ me.previewPanel.focus();
},50);
},
+ close: function(suppressevent) {
+ $(document).off('keydown.' + this.cid, this.binding.keydownSymbols);
+ $(document).off('keypress.' + this.cid, this.binding.keypressSymbols);
+
+ Common.UI.Window.prototype.close.apply(this, arguments);
+ },
+
setSettings: function (props) {
},
getSettings: function () {
+ return this.getPasteSymbol(this.$window.find('.cell-selected').attr('id'));
+ },
+
+ getPasteSymbol: function(cellId) {
+ var bUpdateRecents = cellId[0] === 'c';
+ var sFont;
+ if(bUpdateRecents){
+ sFont = aFontSelects[nCurrentFont].displayValue;
+ } else {
+ var nFontId = parseInt(cellId.split('_')[2]);
+ sFont = aFontSelects[nFontId].displayValue;
+ }
+ return {font: sFont, symbol: this.encodeSurrogateChar(nCurrentSymbol), updateRecents: bUpdateRecents};
},
onBtnClick: function(event) {
@@ -559,8 +648,13 @@ define([
},
_handleInput: function(state) {
+ var settings = this.getPasteSymbol(this.$window.find('.cell-selected').attr('id'));
+ if (state=='ok') {
+ settings.updateRecents && this.checkRecent(nCurrentSymbol, settings.font);
+ settings.updateRecents && this.updateRecents();
+ }
if (this.options.handler) {
- this.options.handler.call(this, this, state);
+ this.options.handler.call(this, this, state, settings);
}
this.close();
@@ -662,8 +756,7 @@ define([
return -1;
},
- createTable: function(arrSym, nRowsCount, nColsCount, oDiv){
-
+ createTable: function(arrSym, nRowsCount, nColsCount){
var nDivCount = nRowsCount*nColsCount;
var nCellsCounter = 0;
var sInnerHtml = '';
@@ -692,23 +785,24 @@ define([
nCellsCounter = 0;
}
}
- oDiv.innerHTML = sInnerHtml;
+ this.previewPanel.html(sInnerHtml);
+ // this.previewPanel[0].innerHTML = sInnerHtml;
},
fillRecentSymbols: function(){
- var sRecents = window.localStorage.getItem('recentSymbols');
+ var sRecents = Common.localStorage.getItem(this.appPrefix + 'recentSymbols');
var aRecentCookies;
if(sRecents != ''){
aRecentCookies = JSON.parse(sRecents);
}
- if(Array.isArray(aRecentCookies)){
+ if(_.isArray(aRecentCookies)){
aRecents = aRecentCookies;
}
},
saveRecent: function(){
var sJSON = JSON.stringify(aRecents);
- window.localStorage.setItem('recentSymbols', sJSON);
+ Common.localStorage.setItem(this.appPrefix + 'recentSymbols', sJSON);
},
checkRecent: function(sSymbol, sFont){
@@ -730,10 +824,10 @@ define([
},
createCell: function(nSymbolCode, sFontName){
- var sId;
+ var sId = '',
+ symbol = '';
if(sFontName){
var nFontIndex = 0;
- aFontSelects[nCurrentFont].displayValue
for(var i = 0; i < aFontSelects.length; ++i){
if(aFontSelects[i].displayValue === sFontName){
nFontIndex = i;
@@ -741,52 +835,77 @@ define([
}
}
sId = 'r_' + nSymbolCode + '_' + nFontIndex;
- }
- else{
+ symbol = '' + nSymbolCode.toString();
+ } else if (nSymbolCode!==undefined) {
sId = 'r' + nSymbolCode;
+ symbol = '' + nSymbolCode.toString();
}
- var _ret = $('' + nSymbolCode.toString() + '
');
+ var _ret = $('' + symbol + '
');
_ret.addClass('cell');
_ret.addClass('noselect');
- _ret.mousedown(cellClickHandler);
+ _ret.mousedown(_.bind(this.cellClickHandler, this));
if(sFontName){
_ret.css('font-family', '\'' + sFontName + '\'');
}
- //_ret.mouseup(function (e) {
- // e.stopPropagation();
- //});
return _ret;
},
- updateRecents: function(){
- var oRecentsDiv = $('#recent-table');
- oRecentsDiv.empty();
- var nRecents = Math.min(this.getColsCount(), aRecents.length);
- if(aRecents.length === 0){
- oRecentsDiv.css('border', '1px solid rgb(247, 247, 247)');
+ cellClickHandler: function (e) {
+ var id = $(e.target).attr('id');
+ if(!id){
return;
}
- oRecentsDiv.css('border', '1px solid rgb(122, 122, 122)');
- for(var i = 0; i < nRecents; ++i){
- var oCell = this.createCell(aRecents[i].symbol, aRecents[i].font);
+ var nTime = (new Date()).getTime();
+ if(id === sLastId && (nTime - nLastTime) < 300 ){
+ this.cellDblClickHandler(e)
+ }
+ else{
+ if(id[0] === 'c'){
+ nCurrentSymbol = parseInt(id.slice(1, id.length));
+ bMainFocus = true;
+ }
+ else{
+ var aStrings = id.split('_');
+ nCurrentSymbol = parseInt(aStrings[1]);
+ nFontNameRecent = parseInt(aStrings[2]);
+ bMainFocus = false;
+ }
+ this.updateView(false);
+ }
+ sLastId = e.target.id;
+ nLastTime = nTime;
+ },
+ cellDblClickHandler: function (e){
+ var settings = this.getPasteSymbol($(e.target).attr('id'));
+ settings.updateRecents && this.checkRecent(nCurrentSymbol, settings.font);
+ settings.updateRecents && this.updateView(false, undefined, undefined, true);
+ this.fireEvent('symbol:dblclick', [this, settings]);
+ },
+
+ updateRecents: function(){
+ var oRecentsDiv = this.recentPanel;
+ oRecentsDiv.empty();
+ var nCols = this.getColsCount(),
+ nRecents = aRecents.length;
+ oRecentsDiv.width(nCols * CELL_WIDTH);
+ for(var i = 0; i < nCols; ++i){
+ var oCell = (i> 0);
},
getMaxHeight: function(){
-
- var nMaxHeight = $('#main-div').innerHeight() - 10 - $('#header-div').outerHeight(true) - $('#recent-symbols-wrap').outerHeight(true)
- - $('#value-wrap').outerHeight(true) - $('#insert-button').outerHeight(true) - 2;
+ var nMaxHeight = this.$window.find('#symbol-table-scrollable-div').innerHeight();
return nMaxHeight;
},
@@ -822,9 +941,8 @@ define([
}
aSymbols.push(nCode);
}
- var oSymbolTable = $('#symbols-table')[0];
- $('#symbols-table').css('font-family', '\'' + aFontSelects[nCurrentFont].displayValue + '\'');
- this.createTable(aSymbols, nRowsCount, nColsCount, oSymbolTable);
+ this.previewPanel.css('font-family', '\'' + aFontSelects[nCurrentFont].displayValue + '\'');
+ this.createTable(aSymbols, nRowsCount, nColsCount);
return nRowsSkip;
},
@@ -838,18 +956,18 @@ define([
if(bMainFocus){
if(aFontSelects[nCurrentFont]){
- $("#font-name-label").text(aFontSelects[nCurrentFont].displayValue);
+ this.fontLabel.text(aFontSelects[nCurrentFont].displayValue);
}
else{
- $("#font-name-label").text('');
+ this.fontLabel.text('');
}
}
else{
if(aFontSelects[nFontNameRecent]){
- $("#font-name-label").text(aFontSelects[nFontNameRecent].displayValue);
+ this.fontLabel.text(aFontSelects[nFontNameRecent].displayValue);
}
else{
- $("#font-name-label").text('');
+ this.fontLabel.text('');
}
}
@@ -857,15 +975,10 @@ define([
//fill fonts combo box
this.cmbFonts.setValue(nCurrentFont);
}
-/*
+
//main table
var nRowsCount = this.getRowsCount();
-
var nHeight = nRowsCount*CELL_HEIGHT - 1;
- $('#scrollable-table-div').height(nHeight);
- $('#scrollable-table-div').css('margin-bottom', this.getMaxHeight() - nHeight);
-
-
bScrollMouseUp = false;
if(bUpdateTable !== false){
//fill table
@@ -876,27 +989,35 @@ define([
var nAllRowsCount = Math.ceil(nSymbolsCount/this.getColsCount());
var nFullHeight = nAllRowsCount*CELL_HEIGHT;
- var nOldHeight = $("#fake-symbol-table-wrap").height();
- $("#fake-symbol-table-wrap").height(nHeight);
- $("#fake-symbol-table").height(nFullHeight);
+ this.previewInner.height(nFullHeight);
+ if (!this.scrollerY)
+ this.scrollerY = new Common.UI.Scroller({
+ el: this.previewScrolled,
+ minScrollbarLength: Math.max((CELL_HEIGHT*2.0/3.0 + 0.5) >> 0, ((nHeight/8.0 + 0.5) >> 0)),
+ alwaysVisibleY: true,
+ wheelSpeed: Math.min((Math.floor(this.previewPanel.height()/CELL_HEIGHT) * CELL_HEIGHT)/10, 20),
+ useKeyboard: false,
+ onChange: _.bind(function(){
+ if (this.scrollerY) {
+ this._preventUpdateScroll = true;
+ this.onScrollEnd();
+ this._preventUpdateScroll = false;
+ this.previewParent.height(nHeight);
+ this.previewParent.css({top: this.scrollerY.getScrollTop()});
+ }
+ }, this)
+ });
+ if (!this._preventUpdateScroll) {
+ this.scrollerY.update({
+ minScrollbarLength: Math.max((CELL_HEIGHT*2.0/3.0 + 0.5) >> 0, ((nHeight/8.0 + 0.5) >> 0))
+ });
+ this.scrollerY.scrollTop(nRowSkip*CELL_HEIGHT);
+ }
- var container = document.getElementById('fake-symbol-table-wrap');
- // if(nOldHeight !== nHeight){
- // Ps.destroy();
- // Ps = new PerfectScrollbar('#' + container.id, {
- // minScrollbarLength: Math.max((CELL_HEIGHT*2.0/3.0 + 0.5) >> 0, ((nHeight/8.0 + 0.5) >> 0))
- // });
- // }
- bShowTooltip = false;
- container.scrollTop = nRowSkip*CELL_HEIGHT;
- // Ps.update();
- bShowTooltip = true;
- var aCells = $('#symbols-table > .cell');
- aCells.mousedown(cellClickHandler);
- //aCells.mouseup(function (e) {
- // e.stopPropagation();
- //});
+ var aCells = this.previewPanel.find('.cell');
+ aCells.off('mousedown');
+ aCells.mousedown(_.bind(this.cellClickHandler, this));
}
//fill recent
@@ -905,31 +1026,74 @@ define([
}
//reset selection
- $('.cell').removeClass('cell-selected');
+ this.$window.find('.cell').removeClass('cell-selected');
//select current cell
if(bMainFocus){
- $('#c' + nCurrentSymbol).addClass('cell-selected');
+ this.$window.find('#c' + nCurrentSymbol).addClass('cell-selected');
}
else{
- $('#r_' + nCurrentSymbol + '_' + nFontNameRecent).addClass('cell-selected');
+ this.$window.find('#r_' + nCurrentSymbol + '_' + nFontNameRecent).addClass('cell-selected');
}
//update input
if(bUpdateInput !== false){
this.updateInput();
}
-*/
+ },
+
+ onScrollEnd: function(){
+ if(this.scrollerY.getScrollTop() === nLastScroll){
+ return;
+ }
+
+ var nSymbolsCount = this.getAllSymbolsCount(aRanges);
+ var nColsCount = this.getColsCount();
+ var nRows = this.getRowsCount();
+ var nAllRowsCount = Math.ceil(nSymbolsCount/nColsCount);
+ var nFullHeight = nAllRowsCount*CELL_HEIGHT;
+ var nRowSkip = Math.max(0, Math.min(nAllRowsCount - nRows, (nAllRowsCount*this.scrollerY.getScrollTop()/nFullHeight + 0.5) >> 0));
+ nLastScroll = this.scrollerY.getScrollTop();
+ if(!bMainFocus){
+ nCurrentSymbol = this.getCodeByLinearIndex(aRanges, nRowSkip*nColsCount);
+ bMainFocus = true;
+ }
+ else{
+ var oFirstCell = this.previewPanel.children()[0];
+ if(oFirstCell){
+ var id = oFirstCell.id;
+ if(id){
+ var nOldFirstCode = parseInt(id.slice(1, id.length));
+ var nOldFirstLinearIndex = this.getLinearIndexByCode(aRanges, nOldFirstCode);
+ var nOldCurrentLinearIndex = this.getLinearIndexByCode(aRanges, nCurrentSymbol);
+ var nDiff = nOldCurrentLinearIndex - nOldFirstLinearIndex;
+ var nNewCurLinearIndex = nRowSkip*nColsCount + nDiff;
+ nCurrentSymbol = this.getCodeByLinearIndex(aRanges, nNewCurLinearIndex);
+ var nFirstIndex = nRowSkip*nColsCount;
+ nNewCurLinearIndex -= nColsCount;
+ while(nCurrentSymbol === -1 && nNewCurLinearIndex >= nFirstIndex){
+ nCurrentSymbol = this.getCodeByLinearIndex(aRanges, nNewCurLinearIndex);
+ nNewCurLinearIndex -= nColsCount;
+ }
+ if(nCurrentSymbol === -1){
+ nCurrentSymbol = this.getCodeByLinearIndex(aRanges, nFirstIndex);
+ }
+ }
+ else{
+ nCurrentSymbol = this.getCodeByLinearIndex(aRanges, nRowSkip*nColsCount);
+ }
+ }
+ }
+ this.updateView(true, this.getCodeByLinearIndex(aRanges, nRowSkip*nColsCount));
},
updateInput: function(){
-
var sVal = nCurrentSymbol.toString(16).toUpperCase();
var sValLen = sVal.length;
for(var i = sValLen; i < 5; ++i){
sVal = '0' + sVal;
}
- $('#symbol-code-input').val(sVal);
+ this.inputCode.setValue(sVal);
},
updateRangeSelector: function() {
@@ -952,6 +1116,134 @@ define([
}
},
+ onKeyDown: function(e){
+ if(document.activeElement){
+ if(document.activeElement.nodeName && document.activeElement.nodeName.toLowerCase() === 'span'){
+ return;
+ }
+ }
+ var value = e.which || e.charCode || e.keyCode || 0;
+ var bFill = true;
+ if(bMainFocus){
+ var nCode = -1;
+ if ( value === 37 ){//left
+ nCode = this.getCodeByLinearIndex(aRanges, this.getLinearIndexByCode(aRanges, nCurrentSymbol) - 1);
+ }
+ else if ( value === 38 ){//top
+ nCode = this.getCodeByLinearIndex(aRanges, this.getLinearIndexByCode(aRanges, nCurrentSymbol) - this.getColsCount());
+ }
+ else if ( value === 39 ){//right
+ nCode = this.getCodeByLinearIndex(aRanges, this.getLinearIndexByCode(aRanges, nCurrentSymbol) + 1);
+ }
+ else if ( value === 40 ){//bottom
+ nCode = this.getCodeByLinearIndex(aRanges, this.getLinearIndexByCode(aRanges, nCurrentSymbol) + this.getColsCount());
+ }
+ else if(value === 36){//home
+ if(aRanges.length > 0){
+ nCode = aRanges[0].Start;
+ }
+ }
+ else if(value === 35){//end
+ if(aRanges.length > 0){
+ nCode = aRanges[aRanges.length - 1].End;
+ }
+ }
+ else if(value === 13){//enter
+ this.checkRecent(nCurrentSymbol, aFontSelects[nCurrentFont].displayName);
+ this.fireEvent('symbol:dblclick', {font: aFontSelects[nCurrentFont].displayName, symbol: this.encodeSurrogateChar(nCurrentSymbol)});
+ }
+ else{
+ bFill = false;
+ }
+ if(nCode > -1){
+ nCurrentSymbol = nCode;
+ var bUpdateTable = this.$window.find('#c' + nCurrentSymbol).length === 0;
+ this.updateView(bUpdateTable);
+ }
+ }
+ else{
+ var oSelectedCell, aStrings;
+ if ( value === 37 ){//left
+ oSelectedCell = this.$window.find('.cell-selected')[0];
+ if(oSelectedCell && oSelectedCell.id[0] === 'r'){
+ var oPresCell = this.$window.find(oSelectedCell).prev();
+ if(oPresCell.length > 0){
+ aStrings = this.$window.find(oPresCell).attr('id').split('_');
+ nCurrentSymbol = parseInt(aStrings[1]);
+ nFontNameRecent = parseInt(aStrings[2]);
+ this.updateView(false);
+ }
+ }
+ }
+ else if ( value === 39 ){//right
+ oSelectedCell = this.$window.find('.cell-selected')[0];
+ if(oSelectedCell && oSelectedCell.id[0] === 'r'){
+ var oNextCell = this.$window.find(oSelectedCell).next();
+ if(oNextCell.length > 0){
+ aStrings = this.$window.find(oNextCell).attr('id').split('_');
+ nCurrentSymbol = parseInt(aStrings[1]);
+ nFontNameRecent = parseInt(aStrings[2]);
+ this.updateView(false);
+ }
+ }
+ }
+ else if(value === 36){//home
+ var oFirstCell = this.$window.find('#recent-table').children()[0];
+ if(oFirstCell){
+ aStrings = oFirstCell.id.split('_');
+ nCurrentSymbol = parseInt(aStrings[1]);
+ nFontNameRecent = parseInt(aStrings[2]);
+ this.updateView(false);
+ }
+ }
+ else if(value === 35){//end
+ var aChildren = this.recentPanel.children();
+ var oLastCell = aChildren[aChildren.length - 1];
+ if(oLastCell){
+ aStrings = oLastCell.id.split('_');
+ nCurrentSymbol = parseInt(aStrings[1]);
+ nFontNameRecent = parseInt(aStrings[2]);
+ this.updateView(false);
+ }
+ }
+ else if(value === 13){//enter
+ this.fireEvent('symbol:dblclick', {font: aFontSelects[nFontNameRecent].displayName, symbol: this.encodeSurrogateChar(nCurrentSymbol)});
+ }
+ else{
+ bFill = false;
+ }
+ }
+
+ if(bFill){
+ lastKeyCode = value;
+ lastTime = (new Date()).getTime();
+ }
+ },
+
+ onKeyPress: function(e){
+ if(document.activeElement){
+ if(document.activeElement.nodeName && document.activeElement.nodeName.toLowerCase() === 'span'){
+ return;
+ }
+ }
+ var value = e.which || e.charCode || e.keyCode || 0;
+ if(lastKeyCode === value){
+ if(Math.abs(lastTime - (new Date()).getTime()) < 1000){
+ return;
+ }
+ }
+ if(!isNaN(value) && value > 0x1F){
+ var oRange = this.getRangeBySymbol(aRanges, value);
+ if(oRange){
+ var bUpdateTable = (this.$window.find("#c" + value).length === 0);
+ nCurrentSymbol = value;
+ bMainFocus = true;
+ this.updateView(bUpdateTable, undefined, true);
+ }
+ }
+ e.preventDefault && e.preventDefault();
+ },
+
textTitle: 'Symbol Table',
textFont: 'Font',
textRange: 'Range',
diff --git a/apps/common/main/resources/less/symboltable.less b/apps/common/main/resources/less/symboltable.less
new file mode 100644
index 000000000..70bdfc5d1
--- /dev/null
+++ b/apps/common/main/resources/less/symboltable.less
@@ -0,0 +1,54 @@
+#symbol-table-scrollable-div, #symbol-table-recent {
+ div{
+ display: inline-block;
+ vertical-align: top;
+ }
+
+ .cell{
+ width: 31px;
+ height: 33px;
+ border-right: 1px solid @gray-soft;
+ border-bottom: 1px solid @gray-soft;
+ background: #ffffff;
+ align-content: center;
+ vertical-align: middle;
+ text-align: center;
+ font-size: 22px;
+ -khtml-user-select: none;
+ user-select: none;
+ -moz-user-select: none;
+ -webkit-user-select: none;
+ cursor: default;
+ overflow:hidden;
+ display: inline-block;
+ }
+
+ .cell-selected{
+ background-color: @gray-darker;
+ color: white;
+ }
+}
+
+#symbol-table-recent {
+ width: 100%;
+ height: 32px;
+ overflow: hidden;
+ border: @gray-soft solid 1px;
+}
+
+#symbol-table-scrollable-div {
+ #id-preview {
+ width: 100%;
+ height: 132px !important;
+ position:relative;
+ overflow:hidden;
+ border: @gray-soft solid 1px;
+ }
+
+ #id-preview-data {
+ width: 100%;
+ height: 134px !important;
+ position:relative;
+ overflow:hidden;
+ }
+}
diff --git a/apps/documenteditor/main/app/controller/Toolbar.js b/apps/documenteditor/main/app/controller/Toolbar.js
index 723176eac..aa4a1e330 100644
--- a/apps/documenteditor/main/app/controller/Toolbar.js
+++ b/apps/documenteditor/main/app/controller/Toolbar.js
@@ -2481,7 +2481,8 @@ define([
api: me.api,
handler: function(dlg, result) {
if (result == 'ok') {
- // dlg.getSettings();
+ var settings = dlg.getSettings();
+ me.api.pluginMethod_PasteHtml("" + settings.symbol + "");
}
Common.NotificationCenter.trigger('edit:complete', me.toolbar);
}
diff --git a/apps/documenteditor/main/resources/less/app.less b/apps/documenteditor/main/resources/less/app.less
index cfeb6e07d..d07e1e5e4 100644
--- a/apps/documenteditor/main/resources/less/app.less
+++ b/apps/documenteditor/main/resources/less/app.less
@@ -118,6 +118,7 @@
@import "../../../../common/main/resources/less/toolbar.less";
@import "../../../../common/main/resources/less/language-dialog.less";
@import "../../../../common/main/resources/less/winxp_fix.less";
+@import "../../../../common/main/resources/less/symboltable.less";
// App
// --------------------------------------------------