tinymce.PluginManager.add('rowspacing', function(editor, url) {
var pluginName='设置段间距';
var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools');
var rowspacing_val = editor.getParam('rowspacing_val', '5px 10px 15px 20px 25px 30px');
editor.on('init', function() {
editor.formatter.register({
rowspacingtop: {
selector: 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table',
styles: { 'margin-top': '%value' }
},
rowspacingbottom: {
selector: 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table',
styles: { 'margin-bottom': '%value' }
}
});
});
var doTopAct = function (value) {
editor.formatter.apply('rowspacingtop', { value: value });
editor.fire('change', {});
};
var doBottomAct = function (value) {
editor.formatter.apply('rowspacingbottom', { value: value });
editor.fire('change', {});
};
editor.ui.registry.getAll().icons.rowspacingtop || editor.ui.registry.addIcon('rowspacingtop','');
editor.ui.registry.getAll().icons.rowspacingbottom || editor.ui.registry.addIcon('rowspacingbottom','');
editor.ui.registry.addMenuButton('rowspacingtop', {
icon: 'rowspacingtop',
tooltip: pluginName,
fetch: function(callback) {
var dom = editor.dom;
var blocks = editor.selection.getSelectedBlocks();
var lhv = 0;
global$1.each(blocks, function(block) {
if(lhv==0){
lhv = dom.getStyle(block,'margin-top') ? dom.getStyle(block,'margin-top') : 0;
}
});
var items = rowspacing_val.split(' ').map(function(item){
var text = item;
var value = item;
return {
type: 'togglemenuitem',
text: text,
active : lhv==value ? true :false,
onAction: function() {
doTopAct(value);
}
};
});
callback(items);
}
});
editor.ui.registry.addMenuButton('rowspacingbottom', {
icon: 'rowspacingbottom',
tooltip: pluginName,
fetch: function(callback) {
var dom = editor.dom;
var blocks = editor.selection.getSelectedBlocks();
var lhv = 0;
global$1.each(blocks, function(block) {
if(lhv==0){
lhv = dom.getStyle(block,'margin-bottom') ? dom.getStyle(block,'margin-bottom') : 0;
}
});
var items = rowspacing_val.split(' ').map(function(item){
var text = item;
var value = item;
return {
type: 'togglemenuitem',
text: text,
active : lhv==value ? true :false,
onAction: function() {
doBottomAct(value);
}
};
});
callback(items);
}
});
return {
getMetadata: function () {
return {
name: pluginName
};
}
};
});