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