Rev 1075 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
/** FCKeditor - The text editor for internet* Copyright (C) 2003-2006 Frederico Caldeira Knabben** Licensed under the terms of the GNU Lesser General Public License:* http://www.opensource.org/licenses/lgpl-license.php** For further information visit:* http://www.fckeditor.net/** "Support Open Source software. What about a donation today?"** File Name: fck_1_gecko.js* This is the first part of the "FCK" object creation. This is the main* object that represents an editor instance.* (Gecko specific implementations)** File Authors:* Frederico Caldeira Knabben (fredck@fckeditor.net)*/FCK.Description = "FCKeditor for Gecko Browsers" ;FCK.InitializeBehaviors = function(){// When calling "SetHTML", the editing area IFRAME gets a fixed height. So we must recaulculate it.Window_OnResize() ;FCKFocusManager.AddWindow( this.EditorWindow ) ;// Handle pasting operations.var oOnKeyDown = function( e ){var bPrevent ;if ( e.ctrlKey && !e.shiftKey && !e.altKey ){switch ( e.which ){case 66 : // Bcase 98 : // bFCK.ExecuteNamedCommand( 'bold' ) ; bPrevent = true ;break;case 105 : // icase 73 : // IFCK.ExecuteNamedCommand( 'italic' ) ; bPrevent = true ;break;case 117 : // ucase 85 : // UFCK.ExecuteNamedCommand( 'underline' ) ; bPrevent = true ;break;case 86 : // Vcase 118 : // vbPrevent = ( FCK.Status != FCK_STATUS_COMPLETE || !FCK.Events.FireEvent( "OnPaste" ) ) ;break ;}}else if ( e.shiftKey && !e.ctrlKey && !e.altKey && e.keyCode == 45 ) // SHIFT + <INS>bPrevent = ( FCK.Status != FCK_STATUS_COMPLETE || !FCK.Events.FireEvent( "OnPaste" ) ) ;if ( bPrevent ){e.preventDefault() ;e.stopPropagation() ;}}this.EditorDocument.addEventListener( 'keypress', oOnKeyDown, true ) ;this.ExecOnSelectionChange = function(){FCK.Events.FireEvent( "OnSelectionChange" ) ;}this.ExecOnSelectionChangeTimer = function(){if ( FCK.LastOnChangeTimer )window.clearTimeout( FCK.LastOnChangeTimer ) ;FCK.LastOnChangeTimer = window.setTimeout( FCK.ExecOnSelectionChange, 100 ) ;}this.EditorDocument.addEventListener( 'mouseup', this.ExecOnSelectionChange, false ) ;// On Gecko, firing the "OnSelectionChange" event on every key press started to be too much// slow. So, a timer has been implemented to solve performance issues when tipying to quickly.this.EditorDocument.addEventListener( 'keyup', this.ExecOnSelectionChangeTimer, false ) ;this._DblClickListener = function( e ){FCK.OnDoubleClick( e.target ) ;e.stopPropagation() ;}this.EditorDocument.addEventListener( 'dblclick', this._DblClickListener, true ) ;// Reset the context menu.FCK.ContextMenu._InnerContextMenu.SetMouseClickWindow( FCK.EditorWindow ) ;FCK.ContextMenu._InnerContextMenu.AttachToElement( FCK.EditorDocument ) ;}FCK.MakeEditable = function(){this.EditingArea.MakeEditable() ;}// Disable the context menu in the editor (outside the editing area).function Document_OnContextMenu( e ){if ( !e.target._FCKShowContextMenu )e.preventDefault() ;}document.oncontextmenu = Document_OnContextMenu ;