Subversion Repositories Sites.tela-botanica.org

Rev

Rev 609 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
420 florian 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);