| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- /**
- * plugin.js
- *
- * Copyright, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://www.tinymce.com/license
- * Contributing: http://www.tinymce.com/contributing
- */
- /*global tinymce:true */
- tinymce.PluginManager.add('directionality', function(editor) {
- function setDir(dir) {
- var dom = editor.dom, curDir, blocks = editor.selection.getSelectedBlocks();
- if (blocks.length) {
- curDir = dom.getAttrib(blocks[0], "dir");
- tinymce.each(blocks, function(block) {
- // Add dir to block if the parent block doesn't already have that dir
- if (!dom.getParent(block.parentNode, "*[dir='" + dir + "']", dom.getRoot())) {
- if (curDir != dir) {
- dom.setAttrib(block, "dir", dir);
- } else {
- dom.setAttrib(block, "dir", null);
- }
- }
- });
- editor.nodeChanged();
- }
- }
- function generateSelector(dir) {
- var selector = [];
- tinymce.each('h1 h2 h3 h4 h5 h6 div p'.split(' '), function(name) {
- selector.push(name + '[dir=' + dir + ']');
- });
- return selector.join(',');
- }
- editor.addCommand('mceDirectionLTR', function() {
- setDir("ltr");
- });
- editor.addCommand('mceDirectionRTL', function() {
- setDir("rtl");
- });
- editor.addButton('ltr', {
- title: 'Left to right',
- cmd: 'mceDirectionLTR',
- stateSelector: generateSelector('ltr')
- });
- editor.addButton('rtl', {
- title: 'Right to left',
- cmd: 'mceDirectionRTL',
- stateSelector: generateSelector('rtl')
- });
- });
|