/*\r
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.html or http://ckeditor.com/license\r
*/\r
\r
}\r
}\r
\r
-var isUpdating;\r
-\r
CKEDITOR.plugins.add( 'dialogadvtab',\r
{\r
/**\r
var result =\r
{\r
id : 'advanced',\r
- label : lang.advanced,\r
- title : lang.advanced,\r
+ label : lang.advancedTab,\r
+ title : lang.advancedTab,\r
elements :\r
[\r
{\r
type : 'select',\r
label : lang.langDir,\r
'default' : '',\r
- style : 'width:110px',\r
+ style : 'width:100%',\r
items :\r
[\r
[ lang.notSet, '' ],\r
{\r
contents = [];\r
\r
- if ( tabConfig.id )\r
+ if ( tabConfig.styles )\r
{\r
contents.push(\r
{\r
label : lang.styles,\r
'default' : '',\r
\r
+ validate : CKEDITOR.dialog.validate.inlineStyle( lang.invalidInlineStyle ),\r
onChange : function(){},\r
\r
getStyle : function( name, defaultValue )\r
{\r
- var match = this.getValue().match( new RegExp( name + '\\s*:\s*([^;]*)', 'i') );\r
+ var match = this.getValue().match( new RegExp( '(?:^|;)\\s*' + name + '\\s*:\\s*([^;]*)', 'i' ) );\r
return match ? match[ 1 ] : defaultValue;\r
},\r
\r
updateStyle : function( name, value )\r
{\r
- if ( isUpdating )\r
- return;\r
-\r
- // Flag to avoid recursion.\r
- isUpdating = 1;\r
-\r
var styles = this.getValue();\r
\r
- // Remove the current value.\r
- if ( styles )\r
- {\r
- styles = styles\r
- .replace( new RegExp( '\\s*' + name + '\s*:[^;]*(?:$|;\s*)', 'i' ), '' )\r
- .replace( /^[;\s]+/, '' )\r
- .replace( /\s+$/, '' );\r
- }\r
-\r
- if ( value )\r
- {\r
- styles && !(/;\s*$/).test( styles ) && ( styles += '; ' );\r
- styles += name + ': ' + value;\r
- }\r
-\r
- this.setValue( styles );\r
+ var tmp = editor.document.createElement( 'span' );\r
+ tmp.setAttribute( 'style', styles );\r
+ tmp.setStyle( name, value );\r
+ styles = CKEDITOR.tools.normalizeCssText( tmp.getAttribute( 'style' ) );\r
\r
- isUpdating = 0;\r
+ this.setValue( styles, 1 );\r
},\r
\r
setup : setupAdvParams,\r