CLICK HERE TO BUY IT TODAY! OR GET IT FREE VIA TRIALPAY  

PHP Demo Application - Source Code

/Framework/Model/Vendor/CkEditor/_source/plugins/button/plugin.js



/*
Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
CKEDITOR.plugins.add'button',
{
	    beforeInit : function( editor )
	    {
		        editor.ui.addHandlerCKEDITOR.UI_BUTTONCKEDITOR.ui.button.handler );
		    }
	});
/**
 * Button UI element.
 * @constant
 * @example
 */
CKEDITOR.UI_BUTTON 1;
/**
 * Represents a button UI element. This class should not be called directly. To
 * create new buttons use {@link CKEDITOR.ui.prototype.addButton} instead.
 * @constructor
 * @param {Object} definition The button definition.
 * @example
 */
CKEDITOR.ui.button = function( definition )
{
	    // Copy all definition properties to this object.
	    CKEDITOR.tools.extendthisdefinition,
	        // Set defaults.
	        {
		            title        definition.label,
		            className    definition.className || ( definition.command && 'cke_button_' definition.command ) || '',
		            click        definition.click || function( editor )
		                {
			                    editor.execCommanddefinition.command );
			                }
		        });
	    this.{};
	};
/**
 * Transforms a button definition in a {@link CKEDITOR.ui.button} instance.
 * @type Object
 * @example
 */
CKEDITOR.ui.button.handler =
{
	    create : function( definition )
	    {
		        return new CKEDITOR.ui.buttondefinition );
		    }
	};
CKEDITOR.ui.button.prototype =
{
	    canGroup true,
	    /**
	     * Renders the button.
	     * @param {CKEDITOR.editor} editor The editor instance which this button is
	     *        to be used by.
	     * @param {Array} output The output array to which append the HTML relative
	     *        to this button.
	     * @example
	     */
	    render : function( editoroutput )
	    {
		        var env CKEDITOR.env,
		            id this._.id 'cke_' CKEDITOR.tools.getNextNumber(),
		            classes '',
		            command this.command// Get the command name.
		            clickFn,
		            index;
		        this._.editor editor;
		        var instance =
		        {
			            id id,
			            button this,
			            editor editor,
			            focus : function()
			            {
				                var element CKEDITOR.document.getByIdid );
				                element.focus();
				            },
			            execute : function()
			            {
				                this.button.clickeditor );
				            }
			        };
		        instance.clickFn clickFn CKEDITOR.tools.addFunctioninstance.executeinstance );
		        instance.index index CKEDITOR.ui.button._.instances.pushinstance ) - 1;
		        if ( this.modes )
		        {
			            editor.on'mode', function()
			                {
				                    this.setStatethis.modeseditor.mode ] ? CKEDITOR.TRISTATE_OFF CKEDITOR.TRISTATE_DISABLED );
				                }, this);
			        }
		        else if ( command )
		        {
			            // Get the command instance.
			            command editor.getCommandcommand );
			            if ( command )
			            {
				                command.on'state', function()
				                    {
					                        this.setStatecommand.state );
					                    }, this);
				                classes += 'cke_' + (
				                    command.state == CKEDITOR.TRISTATE_ON 'on' :
				                    command.state == CKEDITOR.TRISTATE_DISABLED 'disabled' :
				                    'off' );
				            }
			        }
		        if ( !command )
		            classes    += 'cke_off';
		        if ( this.className )
		            classes += ' ' this.className;
		        output.push(
		            '<span class="cke_button">',
		            '<a id="'id'"' +
		                ' class="'classes'"',
		                env.gecko && env.version >= 10900 && !env.hc  '' '" href="javascript:void(\''+ ( this.title || '' ).replace"'"'' )+ '\')"',
		                ' title="'this.title'"' +
		                ' tabindex="-1"' +
		                ' hidefocus="true"' +
		                ' role="button"' +
		                ' aria-labelledby="' id '_label"' +
		                ( this.hasArrow ?  ' aria-haspopup="true"' '' ) );
		        // Some browsers don't cancel key events in the keydown but in the
		        // keypress.
		        // TODO: Check if really needed for Gecko+Mac.
		        if ( env.opera || ( env.gecko && env.mac ) )
		        {
			            output.push(
			                ' onkeypress="return false;
			"' );
			        }
		        // With Firefox, we need to force the button to redraw, otherwise it
		        // will remain in the focus state.
		        if ( env.gecko )
		        {
			            output.push(
			                ' onblur="this.style.cssText = this.style.cssText;
			"' );
			        }
		        output.push(
		                ' onkeydown="return CKEDITOR.ui.button._.keydown('index', event);
		"' +
		                ' onfocus="return CKEDITOR.ui.button._.focus('index', event);
		"' +
		                ' onclick="CKEDITOR.tools.callFunction('clickFn', this);
		 return false;
		">' +
		                    '<span class="cke_icon"' );
		        if ( this.icon )
		        {
			            var offset = ( this.iconOffset || ) * -16;
			            output.push' style="background-image:url('CKEDITOR.getUrlthis.icon ), ');
			background-position:0 ' offset 'px;
			"' );
			        }
		        output.push(
		                    '>&nbsp;
		</span>' +
		                    '<span id="'id'_label" class="cke_label">'this.label'</span>' );
		        if ( this.hasArrow )
		        {
			            output.push(
			                    '<span class="cke_buttonarrow">'
			                    // BLACK DOWN-POINTING TRIANGLE
			                    + ( CKEDITOR.env.hc '&#9660;
			' '&nbsp;
			' )
			                    + '</span>' );
			        }
		        output.push(
		            '</a>',
		            '</span>' );
		        if ( this.onRender )
		            this.onRender();
		        return instance;
		    },
	    setState : function( state )
	    {
		        if ( this._.state == state )
		            return false;
		        this._.state state;
		        var element CKEDITOR.document.getByIdthis._.id );
		        if ( element )
		        {
			            element.setStatestate );
			            state == CKEDITOR.TRISTATE_DISABLED ?
			                element.setAttribute'aria-disabled'true ) :
			                element.removeAttribute'aria-disabled' );
			            state == CKEDITOR.TRISTATE_ON ?
			                element.setAttribute'aria-pressed'true ) :
			                element.removeAttribute'aria-pressed' );
			            return true;
			        }
		        else
		            return false;
		    }
	};
