// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

[DartPackage="sky_services"]
module pointer;

enum PointerType {
  DOWN,
  UP,
  MOVE,
  CANCEL,
};

enum PointerKind {
  TOUCH,
  MOUSE,
  STYLUS,
  INVERTED_STYLUS,
};

struct Pointer {
  int64 time_stamp;
  int32 pointer;
  PointerType type;
  PointerKind kind;
  float x;
  float y;
  int32 buttons;
  bool down;
  bool primary;
  bool obscured;
  float pressure;
  float pressure_min;
  float pressure_max;
  float distance;
  float distance_min;
  float distance_max;
  float radius_major;
  float radius_minor;
  float radius_min;
  float radius_max;
  float orientation;
  float tilt;
};

struct PointerPacket {
  array<Pointer> pointers;
};

interface PointerListener {
  OnPointerPacket(PointerPacket packet);
};
