1 /*
  2 Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
  3 For licensing, see LICENSE.html or http://ckeditor.com/license
  4 */
  5 
  6 (function()
  7 {
  8 	CKEDITOR.plugins.add( 'iframe',
  9 	{
 10 		requires : [ 'dialog', 'fakeobjects' ],
 11 		init : function( editor )
 12 		{
 13 			var pluginName = 'iframe',
 14 				lang = editor.lang.iframe;
 15 
 16 			CKEDITOR.dialog.add( pluginName, this.path + 'dialogs/iframe.js' );
 17 			editor.addCommand( pluginName, new CKEDITOR.dialogCommand( pluginName ) );
 18 
 19 			editor.addCss(
 20 				'img.cke_iframe' +
 21 				'{' +
 22 					'background-image: url(' + CKEDITOR.getUrl( this.path + 'images/placeholder.png' ) + ');' +
 23 					'background-position: center center;' +
 24 					'background-repeat: no-repeat;' +
 25 					'border: 1px solid #a9a9a9;' +
 26 					'width: 80px;' +
 27 					'height: 80px;' +
 28 				'}'
 29 			);
 30 
 31 			editor.ui.addButton( 'Iframe',
 32 				{
 33 					label : lang.toolbar,
 34 					command : pluginName
 35 				});
 36 
 37 			editor.on( 'doubleclick', function( evt )
 38 				{
 39 					var element = evt.data.element;
 40 					if ( element.is( 'img' ) && element.data( 'cke-real-element-type' ) == 'iframe' )
 41 						evt.data.dialog = 'iframe';
 42 				});
 43 
 44 			if ( editor.addMenuItems )
 45 			{
 46 				editor.addMenuItems(
 47 				{
 48 					iframe :
 49 					{
 50 						label : lang.title,
 51 						command : 'iframe',
 52 						group : 'image'
 53 					}
 54 				});
 55 			}
 56 
 57 			// If the "contextmenu" plugin is loaded, register the listeners.
 58 			if ( editor.contextMenu )
 59 			{
 60 				editor.contextMenu.addListener( function( element, selection )
 61 					{
 62 						if ( element && element.is( 'img' ) && element.data( 'cke-real-element-type' ) == 'iframe' )
 63 							return { iframe : CKEDITOR.TRISTATE_OFF };
 64 					});
 65 			}
 66 		},
 67 		afterInit : function( editor )
 68 		{
 69 			var dataProcessor = editor.dataProcessor,
 70 				dataFilter = dataProcessor && dataProcessor.dataFilter;
 71 
 72 			if ( dataFilter )
 73 			{
 74 				dataFilter.addRules(
 75 				{
 76 					elements :
 77 					{
 78 						iframe : function( element )
 79 						{
 80 							return editor.createFakeParserElement( element, 'cke_iframe', 'iframe', true );
 81 						}
 82 					}
 83 				});
 84 			}
 85 		}
 86 	});
 87 })();
 88