/* 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(2311671f-ff7e-43d2-adfb-d9e07006955e)]
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;
};

[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;
};
