dom/interfaces/events/nsIDOMTouchEvent.idl
author Ehsan Akhgari <ehsan@mozilla.com>
Wed, 22 Aug 2012 11:56:38 -0400
changeset 102997 a16372ce30b5f6b747246b01fcd215a4bf3b6342
parent 101467 df072441c8bb0512e4c43f12b15508c86f7554bc
child 116681 57427d474c9a4f753380f6eba62a8d433f6cc5c1
permissions -rw-r--r--
Bug 579517 - Part 1: Automated conversion of NSPR numeric types to stdint types in Gecko; r=bsmedberg This patch was generated by a script. Here's the source of the script for future reference: function convert() { echo "Converting $1 to $2..." find . ! -wholename "*nsprpub*" \ ! -wholename "*security/nss*" \ ! -wholename "*/.hg*" \ ! -wholename "obj-ff-dbg*" \ ! -name nsXPCOMCID.h \ ! -name prtypes.h \ -type f \ \( -iname "*.cpp" \ -o -iname "*.h" \ -o -iname "*.c" \ -o -iname "*.cc" \ -o -iname "*.idl" \ -o -iname "*.ipdl" \ -o -iname "*.ipdlh" \ -o -iname "*.mm" \) | \ xargs -n 1 sed -i -e "s/\b$1\b/$2/g" } convert PRInt8 int8_t convert PRUint8 uint8_t convert PRInt16 int16_t convert PRUint16 uint16_t convert PRInt32 int32_t convert PRUint32 uint32_t convert PRInt64 int64_t convert PRUint64 uint64_t convert PRIntn int convert PRUintn unsigned convert PRSize size_t convert PROffset32 int32_t convert PROffset64 int64_t convert PRPtrdiff ptrdiff_t convert PRFloat64 double

/* 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<nsIDOMEventTarget> mTarget;
    nsIDOMEventTarget *GetTarget() { return mTarget; }
    void SetTarget(nsIDOMEventTarget *target) { mTarget = target; }
    nsIntPoint mRefPoint;
    bool mChanged;
    uint32_t mMessage;
  %}
};

[scriptable, 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(dfaac0c6-9c4a-4a95-8872-1d58f19d5768)]
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);
};