// Copyright (c) 2010 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. // Protocol for event messages. syntax = "proto2"; option optimize_for = LITE_RUNTIME; package remoting; // Defines a keyboard event. // NEXT ID: 3 message KeyEvent { // The POSIX key code. required int32 key = 1; required bool pressed = 2; } // Sets the absolute position of the mouse cursor. // dimension of the screen area. // NEXT ID: 3 message MouseSetPositionEvent { required int32 x = 1; required int32 y = 2; // Windows sets absolute mouse pointer positions as a relative value to // the screen size. So pass the screen size to make this calculation easier. optional int32 width = 3; optional int32 height = 4; } // Adjust the position of the mouse cursor by an offset. // NEXT ID: 3 message MouseMoveEvent { required int32 offset_x = 1; required int32 offset_y = 2; } // Motion of the mouse wheel. // TODO(garykac): What are units here? How many units correspond to a single // wheel click? On Windows, one click (WHEEL_DELTA) is 120 wheel units. // NEXT ID: 3 message MouseWheelEvent { required int32 offset_x = 1; required int32 offset_y = 2; } enum MouseButton { MouseButtonUndefined = 0; MouseButtonLeft = 1; MouseButtonMiddle = 2; MouseButtonRight = 3; } // Mouse button is pressed down. // NEXT ID: 2 message MouseDownEvent { required MouseButton button = 1; } // Mouse button is released. // NEXT ID: 2 message MouseUpEvent { required MouseButton button = 1; } // Defines a mouse event message on the event channel. message MouseEvent { // Mouse position information. optional MouseSetPositionEvent set_position = 1; // Mouse wheel information. optional MouseWheelEvent wheel = 2; // Mouse down event. optional MouseDownEvent down = 3; // Mouse up event. optional MouseUpEvent up = 4; } // Defines an event message on the event channel. message Event { required int32 timestamp = 1; // Client timestamp for event optional bool dummy = 2; // Is this a dummy event? optional KeyEvent key = 3; optional MouseEvent mouse = 4; } // Message sent in the event channel. message EventMessage { repeated Event event = 1; }