зеркало из https://github.com/mozilla/pjs.git
133 строки
5.5 KiB
Plaintext
133 строки
5.5 KiB
Plaintext
/* vim: set shiftwidth=2 tabstop=8 autoindent cindent expandtab: */
|
|
/* ***** BEGIN LICENSE BLOCK *****
|
|
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
*
|
|
* The contents of this file are subject to the Mozilla Public License Version
|
|
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
* the License. You may obtain a copy of the License at
|
|
* http://www.mozilla.org/MPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
* for the specific language governing rights and limitations under the
|
|
* License.
|
|
*
|
|
* The Original Code is nsIDOMTouchEvent.
|
|
*
|
|
* The Initial Developer of the Original Code is the Mozilla Foundation.
|
|
* Portions created by the Initial Developer are Copyright (C) 2011
|
|
* the Initial Developer. All Rights Reserved.
|
|
*
|
|
* Contributor(s):
|
|
* Olli Pettay <Olli.Pettay@helsinki.fi> (Original Author)
|
|
*
|
|
* Alternatively, the contents of this file may be used under the terms of
|
|
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
|
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
* of those above. If you wish to allow use of your version of this file only
|
|
* under the terms of either the GPL or the LGPL, and not to allow others to
|
|
* use your version of this file under the terms of the MPL, indicate your
|
|
* decision by deleting the provisions above and replace them with the notice
|
|
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
* the provisions above, a recipient may use your version of this file under
|
|
* the terms of any one of the MPL, the GPL or the LGPL.
|
|
*
|
|
* ***** END LICENSE BLOCK ***** */
|
|
|
|
#include "nsIDOMUIEvent.idl"
|
|
%{C++
|
|
#include "nsWeakPtr.h"
|
|
#include "nsPoint.h"
|
|
%}
|
|
interface nsIVariant;
|
|
|
|
/**
|
|
* @see http://dvcs.w3.org/hg/webevents/raw-file/tip/touchevents.html
|
|
*/
|
|
|
|
[scriptable, builtinclass, uuid(98bc0f7d-5bff-4387-9c42-58af54b48dd5)]
|
|
interface nsIDOMTouch : nsISupports {
|
|
readonly attribute long identifier;
|
|
readonly attribute nsIDOMEventTarget target;
|
|
readonly attribute long pageX;
|
|
readonly attribute long pageY;
|
|
readonly attribute long screenX;
|
|
readonly attribute long screenY;
|
|
readonly attribute long clientX;
|
|
readonly attribute long clientY;
|
|
readonly attribute long radiusX;
|
|
readonly attribute long radiusY;
|
|
readonly attribute float rotationAngle;
|
|
readonly attribute float force;
|
|
%{C++
|
|
nsCOMPtr<nsIDOMEventTarget> mTarget;
|
|
nsIDOMEventTarget *GetTarget() { return mTarget; }
|
|
void SetTarget(nsIDOMEventTarget *target) { mTarget = target; }
|
|
nsIntPoint mRefPoint;
|
|
bool mChanged;
|
|
PRUint32 mMessage;
|
|
%}
|
|
};
|
|
|
|
[scriptable, uuid(60706eb7-d50d-4379-b01c-e78e6af84213)]
|
|
interface nsIDOMTouchList : nsISupports {
|
|
readonly attribute unsigned long length;
|
|
[getter,forward(getItemAt)] nsIDOMTouch item(in unsigned long index);
|
|
[noscript,notxpcom,nostdcall] nsIDOMTouch getItemAt(in unsigned long index);
|
|
nsIDOMTouch identifiedTouch(in long identifier);
|
|
};
|
|
|
|
[scriptable, uuid(0cc687df-0ed5-4b7f-b89d-cbb99b21d23a)]
|
|
interface nsIDOMTouchEvent : nsIDOMUIEvent {
|
|
readonly attribute nsIDOMTouchList touches;
|
|
readonly attribute nsIDOMTouchList targetTouches;
|
|
readonly attribute nsIDOMTouchList changedTouches;
|
|
readonly attribute boolean altKey;
|
|
readonly attribute boolean metaKey;
|
|
readonly attribute boolean ctrlKey;
|
|
readonly attribute boolean shiftKey;
|
|
void initTouchEvent(in DOMString type,
|
|
in boolean canBubble,
|
|
in boolean cancelable,
|
|
in nsIDOMWindow view,
|
|
in long detail,
|
|
in boolean ctrlKey,
|
|
in boolean altKey,
|
|
in boolean shiftKey,
|
|
in boolean metaKey,
|
|
in nsIDOMTouchList touches,
|
|
in nsIDOMTouchList targetTouches,
|
|
in nsIDOMTouchList changedTouches);
|
|
};
|
|
|
|
[scriptable, uuid(6d5484f7-92ac-45f8-9388-39b5bad055ce)]
|
|
interface nsITouchEventReceiver : nsISupports {
|
|
[implicit_jscontext] attribute jsval ontouchstart;
|
|
[implicit_jscontext] attribute jsval ontouchend;
|
|
[implicit_jscontext] attribute jsval ontouchmove;
|
|
[implicit_jscontext] attribute jsval ontouchenter;
|
|
[implicit_jscontext] attribute jsval ontouchleave;
|
|
[implicit_jscontext] attribute jsval ontouchcancel;
|
|
};
|
|
|
|
[scriptable, uuid(974cff68-6f0b-4520-8523-fa68b2754656)]
|
|
interface nsIDOMDocumentTouch : nsITouchEventReceiver {
|
|
nsIDOMTouch createTouch([optional] in nsIDOMWindow view,
|
|
[optional] in nsIDOMEventTarget target,
|
|
[optional] in long identifier,
|
|
[optional] in long pageX,
|
|
[optional] in long pageY,
|
|
[optional] in long screenX,
|
|
[optional] in long screenY,
|
|
[optional] in long clientX,
|
|
[optional] in long clientY,
|
|
[optional] in long radiusX,
|
|
[optional] in long radiusY,
|
|
[optional] in float rotationAngle,
|
|
[optional] in float force);
|
|
|
|
|
|
nsIDOMTouchList createTouchList([optional] in nsIVariant aPoints);
|
|
};
|