<?xml version="1.0" encoding="UTF-8"?>
<!-- SPDX-License-Identifier: MIT -->
<protocol name="wlr_virtual_pointer_unstable_v1">
  <copyright>
    Copyright © 2019 Josef Gajdusek
    Permission is hereby granted, free of charge, to any person obtaining a
    copy of this software and associated documentation files, to deal in the
    Software without restriction, including without limitation the rights to
    use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies, subject to inclusion of this notice. THE SOFTWARE IS PROVIDED
    "AS IS", WITHOUT WARRANTY OF ANY KIND.
  </copyright>
  <interface name="zwlr_virtual_pointer_v1" version="2">
    <description summary="virtual pointer"/>
    <enum name="error">
      <entry name="invalid_axis" value="0" summary="invalid axis"/>
      <entry name="invalid_axis_source" value="1" summary="invalid source"/>
    </enum>
    <request name="motion">
      <arg name="time" type="uint"/><arg name="dx" type="fixed"/>
      <arg name="dy" type="fixed"/>
    </request>
    <request name="motion_absolute">
      <arg name="time" type="uint"/><arg name="x" type="uint"/>
      <arg name="y" type="uint"/><arg name="x_extent" type="uint"/>
      <arg name="y_extent" type="uint"/>
    </request>
    <request name="button">
      <arg name="time" type="uint"/><arg name="button" type="uint"/>
      <arg name="state" type="uint" enum="wl_pointer.button_state"/>
    </request>
    <request name="axis">
      <arg name="time" type="uint"/>
      <arg name="axis" type="uint" enum="wl_pointer.axis"/>
      <arg name="value" type="fixed"/>
    </request>
    <request name="frame"/>
    <request name="axis_source">
      <arg name="axis_source" type="uint" enum="wl_pointer.axis_source"/>
    </request>
    <request name="axis_stop">
      <arg name="time" type="uint"/>
      <arg name="axis" type="uint" enum="wl_pointer.axis"/>
    </request>
    <request name="axis_discrete">
      <arg name="time" type="uint"/>
      <arg name="axis" type="uint" enum="wl_pointer.axis"/>
      <arg name="value" type="fixed"/><arg name="discrete" type="int"/>
    </request>
    <request name="destroy" type="destructor" since="1"/>
  </interface>
  <interface name="zwlr_virtual_pointer_manager_v1" version="2">
    <description summary="virtual pointer manager"/>
    <request name="create_virtual_pointer">
      <arg name="seat" type="object" interface="wl_seat" allow-null="true"/>
      <arg name="id" type="new_id" interface="zwlr_virtual_pointer_v1"/>
    </request>
    <request name="destroy" type="destructor" since="1"/>
    <request name="create_virtual_pointer_with_output" since="2">
      <arg name="seat" type="object" interface="wl_seat" allow-null="true"/>
      <arg name="output" type="object" interface="wl_output" allow-null="true"/>
      <arg name="id" type="new_id" interface="zwlr_virtual_pointer_v1"/>
    </request>
  </interface>
</protocol>