/**
 * Handles a button click.
 * @private
 */
CKEDITOR.ui.button.=
{
	    instances [],
	    keydown : function( indexev )
	    {
		        var instance CKEDITOR.ui.button._.instancesindex ];
		        if ( instance.onkey )
		        {
			            ev = new CKEDITOR.dom.eventev );
			            return ( instance.onkeyinstanceev.getKeystroke() ) !== false );
			        }
		    },
	    focus : function( indexev )
	    {
		        var instance CKEDITOR.ui.button._.instancesindex ],
		            retVal;
		        if ( instance.onfocus )
		            retVal = ( instance.onfocusinstance, new CKEDITOR.dom.eventev ) ) !== false );
		        // FF2: prevent focus event been bubbled up to editor container, which caused unexpected editor focus.
		        if ( CKEDITOR.env.gecko && CKEDITOR.env.version 10900 )
		            ev.preventBubble();
		        return retVal;
		    }
	};
/**
 * Adds a button definition to the UI elements list.
 * @param {String} The button name.
 * @param {Object} The button definition.
 * @example
 * editorInstance.ui.addButton( 'MyBold',
 *     {
	 *         label : 'My Bold',
	 *         command : 'bold'
	 *    
	});
 */
CKEDITOR.ui.prototype.addButton = function( namedefinition )
{
	    this.addnameCKEDITOR.UI_BUTTONdefinition );
	};
CKEDITOR.on'reset', function()
    {
	        CKEDITOR.ui.button._.instances [];
	    });





PHP Demo Source Code Index