[ Index ]

PHP Cross Reference of Drupal 6 (gatewave)

title

Body

[close]

/sites/all/libraries/ckeditor/_source/core/ -> ui.js (source)

   1  /*

   2  Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.

   3  For licensing, see LICENSE.html or http://ckeditor.com/license

   4  */
   5  
   6  /**

   7   * Contains UI features related to an editor instance.

   8   * @constructor

   9   * @param {CKEDITOR.editor} editor The editor instance.

  10   * @example

  11   */
  12  CKEDITOR.ui = function( editor )
  13  {
  14      if ( editor.ui )
  15          return editor.ui;
  16  
  17      /**

  18       * Object used to hold private stuff.

  19       * @private

  20       */
  21      this._ =
  22      {
  23          handlers : {},
  24          items : {},
  25          editor : editor
  26      };
  27  
  28      return this;
  29  };
  30  
  31  // PACKAGER_RENAME( CKEDITOR.ui )

  32  
  33  CKEDITOR.ui.prototype =
  34  {
  35      /**

  36       * Adds a UI item to the items collection. These items can be later used in

  37       * the interface.

  38       * @param {String} name The UI item name.

  39       * @param {Object} type The item type.

  40       * @param {Object} definition The item definition. The properties of this

  41       *        object depend on the item type.

  42       * @example

  43       * // Add a new button named "MyBold".

  44       * editorInstance.ui.add( 'MyBold', CKEDITOR.UI_BUTTON,

  45       *     {

  46       *         label : 'My Bold',

  47       *         command : 'bold'

  48       *     });

  49       */
  50      add : function( name, type, definition )
  51      {
  52          this._.items[ name ] =
  53          {
  54              type : type,
  55              // The name of {@link CKEDITOR.command} which associate with this UI.

  56              command : definition.command || null,
  57              args : Array.prototype.slice.call( arguments, 2 )
  58          };
  59      },
  60  
  61      /**

  62       * Gets a UI object.

  63       * @param {String} name The UI item hame.

  64       * @example

  65       */
  66      create : function( name )
  67      {
  68          var item    = this._.items[ name ],
  69              handler    = item && this._.handlers[ item.type ],
  70              command = item && item.command && this._.editor.getCommand( item.command );
  71  
  72          var result = handler && handler.create.apply( this, item.args );
  73  
  74          // Add reference inside command object.

  75          if ( command )
  76              command.uiItems.push( result );
  77  
  78          return result;
  79      },
  80  
  81      /**

  82       * Adds a handler for a UI item type. The handler is responsible for

  83       * transforming UI item definitions in UI objects.

  84       * @param {Object} type The item type.

  85       * @param {Object} handler The handler definition.

  86       * @example

  87       */
  88      addHandler : function( type, handler )
  89      {
  90          this._.handlers[ type ] = handler;
  91      }
  92  };
  93  
  94  /**

  95   * (Virtual Class) Do not call this constructor. This class is not really part

  96   *        of the API. It just illustrates the features of hanlder objects to be

  97   *        passed to the {@link CKEDITOR.ui.prototype.addHandler} function.

  98   * @name CKEDITOR.ui.handlerDefinition

  99   * @constructor

 100   * @example

 101   */
 102  
 103   /**

 104   * Transforms an item definition into an UI item object.

 105   * @name CKEDITOR.handlerDefinition.prototype.create

 106   * @function

 107   * @param {Object} definition The item definition.

 108   * @example

 109   * editorInstance.ui.addHandler( CKEDITOR.UI_BUTTON,

 110   *     {

 111   *         create : function( definition )

 112   *         {

 113   *             return new CKEDITOR.ui.button( definition );

 114   *         }

 115   *     });

 116   */


Generated: Thu Mar 24 11:18:33 2011 Cross-referenced by PHPXref 0.7