tagging as ATutor 1.5.4-release
[atutor.git] / jscripts / tiny_mce / plugins / directionality / editor_plugin_src.js
1 /**\r
2  * $RCSfile: editor_plugin_src.js,v $\r
3  * $Revision: 1.16 $\r
4  * $Date: 2006/02/10 21:34:28 $\r
5  *\r
6  * @author Moxiecode\r
7  * @copyright Copyright © 2004-2006, Moxiecode Systems AB, All rights reserved.\r
8  */\r
9 \r
10 /* Import plugin specific language pack */\r
11 tinyMCE.importPluginLanguagePack('directionality', 'en,tr,sv,fr_ca,zh_cn,cs,da,he,nb,de,hu,ru,ru_KOI8-R,ru_UTF-8,nn,es,cy,is,pl,nl,fr,pt_br');\r
12 \r
13 var TinyMCE_DirectionalityPlugin = {\r
14         getInfo : function() {\r
15                 return {\r
16                         longname : 'Directionality',\r
17                         author : 'Moxiecode Systems',\r
18                         authorurl : 'http://tinymce.moxiecode.com',\r
19                         infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_directionality.html',\r
20                         version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion\r
21                 };\r
22         },\r
23 \r
24         getControlHTML : function(cn) {\r
25                 switch (cn) {\r
26                         case "ltr":\r
27                                 return tinyMCE.getButtonHTML(cn, 'lang_directionality_ltr_desc', '{$pluginurl}/images/ltr.gif', 'mceDirectionLTR');\r
28 \r
29                         case "rtl":\r
30                                 return tinyMCE.getButtonHTML(cn, 'lang_directionality_rtl_desc', '{$pluginurl}/images/rtl.gif', 'mceDirectionRTL');\r
31                 }\r
32 \r
33                 return "";\r
34         },\r
35 \r
36         execCommand : function(editor_id, element, command, user_interface, value) {\r
37                 // Handle commands\r
38                 switch (command) {\r
39                         case "mceDirectionLTR":\r
40                                 var inst = tinyMCE.getInstanceById(editor_id);\r
41                                 var elm = tinyMCE.getParentElement(inst.getFocusElement(), "p,div,td,h1,h2,h3,h4,h5,h6,pre,address");\r
42 \r
43                                 if (elm)\r
44                                         elm.setAttribute("dir", "ltr");\r
45 \r
46                                 tinyMCE.triggerNodeChange(false);\r
47                                 return true;\r
48 \r
49                         case "mceDirectionRTL":\r
50                                 var inst = tinyMCE.getInstanceById(editor_id);\r
51                                 var elm = tinyMCE.getParentElement(inst.getFocusElement(), "p,div,td,h1,h2,h3,h4,h5,h6,pre,address");\r
52 \r
53                                 if (elm)\r
54                                         elm.setAttribute("dir", "rtl");\r
55 \r
56                                 tinyMCE.triggerNodeChange(false);\r
57                                 return true;\r
58                 }\r
59 \r
60                 // Pass to next handler in chain\r
61                 return false;\r
62         },\r
63 \r
64         handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {\r
65                 function getAttrib(elm, name) {\r
66                         return elm.getAttribute(name) ? elm.getAttribute(name) : "";\r
67                 }\r
68 \r
69                 if (node == null)\r
70                         return;\r
71 \r
72                 var elm = tinyMCE.getParentElement(node, "p,div,td,h1,h2,h3,h4,h5,h6,pre,address");\r
73                 if (!elm) {\r
74                         tinyMCE.switchClass(editor_id + '_ltr', 'mceButtonDisabled');\r
75                         tinyMCE.switchClass(editor_id + '_rtl', 'mceButtonDisabled');\r
76                         return true;\r
77                 }\r
78 \r
79                 tinyMCE.switchClass(editor_id + '_ltr', 'mceButtonNormal');\r
80                 tinyMCE.switchClass(editor_id + '_rtl', 'mceButtonNormal');\r
81 \r
82                 var dir = getAttrib(elm, "dir");\r
83                 if (dir == "ltr" || dir == "")\r
84                         tinyMCE.switchClass(editor_id + '_ltr', 'mceButtonSelected');\r
85                 else\r
86                         tinyMCE.switchClass(editor_id + '_rtl', 'mceButtonSelected');\r
87 \r
88                 return true;\r
89         }\r
90 };\r
91 \r
92 tinyMCE.addPlugin("directionality", TinyMCE_DirectionalityPlugin);\r