code: function( editor, parentElement, definition, level ) {
  			definition.forceIFrame = 1;
  
  			// In case of editor with floating toolbar append panels that should float
  			// to the main UI element.
  			if ( definition.toolbarRelated && editor.elementMode == CKEDITOR.ELEMENT_MODE_INLINE )
  				parentElement = CKEDITOR.document.getById( 'cke_' + editor.name );
  
  			var doc = parentElement.getDocument(),
  				panel = getPanel( editor, doc, parentElement, definition, level || 0 ),
  				element = panel.element,
  				iframe = element.getFirst(),
  				that = this;
  
  			// Disable native browser menu. (#4825)
  			element.disableContextMenu();
  
  			this.element = element;
  
  			this._ = {
  				editor: editor,
  				// The panel that will be floating.
  				panel: panel,
  				parentElement: parentElement,
  				definition: definition,
  				document: doc,
  				iframe: iframe,
  				children: [],
  				dir: editor.lang.dir
  			};
  
  			editor.on( 'mode', hide );
  			editor.on( 'resize', hide );
  
  			// Window resize doesn't cause hide on blur. (#9800)
  			// [iOS] Poping up keyboard triggers window resize
  			// which leads to undesired panel hides.
  			if ( !CKEDITOR.env.iOS )
  				doc.getWindow().on( 'resize', hide );
  
  			// We need a wrapper because events implementation doesn't allow to attach
  			// one listener more than once for the same event on the same object.
  			// Remember that floatPanel#hide is shared between all instances.
  			function hide() {
  				that.hide();
  			}
  		}
docs: Creates a floatPanel class instance.
  
  @constructor
  @param {CKEDITOR.editor} editor
  @param {CKEDITOR.dom.element} parentElement
  @param {Object} definition Definition of the panel that will be floating.
  @param {Number} level