PageRenderTime 19ms CodeModel.GetById 14ms app.highlight 3ms RepoModel.GetById 1ms app.codeStats 0ms

/BlogEngine/BlogEngine.NET/editors/tiny_mce_3_4_3_1/plugins/directionality/editor_plugin_src.js

#
JavaScript | 82 lines | 55 code | 16 blank | 11 comment | 9 complexity | f55b4200e9f8ffb2ffb7c7c17e19b30a MD5 | raw file
 1/**
 2 * editor_plugin_src.js
 3 *
 4 * Copyright 2009, Moxiecode Systems AB
 5 * Released under LGPL License.
 6 *
 7 * License: http://tinymce.moxiecode.com/license
 8 * Contributing: http://tinymce.moxiecode.com/contributing
 9 */
10
11(function() {
12	tinymce.create('tinymce.plugins.Directionality', {
13		init : function(ed, url) {
14			var t = this;
15
16			t.editor = ed;
17
18			ed.addCommand('mceDirectionLTR', function() {
19				var e = ed.dom.getParent(ed.selection.getNode(), ed.dom.isBlock);
20
21				if (e) {
22					if (ed.dom.getAttrib(e, "dir") != "ltr")
23						ed.dom.setAttrib(e, "dir", "ltr");
24					else
25						ed.dom.setAttrib(e, "dir", "");
26				}
27
28				ed.nodeChanged();
29			});
30
31			ed.addCommand('mceDirectionRTL', function() {
32				var e = ed.dom.getParent(ed.selection.getNode(), ed.dom.isBlock);
33
34				if (e) {
35					if (ed.dom.getAttrib(e, "dir") != "rtl")
36						ed.dom.setAttrib(e, "dir", "rtl");
37					else
38						ed.dom.setAttrib(e, "dir", "");
39				}
40
41				ed.nodeChanged();
42			});
43
44			ed.addButton('ltr', {title : 'directionality.ltr_desc', cmd : 'mceDirectionLTR'});
45			ed.addButton('rtl', {title : 'directionality.rtl_desc', cmd : 'mceDirectionRTL'});
46
47			ed.onNodeChange.add(t._nodeChange, t);
48		},
49
50		getInfo : function() {
51			return {
52				longname : 'Directionality',
53				author : 'Moxiecode Systems AB',
54				authorurl : 'http://tinymce.moxiecode.com',
55				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality',
56				version : tinymce.majorVersion + "." + tinymce.minorVersion
57			};
58		},
59
60		// Private methods
61
62		_nodeChange : function(ed, cm, n) {
63			var dom = ed.dom, dir;
64
65			n = dom.getParent(n, dom.isBlock);
66			if (!n) {
67				cm.setDisabled('ltr', 1);
68				cm.setDisabled('rtl', 1);
69				return;
70			}
71
72			dir = dom.getAttrib(n, 'dir');
73			cm.setActive('ltr', dir == "ltr");
74			cm.setDisabled('ltr', 0);
75			cm.setActive('rtl', dir == "rtl");
76			cm.setDisabled('rtl', 0);
77		}
78	});
79
80	// Register plugin
81	tinymce.PluginManager.add('directionality', tinymce.plugins.Directionality);
82})();