/*\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
var config = editor.config,\r
lang = editor.lang.stylesCombo,\r
styles = {},\r
- stylesList = [];\r
+ stylesList = [],\r
+ combo;\r
\r
function loadStylesSet( callback )\r
{\r
styleName;\r
\r
// Put all styles into an Array.\r
- for ( var i = 0 ; i < stylesDefinitions.length ; i++ )\r
+ for ( var i = 0, count = stylesDefinitions.length ; i < count ; i++ )\r
{\r
var styleDefinition = stylesDefinitions[ i ];\r
\r
\r
style = styles[ styleName ] = new CKEDITOR.style( styleDefinition );\r
style._name = styleName;\r
+ style._.enterMode = config.enterMode;\r
\r
stylesList.push( style );\r
}\r
\r
init : function()\r
{\r
- var combo = this;\r
+ combo = this;\r
\r
loadStylesSet( function()\r
{\r
- var style, styleName;\r
+ var style,\r
+ styleName,\r
+ lastType,\r
+ type,\r
+ i,\r
+ count;\r
\r
// Loop over the Array, adding all items to the\r
// combo.\r
- var lastType;\r
- for ( var i = 0 ; i < stylesList.length ; i++ )\r
+ for ( i = 0, count = stylesList.length ; i < count ; i++ )\r
{\r
style = stylesList[ i ];\r
styleName = style._name;\r
-\r
- var type = style.type;\r
+ type = style.type;\r
\r
if ( type != lastType )\r
{\r
editor.fire( 'saveSnapshot' );\r
\r
var style = styles[ value ],\r
- selection = editor.getSelection();\r
-\r
- var elementPath = new CKEDITOR.dom.elementPath( selection.getStartElement() );\r
+ selection = editor.getSelection(),\r
+ elementPath = new CKEDITOR.dom.elementPath( selection.getStartElement() );\r
\r
- if ( style.type == CKEDITOR.STYLE_INLINE && style.checkActive( elementPath ) )\r
- style.remove( editor.document );\r
- else\r
- style.apply( editor.document );\r
+ style[ style.checkActive( elementPath ) ? 'remove' : 'apply' ]( editor.document );\r
\r
editor.fire( 'saveSnapshot' );\r
},\r
{\r
editor.on( 'selectionChange', function( ev )\r
{\r
- var currentValue = this.getValue();\r
-\r
- var elementPath = ev.data.path,\r
+ var currentValue = this.getValue(),\r
+ elementPath = ev.data.path,\r
elements = elementPath.elements;\r
\r
// For each element into the elements path.\r
- for ( var i = 0, element ; i < elements.length ; i++ )\r
+ for ( var i = 0, count = elements.length, element ; i < count ; i++ )\r
{\r
element = elements[i];\r
\r
if ( CKEDITOR.env.ie || CKEDITOR.env.webkit )\r
editor.focus();\r
\r
- var selection = editor.getSelection();\r
+ var selection = editor.getSelection(),\r
+ element = selection.getSelectedElement(),\r
+ elementPath = new CKEDITOR.dom.elementPath( element || selection.getStartElement() ),\r
+ counter = [ 0, 0, 0, 0 ];\r
\r
- var element = selection.getSelectedElement(),\r
- elementPath = new CKEDITOR.dom.elementPath( element || selection.getStartElement() );\r
-\r
- var counter = [ 0, 0, 0, 0 ];\r
this.showAll();\r
this.unmarkAll();\r
for ( var name in styles )\r
\r
if ( !counter[ CKEDITOR.STYLE_OBJECT ] )\r
this.hideGroup( lang[ 'panelTitle' + String( CKEDITOR.STYLE_OBJECT ) ] );\r
+ },\r
+\r
+ // Force a reload of the data\r
+ reset: function()\r
+ {\r
+ if ( combo )\r
+ {\r
+ delete combo._.panel;\r
+ delete combo._.list;\r
+ combo._.committed = 0;\r
+ combo._.items = {};\r
+ combo._.state = CKEDITOR.TRISTATE_OFF;\r
+ }\r
+ styles = {};\r
+ stylesList = [];\r
+ loadStylesSet();\r
}\r
});\r
\r