Roll src/third_party/WebKit f36d5e0:68b67cd (svn 193299:193303)
[chromium-blink-merge.git] / remoting / proto / event.proto
blob37df684ce5bee58dc599340b0c1cdcc6f3d2a97c
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 // Protocol for event messages.
7 syntax = "proto2";
9 option optimize_for = LITE_RUNTIME;
11 package remoting.protocol;
13 // Defines a keyboard event.
14 message KeyEvent {
16   // The keyboard (Caps/Num) lock states.
17   enum LockStates {
18     LOCK_STATES_CAPSLOCK = 1;
19     LOCK_STATES_NUMLOCK = 2;
20   }
22   // True for key press events, and false for key release.
23   optional bool pressed = 2;
25   // The USB key code.
26   // The upper 16-bits are the USB Page (0x07 for key events).
27   // The lower 16-bits are the USB Usage ID (which identifies the actual key).
28   optional uint32 usb_keycode = 3;
30   // The keyboard lock states.
31   optional uint32 lock_states = 4 [default = 0];
34 // Text input event for input method different from physical keyboards,
35 // including software keyboard, gesture typing, voice input, etc.
36 message TextEvent {
37   // Unicode sequence for the event in UTF-8.
38   optional string text = 1;
41 // Defines a mouse event message on the event channel.
42 message MouseEvent {
44   enum MouseButton {
45     BUTTON_UNDEFINED = 0;
46     BUTTON_LEFT = 1;
47     BUTTON_MIDDLE = 2;
48     BUTTON_RIGHT = 3;
49     BUTTON_MAX = 4;
50   }
52   // Mouse position information.
53   optional int32 x = 1;
54   optional int32 y = 2;
56   // Mouse button event.
57   optional MouseButton button = 5;
58   optional bool button_down = 6;
60   // Mouse wheel information.
61   // These values encode the number of pixels and 'ticks' of movement that
62   // would result from the wheel event on the client system.
63   optional float wheel_delta_x = 7;
64   optional float wheel_delta_y = 8;
65   optional float wheel_ticks_x = 9;
66   optional float wheel_ticks_y = 10;
68   // Mouse movement information. Provided only when mouse lock is engaged.
69   optional int32 delta_x = 11;
70   optional int32 delta_y = 12;
73 // Defines an event that sends clipboard data between peers.
74 message ClipboardEvent {
76   // The MIME type of the data being sent.
77   optional string mime_type = 1;
79   // The data being sent.
80   optional bytes data = 2;
83 message TouchEventPoint {
84   // The ID for the touch point.
85   optional uint32 id = 1;
87   // The position of the touch point.
88   // These values on-the-wire are host coordinates.
89   optional float x = 2;
90   optional float y = 3;
92   // The size of the touch point, used to aid hit-testing.
93   // Scaled to match the size on host.
94   optional float radius_x = 4;
95   optional float radius_y = 5;
97   // Angle in degrees from the y-axis of the touch point.
98   optional float angle = 6;
100   // The pressure of the touch point.
101   // The value should be in [0.0, 1.0].
102   optional float pressure = 7;
105 message TouchEvent {
106   // A START event means that this event reports all the touch points that were
107   // just added, e.g. a finger started touching the display.
108   // A MOVE event means that the touch points that have been STARTed moved,
109   // e.g. multiple fingers on the screen moved.
110   // An END event means that the touch points that have been STARTed ended.
111   // e.g. a finger went off the screen.
112   // A CANCEL event means that the touch points that have been STARTed were
113   // canceled, e.g. a finger went off the screen.
114   // Cancel event is simlar to END but slighly different. For example, Android
115   // MotionEvent's ACTION_CANCEL documentation mentions that a cancel should be
116   // treated as an ACTION_UP (END) event but might not perform the exact same
117   // actions as a normal ACTION_UP event.
118   enum TouchEventType {
119     TOUCH_POINT_START = 1;
120     TOUCH_POINT_MOVE = 2;
121     TOUCH_POINT_END = 3;
122     TOUCH_POINT_CANCEL = 4;
123   };
125   optional TouchEventType event_type = 1;
127   // Only the changed touch points are added to this field.
128   // Given the existing touch point APIs (e.g. Android and PPAPI)
129   // for START, END, and CANCEL events the size of this field will typically be
130   // 1, but for MOVE events it is likely to have multiple points.
131   repeated TouchEventPoint touch_points = 2;