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