]> scripts.mit.edu Git - autoinstalls/wordpress.git/blob - wp-includes/js/tinymce/plugins/directionality/editor_plugin.js
Wordpress 2.3.2-scripts
[autoinstalls/wordpress.git] / wp-includes / js / tinymce / plugins / directionality / editor_plugin.js
1 /**
2  * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
3  *
4  * @author Moxiecode
5  * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
6  */
7
8 /* Import plugin specific language pack */
9 tinyMCE.importPluginLanguagePack('directionality');
10
11 var TinyMCE_DirectionalityPlugin = {
12         getInfo : function() {
13                 return {
14                         longname : 'Directionality',
15                         author : 'Moxiecode Systems AB',
16                         authorurl : 'http://tinymce.moxiecode.com',
17                         infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality',
18                         version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
19                 };
20         },
21
22         getControlHTML : function(cn) {
23                 switch (cn) {
24                         case "ltr":
25                                 return tinyMCE.getButtonHTML(cn, 'lang_directionality_ltr_desc', '{$pluginurl}/images/ltr.gif', 'mceDirectionLTR');
26
27                         case "rtl":
28                                 return tinyMCE.getButtonHTML(cn, 'lang_directionality_rtl_desc', '{$pluginurl}/images/rtl.gif', 'mceDirectionRTL');
29                 }
30
31                 return "";
32         },
33
34         execCommand : function(editor_id, element, command, user_interface, value) {
35                 // Handle commands
36                 switch (command) {
37                         case "mceDirectionLTR":
38                                 var inst = tinyMCE.getInstanceById(editor_id);
39                                 var elm = tinyMCE.getParentElement(inst.getFocusElement(), "p,div,td,h1,h2,h3,h4,h5,h6,pre,address");
40
41                                 if (elm)
42                                         elm.setAttribute("dir", "ltr");
43
44                                 tinyMCE.triggerNodeChange(false);
45                                 return true;
46
47                         case "mceDirectionRTL":
48                                 var inst = tinyMCE.getInstanceById(editor_id);
49                                 var elm = tinyMCE.getParentElement(inst.getFocusElement(), "p,div,td,h1,h2,h3,h4,h5,h6,pre,address");
50
51                                 if (elm)
52                                         elm.setAttribute("dir", "rtl");
53
54                                 tinyMCE.triggerNodeChange(false);
55                                 return true;
56                 }
57
58                 // Pass to next handler in chain
59                 return false;
60         },
61
62         handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
63                 function getAttrib(elm, name) {
64                         return elm.getAttribute(name) ? elm.getAttribute(name) : "";
65                 }
66
67                 if (node == null)
68                         return;
69
70                 var elm = tinyMCE.getParentElement(node, "p,div,td,h1,h2,h3,h4,h5,h6,pre,address");
71                 if (!elm) {
72                         tinyMCE.switchClass(editor_id + '_ltr', 'mceButtonDisabled');
73                         tinyMCE.switchClass(editor_id + '_rtl', 'mceButtonDisabled');
74                         return true;
75                 }
76
77                 tinyMCE.switchClass(editor_id + '_ltr', 'mceButtonNormal');
78                 tinyMCE.switchClass(editor_id + '_rtl', 'mceButtonNormal');
79
80                 var dir = getAttrib(elm, "dir");
81                 if (dir == "ltr" || dir == "")
82                         tinyMCE.switchClass(editor_id + '_ltr', 'mceButtonSelected');
83                 else
84                         tinyMCE.switchClass(editor_id + '_rtl', 'mceButtonSelected');
85
86                 return true;
87         }
88 };
89
90 tinyMCE.addPlugin("directionality", TinyMCE_DirectionalityPlugin);