Update ckeditor to version 3.2.1
[gopost.git] / ckeditor / _source / plugins / div / plugin.js
blob0714deeb25eef989eaa4ed847fdad08867a34337
1 /*
2 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
3 For licensing, see LICENSE.html or http://ckeditor.com/license
4 */
6 /**
7 * @fileOverview The "div" plugin. It wraps the selected block level elements with a 'div' element with specified styles and attributes.
9 */
11 (function()
13 CKEDITOR.plugins.add( 'div',
15 requires : [ 'editingblock', 'domiterator', 'styles' ],
17 init : function( editor )
19 var lang = editor.lang.div;
21 editor.addCommand( 'creatediv', new CKEDITOR.dialogCommand( 'creatediv' ) );
22 editor.addCommand( 'editdiv', new CKEDITOR.dialogCommand( 'editdiv' ) );
23 editor.addCommand( 'removediv',
25 exec : function( editor )
27 var selection = editor.getSelection(),
28 ranges = selection && selection.getRanges(),
29 range,
30 bookmarks = selection.createBookmarks(),
31 walker,
32 toRemove = [];
34 function findDiv( node )
36 var path = new CKEDITOR.dom.elementPath( node ),
37 blockLimit = path.blockLimit,
38 div = blockLimit.is( 'div' ) && blockLimit;
40 if ( div && !div.getAttribute( '_cke_div_added' ) )
42 toRemove.push( div );
43 div.setAttribute( '_cke_div_added' );
47 for ( var i = 0 ; i < ranges.length ; i++ )
49 range = ranges[ i ];
50 if ( range.collapsed )
51 findDiv( selection.getStartElement() );
52 else
54 walker = new CKEDITOR.dom.walker( range );
55 walker.evaluator = findDiv;
56 walker.lastForward();
60 for ( i = 0 ; i < toRemove.length ; i++ )
61 toRemove[ i ].remove( true );
63 selection.selectBookmarks( bookmarks );
65 } );
67 editor.ui.addButton( 'CreateDiv',
69 label : lang.toolbar,
70 command :'creatediv'
71 } );
73 if ( editor.addMenuItems )
75 editor.addMenuItems(
77 editdiv :
79 label : lang.edit,
80 command : 'editdiv',
81 group : 'div',
82 order : 1
85 removediv:
87 label : lang.remove,
88 command : 'removediv',
89 group : 'div',
90 order : 5
92 } );
94 if ( editor.contextMenu )
96 editor.contextMenu.addListener( function( element, selection )
98 if ( !element )
99 return null;
101 var elementPath = new CKEDITOR.dom.elementPath( element ),
102 blockLimit = elementPath.blockLimit;
104 if ( blockLimit && blockLimit.getAscendant( 'div', true ) )
106 return {
107 editdiv : CKEDITOR.TRISTATE_OFF,
108 removediv : CKEDITOR.TRISTATE_OFF
112 return null;
113 } );
117 CKEDITOR.dialog.add( 'creatediv', this.path + 'dialogs/div.js' );
118 CKEDITOR.dialog.add( 'editdiv', this.path + 'dialogs/div.js' );
120 } );
121 })();