/** * @class Ext.drag.Info * @extend Ext.Base * This class is used to unify information for a specific drag instance. * This object is passed to template methods and events to obtain * details about the current operation. * * It is not expected that this class will be created by user code. */ /** * @property {Object} cursor * Information about the cursor position. Not available when * {@link #isNative} is `true`. * * * @property {Object} cursor.current * The current cursor position. * * @property {Number} cursor.current.x * The current x position. * * @property {Number} cursor.current.y * The current y position. * * * @property {Object} cursor.delta * The change in cursor position. * * @property {Number} cursor.delta.x * The change in x position. * * @property {Number} cursor.delta.y * The change in y position. * * * @property {Object} cursor.initial * The intial cursor position. * * @property {Number} cursor.initial.x * The initial x position. * * @property {Number} cursor.initial.y * The initial y position. * * * @property {Object} cursor.offset * The offset from the cursor to the top/left of * the {@link Ext.drag.Source#element element}. * * @property {Number} cursor.offset.x * The x offset. * * @property {Number} cursor.offset.y * The y offset. */ /** * @property {Object} element * Information about the {@link Ext.drag.Source#element} position. * Not available when {@link #isNative} is `true`. * * * @property {Object} element.current * The current element position. * * @property {Number} element.current.x * The current x position. * * @property {Number} element.current.y * The current y position. * * * @property {Object} element.delta * The change in element position. * * @property {Number} element.delta.x * The change in x position. * * @property {Number} element.delta.y * The change in y position. * * * @property {Object} element.initial * The intial element position. * * @property {Number} element.initial.x * The initial x position. * * @property {Number} element.initial.y * The initial y position. */ /** * @property {HTMLElement} eventTarget * The event target that the drag started on. * * Not available when {@link #isNative} is `true`. */ /** * @property {FileList} files * A list of files included for this drag. See: * https://developer.mozilla.org/en/docs/Web/API/FileList * * Only available when {@link #isNative} is `true`. */ /** * @property {Boolean} [isNative=false] * `true` if the drag is a native drag event, for example * a file draggedi nto the browser. */ /** * @property {Object} proxy * Information about the {@link Ext.drag.Source#proxy} position. * This may be the actual {@link Ext.drag.Source#element}. * Not available when {@link #isNative} is `true`. * * * @property {Object} proxy.current * The current proxy position. * * @property {Number} proxy.current.x * The current x position. * * @property {Number} proxy.current.y * The current y position. * * * @property {Object} proxy.delta * The change in proxy position. * * @property {Number} proxy.delta.x * The change in x position. * * @property {Number} proxy.delta.y * The change in y position. * * * @property {Object} proxy.initial * The intial proxy position. * * @property {Number} proxy.initial.x * The initial x position. * * @property {Number} proxy.initial.y * The initial y position. * * @property {Ext.dom.Element} proxy.element * The proxy element. * * @property {Boolean} proxy.isElement * `true` if the proxy is the {@link Ext.drag.Source#element}. * * @property {Boolean} proxy.isUnderCursor * `true` if the alignment causes the proxy to be under the cursor. */ /** * @property {Ext.drag.Source} source * The drag source. Not available when {@link #isNative} is `true`. */ /** * @property {Ext.drag.Target} target * The active target. `null` if not over a target. */ /** * @property {String[]} types * The data types this drag provides. Added via {@link #setData}. */ /** * @property {Boolean} [valid=false] * `true` if the {@link #target} is valid. See {@link Ext.drag.Target} for * information about validity. `false` if there is no target. */ /** * @method clearData * Clear the data for a particular type. * @param {String} type The type. */ /** * @method clone * Create a copy of this object with the current state. * @return {Ext.drag.Info} A copy of this object. */ /** * @method getData * Get data for this drag. This method may only be called once the drop completes. * * @param {String} type The type of data to retrieve. Must be in the {@link #types}. * See also {@link #setData}. * * @return {Ext.Promise} The data. If the produced data is not a {@link Ext.Promise}, * it will be wrapped in one. */ /** * @method setData * Set data for this drag. Multiple types may be registered. Each type will be * added to {@link #types}. * * @param {String} type The type of data being registered. * @param {Object/Function} value The value being registered. If a function * is provided it will be evaluated if requested when the drop completes. The * function should return a value or a {@link Ext.Promise} that will produce a value. */