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