[ Index ]

PHP Cross Reference of Drupal 6 (gatewave)

title

Body

[close]

/sites/all/libraries/ckeditor/_source/plugins/div/ -> plugin.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 The "div" plugin. It wraps the selected block level elements with a 'div' element with specified styles and attributes.

   8   *

   9   */
  10  
  11  (function()
  12  {
  13      CKEDITOR.plugins.add( 'div',
  14      {
  15          requires : [ 'editingblock', 'domiterator', 'styles' ],
  16  
  17          init : function( editor )
  18          {
  19              var lang = editor.lang.div;
  20  
  21              editor.addCommand( 'creatediv', new CKEDITOR.dialogCommand( 'creatediv' ) );
  22              editor.addCommand( 'editdiv', new CKEDITOR.dialogCommand( 'editdiv' ) );
  23              editor.addCommand( 'removediv',
  24                  {
  25                      exec : function( editor )
  26                      {
  27                          var selection = editor.getSelection(),
  28                              ranges = selection && selection.getRanges(),
  29                              range,
  30                              bookmarks = selection.createBookmarks(),
  31                              walker,
  32                              toRemove = [];
  33  
  34  						function findDiv( node )
  35                          {
  36                              var path = new CKEDITOR.dom.elementPath( node ),
  37                                  blockLimit = path.blockLimit,
  38                                  div = blockLimit.is( 'div' ) && blockLimit;
  39  
  40                              if ( div && !div.getAttribute( '_cke_div_added' ) )
  41                              {
  42                                  toRemove.push( div );
  43                                  div.setAttribute( '_cke_div_added' );
  44                              }
  45                          }
  46  
  47                          for ( var i = 0 ; i < ranges.length ; i++ )
  48                          {
  49                              range = ranges[ i ];
  50                              if ( range.collapsed )
  51                                  findDiv( selection.getStartElement() );
  52                              else
  53                              {
  54                                  walker = new CKEDITOR.dom.walker( range );
  55                                  walker.evaluator = findDiv;
  56                                  walker.lastForward();
  57                              }
  58                          }
  59  
  60                          for ( i = 0 ; i < toRemove.length ; i++ )
  61                              toRemove[ i ].remove( true );
  62  
  63                          selection.selectBookmarks( bookmarks );
  64                      }
  65                  } );
  66  
  67              editor.ui.addButton( 'CreateDiv',
  68              {
  69                  label : lang.toolbar,
  70                  command :'creatediv'
  71              } );
  72  
  73              if ( editor.addMenuItems )
  74              {
  75                  editor.addMenuItems(
  76                      {
  77                          editdiv :
  78                          {
  79                              label : lang.edit,
  80                              command : 'editdiv',
  81                              group : 'div',
  82                              order : 1
  83                          },
  84  
  85                          removediv:
  86                          {
  87                              label : lang.remove,
  88                              command : 'removediv',
  89                              group : 'div',
  90                              order : 5
  91                          }
  92                      } );
  93  
  94                  if ( editor.contextMenu )
  95                  {
  96                      editor.contextMenu.addListener( function( element, selection )
  97                          {
  98                              if ( !element || element.isReadOnly())
  99                                  return null;
 100  
 101                              var elementPath = new CKEDITOR.dom.elementPath( element ),
 102                                  blockLimit = elementPath.blockLimit;
 103  
 104                              if ( blockLimit && blockLimit.getAscendant( 'div', true ) )
 105                              {
 106                                  return {
 107                                      editdiv : CKEDITOR.TRISTATE_OFF,
 108                                      removediv : CKEDITOR.TRISTATE_OFF
 109                                  };
 110                              }
 111  
 112                              return null;
 113                          } );
 114                  }
 115              }
 116  
 117              CKEDITOR.dialog.add( 'creatediv', this.path + 'dialogs/div.js' );
 118              CKEDITOR.dialog.add( 'editdiv', this.path + 'dialogs/div.js' );
 119          }
 120      } );
 121  })();


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