]> git.mxchange.org Git - friendica.git/blobdiff - library/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js
updated tinymce to 3.5.11
[friendica.git] / library / tinymce / jscripts / tiny_mce / plugins / spellchecker / editor_plugin_src.js
index 86fdfceb409ed46342668cc63e78e6d6d8350735..5751b0e52ccb32b61f74ee410df178a9bceb26dc 100644 (file)
 \r
                                c.onRenderMenu.add(function(c, m) {\r
                                        m.add({title : 'spellchecker.langs', 'class' : 'mceMenuItemTitle'}).setDisabled(1);\r
+                                       t.menuItems = {};\r
                                        each(t.languages, function(v, k) {\r
                                                var o = {icon : 1}, mi;\r
 \r
                                                        if (v == t.selectedLang) {\r
                                                                return;\r
                                                        }\r
-                                                       mi.setSelected(1);\r
-                                                       t.selectedItem.setSelected(0);\r
-                                                       t.selectedItem = mi;\r
+                                                       t._updateMenu(mi);\r
                                                        t.selectedLang = v;\r
                                                };\r
 \r
                                                o.title = k;\r
                                                mi = m.add(o);\r
                                                mi.setSelected(v == t.selectedLang);\r
-\r
+                                               t.menuItems[v] = mi;\r
                                                if (v == t.selectedLang)\r
                                                        t.selectedItem = mi;\r
-                                       })\r
+                                       });\r
                                });\r
 \r
+\r
+\r
                                return c;\r
                        }\r
                },\r
 \r
+               setLanguage: function(lang) {\r
+                       var t = this;\r
+\r
+                       if (lang == t.selectedLang) {\r
+                               // allowed\r
+                               return;\r
+                       }\r
+\r
+                       if (tinymce.grep(t.languages, function(v) { return v === lang; }).length === 0) {\r
+                               throw "Unknown language: " + lang;\r
+                       }\r
+\r
+                       t.selectedLang = lang;\r
+\r
+                       // if the menu has been shown, update it as well\r
+                       if (t.menuItems) {\r
+                               t._updateMenu(t.menuItems[lang]);\r
+                       }\r
+\r
+                       if (t.active) {\r
+                               // clear error in the old language.\r
+                               t._done();\r
+\r
+                               // Don't immediately block the UI to check spelling in the new language, this is an API not a user action.\r
+                       }\r
+               },\r
+\r
                // Internal functions\r
 \r
+               _updateMenu: function(mi) {\r
+                       mi.setSelected(1);\r
+                       this.selectedItem.setSelected(0);\r
+                       this.selectedItem = mi;\r
+               },\r
+\r
                _walk : function(n, f) {\r
                        var d = this.editor.getDoc(), w;\r
 \r
                        each(nl, function(n) {\r
                                var node, elem, txt, pos, v = n.nodeValue;\r
 \r
+                               rx.lastIndex = 0;\r
                                if (rx.test(v)) {\r
                                        // Encode the content\r
                                        v = dom.encode(v);\r