// 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.

module sky;

enum EventType {
  UNKNOWN,
  POINTER_CANCEL,
  POINTER_DOWN,
  POINTER_MOVE,
  POINTER_UP,
  GESTURE_FLING_CANCEL,
  GESTURE_FLING_START,
  GESTURE_LONG_PRESS,
  GESTURE_SCROLL_BEGIN,
  GESTURE_SCROLL_END,
  GESTURE_SCROLL_UPDATE,
  GESTURE_SHOW_PRESS,
  GESTURE_TAP,
  GESTURE_TAP_DOWN,
};

enum PointerKind {
  TOUCH,
};

struct PointerData {
  int32 pointer;
  PointerKind kind;
  float x;
  float y;
  int32 buttons;
  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 GestureData {
  float x;
  float y;
  float dx;
  float dy;
  float velocityX;
  float velocityY;
};

struct InputEvent {
  EventType type;
  int64 time_stamp;
  PointerData? pointer_data;
  GestureData? gesture_data;
};
