gecko/dom/interfaces/events/nsIDOMTouchEvent.idl

100 lines
4.0 KiB
Plaintext

/* vim: set shiftwidth=2 tabstop=8 autoindent cindent expandtab: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#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<mozilla::dom::EventTarget> mTarget;
mozilla::dom::EventTarget *GetTarget() { return mTarget; }
void SetTarget(mozilla::dom::EventTarget *target) { mTarget = target; }
nsIntPoint mRefPoint;
bool mChanged;
uint32_t mMessage;
%}
};
[scriptable, builtinclass, uuid(60706eb7-d50d-4379-b01c-e78e6af84213)]
interface nsIDOMTouchList : nsISupports {
readonly attribute unsigned long length;
nsIDOMTouch item(in unsigned long index);
nsIDOMTouch identifiedTouch(in long identifier);
};
[scriptable, builtinclass, uuid(9a043d55-f59e-4790-8fc7-1fab1c727732)]
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);
};