/**\r
- * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $\r
+ * editor_plugin_src.js\r
*\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.\r
+ * Copyright 2009, Moxiecode Systems AB\r
+ * Released under LGPL License.\r
+ *\r
+ * License: http://tinymce.moxiecode.com/license\r
+ * Contributing: http://tinymce.moxiecode.com/contributing\r
*/\r
\r
-/* Import plugin specific language pack */\r
-tinyMCE.importPluginLanguagePack('nonbreaking');\r
-\r
-var TinyMCE_NonBreakingPlugin = {\r
- getInfo : function() {\r
- return {\r
- longname : 'Nonbreaking space',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking',\r
- version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion\r
- };\r
- },\r
-\r
- getControlHTML : function(cn) {\r
- switch (cn) {\r
- case "nonbreaking":\r
- return tinyMCE.getButtonHTML(cn, 'lang_nonbreaking_desc', '{$pluginurl}/images/nonbreaking.gif', 'mceNonBreaking', false);\r
- }\r
-\r
- return "";\r
- },\r
-\r
-\r
- execCommand : function(editor_id, element, command, user_interface, value) {\r
- var inst = tinyMCE.getInstanceById(editor_id), h;\r
-\r
- switch (command) {\r
- case "mceNonBreaking":\r
- h = (inst.visualChars && inst.visualChars.state) ? '<span class="mceItemHiddenVisualChar">·</span>' : ' ';\r
- tinyMCE.execInstanceCommand(editor_id, 'mceInsertContent', false, h);\r
- return true;\r
- }\r
-\r
- return false;\r
- },\r
-\r
- handleEvent : function(e) {\r
- var inst, h;\r
-\r
- if (!tinyMCE.isOpera && e.type == 'keydown' && e.keyCode == 9 && tinyMCE.getParam('nonbreaking_force_tab', false)) {\r
- inst = tinyMCE.selectedInstance;\r
-\r
- h = (inst.visualChars && inst.visualChars.state) ? '<span class="mceItemHiddenVisualChar">···</span>' : ' ';\r
- tinyMCE.execInstanceCommand(inst.editorId, 'mceInsertContent', false, h);\r
-\r
- tinyMCE.cancelEvent(e);\r
- return false;\r
+(function() {\r
+ tinymce.create('tinymce.plugins.Nonbreaking', {\r
+ init : function(ed, url) {\r
+ var t = this;\r
+\r
+ t.editor = ed;\r
+\r
+ // Register commands\r
+ ed.addCommand('mceNonBreaking', function() {\r
+ ed.execCommand('mceInsertContent', false, (ed.plugins.visualchars && ed.plugins.visualchars.state) ? '<span data-mce-bogus="1" class="mceItemHidden mceItemNbsp"> </span>' : ' ');\r
+ });\r
+\r
+ // Register buttons\r
+ ed.addButton('nonbreaking', {title : 'nonbreaking.nonbreaking_desc', cmd : 'mceNonBreaking'});\r
+\r
+ if (ed.getParam('nonbreaking_force_tab')) {\r
+ ed.onKeyDown.add(function(ed, e) {\r
+ if (e.keyCode == 9) {\r
+ e.preventDefault();\r
+ \r
+ ed.execCommand('mceNonBreaking');\r
+ ed.execCommand('mceNonBreaking');\r
+ ed.execCommand('mceNonBreaking');\r
+ }\r
+ });\r
+ }\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Nonbreaking space',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
}\r
\r
- return true;\r
- }\r
-};\r
+ // Private methods\r
+ });\r
\r
-tinyMCE.addPlugin("nonbreaking", TinyMCE_NonBreakingPlugin);\r
+ // Register plugin\r
+ tinymce.PluginManager.add('nonbreaking', tinymce.plugins.Nonbreaking);\r
+})();
\ No newline at end of file