Changeset 6190
- Timestamp:
- 12/08/10 15:26:34 (2 years ago)
- Location:
- CKEditor/trunk
- Files:
-
- 1 added
- 1 deleted
- 156 edited
- 16 copied
-
. (modified) (2 props)
-
CHANGES.html (modified) (1 diff, 1 prop)
-
_samples/adobeair (copied) (copied from CKEditor/branches/versions/3.5.x/_samples/adobeair)
-
_samples/adobeair/application.xml (copied) (copied from CKEditor/branches/versions/3.5.x/_samples/adobeair/application.xml)
-
_samples/adobeair/run.bat (copied) (copied from CKEditor/branches/versions/3.5.x/_samples/adobeair/run.bat)
-
_samples/adobeair/sample.html (copied) (copied from CKEditor/branches/versions/3.5.x/_samples/adobeair/sample.html)
-
_samples/api.html (modified) (3 diffs)
-
_samples/index.html (modified) (1 diff)
-
_samples/placeholder.html (added)
-
_source/core/ckeditor_base.js (modified) (3 diffs)
-
_source/core/config.js (modified) (1 diff)
-
_source/core/dom/document.js (modified) (2 diffs)
-
_source/core/dom/domobject.js (modified) (5 diffs)
-
_source/core/dom/element.js (modified) (12 diffs)
-
_source/core/dom/node.js (modified) (2 diffs)
-
_source/core/dom/range.js (modified) (5 diffs)
-
_source/core/dom/walker.js (modified) (1 diff)
-
_source/core/editor.js (modified) (2 diffs)
-
_source/core/htmlparser/element.js (modified) (1 diff)
-
_source/core/htmlparser/fragment.js (modified) (1 diff)
-
_source/core/imagecacher.js (deleted)
-
_source/core/loader.js (modified) (1 diff)
-
_source/core/skins.js (modified) (2 diffs)
-
_source/core/tools.js (modified) (1 diff)
-
_source/core/ui.js (modified) (1 diff)
-
_source/lang/_translationstatus.txt (modified) (1 diff)
-
_source/lang/af.js (modified) (1 diff)
-
_source/lang/ar.js (modified) (1 diff)
-
_source/lang/bg.js (modified) (1 diff)
-
_source/lang/bn.js (modified) (1 diff)
-
_source/lang/bs.js (modified) (1 diff)
-
_source/lang/ca.js (modified) (1 diff)
-
_source/lang/cs.js (modified) (1 diff)
-
_source/lang/cy.js (modified) (1 diff)
-
_source/lang/da.js (modified) (1 diff)
-
_source/lang/de.js (modified) (1 diff)
-
_source/lang/el.js (modified) (1 diff)
-
_source/lang/en-au.js (modified) (2 diffs)
-
_source/lang/en-ca.js (modified) (2 diffs)
-
_source/lang/en-gb.js (modified) (2 diffs)
-
_source/lang/en.js (modified) (2 diffs)
-
_source/lang/eo.js (modified) (1 diff)
-
_source/lang/es.js (modified) (1 diff)
-
_source/lang/et.js (modified) (1 diff)
-
_source/lang/eu.js (modified) (1 diff)
-
_source/lang/fa.js (modified) (1 diff)
-
_source/lang/fi.js (modified) (1 diff)
-
_source/lang/fo.js (modified) (1 diff)
-
_source/lang/fr-ca.js (modified) (1 diff)
-
_source/lang/fr.js (modified) (1 diff)
-
_source/lang/gl.js (modified) (1 diff)
-
_source/lang/gu.js (modified) (1 diff)
-
_source/lang/he.js (modified) (1 diff)
-
_source/lang/hi.js (modified) (1 diff)
-
_source/lang/hr.js (modified) (1 diff)
-
_source/lang/hu.js (modified) (1 diff)
-
_source/lang/is.js (modified) (1 diff)
-
_source/lang/it.js (modified) (1 diff)
-
_source/lang/ja.js (modified) (1 diff)
-
_source/lang/km.js (modified) (1 diff)
-
_source/lang/ko.js (modified) (1 diff)
-
_source/lang/lt.js (modified) (1 diff)
-
_source/lang/lv.js (modified) (1 diff)
-
_source/lang/mn.js (modified) (1 diff)
-
_source/lang/ms.js (modified) (1 diff)
-
_source/lang/nb.js (modified) (1 diff)
-
_source/lang/nl.js (modified) (1 diff)
-
_source/lang/no.js (modified) (1 diff)
-
_source/lang/pl.js (modified) (1 diff)
-
_source/lang/pt-br.js (modified) (1 diff)
-
_source/lang/pt.js (modified) (1 diff)
-
_source/lang/ro.js (modified) (1 diff)
-
_source/lang/ru.js (modified) (1 diff)
-
_source/lang/sk.js (modified) (1 diff)
-
_source/lang/sl.js (modified) (1 diff)
-
_source/lang/sr-latn.js (modified) (1 diff)
-
_source/lang/sr.js (modified) (1 diff)
-
_source/lang/sv.js (modified) (1 diff)
-
_source/lang/th.js (modified) (1 diff)
-
_source/lang/tr.js (modified) (1 diff)
-
_source/lang/uk.js (modified) (1 diff)
-
_source/lang/vi.js (modified) (1 diff)
-
_source/lang/zh-cn.js (modified) (1 diff)
-
_source/lang/zh.js (modified) (1 diff)
-
_source/plugins/adobeair (copied) (copied from CKEditor/branches/versions/3.5.x/_source/plugins/adobeair)
-
_source/plugins/button/plugin.js (modified) (3 diffs)
-
_source/plugins/clipboard/dialogs/paste.js (modified) (5 diffs)
-
_source/plugins/clipboard/plugin.js (modified) (1 diff)
-
_source/plugins/colorbutton/plugin.js (modified) (7 diffs)
-
_source/plugins/contextmenu/plugin.js (modified) (2 diffs)
-
_source/plugins/dialog/plugin.js (modified) (21 diffs)
-
_source/plugins/div/plugin.js (modified) (1 diff)
-
_source/plugins/elementspath/plugin.js (modified) (6 diffs)
-
_source/plugins/fakeobjects/plugin.js (modified) (7 diffs)
-
_source/plugins/flash/dialogs/flash.js (modified) (1 diff)
-
_source/plugins/flash/plugin.js (modified) (2 diffs)
-
_source/plugins/floatpanel/plugin.js (modified) (2 diffs)
-
_source/plugins/forms/dialogs/button.js (modified) (2 diffs)
-
_source/plugins/forms/dialogs/checkbox.js (modified) (2 diffs)
-
_source/plugins/forms/dialogs/form.js (modified) (2 diffs)
-
_source/plugins/forms/dialogs/hiddenfield.js (modified) (2 diffs)
-
_source/plugins/forms/dialogs/radio.js (modified) (2 diffs)
-
_source/plugins/forms/dialogs/select.js (modified) (2 diffs)
-
_source/plugins/forms/dialogs/textarea.js (modified) (2 diffs)
-
_source/plugins/forms/dialogs/textfield.js (modified) (2 diffs)
-
_source/plugins/forms/plugin.js (modified) (2 diffs)
-
_source/plugins/htmldataprocessor/plugin.js (modified) (17 diffs)
-
_source/plugins/iframe (copied) (copied from CKEditor/branches/versions/3.5.x/_source/plugins/iframe)
-
_source/plugins/iframe/dialogs (copied) (copied from CKEditor/branches/versions/3.5.x/_source/plugins/iframe/dialogs)
-
_source/plugins/iframe/dialogs/iframe.js (copied) (copied from CKEditor/branches/versions/3.5.x/_source/plugins/iframe/dialogs/iframe.js)
-
_source/plugins/iframe/images (copied) (copied from CKEditor/branches/versions/3.5.x/_source/plugins/iframe/images)
-
_source/plugins/iframe/images/placeholder.png (copied) (copied from CKEditor/branches/versions/3.5.x/_source/plugins/iframe/images/placeholder.png)
-
_source/plugins/iframe/plugin.js (copied) (copied from CKEditor/branches/versions/3.5.x/_source/plugins/iframe/plugin.js)
-
_source/plugins/image/dialogs/image.js (modified) (14 diffs)
-
_source/plugins/image/plugin.js (modified) (2 diffs)
-
_source/plugins/link/dialogs/anchor.js (modified) (2 diffs)
-
_source/plugins/link/dialogs/link.js (modified) (17 diffs)
-
_source/plugins/link/plugin.js (modified) (3 diffs)
-
_source/plugins/menu/plugin.js (modified) (13 diffs)
-
_source/plugins/menubutton/plugin.js (modified) (2 diffs)
-
_source/plugins/panel/plugin.js (modified) (5 diffs)
-
_source/plugins/pastetext/plugin.js (modified) (2 diffs)
-
_source/plugins/placeholder (copied) (copied from CKEditor/branches/versions/3.5.x/_source/plugins/placeholder)
-
_source/plugins/placeholder/dialogs (copied) (copied from CKEditor/branches/versions/3.5.x/_source/plugins/placeholder/dialogs)
-
_source/plugins/placeholder/lang (copied) (copied from CKEditor/branches/versions/3.5.x/_source/plugins/placeholder/lang)
-
_source/plugins/placeholder/placeholder.gif (copied) (copied from CKEditor/branches/versions/3.5.x/_source/plugins/placeholder/placeholder.gif)
-
_source/plugins/removeformat/plugin.js (modified) (1 diff)
-
_source/plugins/richcombo/plugin.js (modified) (3 diffs)
-
_source/plugins/scayt/plugin.js (modified) (4 diffs)
-
_source/plugins/showblocks/plugin.js (modified) (1 diff)
-
_source/plugins/showborders/plugin.js (modified) (1 diff)
-
_source/plugins/smiley/dialogs/smiley.js (modified) (1 diff)
-
_source/plugins/specialchar/dialogs/specialchar.js (modified) (4 diffs)
-
_source/plugins/specialchar/lang (copied) (copied from CKEditor/branches/versions/3.5.x/_source/plugins/specialchar/lang)
-
_source/plugins/specialchar/plugin.js (modified) (2 diffs)
-
_source/plugins/styles/plugin.js (modified) (13 diffs)
-
_source/plugins/table/dialogs/table.js (modified) (1 diff)
-
_source/plugins/tableresize/plugin.js (modified) (1 diff)
-
_source/plugins/tabletools/dialogs/tableCell.js (modified) (18 diffs)
-
_source/plugins/toolbar/plugin.js (modified) (3 diffs)
-
_source/plugins/undo/plugin.js (modified) (2 diffs)
-
_source/plugins/wsc/plugin.js (modified) (1 diff)
-
_source/plugins/wysiwygarea/plugin.js (modified) (13 diffs)
-
_source/skins/kama/dialog.css (modified) (3 diffs)
-
_source/skins/kama/icons.css (modified) (1 diff)
-
_source/skins/kama/icons.png (modified) (previous)
-
_source/skins/kama/icons_rtl.png (modified) (previous)
-
_source/skins/kama/mainui.css (modified) (1 diff)
-
_source/skins/kama/menu.css (modified) (1 diff)
-
_source/skins/kama/richcombo.css (modified) (1 diff)
-
_source/skins/kama/skin.js (modified) (1 diff)
-
_source/skins/kama/toolbar.css (modified) (3 diffs)
-
_source/skins/office2003/dialog.css (modified) (3 diffs)
-
_source/skins/office2003/icons.css (modified) (1 diff)
-
_source/skins/office2003/icons.png (modified) (previous)
-
_source/skins/office2003/icons_rtl.png (modified) (previous)
-
_source/skins/office2003/mainui.css (modified) (1 diff)
-
_source/skins/office2003/menu.css (modified) (1 diff)
-
_source/skins/office2003/richcombo.css (modified) (4 diffs)
-
_source/skins/office2003/skin.js (modified) (1 diff)
-
_source/skins/office2003/toolbar.css (modified) (3 diffs)
-
_source/skins/v2/dialog.css (modified) (3 diffs)
-
_source/skins/v2/icons.css (modified) (2 diffs)
-
_source/skins/v2/icons.png (modified) (previous)
-
_source/skins/v2/icons_rtl.png (modified) (previous)
-
_source/skins/v2/mainui.css (modified) (1 diff)
-
_source/skins/v2/menu.css (modified) (1 diff)
-
_source/skins/v2/richcombo.css (modified) (2 diffs)
-
_source/skins/v2/skin.js (modified) (1 diff)
-
_source/skins/v2/toolbar.css (modified) (2 diffs)
-
_source/themes/default/theme.js (modified) (3 diffs)
-
ckeditor.pack (modified) (2 diffs)
-
ckeditor_basic_source.js (modified) (1 diff)
-
ckeditor_source.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
CKEditor/trunk
- Property bugtraq:label
-
old new 1 Ticket 1 /CKEditor/branches/features/3793:3868-3926 2 /CKEditor/branches/features/aria:4888-5091 3 /CKEditor/branches/features/contenteditable:5564-5708 4 /CKEditor/branches/features/fullpage:4615-4635 5 /CKEditor/branches/features/paste:4673-4771 6 /CKEditor/branches/features/pasting:4206-4673 7 /CKEditor/branches/features/sharedspaces:4641-4652 8 /CKEditor/branches/versions/3.1.x:4230-4773 9 /CKEditor/branches/versions/3.2.x:4910-5188 10 /CKEditor/branches/versions/3.3.x:5195-5547 11 /CKEditor/branches/versions/3.4.x:5550-5837,5888-5890 12 /CKEditor/trunk:4293-6005
-
- Property svn:mergeinfo changed
- Property bugtraq:label
-
CKEditor/trunk/CHANGES.html
- Property svn:mergeinfo changed
/CKEditor/branches/versions/3.5.x/CHANGES.html (added) merged: 5815,5841,5911,5914-5916,5930,5935,5937,6050-6051,6075,6088-6089,6100,6111,6125-6128,6138,6143,6145,6178,6188
r6189 r6190 35 35 CKEditor Changelog 36 36 </h1> 37 <h3> 38 CKEditor 3.5 (SVN)</h3> 39 <p> 40 New features:</p> 41 <ul> 42 <li><a href="http://dev.ckeditor.com/ticket/4090">#4090</a> : Full Adobe AIR support.</li> 43 <li><a href="http://dev.ckeditor.com/ticket/5084">#5084</a> : Dialogs are now resizable with a grip in the bottom of the dialog.</li> 44 <li><a href="http://dev.ckeditor.com/ticket/5755">#5755</a> : Introduced the <a href="http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.dialog_buttonsOrder">dialog_buttonsOrder</a> setting, making it possible to control the buttons order.</li> 45 <li><a href="http://dev.ckeditor.com/ticket/4648">#4648</a> : Added the new Iframe plugin.</li> 46 <li><a href="http://dev.ckeditor.com/ticket/6010">#6010</a> : The "automatic" option of the font/background color panel now represents the real color.</li> 47 <li><a href="http://dev.ckeditor.com/ticket/5654">#5654</a> : Added the new placeholder plugin.</li> 48 <li><a href="http://dev.ckeditor.com/ticket/6334">#6334</a> : CKEditor now uses <a href="http://www.w3.org/TR/2010/WD-html5-20101019/elements.html#embedding-custom-non-visible-data-with-the-data-attributes">HTML5's data-* attributes</a> for its internal attributes.</li> 49 <li><a href="http://dev.ckeditor.com/ticket/6103">#6103</a> : It's now possible to control the styling of inline read-only elements with the disableReadonlyStyling setting. It's also possible to avoid inline-styling any element by setting its data-cke-nostyle attribute to "1".</li> 50 <li><a href="http://dev.ckeditor.com/ticket/5404">#5404</a> : "fillEmptyBlocks" configuration option of v2 is now available.</li> 51 <li><a href="http://dev.ckeditor.com/ticket/5367">#5367</a> : New "CKEDITOR.editor::insertText" method (check api.html sample page for usages) is now provided to insert plain text into editor.</li> 52 <li><a href="http://dev.ckeditor.com/ticket/5367">#5915</a> : Hiding dialog tabs.</li> 53 </ul> 54 <p> 55 Fixed issues:</p> 56 <ul> 57 <li><a href="http://dev.ckeditor.com/ticket/4821">#4821</a> : Icons in the toolbar were distorted with IE and zoom != 100%.</li> 58 <li><a href="http://dev.ckeditor.com/ticket/5587">#5587</a> : Visual improvements in dialogs.</li> 59 <li><a href="http://dev.ckeditor.com/ticket/4652">#4652</a> : Config for disable editor context menu.</li> 60 <li><a href="http://dev.ckeditor.com/ticket/5599">#5599</a> : Labels for special characters need to be resourced.</li> 61 <li><a href="http:/dev.ckeditor.com/ticket/6419">#6419</a> : IE: List creation by merging problem.</li> 62 <li><a href="http:/dev.ckeditor.com/ticket/6502">#6502</a> : Remove IE6 image preloading.</li> 63 <li>Updated the following language files:<ul> 64 <li>Hebrew;</li> 65 </ul></li> 66 </ul> 37 67 <h3> 38 68 CKEditor 3.4.3 (SVN)</h3> - Property svn:mergeinfo changed
-
CKEditor/trunk/_samples/api.html
r5900 r6190 33 33 // Get the editor instance that we want to interact with. 34 34 var oEditor = CKEDITOR.instances.editor1; 35 var value = document.getElementById( ' plainArea' ).value;35 var value = document.getElementById( 'htmlArea' ).value; 36 36 37 37 // Check the active editing mode. … … 45 45 } 46 46 47 function InsertText() 48 { 49 // Get the editor instance that we want to interact with. 50 var oEditor = CKEDITOR.instances.editor1; 51 var value = document.getElementById( 'txtArea' ).value; 52 53 // Check the active editing mode. 54 if ( oEditor.mode == 'wysiwyg' ) 55 { 56 // Insert as plain text. 57 oEditor.insertText( value ); 58 } 59 else 60 alert( 'You must be on WYSIWYG mode!' ); 61 } 62 47 63 function SetContents() 48 64 { 49 65 // Get the editor instance that we want to interact with. 50 66 var oEditor = CKEDITOR.instances.editor1; 51 var value = document.getElementById( ' plainArea' ).value;67 var value = document.getElementById( 'htmlArea' ).value; 52 68 53 69 // Set the editor contents (replace the actual one). … … 132 148 <input onclick="GetContents();" type="button" value="Get Editor Contents (XHTML)" /> 133 149 <br /> 134 <textarea cols="80" id=" plainArea" rows="3"><h2>Test</h2><p>This is some <a href="/Test1.html">sample</a> HTML</p></textarea>150 <textarea cols="80" id="htmlArea" rows="3"><h2>Test</h2><p>This is some <a href="/Test1.html">sample</a> HTML</p></textarea> 135 151 <br /> 152 <br /> 153 <input onclick="InsertText();" type="button" value="Insert Text" /> 154 <br /> 155 <textarea cols="80" id="txtArea" rows="3"> First line with some leading whitespaces. 156 157 Second line of text preceding by two line-breaks.</textarea> 136 158 <br /> 137 159 <input onclick="ExecuteCommand('bold');" type="button" value="Execute "bold" Command" /> -
CKEditor/trunk/_samples/index.html
r5983 r6190 44 44 <li><a href="output_for_flash.html">Output for Flash</a></li> 45 45 <li><a href="autogrow.html">AutoGrow plugin</a></li> 46 <li><a href="placeholder.html">Placeholder plugin</a></li> 46 47 </ul> 47 48 <div id="footer"> -
CKEditor/trunk/_source/core/ckeditor_base.js
r6008 r6190 13 13 // ckeditor_source.js and ckeditor_basic_source.js files. 14 14 15 // if(!window.CKEDITOR)window.CKEDITOR=(function(){var a={timestamp:'',version:'%VERSION%',rev:'%REV%',_:{},status:'unloaded',basePath:(function(){var d=window.CKEDITOR_BASEPATH||'';if(!d){var e=document.getElementsByTagName('script');for(var f=0;f<e.length;f++){var g=e[f].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if(g){d=g[1];break;}}}if(d.indexOf(':/ /')==-1)if(d.indexOf('/')===0)d=location.href.match(/^.*?:\/\/[^\/]*/)[0]+d;else d=location.href.match(/^[^\?]*\/(?:)/)[0]+d;return d;})(),getUrl:function(d){if(d.indexOf('://')==-1&&d.indexOf('/')!==0)d=this.basePath+d;if(this.timestamp&&d.charAt(d.length-1)!='/')d+=(d.indexOf('?')>=0?'&':'?')+('t=')+this.timestamp;return d;}},b=window.CKEDITOR_GETURL;if(b){var c=a.getUrl;a.getUrl=function(d){return b.call(a,d)||c.call(a,d);};}return a;})();15 // if(!window.CKEDITOR)window.CKEDITOR=(function(){var a={timestamp:'',version:'%VERSION%',rev:'%REV%',_:{},status:'unloaded',basePath:(function(){var d=window.CKEDITOR_BASEPATH||'';if(!d){var e=document.getElementsByTagName('script');for(var f=0;f<e.length;f++){var g=e[f].src.match(/(^|.*[\\\/])ckeditor(?:_basic)?(?:_source)?.js(?:\?.*)?$/i);if(g){d=g[1];break;}}}if(d.indexOf(':/')==-1)if(d.indexOf('/')===0)d=location.href.match(/^.*?:\/\/[^\/]*/)[0]+d;else d=location.href.match(/^[^\?]*\/(?:)/)[0]+d;return d;})(),getUrl:function(d){if(d.indexOf(':/')==-1&&d.indexOf('/')!==0)d=this.basePath+d;if(this.timestamp&&d.charAt(d.length-1)!='/')d+=(d.indexOf('?')>=0?'&':'?')+('t=')+this.timestamp;return d;}},b=window.CKEDITOR_GETURL;if(b){var c=a.getUrl;a.getUrl=function(d){return b.call(a,d)||c.call(a,d);};}return a;})(); 16 16 17 17 // #### Raw code … … 127 127 // In IE (only) the script.src string is the raw valued entered in the 128 128 // HTML. Other browsers return the full resolved URL instead. 129 if ( path.indexOf(':/ /') == -1 )129 if ( path.indexOf(':/') == -1 ) 130 130 { 131 131 // Absolute path. … … 169 169 { 170 170 // If this is not a full or absolute path. 171 if ( resource.indexOf(':/ /') == -1 && resource.indexOf( '/' ) !== 0 )171 if ( resource.indexOf(':/') == -1 && resource.indexOf( '/' ) !== 0 ) 172 172 resource = this.basePath + resource; 173 173 -
CKEditor/trunk/_source/core/config.js
r6103 r6190 293 293 'horizontalrule,' + 294 294 'htmldataprocessor,' + 295 'iframe,' + 295 296 'image,' + 296 297 'indent,' + -
CKEditor/trunk/_source/core/dom/document.js
r6096 r6190 166 166 { 167 167 var head = this.$.getElementsByTagName( 'head' )[0]; 168 if ( !head ) 169 head = this.getDocumentElement().append( new CKEDITOR.dom.element( 'head' ), true ); 170 else 168 171 head = new CKEDITOR.dom.element( head ); 169 172 … … 221 224 return win; 222 225 })(); 226 }, 227 228 /** 229 * Defines the document contents through document.write. Note that the 230 * previous document contents will be lost (cleaned). 231 * @since 3.5 232 * @param {String} html The HTML defining the document contents. 233 * @example 234 * document.write( 235 * '<html>' + 236 * '<head><title>Sample Doc</title></head>' + 237 * '<body>Document contents created by code</body>' + 238 * '</html>' ); 239 */ 240 write : function( html ) 241 { 242 // Don't leave any history log in IE. (#5657) 243 this.$.open( 'text/html', 'replace' ); 244 245 // Support for custom document.domain in IE. 246 CKEDITOR.env.isCustomDomain() && ( this.$.domain = document.domain ); 247 248 this.$.write( html ); 249 this.$.close(); 223 250 } 224 251 }); -
CKEditor/trunk/_source/core/dom/domobject.js
r6085 r6190 168 168 * Sets a data slot value for this object. These values are shared by all 169 169 * instances pointing to that same DOM object. 170 * <strong>Note:</strong> The created data slot is only guarantied to be available on this unique dom node, 171 * thus any wish to continue access it from other element clones (either created by clone node or from innerHtml) 172 * will fail, for such usage, please use {@link CKEDITOR.dom.element::setAttribute} instead. 170 173 * @name CKEDITOR.dom.domObject.prototype.setCustomData 171 174 * @function … … 201 204 domObjectProto.getCustomData = function( key ) 202 205 { 203 var expandoNumber = this.$ ._cke_expando,206 var expandoNumber = this.$[ 'data-cke-expando' ], 204 207 dataSlot = expandoNumber && customData[ expandoNumber ]; 205 208 … … 212 215 domObjectProto.removeCustomData = function( key ) 213 216 { 214 var expandoNumber = this.$ ._cke_expando,217 var expandoNumber = this.$[ 'data-cke-expando' ], 215 218 dataSlot = expandoNumber && customData[ expandoNumber ], 216 219 retval = dataSlot && dataSlot[ key ]; … … 234 237 this.removeAllListeners(); 235 238 236 var expandoNumber = this.$ ._cke_expando;239 var expandoNumber = this.$[ 'data-cke-expando' ]; 237 240 expandoNumber && delete customData[ expandoNumber ]; 238 241 }; … … 247 250 domObjectProto.getUniqueId = function() 248 251 { 249 return this.$ ._cke_expando || ( this.$._cke_expando= CKEDITOR.tools.getNextNumber() );252 return this.$[ 'data-cke-expando' ] || ( this.$[ 'data-cke-expando' ] = CKEDITOR.tools.getNextNumber() ); 250 253 }; 251 254 -
CKEditor/trunk/_source/core/dom/element.js
r6098 r6190 1 /*1 /* 2 2 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved. 3 3 For licensing, see LICENSE.html or http://ckeditor.com/license … … 308 308 /** 309 309 * Moves the selection focus to this element. 310 * @param {Boolean} defer Whether to asynchronously defer the 311 * execution by 100 ms. 310 312 * @example 311 313 * var element = CKEDITOR.document.getById( 'myTextarea' ); 312 314 * <b>element.focus()</b>; 313 315 */ 314 focus : function() 315 { 316 focus : (function() 317 { 318 function exec() 319 { 316 320 // IE throws error if the element is not visible. 317 321 try … … 321 325 catch (e) 322 326 {} 323 }, 327 } 328 329 return function( defer ) 330 { 331 if ( defer ) 332 CKEDITOR.tools.setTimeout( exec, 100, this ); 333 else 334 exec.call( this ); 335 } 336 }()), 324 337 325 338 /** … … 726 739 var attribute = thisAttribs[ i ]; 727 740 728 if ( ( !CKEDITOR.env.ie || ( attribute.specified && attribute.nodeName != '_cke_expando' ) ) && attribute.nodeValue != otherElement.getAttribute( attribute.nodeName ) ) 741 if ( attribute.nodeName == '_moz_dirty' ) 742 continue; 743 744 if ( ( !CKEDITOR.env.ie || ( attribute.specified && attribute.nodeName != 'data-cke-expando' ) ) && attribute.nodeValue != otherElement.getAttribute( attribute.nodeName ) ) 729 745 return false; 730 746 } … … 737 753 { 738 754 attribute = otherAttribs[ i ]; 739 if ( attribute.specified && attribute.nodeName != ' _cke_expando'755 if ( attribute.specified && attribute.nodeName != 'data-cke-expando' 740 756 && attribute.nodeValue != this.getAttribute( attribute.nodeName ) ) 741 757 return false; … … 787 803 var child = children.getItem( i ); 788 804 789 if ( child.type == CKEDITOR.NODE_ELEMENT && child. getAttribute( '_cke_bookmark' ) )805 if ( child.type == CKEDITOR.NODE_ELEMENT && child.data( 'cke-bookmark' ) ) 790 806 continue; 791 807 … … 832 848 833 849 // Attributes to be ignored. 834 case ' _cke_expando' :850 case 'data-cke-expando' : 835 851 continue; 836 852 … … 852 868 853 869 // The _moz_dirty attribute might get into the element after pasting (#5455) 854 var execludeAttrs = { _cke_expando: 1, _moz_dirty : 1 };870 var execludeAttrs = { 'data-cke-expando' : 1, _moz_dirty : 1 }; 855 871 856 872 return attrsNum > 0 && … … 915 931 var pendingNodes = []; 916 932 917 while ( sibling. getAttribute( '_cke_bookmark' )933 while ( sibling.data( 'cke-bookmark' ) 918 934 || sibling.isEmptyInlineRemoveable() ) 919 935 { … … 1481 1497 // Replace the node. 1482 1498 this.getParent() && this.$.parentNode.replaceChild( newNode.$, this.$ ); 1483 newNode.$ ._cke_expando = this.$._cke_expando;1499 newNode.$[ 'data-cke-expando' ] = this.$[ 'data-cke-expando' ]; 1484 1500 this.$ = newNode.$; 1485 1501 }, … … 1523 1539 1524 1540 /** 1525 * Update the element's size with box model awareness.1526 * @name CKEDITOR.dom.element.setSize1527 * @param {String} type [width|height]1528 * @param {Number} size The length unit in px.1529 * @param isBorderBox Apply the {@param width} and {@param height} based on border box model.1530 */1531 setSize : ( function()1532 {1533 var sides = {1534 width : [ "border-left-width", "border-right-width","padding-left", "padding-right" ],1535 height : [ "border-top-width", "border-bottom-width", "padding-top", "padding-bottom" ]1536 };1537 1538 return function( type, size, isBorderBox )1539 {1540 if ( typeof size == 'number' )1541 {1542 if ( isBorderBox && !( CKEDITOR.env.ie && CKEDITOR.env.quirks ) )1543 {1544 var adjustment = 0;1545 for ( var i = 0, len = sides[ type ].length; i < len; i++ )1546 adjustment += parseInt( this.getComputedStyle( sides [ type ][ i ] ) || 0, 10 ) || 0;1547 size -= adjustment;1548 }1549 this.setStyle( type, size + 'px' );1550 }1551 };1552 })(),1553 1554 /**1555 1541 * Gets element's direction. Supports both CSS 'direction' prop and 'dir' attr. 1556 1542 */ … … 1558 1544 { 1559 1545 return useComputed ? this.getComputedStyle( 'direction' ) : this.getStyle( 'direction' ) || this.getAttribute( 'dir' ); 1546 }, 1547 1548 /** 1549 * Gets, sets and removes custom data to be stored as HTML5 data-* attributes. 1550 * @name CKEDITOR.dom.element.data 1551 * @param {String} name The name of the attribute, execluding the 'data-' part. 1552 * @param {String} [value] The value to set. If set to false, the attribute will be removed. 1553 */ 1554 data : function ( name, value ) 1555 { 1556 name = 'data-' + name; 1557 if ( value === undefined ) 1558 return this.getAttribute( name ); 1559 else if ( value === false ) 1560 this.removeAttribute( name ); 1561 else 1562 this.setAttribute( name, value ); 1560 1563 } 1561 1564 }); 1565 1566 ( function() 1567 { 1568 var sides = { 1569 width : [ "border-left-width", "border-right-width","padding-left", "padding-right" ], 1570 height : [ "border-top-width", "border-bottom-width", "padding-top", "padding-bottom" ] 1571 }; 1572 1573 function marginAndPaddingSize( type ) 1574 { 1575 var adjustment = 0; 1576 for ( var i = 0, len = sides[ type ].length; i < len; i++ ) 1577 adjustment += parseInt( this.getComputedStyle( sides [ type ][ i ] ) || 0, 10 ) || 0; 1578 return adjustment; 1579 } 1580 1581 /** 1582 * Update the element's size with box model awareness. 1583 * @name CKEDITOR.dom.element.setSize 1584 * @param {String} type [width|height] 1585 * @param {Number} size The length unit in px. 1586 * @param isBorderBox Apply the {@param width} and {@param height} based on border box model. 1587 */ 1588 CKEDITOR.dom.element.prototype.setSize = function( type, size, isBorderBox ) 1589 { 1590 if ( typeof size == 'number' ) 1591 { 1592 if ( isBorderBox && !( CKEDITOR.env.ie && CKEDITOR.env.quirks ) ) 1593 size -= marginAndPaddingSize.call( this, type ); 1594 1595 this.setStyle( type, size + 'px' ); 1596 } 1597 }; 1598 1599 /** 1600 * Get the element's size, possibly with box model awareness. 1601 * @name CKEDITOR.dom.element.getSize 1602 * @param {String} type [width|height] 1603 * @param {Boolean} contentSize Get the {@param width} or {@param height} based on border box model. 1604 */ 1605 CKEDITOR.dom.element.prototype.getSize = function( type, contentSize ) 1606 { 1607 var size = Math.max( this.$[ 'offset' + CKEDITOR.tools.capitalize( type ) ], 1608 this.$[ 'client' + CKEDITOR.tools.capitalize( type ) ] ) || 0; 1609 1610 if ( contentSize ) 1611 size -= marginAndPaddingSize.call( this, type ); 1612 1613 return size; 1614 }; 1615 })(); -
CKEditor/trunk/_source/core/dom/node.js
r6102 r6190 108 108 var $clone = this.$.cloneNode( includeChildren ); 109 109 110 if ( !cloneId ) 111 { 112 var removeIds = function( node ) 113 { 114 if ( node.nodeType != CKEDITOR.NODE_ELEMENT ) 115 return; 116 117 node.removeAttribute( 'id', false ) ; 118 node.removeAttribute( '_cke_expando', false ) ; 119 110 var removeIds = function( node ) 111 { 112 if ( node.nodeType != CKEDITOR.NODE_ELEMENT ) 113 return; 114 115 if ( !cloneId ) 116 node.removeAttribute( 'id', false ); 117 node.removeAttribute( 'data-cke-expando', false ); 118 119 if ( includeChildren ) 120 { 120 121 var childs = node.childNodes; 121 for ( var i=0 ; i < childs.length; i++ )122 for ( var i=0; i < childs.length; i++ ) 122 123 removeIds( childs[ i ] ); 123 } ;124 125 // The "id" attribute should never be cloned to avoid duplication. 126 removeIds( $clone );127 }124 } 125 }; 126 127 // The "id" attribute should never be cloned to avoid duplication. 128 removeIds( $clone ); 128 129 129 130 return new CKEDITOR.dom.node( $clone ); … … 244 245 getDocument : function() 245 246 { 246 var document = new CKEDITOR.dom.document( this.$.ownerDocument || this.$.parentNode.ownerDocument ); 247 248 return ( 249 this.getDocument = function() 250 { 251 return document; 252 })(); 247 return new CKEDITOR.dom.document( this.$.ownerDocument || this.$.parentNode.ownerDocument ); 253 248 }, 254 249 -
CKEditor/trunk/_source/core/dom/range.js
r6069 r6190 309 309 && node.getName() in CKEDITOR.dtd.$removeEmpty 310 310 || !CKEDITOR.tools.trim( node.getText() ) 311 || node.getParent(). hasAttribute( '_cke_bookmark' );311 || node.getParent().data( 'cke-bookmark' ); 312 312 } 313 313 … … 404 404 405 405 startNode = this.document.createElement( 'span' ); 406 startNode. setAttribute( '_cke_bookmark', 1 );406 startNode.data( 'cke-bookmark', 1 ); 407 407 startNode.setStyle( 'display', 'none' ); 408 408 … … 714 714 715 715 if ( startNode.is && startNode.is( 'span' ) 716 && startNode. hasAttribute( '_cke_bookmark' ) )716 && startNode.data( 'cke-bookmark' ) ) 717 717 this.setStartAt( startNode, CKEDITOR.POSITION_BEFORE_START ); 718 718 if ( endNode && endNode.is && endNode.is( 'span' ) 719 && endNode. hasAttribute( '_cke_bookmark' ) )719 && endNode.data( 'cke-bookmark' ) ) 720 720 this.setEndAt( endNode, CKEDITOR.POSITION_AFTER_END ); 721 721 }, … … 923 923 // We need to check for the bookmark attribute because IE insists on 924 924 // rendering the display:none nodes we use for bookmarks. (#3363) 925 if ( sibling.$.offsetWidth > 0 && !sibling. getAttribute( '_cke_bookmark' ) )925 if ( sibling.$.offsetWidth > 0 && !sibling.data( 'cke-bookmark' ) ) 926 926 { 927 927 // We'll accept it only if we need … … 1082 1082 // We need to check for the bookmark attribute because IE insists on 1083 1083 // rendering the display:none nodes we use for bookmarks. (#3363) 1084 if ( sibling.$.offsetWidth > 0 && !sibling. getAttribute( '_cke_bookmark' ) )1084 if ( sibling.$.offsetWidth > 0 && !sibling.data( 'cke-bookmark' ) ) 1085 1085 { 1086 1086 // We'll accept it only if we need -
CKEditor/trunk/_source/core/dom/walker.js
r6113 r6190 374 374 return ( node && node.getName 375 375 && node.getName() == 'span' 376 && node. hasAttribute( '_cke_bookmark' ) );376 && node.data( 'cke-bookmark' ) ); 377 377 } 378 378 -
CKEditor/trunk/_source/core/editor.js
r6044 r6190 228 228 } 229 229 230 // Load the Adobe AIR plugin conditionally. 231 CKEDITOR.env.air && ( plugins += ',adobeair' ); 232 230 233 // Load all plugins defined in the "plugins" setting. 231 234 CKEDITOR.plugins.load( plugins.split( ',' ), function( plugins ) … … 757 760 758 761 /** 762 * Insert text content into the currently selected position in the 763 * editor, in WYSIWYG mode, styles of the selected element will be applied to the inserted text, 764 * spaces around the text will be leaving untouched. 765 * <strong>Note:</strong> two subsequent line-breaks will introduce one paragraph, which element depends on {@link CKEDITOR.config.enterMode}; 766 * A single line-break will be instead translated into one <br />. 767 * @since 3.5 768 * @param {String} text Text to be inserted into the editor. 769 * @example 770 * CKEDITOR.instances.editor1.<b>insertText( ' line1 \n\n line2' )</b>; 771 */ 772 insertText : function( text ) 773 { 774 this.fire( 'insertText', text ); 775 }, 776 777 /** 759 778 * Inserts an element into the currently selected position in the 760 779 * editor. -
CKEditor/trunk/_source/core/htmlparser/element.js
r5206 r6190 35 35 this.children = []; 36 36 37 var tagName = attributes ._cke_real_element_type|| name;37 var tagName = attributes[ 'data-cke-real-element-type' ] || name; 38 38 39 39 var dtd = CKEDITOR.dtd, -
CKEditor/trunk/_source/core/htmlparser/fragment.js
r5990 r6190 126 126 if ( element.attributes 127 127 && ( realElementName = 128 element.attributes[ ' _cke_real_element_type' ] ) )128 element.attributes[ 'data-cke-real-element-type' ] ) ) 129 129 elementName = realElementName; 130 130 else -
CKEditor/trunk/_source/core/loader.js
r5982 r6190 60 60 'core/htmlparser/filter' : [ 'core/htmlparser' ], 61 61 'core/htmlparser/basicwriter': [ 'core/htmlparser' ], 62 'core/imagecacher' : [ 'core/dom/element', 'core/event' ],63 62 'core/lang' : [], 64 63 'core/plugins' : [ 'core/resourcemanager' ], 65 64 'core/resourcemanager' : [ 'core/scriptloader', 'core/tools' ], 66 65 'core/scriptloader' : [ 'core/dom/element', 'core/env' ], 67 'core/skins' : [ 'core/ imagecacher', 'core/scriptloader' ],66 'core/skins' : [ 'core/scriptloader' ], 68 67 'core/themes' : [ 'core/resourcemanager' ], 69 68 'core/tools' : [ 'core/env' ], -
CKEditor/trunk/_source/core/skins.js
r6024 r6190 18 18 // Holds the list of loaded skins. 19 19 var loaded = {}, 20 preloaded = {},21 20 paths = {}; 22 21 … … 53 52 return 'url(' + baseUrl + opener + path + closer + ')'; 54 53 } ); 55 }56 57 // Check if we need to preload images from it.58 var preload = skinDefinition.preload;59 if ( preload && preload.length > 0 )60 {61 if ( !preloaded[ skinName ] )62 {63 // Prepare image URLs64 appendSkinPath( preload );65 66 // Get preloader event dispatcher object.67 preloaded[ skinName ] = CKEDITOR.imageCacher.load( preload );68 }69 70 if ( !preloaded[ skinName ].finished )71 {72 // Bind listener for this editor instance.73 preloaded[ skinName ].on( 'loaded', function()74 {75 loadPart( editor, skinName, part, callback );76 }77 );78 79 // Execution will be continued from event listener.80 return;81 }82 54 } 83 55 -
CKEditor/trunk/_source/core/tools.js
r5956 r6190 639 639 return functions.push( function() 640 640 { 641 fn.apply( scope || this, arguments );641 return fn.apply( scope || this, arguments ); 642 642 }) - 1; 643 643 }, -
CKEditor/trunk/_source/core/ui.js
r4858 r6190 92 92 }; 93 93 94 CKEDITOR.event.implementOn( CKEDITOR.ui ); 95 94 96 /** 95 97 * (Virtual Class) Do not call this constructor. This class is not really part -
CKEditor/trunk/_source/lang/_translationstatus.txt
r6186 r6190 2 2 For licensing, see LICENSE.html or http://ckeditor.com/license 3 3 4 af.js Found: 287 Missing: 2 445 ar.js Found: 451 Missing: 806 bg.js Found: 280 Missing: 2 517 bn.js Found: 281 Missing: 2 508 bs.js Found: 187 Missing: 3 449 ca.js Found: 490 Missing: 4110 cs.js Found: 411 Missing: 1 2011 cy.js Found: 452 Missing: 7912 da.js Found: 404 Missing: 1 2713 de.js Found: 528 Missing: 314 el.js Found: 286 Missing: 2 4515 en-au.js Found: 369 Missing: 1 6216 en-ca.js Found: 369 Missing: 1 6217 en-gb.js Found: 370 Missing: 1 6118 eo.js Found: 259 Missing: 2 7219 es.js Found: 531 Missing: 020 et.js Found: 301 Missing: 2 3021 eu.js Found: 403 Missing: 1 2822 fa.js Found: 302 Missing: 2 2923 fi.js Found: 531 Missing: 024 fo.js Found: 420 Missing: 1 1125 fr-ca.js Found: 301 Missing: 2 3026 fr.js Found: 403 Missing: 1 2827 gl.js Found: 283 Missing: 2 4828 gu.js Found: 300 Missing: 2 3129 he.js Found: 5 31Missing: 030 hi.js Found: 302 Missing: 2 2931 hr.js Found: 404 Missing: 1 2732 hu.js Found: 530 Missing: 1 33 is.js Found: 307 Missing: 2 2434 it.js Found: 404 Missing: 1 2735 ja.js Found: 489 Missing: 4236 km.js Found: 275 Missing: 2 5637 ko.js Found: 293 Missing: 2 3838 lt.js Found: 306 Missing: 2 2539 lv.js Found: 283 Missing: 2 4840 mn.js Found: 300 Missing: 2 3141 ms.js Found: 265 Missing: 2 6642 nb.js Found: 470 Missing: 6143 nl.js Found: 531 Missing: 044 no.js Found: 470 Missing: 6145 pl.js Found: 411 Missing: 1 2046 pt-br.js Found: 524 Missing: 747 pt.js Found: 282 Missing: 2 4948 ro.js Found: 301 Missing: 2 3049 ru.js Found: 467 Missing: 6450 sk.js Found: 302 Missing: 2 2951 sl.js Found: 410 Missing: 1 2152 sr-latn.js Found: 276 Missing: 2 5553 sr.js Found: 275 Missing: 2 5654 sv.js Found: 299 Missing: 2 3255 th.js Found: 287 Missing: 2 4456 tr.js Found: 524 Missing: 757 uk.js Found: 531 Missing: 058 vi.js Found: 481 Missing: 5059 zh-cn.js Found: 5 31Missing: 060 zh.js Found: 404 Missing: 1 274 af.js Found: 287 Missing: 259 5 ar.js Found: 451 Missing: 95 6 bg.js Found: 280 Missing: 266 7 bn.js Found: 281 Missing: 265 8 bs.js Found: 187 Missing: 359 9 ca.js Found: 490 Missing: 56 10 cs.js Found: 411 Missing: 135 11 cy.js Found: 452 Missing: 94 12 da.js Found: 404 Missing: 142 13 de.js Found: 528 Missing: 18 14 el.js Found: 286 Missing: 260 15 en-au.js Found: 369 Missing: 177 16 en-ca.js Found: 369 Missing: 177 17 en-gb.js Found: 370 Missing: 176 18 eo.js Found: 259 Missing: 287 19 es.js Found: 531 Missing: 15 20 et.js Found: 301 Missing: 245 21 eu.js Found: 403 Missing: 143 22 fa.js Found: 302 Missing: 244 23 fi.js Found: 531 Missing: 15 24 fo.js Found: 420 Missing: 126 25 fr-ca.js Found: 301 Missing: 245 26 fr.js Found: 403 Missing: 143 27 gl.js Found: 283 Missing: 263 28 gu.js Found: 300 Missing: 246 29 he.js Found: 546 Missing: 0 30 hi.js Found: 302 Missing: 244 31 hr.js Found: 404 Missing: 142 32 hu.js Found: 530 Missing: 16 33 is.js Found: 307 Missing: 239 34 it.js Found: 404 Missing: 142 35 ja.js Found: 489 Missing: 57 36 km.js Found: 275 Missing: 271 37 ko.js Found: 293 Missing: 253 38 lt.js Found: 306 Missing: 240 39 lv.js Found: 283 Missing: 263 40 mn.js Found: 300 Missing: 246 41 ms.js Found: 265 Missing: 281 42 nb.js Found: 470 Missing: 76 43 nl.js Found: 531 Missing: 15 44 no.js Found: 470 Missing: 76 45 pl.js Found: 411 Missing: 135 46 pt-br.js Found: 524 Missing: 22 47 pt.js Found: 282 Missing: 264 48 ro.js Found: 301 Missing: 245 49 ru.js Found: 467 Missing: 79 50 sk.js Found: 302 Missing: 244 51 sl.js Found: 410 Missing: 136 52 sr-latn.js Found: 276 Missing: 270 53 sr.js Found: 275 Missing: 271 54 sv.js Found: 299 Missing: 247 55 th.js Found: 287 Missing: 259 56 tr.js Found: 524 Missing: 22 57 uk.js Found: 531 Missing: 15 58 vi.js Found: 481 Missing: 65 59 zh-cn.js Found: 546 Missing: 0 60 zh.js Found: 404 Missing: 142 -
CKEditor/trunk/_source/lang/af.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/ar.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/bg.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/bn.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/bs.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/ca.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/cs.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/cy.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/da.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/de.js
r6099 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/el.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/en-au.js
r5863 r6190 529 529 justify : 530 530 { 531 left : ' Left Justify',532 center : 'Centre Justify',533 right : ' Right Justify',534 block : ' BlockJustify'531 left : 'Align Left', 532 center : 'Centre', 533 right : 'Align Right', 534 block : 'Justify' 535 535 }, 536 536 … … 615 615 remove : 'Remove Div' // MISSING 616 616 }, 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 617 636 618 637 font : -
CKEditor/trunk/_source/lang/en-ca.js
r5863 r6190 529 529 justify : 530 530 { 531 left : ' Left Justify',532 center : 'Centre Justify',533 right : ' Right Justify',534 block : ' BlockJustify'531 left : 'Align Left', 532 center : 'Centre', 533 right : 'Align Right', 534 block : 'Justify' 535 535 }, 536 536 … … 615 615 remove : 'Remove Div' // MISSING 616 616 }, 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 617 636 618 637 font : -
CKEditor/trunk/_source/lang/en-gb.js
r5863 r6190 529 529 justify : 530 530 { 531 left : ' Left Justify',532 center : 'Centre Justify',533 right : ' Right Justify',534 block : ' BlockJustify'531 left : 'Align Left', 532 center : 'Centre', 533 right : 'Align Right', 534 block : 'Justify' 535 535 }, 536 536 … … 615 615 remove : 'Remove Div' // MISSING 616 616 }, 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 617 636 618 637 font : -
CKEditor/trunk/_source/lang/en.js
r6133 r6190 529 529 justify : 530 530 { 531 left : ' Left Justify',532 center : 'Center Justify',533 right : ' Right Justify',534 block : ' BlockJustify'531 left : 'Align Left', 532 center : 'Center', 533 right : 'Align Right', 534 block : 'Justify' 535 535 }, 536 536 … … 615 615 remove : 'Remove Div' 616 616 }, 617 618 iframe : 619 { 620 title : 'iFrame Properties', 621 toolbar : 'iFrame', 622 height : 'Height', 623 width : 'Width', 624 invalidHeight : 'iFrame height must be a number.', 625 invalidWidth : 'iFrame width must be a number.', 626 noUrl : 'Please type the iFrame URL', 627 scrolling : 'Enable scrollbars', 628 border : 'Show frame border', 629 align : 'Alignment', 630 alignLeft : 'Left', 631 alignRight : 'Right', 632 alignTop : 'Top', 633 alignMiddle : 'Middle', 634 alignBottom : 'Bottom' 635 }, 617 636 618 637 font : -
CKEditor/trunk/_source/lang/eo.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/es.js
r6171 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/et.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/eu.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/fa.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/fi.js
r5938 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/fo.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/fr-ca.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/fr.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/gl.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/gu.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/he.js
r5840 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'מאפייני חלון פנימי (iFrame)', 621 toolbar : 'חלון פנימי (iFrame)', 622 height : 'גובה', 623 width : 'רוחב', 624 invalidHeight : 'גובה החלון חייב להיות מספרי.', 625 invalidWidth : 'רוחב החלון חייב להיות מספרי.', 626 noUrl : 'יש להכניס כתובת לחלון.', 627 scrolling : 'אפשר פסי גלילה', 628 border : 'הראה מסגרת לחלון', 629 align : 'יישור', 630 alignLeft : 'שמאל', 631 alignRight : 'ימין', 632 alignTop : 'למעלה', 633 alignMiddle : 'מרכז', 634 alignBottom : 'למטה' 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/hi.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/hr.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/hu.js
r6154 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/is.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/it.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/ja.js
r6183 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/km.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/ko.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/lt.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/lv.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/mn.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/ms.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/nb.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/nl.js
r5865 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/no.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/pl.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/pt-br.js
r5840 r6190 615 615 }, 616 616 617 iframe : 618 { 619 title : 'iFrame Properties', // MISSING 620 toolbar : 'iFrame', // MISSING 621 height : 'Height', // MISSING 622 width : 'Width', // MISSING 623 invalidHeight : 'iFrame height must be a number.', // MISSING 624 invalidWidth : 'iFrame width must be a number.', // MISSING 625 noUrl : 'Please type the iFrame URL', // MISSING 626 scrolling : 'Enable scrollbars', // MISSING 627 border : 'Show frame border', // MISSING 628 align : 'Alignment', // MISSING 629 alignLeft : 'Left', // MISSING 630 alignRight : 'Right', // MISSING 631 alignTop : 'Top', // MISSING 632 alignMiddle : 'Middle', // MISSING 633 alignBottom : 'Bottom' // MISSING 634 }, 635 617 636 font : 618 637 { -
CKEditor/trunk/_source/lang/pt.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/ro.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/ru.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/sk.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/sl.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/sr-latn.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/sr.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/sv.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/th.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/tr.js
r5840 r6190 615 615 }, 616 616 617 iframe : 618 { 619 title : 'iFrame Properties', // MISSING 620 toolbar : 'iFrame', // MISSING 621 height : 'Height', // MISSING 622 width : 'Width', // MISSING 623 invalidHeight : 'iFrame height must be a number.', // MISSING 624 invalidWidth : 'iFrame width must be a number.', // MISSING 625 noUrl : 'Please type the iFrame URL', // MISSING 626 scrolling : 'Enable scrollbars', // MISSING 627 border : 'Show frame border', // MISSING 628 align : 'Alignment', // MISSING 629 alignLeft : 'Left', // MISSING 630 alignRight : 'Right', // MISSING 631 alignTop : 'Top', // MISSING 632 alignMiddle : 'Middle', // MISSING 633 alignBottom : 'Bottom' // MISSING 634 }, 635 617 636 font : 618 637 { -
CKEditor/trunk/_source/lang/uk.js
r5919 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/vi.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/zh-cn.js
r5864 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame属性', 621 toolbar : 'iFrame', 622 height : '高度', 623 width : '宽度', 624 invalidHeight : '框架高度必须为数字格式', 625 invalidWidth : '框架宽度必须为数字格式', 626 noUrl : '请输入框架的 URL', 627 scrolling : '允许滚动条', 628 border : '显示框架边框', 629 align : '对齐方式', 630 alignLeft : '左', 631 alignRight : '右', 632 alignTop : '上', 633 alignMiddle : '中', 634 alignBottom : '下' 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/lang/zh.js
r5863 r6190 616 616 }, 617 617 618 iframe : 619 { 620 title : 'iFrame Properties', // MISSING 621 toolbar : 'iFrame', // MISSING 622 height : 'Height', // MISSING 623 width : 'Width', // MISSING 624 invalidHeight : 'iFrame height must be a number.', // MISSING 625 invalidWidth : 'iFrame width must be a number.', // MISSING 626 noUrl : 'Please type the iFrame URL', // MISSING 627 scrolling : 'Enable scrollbars', // MISSING 628 border : 'Show frame border', // MISSING 629 align : 'Alignment', // MISSING 630 alignLeft : 'Left', // MISSING 631 alignRight : 'Right', // MISSING 632 alignTop : 'Top', // MISSING 633 alignMiddle : 'Middle', // MISSING 634 alignBottom : 'Bottom' // MISSING 635 }, 636 618 637 font : 619 638 { -
CKEditor/trunk/_source/plugins/button/plugin.js
r5949 r6190 55 55 } 56 56 }; 57 58 /** 59 * Handles a button click. 60 * @private 61 */ 62 CKEDITOR.ui.button._ = 63 { 64 instances : [], 65 66 keydown : function( index, ev ) 67 { 68 var instance = CKEDITOR.ui.button._.instances[ index ]; 69 70 if ( instance.onkey ) 71 { 72 ev = new CKEDITOR.dom.event( ev ); 73 return ( instance.onkey( instance, ev.getKeystroke() ) !== false ); 74 } 75 }, 76 77 focus : function( index, ev ) 78 { 79 var instance = CKEDITOR.ui.button._.instances[ index ], 80 retVal; 81 82 if ( instance.onfocus ) 83 retVal = ( instance.onfocus( instance, new CKEDITOR.dom.event( ev ) ) !== false ); 84 85 // FF2: prevent focus event been bubbled up to editor container, which caused unexpected editor focus. 86 if ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 ) 87 ev.preventBubble(); 88 return retVal; 89 } 90 }; 91 92 ( function() 93 { 94 var keydownFn = CKEDITOR.tools.addFunction( CKEDITOR.ui.button._.keydown, CKEDITOR.ui.button._ ), 95 focusFn = CKEDITOR.tools.addFunction( CKEDITOR.ui.button._.focus, CKEDITOR.ui.button._ ); 57 96 58 97 CKEDITOR.ui.button.prototype = … … 161 200 162 201 output.push( 163 ' onkeydown="return CKEDITOR.ui.button._.keydown(', index, ', event);"' +164 ' onfocus="return CKEDITOR.ui.button._.focus(', index, ', event);"' +202 ' onkeydown="return CKEDITOR.tools.callFunction(', keydownFn, ', ', index, ', event);"' + 203 ' onfocus="return CKEDITOR.tools.callFunction(', focusFn,', ', index, ', event);"' + 165 204 ' onclick="CKEDITOR.tools.callFunction(', clickFn, ', this); return false;">' + 166 205 '<span class="cke_icon"' ); … … 222 261 }; 223 262 224 /** 225 * Handles a button click. 226 * @private 227 */ 228 CKEDITOR.ui.button._ = 229 { 230 instances : [], 231 232 keydown : function( index, ev ) 233 { 234 var instance = CKEDITOR.ui.button._.instances[ index ]; 235 236 if ( instance.onkey ) 237 { 238 ev = new CKEDITOR.dom.event( ev ); 239 return ( instance.onkey( instance, ev.getKeystroke() ) !== false ); 240 } 241 }, 242 243 focus : function( index, ev ) 244 { 245 var instance = CKEDITOR.ui.button._.instances[ index ], 246 retVal; 247 248 if ( instance.onfocus ) 249 retVal = ( instance.onfocus( instance, new CKEDITOR.dom.event( ev ) ) !== false ); 250 251 // FF2: prevent focus event been bubbled up to editor container, which caused unexpected editor focus. 252 if ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 ) 253 ev.preventBubble(); 254 return retVal; 255 } 256 }; 263 })(); 257 264 258 265 /** -
CKEditor/trunk/_source/plugins/clipboard/dialogs/paste.js
r5949 r6190 1 /*1 /* 2 2 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved. 3 3 For licensing, see LICENSE.html or http://ckeditor.com/license … … 14 14 docElement = doc.$; 15 15 16 doc.getById( 'cke_actscrpt' ).remove(); 16 var script = doc.getById( 'cke_actscrpt' ); 17 script && script.remove(); 17 18 18 19 CKEDITOR.env.ie ? … … 75 76 '</html>'; 76 77 78 var src = 79 CKEDITOR.env.air ? 80 'javascript:void(0)' : 81 isCustomDomain ? 82 'javascript:void((function(){' + 83 'document.open();' + 84 'document.domain=\'' + document.domain + '\';' + 85 'document.close();' + 86 '})())"' 87 : 88 ''; 89 77 90 var iframe = CKEDITOR.dom.element.createFromHtml( 78 91 '<iframe' + … … 80 93 ' frameborder="0" ' + 81 94 ' allowTransparency="true"' + 82 // Support for custom document.domain in IE. 83 ( isCustomDomain ? 84 ' src="javascript:void((function(){' + 85 'document.open();' + 86 'document.domain=\'' + document.domain + '\';' + 87 'document.close();' + 88 '})())"' : '' ) + 95 ' src="' + src + '"' + 89 96 ' role="region"' + 90 97 ' aria-label="' + lang.pasteArea + '"' + … … 94 101 95 102 iframe.on( 'load', function( e ) 96 {97 e.removeListener();98 var doc = iframe.getFrameDocument().$; 99 // Custom domain handling is needed after each document.open().100 doc.open();101 if ( isCustomDomain ) 102 doc.domain = document.domain;103 doc.write( htmlToLoad);104 doc.close();105 },this );103 { 104 e.removeListener(); 105 106 var doc = iframe.getFrameDocument(); 107 doc.write( htmlToLoad ); 108 109 if ( CKEDITOR.env.air ) 110 onPasteFrameLoad.call( this, doc.getWindow().$ ); 111 }, 112 this ); 106 113 107 114 iframe.setCustomData( 'dialog', this ); -
CKEditor/trunk/_source/plugins/clipboard/plugin.js
r5993 r6190 50 50 { 51 51 // Other browsers throw an error if the command is disabled. 52 return editor.document.$.execCommand( type );52 return editor.document.$.execCommand( type, false, null ); 53 53 } 54 54 catch( e ) -
CKEditor/trunk/_source/plugins/colorbutton/plugin.js
r5949 r6190 23 23 function addButton( name, type, title ) 24 24 { 25 var colorBoxId = CKEDITOR.tools.getNextId() + '_colorBox'; 25 26 editor.ui.add( name, CKEDITOR.UI_PANELBUTTON, 26 27 { … … 40 41 block.autoSize = true; 41 42 block.element.addClass( 'cke_colorblock' ); 42 block.element.setHtml( renderColors( panel, type ) );43 block.element.setHtml( renderColors( panel, type, colorBoxId ) ); 43 44 // The block should not have scrollbars (#5933, #6056) 44 45 block.element.getDocument().getBody().setStyle( 'overflow', 'hidden' ); 46 47 CKEDITOR.ui.fire( 'ready', this ); 45 48 46 49 var keys = block.keys; … … 53 56 keys[ CKEDITOR.SHIFT + 9 ] = 'prev'; // SHIFT + TAB 54 57 keys[ 32 ] = 'click'; // SPACE 58 }, 59 60 // The automatic colorbox should represent the real color (#6010) 61 onOpen : function() 62 { 63 var selection = editor.getSelection(), 64 block = selection && selection.getStartElement(), 65 path = new CKEDITOR.dom.elementPath( block ), 66 color; 67 68 // Find the closest block element. 69 block = path.block || path.blockLimit; 70 71 // The background color might be transparent. In that case, look up the color in the DOM tree. 72 do 73 { 74 color = block && block.getComputedStyle( type == 'back' ? 'background-color' : 'color' ) || 'transparent'; 75 } 76 while ( type == 'back' && color == 'transparent' && ( block = block.getParent() ) ); 77 78 // The box should never be transparent. 79 if ( !color || color == 'transparent' ) 80 color = '#ffffff'; 81 82 this._.panel._.iframe.getFrameDocument().getById( colorBoxId ).setStyle( 'background-color', color ); 55 83 } 56 84 }); … … 58 86 59 87 60 function renderColors( panel, type )88 function renderColors( panel, type, colorBoxId ) 61 89 { 62 90 var output = [], … … 101 129 102 130 colorStyle.childRule = type == 'back' ? 103 // It's better to apply background color as the innermost style. (#3599) 104 function(){ return false; } : 105 // Fore color style must be applied inside links instead of around it. 106 function( element ){ return element.getName() != 'a'; }; 131 function( element ) 132 { 133 // It's better to apply background color as the innermost style. (#3599) 134 // Except for "unstylable elements". (#6103) 135 return isUnstylable( element ); 136 } 137 : 138 function( element ) 139 { 140 // Fore color style must be applied inside links instead of around it. 141 return element.getName() != 'a' || isUnstylable( element ); 142 }; 107 143 108 144 new CKEDITOR.style( colorStyle, { color : color } ).apply( editor.document ); … … 122 158 '<tr>' + 123 159 '<td>' + 124 '<span class="cke_colorbox" style="background-color:#000"></span>' +160 '<span class="cke_colorbox" id="', colorBoxId, '"></span>' + 125 161 '</td>' + 126 162 '<td colspan=7 align=center>', … … 182 218 return output.join( '' ); 183 219 } 220 221 function isUnstylable( ele ) 222 { 223 return ( ele.getAttribute( 'contentEditable' ) == 'false' ) || ele.getAttribute( 'data-cke-nostyle' ); 224 } 184 225 } 185 226 }); -
CKEditor/trunk/_source/plugins/contextmenu/plugin.js
r6044 r6190 7 7 { 8 8 requires : [ 'menu' ], 9 10 // Make sure the base class (CKEDITOR.menu) is loaded before it (#3318). 11 onLoad : function() 12 { 13 CKEDITOR.plugins.contextMenu = CKEDITOR.tools.createClass( 14 { 15 base : CKEDITOR.menu, 16 17 $ : function( editor ) 18 { 19 this.base.call( this, editor, 20 { 21 panel: 22 { 23 className : editor.skinClass + ' cke_contextmenu', 24 attributes : 25 { 26 'aria-label' : editor.lang.contextmenu.options 27 } 28 } 29 }); 30 }, 31 32 proto : 33 { 34 addTarget : function( element, nativeContextMenuOnCtrl ) 35 { 36 // Opera doesn't support 'contextmenu' event, we have duo approaches employed here: 37 // 1. Inherit the 'button override' hack we introduced in v2 (#4530), while this require the Opera browser 38 // option 'Allow script to detect context menu/right click events' to be always turned on. 39 // 2. Considering the fact that ctrl/meta key is not been occupied 40 // for multiple range selecting (like Gecko), we use this key 41 // combination as a fallback for triggering context-menu. (#4530) 42 if ( CKEDITOR.env.opera && !( 'oncontextmenu' in document.body )) 43 { 44 var contextMenuOverrideButton; 45 element.on( 'mousedown', function( evt ) 46 { 47 evt = evt.data; 48 if ( evt.$.button != 2 ) 49 { 50 if ( evt.getKeystroke() == CKEDITOR.CTRL + 1 ) 51 element.fire( 'contextmenu', evt ); 52 return; 53 } 54 55 if ( nativeContextMenuOnCtrl 56 && ( CKEDITOR.env.mac ? evt.$.metaKey : evt.$.ctrlKey ) ) 57 return; 58 59 var target = evt.getTarget(); 60 61 if ( !contextMenuOverrideButton ) 62 { 63 var ownerDoc = target.getDocument(); 64 contextMenuOverrideButton = ownerDoc.createElement( 'input' ) ; 65 contextMenuOverrideButton.$.type = 'button' ; 66 ownerDoc.getBody().append( contextMenuOverrideButton ) ; 67 } 68 69 contextMenuOverrideButton.setAttribute( 'style', 'position:absolute;top:' + ( evt.$.clientY - 2 ) + 70 'px;left:' + ( evt.$.clientX - 2 ) + 71 'px;width:5px;height:5px;opacity:0.01' ); 72 73 } ); 74 75 element.on( 'mouseup', function ( evt ) 76 { 77 if ( contextMenuOverrideButton ) 78 { 79 contextMenuOverrideButton.remove(); 80 contextMenuOverrideButton = undefined; 81 // Simulate 'contextmenu' event. 82 element.fire( 'contextmenu', evt.data ); 83 } 84 } ); 85 } 86 87 element.on( 'contextmenu', function( event ) 88 { 89 var domEvent = event.data; 90 91 if ( nativeContextMenuOnCtrl && 92 // Safari on Windows always show 'ctrlKey' as true in 'contextmenu' event, 93 // which make this property unreliable. (#4826) 94 ( CKEDITOR.env.webkit ? holdCtrlKey : ( CKEDITOR.env.mac ? domEvent.$.metaKey : domEvent.$.ctrlKey ) ) ) 95 return; 96 97 98 // Cancel the browser context menu. 99 domEvent.preventDefault(); 100 101 var offsetParent = domEvent.getTarget().getDocument().getDocumentElement(), 102 offsetX = domEvent.$.clientX, 103 offsetY = domEvent.$.clientY; 104 105 CKEDITOR.tools.setTimeout( function() 106 { 107 this.open( offsetParent, null, offsetX, offsetY ); 108 }, 109 0, this ); 110 }, 111 this ); 112 113 if ( CKEDITOR.env.opera ) 114 { 115 // 'contextmenu' event triggered by Windows menu key is unpreventable, 116 // cancel the key event itself. (#6534) 117 element.on( 'keypress' , function ( evt ) 118 { 119 var domEvent = evt.data; 120 121 if ( domEvent.$.keyCode == 0 ) 122 domEvent.preventDefault(); 123 }); 124 } 125 126 if ( CKEDITOR.env.webkit ) 127 { 128 var holdCtrlKey, 129 onKeyDown = function( event ) 130 { 131 holdCtrlKey = CKEDITOR.env.mac ? event.data.$.metaKey : event.data.$.ctrlKey ; 132 }, 133 resetOnKeyUp = function() 134 { 135 holdCtrlKey = 0; 136 }; 137 138 element.on( 'keydown', onKeyDown ); 139 element.on( 'keyup', resetOnKeyUp ); 140 element.on( 'contextmenu', resetOnKeyUp ); 141 } 142 }, 143 144 open : function( offsetParent, corner, offsetX, offsetY ) 145 { 146 this.editor.focus(); 147 offsetParent = offsetParent || CKEDITOR.document.getDocumentElement(); 148 this.show( offsetParent, corner, offsetX, offsetY ); 149 } 150 } 151 }); 152 }, 9 153 10 154 beforeInit : function( editor ) … … 16 160 exec : function() 17 161 { 18 editor.contextMenu. show( editor.document.getBody() );162 editor.contextMenu.open( editor.document.getBody() ); 19 163 } 20 164 }); 21 }22 });23 24 CKEDITOR.plugins.contextMenu = CKEDITOR.tools.createClass(25 {26 $ : function( editor )27 {28 this.id = CKEDITOR.tools.getNextId();29 this.editor = editor;30 this._.listeners = [];31 this._.functionId = CKEDITOR.tools.addFunction( function( commandName )32 {33 this._.panel.hide();34 editor.focus();35 editor.execCommand( commandName );36 },37 this);38 39 this.definition =40 {41 panel:42 {43 className : editor.skinClass + ' cke_contextmenu',44 attributes :45 {46 'aria-label' : editor.lang.contextmenu.options47 }48 }49 };50 },51 52 _ :53 {54 onMenu : function( offsetParent, corner, offsetX, offsetY )55 {56 var menu = this._.menu,57 editor = this.editor;58 59 if ( menu )60 {61 menu.hide();62 menu.removeAll();63 }64 else65 {66 menu = this._.menu = new CKEDITOR.menu( editor, this.definition );67 menu.onClick = CKEDITOR.tools.bind( function( item )68 {69 menu.hide();70 71 if ( item.onClick )72 item.onClick();73 else if ( item.command )74 editor.execCommand( item.command );75 76 }, this );77 78 menu.onEscape = function( keystroke )79 {80 var parent = this.parent;81 // 1. If it's sub-menu, restore the last focused item82 // of upper level menu.83 // 2. In case of a top-menu, close it.84 if ( parent )85 {86 parent._.panel.hideChild();87 // Restore parent block item focus.88 var parentBlock = parent._.panel._.panel._.currentBlock,89 parentFocusIndex = parentBlock._.focusIndex;90 parentBlock._.markItem( parentFocusIndex );91 }92 else if ( keystroke == 27 )93 {94 this.hide();95 editor.focus();96 }97 return false;98 };99 }100 101 var listeners = this._.listeners,102 includedItems = [];103 104 var selection = this.editor.getSelection(),105 element = selection && selection.getStartElement();106 107 menu.onHide = CKEDITOR.tools.bind( function()108 {109 menu.onHide = null;110 111 if ( CKEDITOR.env.ie )112 {113 var selection = editor.getSelection();114 selection && selection.unlock();115 }116 117 this.onHide && this.onHide();118 },119 this );120 121 // Call all listeners, filling the list of items to be displayed.122 for ( var i = 0 ; i < listeners.length ; i++ )123 {124 var listenerItems = listeners[ i ]( element, selection );125 126 if ( listenerItems )127 {128 for ( var itemName in listenerItems )129 {130 var item = this.editor.getMenuItem( itemName );131 132 if ( item )133 {134 item.state = listenerItems[ itemName ];135 menu.add( item );136 }137 }138 }139 }140 141 // Don't show context menu with zero items.142 menu.items.length && menu.show( offsetParent, corner || ( editor.lang.dir == 'rtl' ? 2 : 1 ), offsetX, offsetY );143 }144 },145 146 proto :147 {148 addTarget : function( element, nativeContextMenuOnCtrl )149 {150 151 // For browsers (Opera <=10a) that doesn't support 'contextmenu' event, we have duo approaches employed here:152 // 1. Inherit the 'button override' hack we introduced in v2 (#4530) (In Opera browser, this require the153 // option 'Allow script to detect context menu/right click events' to be always turned on).154 // 2. Considering the fact that ctrl/meta key is not been occupied155 // for multiple range selecting (like Gecko), we use this key156 // combination as a fallback for triggering context-menu. (#4530)157 if ( CKEDITOR.env.opera && !( 'oncontextmenu' in document.body ) )158 {159 var contextMenuOverrideButton;160 element.on( 'mousedown', function( evt )161 {162 evt = evt.data;163 if ( evt.$.button != 2 )164 {165 if ( evt.getKeystroke() == CKEDITOR.CTRL + 1 )166 element.fire( 'contextmenu', evt );167 return;168 }169 170 if ( nativeContextMenuOnCtrl171 && ( CKEDITOR.env.mac ? evt.$.metaKey : evt.$.ctrlKey ) )172 return;173 174 var target = evt.getTarget();175 176 if ( !contextMenuOverrideButton )177 {178 var ownerDoc = target.getDocument();179 contextMenuOverrideButton = ownerDoc.createElement( 'input' ) ;180 contextMenuOverrideButton.$.type = 'button' ;181 ownerDoc.getBody().append( contextMenuOverrideButton ) ;182 }183 184 contextMenuOverrideButton.setAttribute( 'style', 'position:absolute;top:' + ( evt.$.clientY - 2 ) +185 'px;left:' + ( evt.$.clientX - 2 ) +186 'px;width:5px;height:5px;opacity:0.01' );187 188 } );189 190 element.on( 'mouseup', function ( evt )191 {192 if ( contextMenuOverrideButton )193 {194 contextMenuOverrideButton.remove();195 contextMenuOverrideButton = undefined;196 // Simulate 'contextmenu' event.197 element.fire( 'contextmenu', evt.data );198 }199 } );200 }201 202 element.on( 'contextmenu', function( event )203 {204 var domEvent = event.data;205 206 if ( nativeContextMenuOnCtrl &&207 // Safari on Windows always show 'ctrlKey' as true in 'contextmenu' event,208 // which make this property unreliable. (#4826)209 ( CKEDITOR.env.webkit ? holdCtrlKey : ( CKEDITOR.env.mac ? domEvent.$.metaKey : domEvent.$.ctrlKey ) ) )210 return;211 212 213 // Cancel the browser context menu.214 domEvent.preventDefault();215 216 var offsetParent = domEvent.getTarget().getDocument().getDocumentElement(),217 offsetX = domEvent.$.clientX,218 offsetY = domEvent.$.clientY;219 220 CKEDITOR.tools.setTimeout( function()221 {222 this.show( offsetParent, null, offsetX, offsetY );223 },224 0, this );225 },226 this );227 228 if ( CKEDITOR.env.opera )229 {230 // 'contextmenu' event triggered by Windows menu key is unpreventable,231 // cancel the key event itself. (#6534)232 element.on( 'keypress' , function ( evt )233 {234 var domEvent = evt.data;235 236 if ( domEvent.$.keyCode === 0 )237 domEvent.preventDefault();238 });239 }240 241 if ( CKEDITOR.env.webkit )242 {243 var holdCtrlKey,244 onKeyDown = function( event )245 {246 holdCtrlKey = CKEDITOR.env.mac ? event.data.$.metaKey : event.data.$.ctrlKey ;247 },248 resetOnKeyUp = function()249 {250 holdCtrlKey = 0;251 };252 253 element.on( 'keydown', onKeyDown );254 element.on( 'keyup', resetOnKeyUp );255 element.on( 'contextmenu', resetOnKeyUp );256 }257 },258 259 addListener : function( listenerFn )260 {261 this._.listeners.push( listenerFn );262 },263 264 show : function( offsetParent, corner, offsetX, offsetY )265 {266 this.editor.focus();267 268 // Selection will be unavailable after context menu shows up269 // in IE, lock it now.270 if ( CKEDITOR.env.ie )271 {272 var selection = this.editor.getSelection();273 selection && selection.lock();274 }275 276 this._.onMenu( offsetParent || CKEDITOR.document.getDocumentElement(), corner, offsetX || 0, offsetY || 0 );277 }278 165 } 279 166 }); -
CKEditor/trunk/_source/plugins/dialog/plugin.js
r6086 r6190 106 106 { 107 107 // Load the dialog definition. 108 var definition = CKEDITOR.dialog._.dialogDefinitions[ dialogName ]; 108 var definition = CKEDITOR.dialog._.dialogDefinitions[ dialogName ], 109 defaultDefinition = CKEDITOR.tools.clone( defaultDialogDefinition ), 110 buttonsOrder = editor.config.dialog_buttonsOrder || 'OS', 111 dir = editor.lang.dir; 112 113 if ( ( buttonsOrder == 'OS' && CKEDITOR.env.mac ) || // The buttons in MacOS Apps are in reverse order (#4750) 114 ( buttonsOrder == 'rtl' && dir == 'ltr' ) || 115 ( buttonsOrder == 'ltr' && dir == 'rtl' ) ) 116 defaultDefinition.buttons.reverse(); 117 109 118 110 119 // Completes the definition with the default values. 111 definition = CKEDITOR.tools.extend( definition( editor ), defaultD ialogDefinition );120 definition = CKEDITOR.tools.extend( definition( editor ), defaultDefinition ); 112 121 113 122 // Clone a functionally independent copy for this dialog. … … 117 126 // functions. 118 127 definition = new definitionObject( this, definition ); 119 120 128 121 129 var doc = CKEDITOR.document; … … 131 139 contentSize : { width : 0, height : 0 }, 132 140 size : { width : 0, height : 0 }, 133 updateSize : false,134 141 contents : {}, 135 142 buttons : {}, … … 180 187 } 181 188 , editor ).definition; 189 190 var tabsToRemove = {}; 191 // Cache tabs that should be removed. 192 if ( !( 'removeDialogTabs' in editor._ ) && editor.config.removeDialogTabs ) 193 { 194 var removeContents = editor.config.removeDialogTabs.split( ';' ); 195 196 for ( i = 0; i < removeContents.length; i++ ) 197 { 198 var parts = removeContents[ i ].split( ':' ); 199 if ( parts.length == 2 ) 200 { 201 var removeDialogName = parts[ 0 ]; 202 if ( !tabsToRemove[ removeDialogName ] ) 203 tabsToRemove[ removeDialogName ] = []; 204 tabsToRemove[ removeDialogName ].push( parts[ 1 ] ); 205 } 206 } 207 editor._.removeDialogTabs = tabsToRemove; 208 } 209 210 // Remove tabs of this dialog. 211 if ( editor._.removeDialogTabs && ( tabsToRemove = editor._.removeDialogTabs[ dialogName ] ) ) 212 { 213 for ( i = 0; i < tabsToRemove.length; i++ ) 214 definition.removeContents( tabsToRemove[ i ] ); 215 } 216 182 217 // Initialize load, show, hide, ok and cancel events. 183 218 if ( definition.onLoad ) … … 602 637 603 638 this._.contentSize = { width : width, height : height }; 604 this._.updateSize = true;605 639 }; 606 640 })(), … … 614 648 getSize : function() 615 649 { 616 if ( !this._.updateSize )617 return this._.size;618 650 var element = this._.element.getFirst(); 619 var size = this._.size = { width : element.$.offsetWidth || 0, height : element.$.offsetHeight || 0}; 620 621 // If either the offsetWidth or offsetHeight is 0, the element isn't visible. 622 this._.updateSize = !size.width || !size.height; 623 624 return size; 651 return { width : element.$.offsetWidth || 0, height : element.$.offsetHeight || 0}; 625 652 }, 626 653 … … 630 657 * @param {Number} x The target x-coordinate. 631 658 * @param {Number} y The target y-coordinate. 659 * @param {Boolean} save Flag indicate whether the dialog position should be remembered on next open up. 632 660 * @example 633 661 * dialogObj.move( 10, 40 ); … … 636 664 { 637 665 var isFixed; 638 return function( x, y )666 return function( x, y, save ) 639 667 { 640 668 // The dialog may be fixed positioned or absolute positioned. Ask the … … 663 691 'top' : ( y > 0 ? y : 0 ) + 'px' 664 692 }); 693 694 save && ( this._.moved = 1 ); 665 695 }; 666 696 })(), … … 696 726 element.setStyle( 'display', 'block' ); 697 727 728 CKEDITOR.ui.fire( 'ready', this ); 698 729 // FIREFOX BUG: Fix vanishing caret for Firefox 2 or Gecko 1.8. 699 730 if ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 ) … … 709 740 710 741 // First, set the dialog to an appropriate size. 711 this.resize( definition.minWidth, definition.minHeight ); 742 this.resize( this._.contentSize && this._.contentSize.width || definition.minWidth, 743 this._.contentSize && this._.contentSize.height || definition.minHeight ); 712 744 713 745 // Reset all inputs back to their default value. … … 754 786 this._.hasFocus = false; 755 787 756 // Rearrange the dialog to the middle of the window.757 788 CKEDITOR.tools.setTimeout( function() 758 789 { 759 var viewSize = CKEDITOR.document.getWindow().getViewPaneSize(); 760 var dialogSize = this.getSize(); 761 762 // We're using definition size for initial position because of 763 // offten corrupted data in offsetWidth at this point. (#4084) 764 this.move( ( viewSize.width - definition.minWidth ) / 2, ( viewSize.height - dialogSize.height ) / 2 ); 765 790 this.layout(); 766 791 this.parts.dialog.setStyle( 'visibility', '' ); 767 792 … … 776 801 }, 777 802 100, this ); 803 }, 804 805 /** 806 * Rearrange the dialog to its previous position or the middle of the window. 807 * @since 3.5 808 */ 809 layout : function() 810 { 811 var viewSize = CKEDITOR.document.getWindow().getViewPaneSize(), 812 dialogSize = this.getSize(); 813 814 this.move( this._.moved ? this._.position.x : ( viewSize.width - dialogSize.width ) / 2, 815 this._.moved ? this._.position.y : ( viewSize.height - dialogSize.height ) / 2 ); 778 816 }, 779 817 … … 904 942 expand : !!contents.expand, 905 943 padding : contents.padding, 906 style : contents.style || 'width: 100%; height: 100%;'944 style : contents.style || 'width: 100%;' 907 945 }, pageHtml ); 908 946 … … 1343 1381 }; 1344 1382 1345 // The buttons in MacOS Apps are in reverse order #47501346 CKEDITOR.env.mac && defaultDialogDefinition.buttons.reverse();1347 1348 1383 // Tool function used to return an item from an array based on its id 1349 1384 // property. … … 1614 1649 realX = - margins[3]; 1615 1650 else if ( abstractDialogCoords.x - margins[1] > viewPaneSize.width - dialogSize.width - magnetDistance ) 1616 realX = viewPaneSize.width - dialogSize.width + margins[1];1651 realX = viewPaneSize.width - dialogSize.width + ( editor.lang.dir == 'rtl' ? 0 : margins[1] ); 1617 1652 else 1618 1653 realX = abstractDialogCoords.x; … … 1625 1660 realY = abstractDialogCoords.y; 1626 1661 1627 dialog.move( realX, realY );1662 dialog.move( realX, realY, 1 ); 1628 1663 1629 1664 evt.data.preventDefault(); … … 1645 1680 dialog.parts.title.on( 'mousedown', function( evt ) 1646 1681 { 1647 dialog._.updateSize = true;1648 1649 1682 lastCoords = { x : evt.data.$.screenX, y : evt.data.$.screenY }; 1650 1683 … … 1666 1699 function initResizeHandles( dialog ) 1667 1700 { 1668 var definition = dialog.definition, 1669 minWidth = definition.minWidth || 0, 1670 minHeight = definition.minHeight || 0, 1671 resizable = definition.resizable, 1672 margins = dialog.getParentEditor().skin.margins || [ 0, 0, 0, 0 ]; 1673 1674 function topSizer( coords, dy ) 1675 { 1676 coords.y += dy; 1677 } 1678 1679 function rightSizer( coords, dx ) 1680 { 1681 coords.x2 += dx; 1682 } 1683 1684 function bottomSizer( coords, dy ) 1685 { 1686 coords.y2 += dy; 1687 } 1688 1689 function leftSizer( coords, dx ) 1690 { 1691 coords.x += dx; 1692 } 1693 1694 var lastCoords = null, 1695 abstractDialogCoords = null, 1696 magnetDistance = dialog._.editor.config.magnetDistance, 1697 parts = [ 'tl', 't', 'tr', 'l', 'r', 'bl', 'b', 'br' ]; 1698 1699 function mouseDownHandler( evt ) 1700 { 1701 var partName = evt.listenerData.part, size = dialog.getSize(); 1702 abstractDialogCoords = dialog.getPosition(); 1703 CKEDITOR.tools.extend( abstractDialogCoords, 1704 { 1705 x2 : abstractDialogCoords.x + size.width, 1706 y2 : abstractDialogCoords.y + size.height 1707 } ); 1708 lastCoords = { x : evt.data.$.screenX, y : evt.data.$.screenY }; 1709 1710 CKEDITOR.document.on( 'mousemove', mouseMoveHandler, dialog, { part : partName } ); 1711 CKEDITOR.document.on( 'mouseup', mouseUpHandler, dialog, { part : partName } ); 1701 var def = dialog.definition, 1702 resizable = def.resizable; 1703 1704 if ( resizable == CKEDITOR.DIALOG_RESIZE_NONE ) 1705 return; 1706 1707 var editor = dialog.getParentEditor(); 1708 var wrapperWidth, wrapperHeight, viewSize, origin, startSize; 1709 1710 function positionDialog( right ) 1711 { 1712 // Maintain righthand sizing in RTL. 1713 if ( dialog._.moved && editor.lang.dir == 'rtl' ) 1714 { 1715 var element = dialog._.element.getFirst(); 1716 element.setStyle( 'right', right + "px" ); 1717 element.removeStyle( 'left' ); 1718 } 1719 else if ( !dialog._.moved ) 1720 dialog.layout(); 1721 } 1722 1723 var mouseDownFn = CKEDITOR.tools.addFunction( function( $event ) 1724 { 1725 startSize = dialog.getSize(); 1726 1727 // Calculate the offset between content and chrome size. 1728 wrapperHeight = startSize.height - dialog.parts.contents.getSize( 'height', ! ( CKEDITOR.env.gecko || CKEDITOR.env.opera || CKEDITOR.env.ie && CKEDITOR.env.quirks ) ); 1729 wrapperWidth = startSize.width - dialog.parts.contents.getSize( 'width', 1 ); 1730 1731 origin = { x : $event.screenX, y : $event.screenY }; 1732 1733 viewSize = CKEDITOR.document.getWindow().getViewPaneSize(); 1734 1735 CKEDITOR.document.on( 'mousemove', mouseMoveHandler ); 1736 CKEDITOR.document.on( 'mouseup', mouseUpHandler ); 1712 1737 1713 1738 if ( CKEDITOR.env.ie6Compat ) 1714 1739 { 1715 1740 var coverDoc = currentCover.getChild( 0 ).getFrameDocument(); 1716 coverDoc.on( 'mousemove', mouseMoveHandler, dialog, { part : partName } ); 1717 coverDoc.on( 'mouseup', mouseUpHandler, dialog, { part : partName } ); 1718 } 1741 coverDoc.on( 'mousemove', mouseMoveHandler ); 1742 coverDoc.on( 'mouseup', mouseUpHandler ); 1743 } 1744 1745 $event.preventDefault && $event.preventDefault(); 1746 }); 1747 1748 // Prepend the grip to the dialog. 1749 dialog.on( 'load', function() 1750 { 1751 var direction = ''; 1752 if ( resizable == CKEDITOR.DIALOG_RESIZE_WIDTH ) 1753 direction = ' cke_resizer_horizontal'; 1754 else if ( resizable == CKEDITOR.DIALOG_RESIZE_HEIGHT ) 1755 direction = ' cke_resizer_vertical'; 1756 var resizer = CKEDITOR.dom.element.createFromHtml( '<div class="cke_resizer' + direction + '"' + 1757 ' title="' + CKEDITOR.tools.htmlEncode( editor.lang.resize ) + '"' + 1758 ' onmousedown="CKEDITOR.tools.callFunction(' + mouseDownFn + ', event )"></div>' ); 1759 dialog.parts.footer.append( resizer, 1 ); 1760 }); 1761 editor.on( 'destroy', function() { CKEDITOR.tools.removeFunction( mouseDownFn ); } ); 1762 1763 function mouseMoveHandler( evt ) 1764 { 1765 var rtl = editor.lang.dir == 'rtl', 1766 dx = ( evt.data.$.screenX - origin.x ) * ( rtl ? -1 : 1 ), 1767 dy = evt.data.$.screenY - origin.y, 1768 width = startSize.width, 1769 height = startSize.height, 1770 internalWidth = width + dx * ( dialog._.moved ? 1 : 2 ), 1771 internalHeight = height + dy * ( dialog._.moved ? 1 : 2 ), 1772 element = dialog._.element.getFirst(), 1773 right = rtl && element.getComputedStyle( 'right' ), 1774 position = dialog.getPosition(); 1775 1776 // IE might return "auto", we need exact position. 1777 if ( right ) 1778 right = right == 'auto' ? viewSize.width - ( position.x || 0 ) - element.getSize( 'width' ) : parseInt( right, 10 ); 1779 1780 if ( position.y + internalHeight > viewSize.height ) 1781 internalHeight = viewSize.height - position.y; 1782 1783 if ( ( rtl ? right : position.x ) + internalWidth > viewSize.width ) 1784 internalWidth = viewSize.width - ( rtl ? right : position.x ); 1785 1786 // Make sure the dialog will not be resized to the wrong side when it's in the leftmost position for RTL. 1787 if ( ( resizable == CKEDITOR.DIALOG_RESIZE_WIDTH || resizable == CKEDITOR.DIALOG_RESIZE_BOTH ) && !( rtl && dx > 0 && !position.x ) ) 1788 width = Math.max( def.minWidth || 0, internalWidth - wrapperWidth ); 1789 1790 if ( resizable == CKEDITOR.DIALOG_RESIZE_HEIGHT || resizable == CKEDITOR.DIALOG_RESIZE_BOTH ) 1791 height = Math.max( def.minHeight || 0, internalHeight - wrapperHeight ); 1792 1793 dialog.resize( width, height ); 1794 // The right property might get broken during resizing, so computing it before the resizing. 1795 positionDialog( right ); 1719 1796 1720 1797 evt.data.preventDefault(); 1721 1798 } 1722 1799 1723 function mouseMoveHandler( evt ) 1724 { 1725 var x = evt.data.$.screenX, 1726 y = evt.data.$.screenY, 1727 dx = x - lastCoords.x, 1728 dy = y - lastCoords.y, 1729 viewPaneSize = CKEDITOR.document.getWindow().getViewPaneSize(), 1730 partName = evt.listenerData.part; 1731 1732 if ( partName.search( 't' ) != -1 ) 1733 topSizer( abstractDialogCoords, dy ); 1734 if ( partName.search( 'l' ) != -1 ) 1735 leftSizer( abstractDialogCoords, dx ); 1736 if ( partName.search( 'b' ) != -1 ) 1737 bottomSizer( abstractDialogCoords, dy ); 1738 if ( partName.search( 'r' ) != -1 ) 1739 rightSizer( abstractDialogCoords, dx ); 1740 1741 lastCoords = { x : x, y : y }; 1742 1743 var realX, realY, realX2, realY2; 1744 1745 if ( abstractDialogCoords.x + margins[3] < magnetDistance ) 1746 realX = - margins[3]; 1747 else if ( partName.search( 'l' ) != -1 && abstractDialogCoords.x2 - abstractDialogCoords.x < minWidth + magnetDistance ) 1748 realX = abstractDialogCoords.x2 - minWidth; 1749 else 1750 realX = abstractDialogCoords.x; 1751 1752 if ( abstractDialogCoords.y + margins[0] < magnetDistance ) 1753 realY = - margins[0]; 1754 else if ( partName.search( 't' ) != -1 && abstractDialogCoords.y2 - abstractDialogCoords.y < minHeight + magnetDistance ) 1755 realY = abstractDialogCoords.y2 - minHeight; 1756 else 1757 realY = abstractDialogCoords.y; 1758 1759 if ( abstractDialogCoords.x2 - margins[1] > viewPaneSize.width - magnetDistance ) 1760 realX2 = viewPaneSize.width + margins[1] ; 1761 else if ( partName.search( 'r' ) != -1 && abstractDialogCoords.x2 - abstractDialogCoords.x < minWidth + magnetDistance ) 1762 realX2 = abstractDialogCoords.x + minWidth; 1763 else 1764 realX2 = abstractDialogCoords.x2; 1765 1766 if ( abstractDialogCoords.y2 - margins[2] > viewPaneSize.height - magnetDistance ) 1767 realY2= viewPaneSize.height + margins[2] ; 1768 else if ( partName.search( 'b' ) != -1 && abstractDialogCoords.y2 - abstractDialogCoords.y < minHeight + magnetDistance ) 1769 realY2 = abstractDialogCoords.y + minHeight; 1770 else 1771 realY2 = abstractDialogCoords.y2 ; 1772 1773 dialog.move( realX, realY ); 1774 dialog.resize( realX2 - realX, realY2 - realY ); 1775 1776 evt.data.preventDefault(); 1777 } 1778 1779 function mouseUpHandler( evt ) 1800 function mouseUpHandler() 1780 1801 { 1781 1802 CKEDITOR.document.removeListener( 'mouseup', mouseUpHandler ); … … 1788 1809 coverDoc.removeListener( 'mousemove', mouseMoveHandler ); 1789 1810 } 1790 } 1791 1792 // TODO : Simplify the resize logic, having just a single resize grip <div>. 1793 // var widthTest = /[lr]/, 1794 // heightTest = /[tb]/; 1795 // for ( var i = 0 ; i < parts.length ; i++ ) 1796 // { 1797 // var element = dialog.parts[ parts[i] + '_resize' ]; 1798 // if ( resizable == CKEDITOR.DIALOG_RESIZE_NONE || 1799 // resizable == CKEDITOR.DIALOG_RESIZE_HEIGHT && widthTest.test( parts[i] ) || 1800 // resizable == CKEDITOR.DIALOG_RESIZE_WIDTH && heightTest.test( parts[i] ) ) 1801 // { 1802 // element.hide(); 1803 // continue; 1804 // } 1805 // element.on( 'mousedown', mouseDownHandler, dialog, { part : parts[i] } ); 1806 // } 1811 1812 // Switch back to use the left property, if RTL is used. 1813 if ( editor.lang.dir == 'rtl' ) 1814 { 1815 var element = dialog._.element.getFirst(), 1816 left = element.getComputedStyle( 'left' ); 1817 1818 // IE might return "auto", we need exact position. 1819 if ( left == 'auto' ) 1820 left = viewSize.width - parseInt( element.getStyle( 'right' ), 10 ) - dialog.getSize().width; 1821 else 1822 left = parseInt( left, 10 ); 1823 1824 element.removeStyle( 'right' ); 1825 // Make sure the left property gets applied, even if it is the same as previously. 1826 dialog._.position.x += 1; 1827 dialog.move( left, dialog._.position.y ); 1828 } 1829 } 1807 1830 } 1808 1831 … … 2993 3016 2994 3017 /** 3018 * The guildeline to follow when generating the dialog buttons. There are 3 possible options: 3019 * <ul> 3020 * <li>'OS' - the buttons will be displayed in the default order of the user's OS;</li> 3021 * <li>'ltr' - for Left-To-Right order;</li> 3022 * <li>'rtl' - for Right-To-Left order.</li> 3023 * </ul> 3024 * @name CKEDITOR.config.dialog_buttonsOrder 3025 * @type String 3026 * @default 'OS' 3027 * @since 3.5 3028 * @example 3029 * config.dialog_buttonsOrder = 'rtl'; 3030 */ 3031 3032 /** 3033 * The dialog contents to removed. It's a string composed by dialog name and tab name with a colon between them. 3034 * Separate each pair with semicolon (see example). 3035 * <b>Note: All names are case-sensitive.</b> 3036 * <b>Note: Be cautious when specifying dialog tabs that are mandatory, like "info", dialog functionality might be broken because of this!<b> 3037 * @name CKEDITOR.config.removeDialogTabs 3038 * @type String 3039 * @since 3.5 3040 * @default '' 3041 * @example 3042 * config.removeDialogTabs = 'flash:advanced;image:Link'; 3043 */ 3044 3045 /** 2995 3046 * Fired when a dialog definition is about to be used to create a dialog into 2996 3047 * an editor instance. This event makes it possible to customize the definition -
CKEditor/trunk/_source/plugins/div/plugin.js
r5949 r6190 38 38 div = blockLimit.is( 'div' ) && blockLimit; 39 39 40 if ( div && !div. getAttribute( '_cke_div_added' ) )40 if ( div && !div.data( 'cke-div-added' ) ) 41 41 { 42 42 toRemove.push( div ); 43 div. setAttribute( '_cke_div_added' );43 div.data( 'cke-div-added' ); 44 44 } 45 45 } -
CKEditor/trunk/_source/plugins/elementspath/plugin.js
r6182 r6190 20 20 var element = CKEDITOR.document.getById( idBase + '0' ); 21 21 22 if ( element ) 23 element.focus(); 22 // Make the first button focus accessible for IE. (#3417) 23 // Adobe AIR instead need while of delay. 24 element && element.focus( CKEDITOR.env.ie || CKEDITOR.env.air ); 24 25 } 25 26 } … … 57 58 }); 58 59 60 function onClick( elementIndex ) 61 { 62 editor.focus(); 63 var element = editor._.elementsPath.list[ elementIndex ]; 64 editor.getSelection().selectElement( element ); 65 } 66 67 var onClickHanlder = CKEDITOR.tools.addFunction( onClick ); 68 69 var onKeyDownHandler = CKEDITOR.tools.addFunction( function( elementIndex, ev ) 70 { 71 var idBase = editor._.elementsPath.idBase, 72 element; 73 74 ev = new CKEDITOR.dom.event( ev ); 75 76 var rtl = editor.lang.dir == 'rtl'; 77 switch ( ev.getKeystroke() ) 78 { 79 case rtl ? 39 : 37 : // LEFT-ARROW 80 case 9 : // TAB 81 element = CKEDITOR.document.getById( idBase + ( elementIndex + 1 ) ); 82 if ( !element ) 83 element = CKEDITOR.document.getById( idBase + '0' ); 84 element.focus(); 85 return false; 86 87 case rtl ? 37 : 39 : // RIGHT-ARROW 88 case CKEDITOR.SHIFT + 9 : // SHIFT + TAB 89 element = CKEDITOR.document.getById( idBase + ( elementIndex - 1 ) ); 90 if ( !element ) 91 element = CKEDITOR.document.getById( idBase + ( editor._.elementsPath.list.length - 1 ) ); 92 element.focus(); 93 return false; 94 95 case 27 : // ESC 96 editor.focus(); 97 return false; 98 99 case 13 : // ENTER // Opera 100 case 32 : // SPACE 101 onClick( elementIndex ); 102 return false; 103 } 104 return true; 105 }); 106 59 107 editor.on( 'selectionChange', function( ev ) 60 108 { … … 83 131 var index = elementsList.push( element ) - 1; 84 132 var name; 85 if ( element. getAttribute( '_cke_real_element_type' ) )86 name = element. getAttribute( '_cke_real_element_type' );133 if ( element.data( 'cke-real-element-type' ) ) 134 name = element.data( 'cke-real-element-type' ); 87 135 else 88 136 name = element.getName(); … … 113 161 ' onfocus="event.preventBubble();"' : '' ) + 114 162 ' hidefocus="true" ' + 115 ' onkeydown="return CKEDITOR. _.elementsPath.keydown(\'', editor.name, '\',', index, ', event);"' +163 ' onkeydown="return CKEDITOR.tools.callFunction(', onKeyDownHandler, ',', index, ', event );"' + 116 164 extra , 117 ' onclick=" return CKEDITOR._.elementsPath.click(\'', editor.name, '\',', index, ');"',165 ' onclick="CKEDITOR.tools.callFunction('+ onClickHanlder, ',', index, '); return false;"', 118 166 ' role="button" aria-labelledby="' + idBase + index + '_label">', 119 167 name, … … 129 177 } 130 178 131 getSpaceElement().setHtml( html.join('') + emptyHtml ); 179 var space = getSpaceElement(); 180 space.setHtml( html.join('') + emptyHtml ); 181 editor.fire( 'elementsPathUpdate', { space : space } ); 132 182 }); 133 183 … … 143 193 }); 144 194 })(); 145 146 /**147 * Handles the click on an element in the element path.148 * @private149 */150 CKEDITOR._.elementsPath =151 {152 click : function( instanceName, elementIndex )153 {154 var editor = CKEDITOR.instances[ instanceName ];155 editor.focus();156 157 var element = editor._.elementsPath.list[ elementIndex ];158 159 if ( element.is( 'body' ) )160 {161 var range = new CKEDITOR.dom.range( editor.document );162 range.selectNodeContents( element );163 range.select();164 }165 else166 editor.getSelection().selectElement( element );167 168 return false;169 },170 171 keydown : function( instanceName, elementIndex, ev )172 {173 var instance = CKEDITOR.ui.button._.instances[ elementIndex ];174 var editor = CKEDITOR.instances[ instanceName ];175 var idBase = editor._.elementsPath.idBase;176 177 var element;178 179 ev = new CKEDITOR.dom.event( ev );180 181 var rtl = editor.lang.dir == 'rtl';182 switch ( ev.getKeystroke() )183 {184 case rtl ? 39 : 37 : // LEFT-ARROW185 case 9 : // TAB186 element = CKEDITOR.document.getById( idBase + ( elementIndex + 1 ) );187 if ( !element )188 element = CKEDITOR.document.getById( idBase + '0' );189 element.focus();190 return false;191 192 case rtl ? 37 : 39 : // RIGHT-ARROW193 case CKEDITOR.SHIFT + 9 : // SHIFT + TAB194 element = CKEDITOR.document.getById( idBase + ( elementIndex - 1 ) );195 if ( !element )196 element = CKEDITOR.document.getById( idBase + ( editor._.elementsPath.list.length - 1 ) );197 element.focus();198 return false;199 200 case 27 : // ESC201 editor.focus();202 return false;203 204 case 13 : // ENTER // Opera205 case 32 : // SPACE206 this.click( instanceName, elementIndex );207 return false;208 209 //default :210 // alert( ev.getKeystroke() );211 }212 return true;213 }214 }; -
CKEditor/trunk/_source/plugins/fakeobjects/plugin.js
r5426 r6190 13 13 { 14 14 var attributes = element.attributes, 15 realHtml = attributes && attributes ._cke_realelement,15 realHtml = attributes && attributes[ 'data-cke-realelement' ], 16 16 realFragment = realHtml && new CKEDITOR.htmlParser.fragment.fromHtml( decodeURIComponent( realHtml ) ), 17 17 realElement = realFragment && realFragment.children[ 0 ]; … … 19 19 // If we have width/height in the element, we must move it into 20 20 // the real element. 21 if ( realElement && element.attributes ._cke_resizable)21 if ( realElement && element.attributes[ 'data-cke-resizable' ] ) 22 22 { 23 23 var style = element.attributes.style; … … 69 69 'class' : className, 70 70 src : CKEDITOR.getUrl( 'images/spacer.gif' ), 71 _cke_realelement: encodeURIComponent( realElement.getOuterHtml() ),72 _cke_real_node_type: realElement.type,71 'data-cke-realelement' : encodeURIComponent( realElement.getOuterHtml() ), 72 'data-cke-real-node-type' : realElement.type, 73 73 alt : lang[ realElementType ] || lang.unknown, 74 74 align : realElement.getAttribute( 'align' ) || '' … … 76 76 77 77 if ( realElementType ) 78 attributes ._cke_real_element_type= realElementType;78 attributes[ 'data-cke-real-element-type' ] = realElementType; 79 79 80 80 if ( isResizable ) 81 attributes ._cke_resizable= isResizable;81 attributes[ 'data-cke-resizable' ] = isResizable; 82 82 83 83 return this.document.createElement( 'img', { attributes : attributes } ); … … 97 97 'class' : className, 98 98 src : CKEDITOR.getUrl( 'images/spacer.gif' ), 99 _cke_realelement: encodeURIComponent( html ),100 _cke_real_node_type: realElement.type,99 'data-cke-realelement' : encodeURIComponent( html ), 100 'data-cke-real-node-type' : realElement.type, 101 101 alt : lang[ realElementType ] || lang.unknown, 102 102 align : realElement.attributes.align || '' … … 104 104 105 105 if ( realElementType ) 106 attributes ._cke_real_element_type= realElementType;106 attributes[ 'data-cke-real-element-type' ] = realElementType; 107 107 108 108 if ( isResizable ) 109 attributes ._cke_resizable= isResizable;109 attributes[ 'data-cke-resizable' ] = isResizable; 110 110 111 111 return new CKEDITOR.htmlParser.element( 'img', attributes ); … … 114 114 CKEDITOR.editor.prototype.restoreRealElement = function( fakeElement ) 115 115 { 116 if ( fakeElement. getAttribute( '_cke_real_node_type' ) != CKEDITOR.NODE_ELEMENT )116 if ( fakeElement.data( 'cke-real-node-type' ) != CKEDITOR.NODE_ELEMENT ) 117 117 return null; 118 118 119 119 return CKEDITOR.dom.element.createFromHtml( 120 decodeURIComponent( fakeElement. getAttribute( '_cke_realelement' ) ),120 decodeURIComponent( fakeElement.data( 'cke-realelement' ) ), 121 121 this.document ); 122 122 }; -
CKEditor/trunk/_source/plugins/flash/dialogs/flash.js
r5812 r6190 191 191 // Try to detect any embed or object tag that has Flash parameters. 192 192 var fakeImage = this.getSelectedElement(); 193 if ( fakeImage && fakeImage. getAttribute( '_cke_real_element_type' ) && fakeImage.getAttribute( '_cke_real_element_type' ) == 'flash' )193 if ( fakeImage && fakeImage.data( 'cke-real-element-type' ) && fakeImage.data( 'cke-real-element-type' ) == 'flash' ) 194 194 { 195 195 this.fakeImage = fakeImage; -
CKEditor/trunk/_source/plugins/flash/plugin.js
r5949 r6190 76 76 var element = evt.data.element; 77 77 78 if ( element.is( 'img' ) && element. getAttribute( '_cke_real_element_type' ) == 'flash' )78 if ( element.is( 'img' ) && element.data( 'cke-real-element-type' ) == 'flash' ) 79 79 evt.data.dialog = 'flash'; 80 80 }); … … 86 86 { 87 87 if ( element && element.is( 'img' ) && !element.isReadOnly() 88 && element. getAttribute( '_cke_real_element_type' ) == 'flash' )88 && element.data( 'cke-real-element-type' ) == 'flash' ) 89 89 return { flash : CKEDITOR.TRISTATE_OFF }; 90 90 }); -
CKEditor/trunk/_source/plugins/floatpanel/plugin.js
r6118 r6190 1 /*1 /* 2 2 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved. 3 3 For licensing, see LICENSE.html or http://ckeditor.com/license … … 306 306 this.allowBlur( true ); 307 307 }, 0, this); 308 }, 0, this);308 }, CKEDITOR.env.air ? 200 : 0, this); 309 309 this.visible = 1; 310 310 -
CKEditor/trunk/_source/plugins/forms/dialogs/button.js
r5949 r6190 53 53 { 54 54 this.setValue( 55 element. getAttribute( '_cke_saved_name' ) ||55 element.data( 'cke-saved-name' ) || 56 56 element.getAttribute( 'name' ) || 57 57 '' ); … … 62 62 63 63 if ( this.getValue() ) 64 element. setAttribute( '_cke_saved_name', this.getValue() );64 element.data( 'cke-saved-name', this.getValue() ); 65 65 else 66 66 { 67 element. removeAttribute( '_cke_saved_name');67 element.data( 'cke-saved-name', false ); 68 68 element.removeAttribute( 'name' ); 69 69 } -
CKEditor/trunk/_source/plugins/forms/dialogs/checkbox.js
r5949 r6190 52 52 { 53 53 this.setValue( 54 element. getAttribute( '_cke_saved_name' ) ||54 element.data( 'cke-saved-name' ) || 55 55 element.getAttribute( 'name' ) || 56 56 '' ); … … 62 62 // IE failed to update 'name' property on input elements, protect it now. 63 63 if ( this.getValue() ) 64 element. setAttribute( '_cke_saved_name', this.getValue() );64 element.data( 'cke-saved-name', this.getValue() ); 65 65 else 66 66 { 67 element. removeAttribute( '_cke_saved_name');67 element.data( 'cke-saved-name', false ); 68 68 element.removeAttribute( 'name' ); 69 69 } -
CKEditor/trunk/_source/plugins/forms/dialogs/form.js
r5626 r6190 85 85 setup : function( element ) 86 86 { 87 this.setValue( element. getAttribute( '_cke_saved_name' ) ||87 this.setValue( element.data( 'cke-saved-name' ) || 88 88 element.getAttribute( 'name' ) || 89 89 '' ); … … 92 92 { 93 93 if ( this.getValue() ) 94 element. setAttribute( '_cke_saved_name', this.getValue() );94 element.data( 'cke-saved-name', this.getValue() ); 95 95 else 96 96 { 97 element. removeAttribute( '_cke_saved_name');97 element.data( 'cke-saved-name', false ); 98 98 element.removeAttribute( 'name' ); 99 99 } -
CKEditor/trunk/_source/plugins/forms/dialogs/hiddenfield.js
r5548 r6190 18 18 element = selection.getSelectedElement(); 19 19 20 if ( element && element. getAttribute( '_cke_real_element_type' ) && element.getAttribute( '_cke_real_element_type' ) == 'hiddenfield' )20 if ( element && element.data( 'cke-real-element-type' ) && element.data( 'cke-real-element-type' ) == 'hiddenfield' ) 21 21 { 22 22 this.hiddenField = element; … … 60 60 { 61 61 this.setValue( 62 element. getAttribute( '_cke_saved_name' ) ||62 element.data( 'cke-saved-name' ) || 63 63 element.getAttribute( 'name' ) || 64 64 '' ); -
CKEditor/trunk/_source/plugins/forms/dialogs/radio.js
r5949 r6190 52 52 { 53 53 this.setValue( 54 element. getAttribute( '_cke_saved_name' ) ||54 element.data( 'cke-saved-name' ) || 55 55 element.getAttribute( 'name' ) || 56 56 '' ); … … 61 61 62 62 if ( this.getValue() ) 63 element. setAttribute( '_cke_saved_name', this.getValue() );63 element.data( 'cke-saved-name', this.getValue() ); 64 64 else 65 65 { 66 element. removeAttribute( '_cke_saved_name');66 element.data( 'cke-saved-name', false ); 67 67 element.removeAttribute( 'name' ); 68 68 } -
CKEditor/trunk/_source/plugins/forms/dialogs/select.js
r5861 r6190 194 194 { 195 195 if ( name == 'clear' ) 196 this.setValue( this[ 'default'] || '' );196 this.setValue( this[ 'default' ] || '' ); 197 197 else if ( name == 'select' ) 198 198 { 199 199 this.setValue( 200 element. getAttribute( '_cke_saved_name' ) ||200 element.data( 'cke-saved-name' ) || 201 201 element.getAttribute( 'name' ) || 202 202 '' ); … … 206 206 { 207 207 if ( this.getValue() ) 208 element. setAttribute( '_cke_saved_name', this.getValue() );208 element.data( 'cke-saved-name', this.getValue() ); 209 209 else 210 210 { 211 element. removeAttribute( '_cke_saved_name' );211 element.data( 'cke-saved-name', false ); 212 212 element.removeAttribute( 'name' ); 213 213 } -
CKEditor/trunk/_source/plugins/forms/dialogs/textarea.js
r5206 r6190 51 51 { 52 52 this.setValue( 53 element. getAttribute( '_cke_saved_name' ) ||53 element.data( 'cke-saved-name' ) || 54 54 element.getAttribute( 'name' ) || 55 55 '' ); … … 58 58 { 59 59 if ( this.getValue() ) 60 element. setAttribute( '_cke_saved_name', this.getValue() );60 element.data( 'cke-saved-name', this.getValue() ); 61 61 else 62 62 { 63 element. removeAttribute( '_cke_saved_name');63 element.data( 'cke-saved-name', false ); 64 64 element.removeAttribute( 'name' ); 65 65 } -
CKEditor/trunk/_source/plugins/forms/dialogs/textfield.js
r5782 r6190 99 99 { 100 100 this.setValue( 101 element. getAttribute( '_cke_saved_name' ) ||101 element.data( 'cke-saved-name' ) || 102 102 element.getAttribute( 'name' ) || 103 103 '' ); … … 108 108 109 109 if ( this.getValue() ) 110 element. setAttribute( '_cke_saved_name', this.getValue() );110 element.data( 'cke-saved-name', this.getValue() ); 111 111 else 112 112 { 113 element. removeAttribute( '_cke_saved_name');113 element.data( 'cke-saved-name', false ); 114 114 element.removeAttribute( 'name' ); 115 115 } -
CKEditor/trunk/_source/plugins/forms/plugin.js
r5949 r6190 168 168 } 169 169 170 if ( name == 'img' && element. getAttribute( '_cke_real_element_type' ) == 'hiddenfield' )170 if ( name == 'img' && element.data( 'cke-real-element-type' ) == 'hiddenfield' ) 171 171 return { hiddenfield : CKEDITOR.TRISTATE_OFF }; 172 172 } … … 184 184 else if ( element.is( 'textarea' ) ) 185 185 evt.data.dialog = 'textarea'; 186 else if ( element.is( 'img' ) && element. getAttribute( '_cke_real_element_type' ) == 'hiddenfield' )186 else if ( element.is( 'img' ) && element.data( 'cke-real-element-type' ) == 'hiddenfield' ) 187 187 evt.data.dialog = 'hiddenfield'; 188 188 else if ( element.is( 'input' ) ) -
CKEditor/trunk/_source/plugins/htmldataprocessor/plugin.js
r6119 r6190 1 /*1 /* 2 2 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved. 3 3 For licensing, see LICENSE.html or http://ckeditor.com/license … … 39 39 } 40 40 41 function blockNeedsExtension( block, fromSource ) 42 { 41 function blockNeedsExtension( block, fromSource, extendEmptyBlock ) 42 { 43 if( !extendEmptyBlock || 44 typeof extendEmptyBlock == 'function' && ( extendEmptyBlock( block ) == false ) ) 45 return false; 46 43 47 // 1. For IE version >=8, empty blocks are displayed correctly themself in wysiwiyg; 44 48 // 2. For the rest, at least table cell and list item need no filler space. 45 49 // (#6248)
