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

library fuchsia.ui.input3;

/// A characterization of a device that issues pointer event streams.
enum PointerDeviceType {
    /// A device intended for manipulation by direct contact over its surface.
    TOUCH = 1;
};

/// The possible states of a pointer event stream's state machine.
///
/// A typical pointer will move through this state machine:
/// ADD - CHANGE* - REMOVE
enum PointerEventPhase {
    /// The device has started tracking the pointer.
    ADD = 1;

    /// The device has reported an update to the pointer state.
    CHANGE = 2;

    /// The device has stopped tracking the pointer.
    REMOVE = 3;

    /// The event stream is no longer available.
    CANCEL = 4;
};
