bgneal@45: /** bgneal@183: * editor_plugin_src.js bgneal@45: * bgneal@183: * Copyright 2009, Moxiecode Systems AB bgneal@183: * Released under LGPL License. bgneal@183: * bgneal@183: * License: http://tinymce.moxiecode.com/license bgneal@183: * Contributing: http://tinymce.moxiecode.com/contributing bgneal@45: */ bgneal@45: bgneal@45: (function() { bgneal@45: tinymce.create('tinymce.plugins.VisualChars', { bgneal@45: init : function(ed, url) { bgneal@45: var t = this; bgneal@45: bgneal@45: t.editor = ed; bgneal@45: bgneal@45: // Register commands bgneal@45: ed.addCommand('mceVisualChars', t._toggleVisualChars, t); bgneal@45: bgneal@45: // Register buttons bgneal@45: ed.addButton('visualchars', {title : 'visualchars.desc', cmd : 'mceVisualChars'}); bgneal@45: bgneal@45: ed.onBeforeGetContent.add(function(ed, o) { bgneal@45: if (t.state) { bgneal@45: t.state = true; bgneal@45: t._toggleVisualChars(); bgneal@45: } bgneal@45: }); bgneal@45: }, bgneal@45: bgneal@45: getInfo : function() { bgneal@45: return { bgneal@45: longname : 'Visual characters', bgneal@45: author : 'Moxiecode Systems AB', bgneal@45: authorurl : 'http://tinymce.moxiecode.com', bgneal@45: infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars', bgneal@45: version : tinymce.majorVersion + "." + tinymce.minorVersion bgneal@45: }; bgneal@45: }, bgneal@45: bgneal@45: // Private methods bgneal@45: bgneal@45: _toggleVisualChars : function() { bgneal@45: var t = this, ed = t.editor, nl, i, h, d = ed.getDoc(), b = ed.getBody(), nv, s = ed.selection, bo; bgneal@45: bgneal@45: t.state = !t.state; bgneal@45: ed.controlManager.setActive('visualchars', t.state); bgneal@45: bgneal@45: if (t.state) { bgneal@45: nl = []; bgneal@45: tinymce.walk(b, function(n) { bgneal@45: if (n.nodeType == 3 && n.nodeValue && n.nodeValue.indexOf('\u00a0') != -1) bgneal@45: nl.push(n); bgneal@45: }, 'childNodes'); bgneal@45: bgneal@45: for (i=0; i$1'); bgneal@45: nv = nv.replace(/\u00a0/g, '\u00b7'); bgneal@45: ed.dom.setOuterHTML(nl[i], nv, d); bgneal@45: } bgneal@45: } else { bgneal@45: nl = tinymce.grep(ed.dom.select('span', b), function(n) { bgneal@45: return ed.dom.hasClass(n, 'mceVisualNbsp'); bgneal@45: }); bgneal@45: bgneal@45: for (i=0; i