2 * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
5 * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
8 /* Import plugin specific language pack */
9 tinyMCE.importPluginLanguagePack('directionality');
11 var TinyMCE_DirectionalityPlugin = {
12 getInfo : function() {
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
22 getControlHTML : function(cn) {
25 return tinyMCE.getButtonHTML(cn, 'lang_directionality_ltr_desc', '{$pluginurl}/images/ltr.gif', 'mceDirectionLTR');
28 return tinyMCE.getButtonHTML(cn, 'lang_directionality_rtl_desc', '{$pluginurl}/images/rtl.gif', 'mceDirectionRTL');
34 execCommand : function(editor_id, element, command, user_interface, value) {
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");
42 elm.setAttribute("dir", "ltr");
44 tinyMCE.triggerNodeChange(false);
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");
52 elm.setAttribute("dir", "rtl");
54 tinyMCE.triggerNodeChange(false);
58 // Pass to next handler in chain
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) : "";
70 var elm = tinyMCE.getParentElement(node, "p,div,td,h1,h2,h3,h4,h5,h6,pre,address");
72 tinyMCE.switchClass(editor_id + '_ltr', 'mceButtonDisabled');
73 tinyMCE.switchClass(editor_id + '_rtl', 'mceButtonDisabled');
77 tinyMCE.switchClass(editor_id + '_ltr', 'mceButtonNormal');
78 tinyMCE.switchClass(editor_id + '_rtl', 'mceButtonNormal');
80 var dir = getAttrib(elm, "dir");
81 if (dir == "ltr" || dir == "")
82 tinyMCE.switchClass(editor_id + '_ltr', 'mceButtonSelected');
84 tinyMCE.switchClass(editor_id + '_rtl', 'mceButtonSelected');
90 tinyMCE.addPlugin("directionality", TinyMCE_DirectionalityPlugin);