wp/wp-includes/js/tinymce/plugins/directionality/editor_plugin_src.js
author ymh <ymh.work@gmail.com>
Thu, 07 Nov 2013 00:08:07 +0000
changeset 1 f6eb5a861d2f
parent 0 d970ebf37754
permissions -rw-r--r--
remove unnessary files. Make timthumb work
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
 * editor_plugin_src.js
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
 * Copyright 2009, Moxiecode Systems AB
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
 * Released under LGPL License.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
 * License: http://tinymce.moxiecode.com/license
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
 * Contributing: http://tinymce.moxiecode.com/contributing
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
(function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
	tinymce.create('tinymce.plugins.Directionality', {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
		init : function(ed, url) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
			var t = this;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
			t.editor = ed;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
			function setDir(dir) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
				var dom = ed.dom, curDir, blocks = ed.selection.getSelectedBlocks();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
				if (blocks.length) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
					curDir = dom.getAttrib(blocks[0], "dir");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
					tinymce.each(blocks, function(block) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
						// Add dir to block if the parent block doesn't already have that dir
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
						if (!dom.getParent(block.parentNode, "*[dir='" + dir + "']", dom.getRoot())) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
							if (curDir != dir) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
								dom.setAttrib(block, "dir", dir);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
							} else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
								dom.setAttrib(block, "dir", null);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
							}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
						}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
					});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
					ed.nodeChanged();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
				}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
			ed.addCommand('mceDirectionLTR', function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
				setDir("ltr");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
			});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
			ed.addCommand('mceDirectionRTL', function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
				setDir("rtl");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
			});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
			ed.addButton('ltr', {title : 'directionality.ltr_desc', cmd : 'mceDirectionLTR'});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
			ed.addButton('rtl', {title : 'directionality.rtl_desc', cmd : 'mceDirectionRTL'});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
			ed.onNodeChange.add(t._nodeChange, t);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
		},
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
		getInfo : function() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
			return {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
				longname : 'Directionality',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
				author : 'Moxiecode Systems AB',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
				authorurl : 'http://tinymce.moxiecode.com',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
				version : tinymce.majorVersion + "." + tinymce.minorVersion
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
			};
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
		},
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
		// Private methods
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
		_nodeChange : function(ed, cm, n) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
			var dom = ed.dom, dir;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
			n = dom.getParent(n, dom.isBlock);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
			if (!n) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
				cm.setDisabled('ltr', 1);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
				cm.setDisabled('rtl', 1);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
				return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
			}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
			dir = dom.getAttrib(n, 'dir');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
			cm.setActive('ltr', dir == "ltr");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
			cm.setDisabled('ltr', 0);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
			cm.setActive('rtl', dir == "rtl");
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
			cm.setDisabled('rtl', 0);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
	});
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
	// Register plugin
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
	tinymce.PluginManager.add('directionality', tinymce.plugins.Directionality);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
})();