2 Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
\r
3 For licensing, see LICENSE.html or http://ckeditor.com/license
\r
9 function setupAdvParams( element )
\r
11 var attrName = this.att;
\r
13 var value = element && element.hasAttribute( attrName ) && element.getAttribute( attrName ) || '';
\r
15 if ( value !== undefined )
\r
16 this.setValue( value );
\r
19 function commitAdvParams()
\r
21 // Dialogs may use different parameters in the commit list, so, by
\r
22 // definition, we take the first CKEDITOR.dom.element available.
\r
25 for ( var i = 0 ; i < arguments.length ; i++ )
\r
27 if ( arguments[ i ] instanceof CKEDITOR.dom.element )
\r
29 element = arguments[ i ];
\r
36 var attrName = this.att,
\r
37 value = this.getValue();
\r
40 element.setAttribute( attrName, value );
\r
42 element.removeAttribute( attrName, value );
\r
46 CKEDITOR.plugins.add( 'dialogadvtab',
\r
51 * id, dir, classes, styles
\r
53 createAdvancedTab : function( editor, tabConfig )
\r
56 tabConfig = { id:1, dir:1, classes:1, styles:1 };
\r
58 var lang = editor.lang.common;
\r
63 label : lang.advancedTab,
\r
64 title : lang.advancedTab,
\r
77 if ( tabConfig.id || tabConfig.dir )
\r
87 setup : setupAdvParams,
\r
88 commit : commitAdvParams
\r
92 if ( tabConfig.dir )
\r
99 label : lang.langDir,
\r
101 style : 'width:100%',
\r
104 [ lang.notSet, '' ],
\r
105 [ lang.langDirLTR, 'ltr' ],
\r
106 [ lang.langDirRTL, 'rtl' ]
\r
108 setup : setupAdvParams,
\r
109 commit : commitAdvParams
\r
113 result.elements[ 0 ].children.push(
\r
116 widths : [ '50%', '50%' ],
\r
117 children : [].concat( contents )
\r
121 if ( tabConfig.styles || tabConfig.classes )
\r
125 if ( tabConfig.styles )
\r
132 label : lang.styles,
\r
135 validate : CKEDITOR.dialog.validate.inlineStyle( lang.invalidInlineStyle ),
\r
136 onChange : function(){},
\r
138 getStyle : function( name, defaultValue )
\r
140 var match = this.getValue().match( new RegExp( '(?:^|;)\\s*' + name + '\\s*:\\s*([^;]*)', 'i' ) );
\r
141 return match ? match[ 1 ] : defaultValue;
\r
144 updateStyle : function( name, value )
\r
146 var styles = this.getValue();
\r
148 var tmp = editor.document.createElement( 'span' );
\r
149 tmp.setAttribute( 'style', styles );
\r
150 tmp.setStyle( name, value );
\r
151 styles = CKEDITOR.tools.normalizeCssText( tmp.getAttribute( 'style' ) );
\r
153 this.setValue( styles, 1 );
\r
156 setup : setupAdvParams,
\r
158 commit : commitAdvParams
\r
163 if ( tabConfig.classes )
\r
168 widths : [ '45%', '55%' ],
\r
172 id : 'advCSSClasses',
\r
175 label : lang.cssClasses,
\r
177 setup : setupAdvParams,
\r
178 commit : commitAdvParams
\r
185 result.elements[ 0 ].children.push(
\r
188 widths : [ '50%', '50%' ],
\r
189 children : [].concat( contents )
\r