1 /* 2 * CKEditor - The text editor for Internet - http://ckeditor.com 3 * Copyright (C) 2003-2008 Frederico Caldeira Knabben 4 * 5 * == BEGIN LICENSE == 6 * 7 * Licensed under the terms of any of the following licenses at your 8 * choice: 9 * 10 * - GNU General Public License Version 2 or later (the "GPL") 11 * http://www.gnu.org/licenses/gpl.html 12 * 13 * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") 14 * http://www.gnu.org/licenses/lgpl.html 15 * 16 * - Mozilla Public License Version 1.1 or later (the "MPL") 17 * http://www.mozilla.org/MPL/MPL-1.1.html 18 * 19 * == END LICENSE == 20 */ 21 22 CKEDITOR.plugins.add( 'editingblock', 23 { 24 init : function( editor, pluginPath ) 25 { 26 editor.on( 'themespace', function( event ) 27 { 28 if ( event.data.space == 'middle' ) 29 event.data.html += '<br>'; 30 }); 31 32 editor.on( 'themeloaded', function() 33 { 34 editor.fireOnce( 'editingblockready' ); 35 }); 36 37 editor.on( 'uiready', function() 38 { 39 editor.setMode( CKEDITOR.config.startupMode ); 40 }); 41 } 42 }); 43 44 (function() 45 { 46 var getMode = function( editor, mode ) 47 { 48 return editor._.modes && editor._.modes[ mode ]; 49 }; 50 51 CKEDITOR.editor.prototype.mode = ''; 52 53 CKEDITOR.editor.prototype.addMode = function( mode, modeEditor ) 54 { 55 modeEditor.name = mode; 56 ( this._.modes || ( this._.modes = {} ) )[ mode ] = modeEditor; 57 }; 58 59 CKEDITOR.editor.prototype.setMode = function( mode ) 60 { 61 var holderElement = this.getThemeSpace( 'middle' ); 62 63 // Unload previous mode. 64 if ( this.mode ) 65 getMode( this, this.mode ).unload( holderElement ); 66 67 // Load required mode. 68 var modeEditor = getMode( this, mode ); 69 if ( !modeEditor ) 70 throw '[CKEDITOR.editor.setMode] Unknown mode "' + mode + '".'; 71 72 this.mode = mode; 73 74 modeEditor.load( holderElement ); 75 }; 76 })(); 77