/*\r
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.html or http://ckeditor.com/license\r
*/\r
\r
&& panelDefinition.parent.getDocument() )\r
|| CKEDITOR.document;\r
\r
+ panelDefinition.block =\r
+ {\r
+ attributes : panelDefinition.attributes\r
+ };\r
+\r
this.hasArrow = true;\r
\r
this.click = clickFn;\r
return;\r
\r
var panelDefinition = this._.panelDefinition || {},\r
+ panelBlockDefinition = this._.panelDefinition.block,\r
panelParentElement = panelDefinition.parent || CKEDITOR.document.getBody(),\r
panel = this._.panel = new CKEDITOR.ui.floatPanel( editor, panelParentElement, panelDefinition ),\r
+ block = panel.addBlock( _.id, panelBlockDefinition ),\r
me = this;\r
\r
panel.onShow = function()\r
if ( me.className )\r
this.element.getFirst().addClass( me.className + '_panel' );\r
\r
- _.oldState = me._.state;\r
me.setState( CKEDITOR.TRISTATE_ON );\r
\r
_.on = 1;\r
me.onOpen();\r
};\r
\r
- panel.onHide = function()\r
+ panel.onHide = function( preventOnClose )\r
{\r
if ( me.className )\r
this.element.getFirst().removeClass( me.className + '_panel' );\r
\r
- me.setState( _.oldState );\r
+ me.setState( me.modes && me.modes[ editor.mode ] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED );\r
\r
_.on = 0;\r
\r
- if ( me.onClose )\r
+ if ( !preventOnClose && me.onClose )\r
me.onClose();\r
};\r
\r
};\r
\r
if ( this.onBlock )\r
- this.onBlock( panel, _.id );\r
+ this.onBlock( panel, block );\r
\r
- panel.getBlock( _.id ).onHide = function()\r
- {\r
- _.on = 0;\r
- me.setState( CKEDITOR.TRISTATE_OFF );\r
- };\r
+ block.onHide = function()\r
+ {\r
+ _.on = 0;\r
+ me.setState( CKEDITOR.TRISTATE_OFF );\r
+ };\r
}\r
}\r
});\r