[ Index ]

PHP Cross Reference of Drupal 6 (gatewave)

title

Body

[close]

/sites/all/libraries/ckeditor/_source/core/ -> focusmanager.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   * @fileOverview Defines the {@link CKEDITOR.focusManager} class, which is used

   8   *        to handle the focus on editor instances..

   9   */
  10  
  11  /**

  12   * Manages the focus activity in an editor instance. This class is to be used

  13   * mainly by UI elements coders when adding interface elements to CKEditor.

  14   * @constructor

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

  16   * @example

  17   */
  18  CKEDITOR.focusManager = function( editor )
  19  {
  20      if ( editor.focusManager )
  21          return editor.focusManager;
  22  
  23      /**

  24       * Indicates that the editor instance has focus.

  25       * @type Boolean

  26       * @example

  27       * alert( CKEDITOR.instances.editor1.focusManager.hasFocus );  // e.g "true"

  28       */
  29      this.hasFocus = false;
  30  
  31      /**

  32       * Object used to hold private stuff.

  33       * @private

  34       */
  35      this._ =
  36      {
  37          editor : editor
  38      };
  39  
  40      return this;
  41  };
  42  
  43  CKEDITOR.focusManager.prototype =
  44  {
  45      /**

  46       * Indicates that the editor instance has the focus.

  47       *

  48       * This function is not used to set the focus in the editor. Use

  49       * {@link CKEDITOR.editor#focus} for it instead.

  50       * @example

  51       * var editor = CKEDITOR.instances.editor1;

  52       * <b>editor.focusManager.focus()</b>;

  53       */
  54      focus : function()
  55      {
  56          if ( this._.timer )
  57              clearTimeout( this._.timer );
  58  
  59          if ( !this.hasFocus )
  60          {
  61              // If another editor has the current focus, we first "blur" it. In

  62              // this way the events happen in a more logical sequence, like:

  63              //        "focus 1" > "blur 1" > "focus 2"

  64              // ... instead of:

  65              //        "focus 1" > "focus 2" > "blur 1"

  66              if ( CKEDITOR.currentInstance )
  67                  CKEDITOR.currentInstance.focusManager.forceBlur();
  68  
  69              var editor = this._.editor;
  70  
  71              editor.container.getChild( 1 ).addClass( 'cke_focus' );
  72  
  73              this.hasFocus = true;
  74              editor.fire( 'focus' );
  75          }
  76      },
  77  
  78      /**

  79       * Indicates that the editor instance has lost the focus. Note that this

  80       * functions acts asynchronously with a delay of 100ms to avoid subsequent

  81       * blur/focus effects. If you want the "blur" to happen immediately, use

  82       * the {@link #forceBlur} function instead.

  83       * @example

  84       * var editor = CKEDITOR.instances.editor1;

  85       * <b>editor.focusManager.blur()</b>;

  86       */
  87      blur : function()
  88      {
  89          var focusManager = this;
  90  
  91          if ( focusManager._.timer )
  92              clearTimeout( focusManager._.timer );
  93  
  94          focusManager._.timer = setTimeout(
  95              function()
  96              {
  97                  delete focusManager._.timer;
  98                  focusManager.forceBlur();
  99              }
 100              , 100 );
 101      },
 102  
 103      /**

 104       * Indicates that the editor instance has lost the focus. Unlike

 105       * {@link #blur}, this function is synchronous, marking the instance as

 106       * "blured" immediately.

 107       * @example

 108       * var editor = CKEDITOR.instances.editor1;

 109       * <b>editor.focusManager.forceBlur()</b>;

 110       */
 111      forceBlur : function()
 112      {
 113          if ( this.hasFocus )
 114          {
 115              var editor = this._.editor;
 116  
 117              editor.container.getChild( 1 ).removeClass( 'cke_focus' );
 118  
 119              this.hasFocus = false;
 120              editor.fire( 'blur' );
 121          }
 122      }
 123  };
 124  
 125  /**

 126   * Fired when the editor instance receives the input focus.

 127   * @name CKEDITOR.editor#focus

 128   * @event

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

 130   */
 131  
 132  /**

 133   * Fired when the editor instance loses the input focus.

 134   * @name CKEDITOR.editor#blur

 135   * @event

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

 137   */


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