Statistics
| Branch: | Tag: | Revision:

root / static / js / tinymce / plugins / directionality / editor_plugin_src.js @ 6ecbf4ec

History | View | Annotate | Download (2 kB)

1
/**
2
 * editor_plugin_src.js
3
 *
4
 * Copyright 2009, Moxiecode Systems AB
5
 * Released under LGPL License.
6
 *
7
 * License: http://tinymce.moxiecode.com/license
8
 * Contributing: http://tinymce.moxiecode.com/contributing
9
 */
10

    
11
(function() {
12
        tinymce.create('tinymce.plugins.Directionality', {
13
                init : function(ed, url) {
14
                        var t = this;
15

    
16
                        t.editor = ed;
17

    
18
                        ed.addCommand('mceDirectionLTR', function() {
19
                                var e = ed.dom.getParent(ed.selection.getNode(), ed.dom.isBlock);
20

    
21
                                if (e) {
22
                                        if (ed.dom.getAttrib(e, "dir") != "ltr")
23
                                                ed.dom.setAttrib(e, "dir", "ltr");
24
                                        else
25
                                                ed.dom.setAttrib(e, "dir", "");
26
                                }
27

    
28
                                ed.nodeChanged();
29
                        });
30

    
31
                        ed.addCommand('mceDirectionRTL', function() {
32
                                var e = ed.dom.getParent(ed.selection.getNode(), ed.dom.isBlock);
33

    
34
                                if (e) {
35
                                        if (ed.dom.getAttrib(e, "dir") != "rtl")
36
                                                ed.dom.setAttrib(e, "dir", "rtl");
37
                                        else
38
                                                ed.dom.setAttrib(e, "dir", "");
39
                                }
40

    
41
                                ed.nodeChanged();
42
                        });
43

    
44
                        ed.addButton('ltr', {title : 'directionality.ltr_desc', cmd : 'mceDirectionLTR'});
45
                        ed.addButton('rtl', {title : 'directionality.rtl_desc', cmd : 'mceDirectionRTL'});
46

    
47
                        ed.onNodeChange.add(t._nodeChange, t);
48
                },
49

    
50
                getInfo : function() {
51
                        return {
52
                                longname : 'Directionality',
53
                                author : 'Moxiecode Systems AB',
54
                                authorurl : 'http://tinymce.moxiecode.com',
55
                                infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality',
56
                                version : tinymce.majorVersion + "." + tinymce.minorVersion
57
                        };
58
                },
59

    
60
                // Private methods
61

    
62
                _nodeChange : function(ed, cm, n) {
63
                        var dom = ed.dom, dir;
64

    
65
                        n = dom.getParent(n, dom.isBlock);
66
                        if (!n) {
67
                                cm.setDisabled('ltr', 1);
68
                                cm.setDisabled('rtl', 1);
69
                                return;
70
                        }
71

    
72
                        dir = dom.getAttrib(n, 'dir');
73
                        cm.setActive('ltr', dir == "ltr");
74
                        cm.setDisabled('ltr', 0);
75
                        cm.setActive('rtl', dir == "rtl");
76
                        cm.setDisabled('rtl', 0);
77
                }
78
        });
79

    
80
        // Register plugin
81
        tinymce.PluginManager.add('directionality', tinymce.plugins.Directionality);
82
})();