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