code: function setupCells( setup ) {
  		return function( cells ) {
  			var fieldValue = setup( cells[ 0 ] );
  
  			// If one of the cells would have a different value of the
  			// property, set the empty value for a field.
  			for ( var i = 1; i < cells.length; i++ ) {
  				if ( setup( cells[ i ] ) !== fieldValue ) {
  					fieldValue = null;
  					break;
  				}
  			}
  
  			// Setting meaningful or empty value only makes sense
  			// when setup returns some value. Otherwise, a *default* value
  			// is used for that field.
  			if ( typeof fieldValue != 'undefined' ) {
  				this.setValue( fieldValue );
  
  				// The only way to have an empty select value in Firefox is
  				// to set a negative selectedIndex.
  				if ( CKEDITOR.env.gecko && this.type == 'select' && !fieldValue )
  					this.getInputElement().$.selectedIndex = -1;
  			}
  		};
  	}
docs: Returns a function, which runs regular "setup" for all selected cells to find out whether the initial value of the field would be the same for all cells. If so, the value is displayed just as if a regular "setup" was executed. Otherwise, i.e. when there are several cells of different value of the property, a field gets empty value.  * @param {Function} setup Setup function which returns a value instead of setting it. * @returns {Function} A function to be used in dialog definition.