]> scripts.mit.edu Git - autoinstalls/wordpress.git/blobdiff - wp-includes/js/tinymce/plugins/directionality/plugin.js
WordPress 3.9-scripts
[autoinstalls/wordpress.git] / wp-includes / js / tinymce / plugins / directionality / plugin.js
diff --git a/wp-includes/js/tinymce/plugins/directionality/plugin.js b/wp-includes/js/tinymce/plugins/directionality/plugin.js
new file mode 100644 (file)
index 0000000..3fd0dab
--- /dev/null
@@ -0,0 +1,64 @@
+/**
+ * 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')
+       });
+});
\ No newline at end of file