+++ /dev/null
-/*\r
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.\r
-For licensing, see LICENSE.html or http://ckeditor.com/license\r
-*/\r
-\r
-/**\r
- * @fileOverview The "div" plugin. It wraps the selected block level elements with a 'div' element with specified styles and attributes.\r
- *\r
- */\r
-\r
-(function()\r
-{\r
- CKEDITOR.plugins.add( 'div',\r
- {\r
- requires : [ 'editingblock', 'domiterator', 'styles' ],\r
-\r
- init : function( editor )\r
- {\r
- var lang = editor.lang.div;\r
-\r
- editor.addCommand( 'creatediv', new CKEDITOR.dialogCommand( 'creatediv' ) );\r
- editor.addCommand( 'editdiv', new CKEDITOR.dialogCommand( 'editdiv' ) );\r
- editor.addCommand( 'removediv',\r
- {\r
- exec : function( editor )\r
- {\r
- var selection = editor.getSelection(),\r
- ranges = selection && selection.getRanges(),\r
- range,\r
- bookmarks = selection.createBookmarks(),\r
- walker,\r
- toRemove = [];\r
-\r
- function findDiv( node )\r
- {\r
- var path = new CKEDITOR.dom.elementPath( node ),\r
- blockLimit = path.blockLimit,\r
- div = blockLimit.is( 'div' ) && blockLimit;\r
-\r
- if ( div && !div.data( 'cke-div-added' ) )\r
- {\r
- toRemove.push( div );\r
- div.data( 'cke-div-added' );\r
- }\r
- }\r
-\r
- for ( var i = 0 ; i < ranges.length ; i++ )\r
- {\r
- range = ranges[ i ];\r
- if ( range.collapsed )\r
- findDiv( selection.getStartElement() );\r
- else\r
- {\r
- walker = new CKEDITOR.dom.walker( range );\r
- walker.evaluator = findDiv;\r
- walker.lastForward();\r
- }\r
- }\r
-\r
- for ( i = 0 ; i < toRemove.length ; i++ )\r
- toRemove[ i ].remove( true );\r
-\r
- selection.selectBookmarks( bookmarks );\r
- }\r
- } );\r
-\r
- editor.ui.addButton( 'CreateDiv',\r
- {\r
- label : lang.toolbar,\r
- command :'creatediv'\r
- } );\r
-\r
- if ( editor.addMenuItems )\r
- {\r
- editor.addMenuItems(\r
- {\r
- editdiv :\r
- {\r
- label : lang.edit,\r
- command : 'editdiv',\r
- group : 'div',\r
- order : 1\r
- },\r
-\r
- removediv:\r
- {\r
- label : lang.remove,\r
- command : 'removediv',\r
- group : 'div',\r
- order : 5\r
- }\r
- } );\r
-\r
- if ( editor.contextMenu )\r
- {\r
- editor.contextMenu.addListener( function( element, selection )\r
- {\r
- if ( !element || element.isReadOnly() )\r
- return null;\r
-\r
- var elementPath = new CKEDITOR.dom.elementPath( element ),\r
- blockLimit = elementPath.blockLimit;\r
-\r
- if ( blockLimit && blockLimit.getAscendant( 'div', true ) )\r
- {\r
- return {\r
- editdiv : CKEDITOR.TRISTATE_OFF,\r
- removediv : CKEDITOR.TRISTATE_OFF\r
- };\r
- }\r
-\r
- return null;\r
- } );\r
- }\r
- }\r
-\r
- CKEDITOR.dialog.add( 'creatediv', this.path + 'dialogs/div.js' );\r
- CKEDITOR.dialog.add( 'editdiv', this.path + 'dialogs/div.js' );\r
- }\r
- } );\r
-})();\r