--- /dev/null
+/*\r
+Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.html or http://ckeditor.com/license\r
+*/\r
+\r
+/**\r
+ * @fileOverview Defines the "virtual" {@link CKEDITOR.eventInfo} class, which\r
+ * contains the defintions of the event object passed to event listeners.\r
+ * This file is for documentation purposes only.\r
+ */\r
+\r
+/**\r
+ * This class is not really part of the API. It just illustrates the features\r
+ * of the event object passed to event listeners by a {@link CKEDITOR.event}\r
+ * based object.\r
+ * @name CKEDITOR.eventInfo\r
+ * @constructor\r
+ * @example\r
+ * // Do not do this.\r
+ * var myEvent = new CKEDITOR.eventInfo(); // Error: CKEDITOR.eventInfo is undefined\r
+ */\r
+\r
+/**\r
+ * The event name.\r
+ * @name CKEDITOR.eventInfo.prototype.name\r
+ * @field\r
+ * @type String\r
+ * @example\r
+ * someObject.on( 'someEvent', function( event )\r
+ * {\r
+ * alert( <b>event.name</b> ); // "someEvent"\r
+ * });\r
+ * someObject.fire( 'someEvent' );\r
+ */\r
+\r
+/**\r
+ * The object that publishes (sends) the event.\r
+ * @name CKEDITOR.eventInfo.prototype.sender\r
+ * @field\r
+ * @type Object\r
+ * @example\r
+ * someObject.on( 'someEvent', function( event )\r
+ * {\r
+ * alert( <b>event.sender</b> == someObject ); // "true"\r
+ * });\r
+ * someObject.fire( 'someEvent' );\r
+ */\r
+\r
+/**\r
+ * The editor instance that holds the sender. May be the same as sender. May be\r
+ * null if the sender is not part of an editor instance, like a component\r
+ * running in standalone mode.\r
+ * @name CKEDITOR.eventInfo.prototype.editor\r
+ * @field\r
+ * @type CKEDITOR.editor\r
+ * @example\r
+ * myButton.on( 'someEvent', function( event )\r
+ * {\r
+ * alert( <b>event.editor</b> == myEditor ); // "true"\r
+ * });\r
+ * myButton.fire( 'someEvent', null, <b>myEditor</b> );\r
+ */\r
+\r
+/**\r
+ * Any kind of additional data. Its format and usage is event dependent.\r
+ * @name CKEDITOR.eventInfo.prototype.data\r
+ * @field\r
+ * @type Object\r
+ * @example\r
+ * someObject.on( 'someEvent', function( event )\r
+ * {\r
+ * alert( <b>event.data</b> ); // "Example"\r
+ * });\r
+ * someObject.fire( 'someEvent', <b>'Example'</b> );\r
+ */\r
+\r
+/**\r
+ * Any extra data appended during the listener registration.\r
+ * @name CKEDITOR.eventInfo.prototype.listenerData\r
+ * @field\r
+ * @type Object\r
+ * @example\r
+ * someObject.on( 'someEvent', function( event )\r
+ * {\r
+ * alert( <b>event.listenerData</b> ); // "Example"\r
+ * }\r
+ * , null, <b>'Example'</b> );\r
+ */\r
+\r
+/**\r
+ * Indicates that no further listeners are to be called.\r
+ * @name CKEDITOR.eventInfo.prototype.stop\r
+ * @function\r
+ * @example\r
+ * someObject.on( 'someEvent', function( event )\r
+ * {\r
+ * <b>event.stop()</b>;\r
+ * });\r
+ * someObject.on( 'someEvent', function( event )\r
+ * {\r
+ * // This one will not be called.\r
+ * });\r
+ * alert( someObject.fire( 'someEvent' ) ); // "false"\r
+ */\r
+\r
+/**\r
+ * Indicates that the event is to be cancelled (if cancelable).\r
+ * @name CKEDITOR.eventInfo.prototype.cancel\r
+ * @function\r
+ * @example\r
+ * someObject.on( 'someEvent', function( event )\r
+ * {\r
+ * <b>event.cancel()</b>;\r
+ * });\r
+ * someObject.on( 'someEvent', function( event )\r
+ * {\r
+ * // This one will not be called.\r
+ * });\r
+ * alert( someObject.fire( 'someEvent' ) ); // "true"\r
+ */\r