public/ckeditor/4.4dev/plugins/dialogui/plugin.js
function( dialog, elementDefinition, htmlList ) {
				if ( arguments.length < 3 )
					return;

				var _ = initPrivateObject.call( this, elementDefinition );

				if ( elementDefinition.validate )
					this.validate = elementDefinition.validate;

				_.inputId = CKEDITOR.tools.getNextId() + '_select';

				var innerHTML = function() {
						var myDefinition = CKEDITOR.tools.extend( {}, elementDefinition, {
							id: elementDefinition.id ? elementDefinition.id + '_select' : CKEDITOR.tools.getNextId() + '_select'
						}, true ),
							html = [],
							innerHTML = [],
							attributes = { 'id': _.inputId, 'class': 'cke_dialog_ui_input_select', 'aria-labelledby': this._.labelId };

						html.push( '<div class="cke_dialog_ui_input_', elementDefinition.type, '" role="presentation"' );
						if ( elementDefinition.width )
							html.push( 'style="width:' + elementDefinition.width + '" ' );
						html.push( '>' );

						// Add multiple and size attributes from element definition.
						if ( elementDefinition.size != undefined )
							attributes.size = elementDefinition.size;
						if ( elementDefinition.multiple != undefined )
							attributes.multiple = elementDefinition.multiple;

						cleanInnerDefinition( myDefinition );
						for ( var i = 0, item; i < elementDefinition.items.length && ( item = elementDefinition.items[ i ] ); i++ ) {
							innerHTML.push( '<option value="', CKEDITOR.tools.htmlEncode( item[ 1 ] !== undefined ? item[ 1 ] : item[ 0 ] ).replace( /"/g, '&quot;' ), '" /> ', CKEDITOR.tools.htmlEncode( item[ 0 ] ) );
						}

						if ( typeof myDefinition.inputStyle != 'undefined' )
							myDefinition.style = myDefinition.inputStyle;

						_.select = new CKEDITOR.ui.dialog.uiElement( dialog, myDefinition, html, 'select', null, attributes, innerHTML.join( '' ) );

						html.push( '</div>' );

						return html.join( '' );
					};

				CKEDITOR.ui.dialog.labeledElement.call( this, dialog, elementDefinition, htmlList, innerHTML );
			}
function( dialog, elementDefinition, htmlList ) {
				if ( arguments.length < 3 )
					return;

				var _ = initPrivateObject.call( this, elementDefinition );

				if ( elementDefinition.validate )
					this.validate = elementDefinition.validate;

				_.inputId = CKEDITOR.tools.getNextId() + '_select';

				var innerHTML = function() {
						var myDefinition = CKEDITOR.tools.extend( {}, elementDefinition, {
							id: elementDefinition.id ? elementDefinition.id + '_select' : CKEDITOR.tools.getNextId() + '_select'
						}, true ),
							html = [],
							innerHTML = [],
							attributes = { 'id': _.inputId, 'class': 'cke_dialog_ui_input_select', 'aria-labelledby': this._.labelId };

						html.push( '<div class="cke_dialog_ui_input_', elementDefinition.type, '" role="presentation"' );
						if ( elementDefinition.width )
							html.push( 'style="width:' + elementDefinition.width + '" ' );
						html.push( '>' );

						// Add multiple and size attributes from element definition.
						if ( elementDefinition.size != undefined )
							attributes.size = elementDefinition.size;
						if ( elementDefinition.multiple != undefined )
							attributes.multiple = elementDefinition.multiple;

						cleanInnerDefinition( myDefinition );
						for ( var i = 0, item; i < elementDefinition.items.length && ( item = elementDefinition.items[ i ] ); i++ ) {
							innerHTML.push( '<option value="', CKEDITOR.tools.htmlEncode( item[ 1 ] !== undefined ? item[ 1 ] : item[ 0 ] ).replace( /"/g, '&quot;' ), '" /> ', CKEDITOR.tools.htmlEncode( item[ 0 ] ) );
						}

						if ( typeof myDefinition.inputStyle != 'undefined' )
							myDefinition.style = myDefinition.inputStyle;

						_.select = new CKEDITOR.ui.dialog.uiElement( dialog, myDefinition, html, 'select', null, attributes, innerHTML.join( '' ) );

						html.push( '</div>' );

						return html.join( '' );
					};

				CKEDITOR.ui.dialog.labeledElement.call( this, dialog, elementDefinition, htmlList, innerHTML );
			}
function ( dialog , elementDefinition , htmlList ) { if ( arguments . length < 3 ) return ; var _ = initPrivateObject . call ( this , elementDefinition ) ; if ( elementDefinition . validate ) this . validate = elementDefinition . validate ; _ . inputId = CKEDITOR . tools . getNextId ( ) + '_select' ; var innerHTML = function ( ) { var myDefinition = CKEDITOR . tools . extend ( { } , elementDefinition , { id : elementDefinition . id ? elementDefinition . id + '_select' : CKEDITOR . tools . getNextId ( ) + '_select' } , true ) , html = [ ] , innerHTML = [ ] , attributes = { 'id' : _ . inputId , 'class' : 'cke_dialog_ui_input_select' , 'aria-labelledby' : this . _ . labelId } ; html . push ( '<div class="cke_dialog_ui_input_' , elementDefinition . type , '" role="presentation"' ) ; if ( elementDefinition . width ) html . push ( 'style="width:' + elementDefinition . width + '" ' ) ; html . push ( '>' ) ; // Add multiple and size attributes from element definition.
 if ( elementDefinition . size != undefined ) attributes . size = elementDefinition . size ; if ( elementDefinition . multiple != undefined ) attributes . multiple = elementDefinition . multiple ; cleanInnerDefinition ( myDefinition ) ; for ( var i = 0 , item ; i < elementDefinition . items . length && ( item = elementDefinition . items [ i ] ) ; i ++ ) { innerHTML . push ( '<option value="' , CKEDITOR . tools . htmlEncode ( item [ 1 ] !== undefined ? item [ 1 ] : item [ 0 ] ) . replace ( / " / g , '&quot;' ) , '" /> ' , CKEDITOR . tools . htmlEncode ( item [ 0 ] ) ) ; } if ( typeof myDefinition . inputStyle != 'undefined' ) myDefinition . style = myDefinition . inputStyle ; _ . select = new CKEDITOR . ui . dialog . uiElement ( dialog , myDefinition , html , 'select' , null , attributes , innerHTML . join ( '' ) ) ; html . push ( '</div>' ) ; return html . join ( '' ) ; } ; CKEDITOR . ui . dialog . labeledElement . call ( this , dialog , elementDefinition , htmlList , innerHTML ) ; }
A select box.

@class CKEDITOR.ui.dialog.select
@extends CKEDITOR.ui.dialog.uiElement
@constructor Creates a button class instance.
@param {CKEDITOR.dialog} dialog Parent dialog window object.
@param {CKEDITOR.dialog.definition.uiElement} elementDefinition
The element definition. Accepted fields:

* `default` (Required) The default value.
* `validate` (Optional) The validation function.
* `items` (Required) An array of options. Each option
is a one- or two-item array of format `[ 'Description', 'Value' ]`. If `'Value'`
is missing, then the value would be assumed to be the same as the
description.
* `multiple` (Optional) Set this to `true` if you would like
to have a multiple-choice select box.
* `size` (Optional) The number of items to display in
the select box.

@param {Array} htmlList List of HTML code to output to.
A select box .