15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)/* From pp_input_event.idl modified Thu Mar 28 10:52:59 2013. */
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PPAPI_C_PP_INPUT_EVENT_H_
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPAPI_C_PP_INPUT_EVENT_H_
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_bool.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_macros.h"
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_stdint.h"
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/ppb_input_event.h"
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @file
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This file defines the API used to handle mouse and keyboard input events.
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @addtogroup Structs
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @{
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The <code>PP_InputEvent_Key</code> struct represents a key up or key down
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * event.
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Key up and key down events correspond to physical keys on the keyboard. The
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * actual character that the user typed (if any) will be delivered in a
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * "character" event.
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * If the user loses focus on the module while a key is down, a key up
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * event might not occur. For example, if the module has focus and the user
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * presses and holds the shift key, the module will see a "shift down" message.
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Then if the user clicks elsewhere on the web page, the module's focus will
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * be lost and no more input events will be delivered.
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * If your module depends on receiving key up events, it should also handle
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * "lost focus" as the equivalent of "all keys up."
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PP_InputEvent_Key {
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** This value is a bit field combination of the EVENT_MODIFIER flags. */
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32_t modifier;
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /**
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * This value reflects the DOM KeyboardEvent <code>keyCode</code> field.
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * Chrome populates this with the Windows-style Virtual Key code of the key.
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32_t key_code;
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_InputEvent_Key, 8);
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The <code>PP_InputEvent_Character</code> struct represents a typed character
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * event.
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Normally, the program will receive a key down event, followed by a character
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * event, followed by a key up event. The character event will have any
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * modifier keys applied. Obvious examples are symbols, where Shift-5 gives you
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * a '%'. The key down and up events will give you the scan code for the "5"
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * key, and the character event will give you the '%' character.
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * You may not get a character event for all key down events if the key doesn't
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * generate a character. Likewise, you may actually get multiple character
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * events in a row. For example, some locales have an accent key that modifies
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the next character typed. You might get this stream of events: accent down,
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * accent up (it didn't generate a character), letter key down, letter with
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * accent character event (it was modified by the previous accent key), letter
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * key up.  If the letter can't be combined with the accent, like an umlaut and
71c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * an 'R', the system might send umlaut down, umlaut up, 'R' key down, umlaut
72c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * character (can't combine it with 'R', so just send the raw umlaut so it
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * isn't lost"), 'R' character event, 'R' key up.
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PP_InputEvent_Character {
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** A combination of the <code>PP_InputEvent_Modifier</code> flags. */
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32_t modifier;
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /**
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * This value represents the typed character as a single null-terminated UTF-8
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * character. Any unused bytes will be filled with null bytes. Since the
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * maximum UTF-8 character is 4 bytes, there will always be at least one null
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * at the end so you can treat this as a null-terminated UTF-8 string.
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  char text[5];
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_InputEvent_Character, 12);
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The <code>PP_InputEvent_Mouse</code> struct represents all mouse events
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * except mouse wheel events.
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PP_InputEvent_Mouse {
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /**
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * This value is a bit field combination of the
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * <code>PP_InputEvent_Modifier</code> flags.
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32_t modifier;
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /**
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * This value represents the button that changed for mouse down or up events.
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * This value will be <code>PP_EVENT_MOUSEBUTTON_NONE</code> for mouse move,
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * enter, and leave events.
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PP_InputEvent_MouseButton button;
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /**
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * This values represents the x coordinate of the mouse when the event
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * occurred.
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   *
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * In most, but not all, cases these coordinates will just be integers.
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * For example, the plugin element might be arbitrarily scaled or transformed
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * in the DOM, and translating a mouse event into the coordinate space of the
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * plugin will give non-integer values.
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  float x;
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /**
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * This values represents the y coordinate of the mouse when the event
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * occurred.
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   *
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * In most, but not all, cases these coordinates will just be integers.
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * For example, the plugin element might be arbitrarily scaled or transformed
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * in the DOM, and translating a mouse event into the coordinate space of the
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * plugin will give non-integer values.
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  float y;
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /* TODO(brettw) figure out exactly what this means. */
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int32_t click_count;
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_InputEvent_Mouse, 20);
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The <code>PP_InputEvent_Wheel</code> struct represents all mouse wheel
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * events.
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PP_InputEvent_Wheel {
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /**
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * This value represents a combination of the <code>EVENT_MODIFIER</code>
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * flags.
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  uint32_t modifier;
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /**
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * The mouse wheel's horizontal scroll amount. A scroll to the right
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * (where the content moves left) is represented as positive values,
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * and a scroll to the left (where the content moves right) is
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * represented as negative values.
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   *
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * The units are either in pixels (when scroll_by_page is false) or pages
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * (when scroll_by_page is true). For example, delta_y = -3 means scroll up 3
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * pixels when scroll_by_page is false, and scroll up 3 pages when
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * scroll_by_page is true.
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   *
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * This amount is system dependent and will take into account the user's
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * preferred scroll sensitivity and potentially also nonlinear acceleration
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * based on the speed of the scrolling.
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   *
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * Devices will be of varying resolution. Some mice with large detents will
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * only generate integer scroll amounts. But fractional values are also
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * possible, for example, on some trackpads and newer mice that don't have
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * "clicks".
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  float delta_x;
1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /**
1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * The mouse wheel's vertical scroll amount. A scroll down (where the
1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * content moves up) is represented as positive values, and a scroll up
1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * (where the content moves down) is represented as negative values.
1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   *
1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * The units are either in pixels (when scroll_by_page is false) or pages
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * (when scroll_by_page is true). For example, delta_y = -3 means scroll up 3
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * pixels when scroll_by_page is false, and scroll up 3 pages when
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * scroll_by_page is true.
1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   *
1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * This amount is system dependent and will take into account the user's
1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * preferred scroll sensitivity and potentially also nonlinear acceleration
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * based on the speed of the scrolling.
1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   *
1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * Devices will be of varying resolution. Some mice with large detents will
1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * only generate integer scroll amounts. But fractional values are also
1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * possible, for example, on some trackpads and newer mice that don't have
1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * "clicks".
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  float delta_y;
1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /**
1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * The number of "clicks" of the scroll wheel that have produced the
1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * event. The value may have system-specific acceleration applied to it,
1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * depending on the device. The positive and negative meanings are the same
1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * as for <code>delta_x</code> and <code>delta_y</code>.
1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   *
1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * If you are scrolling, you probably want to use the delta values above.
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * These tick events can be useful if you aren't doing actual scrolling and
1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * don't want or pixel values. An example may be cycling between different
1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * items in a game.
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   *
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * You may receive fractional values for the wheel ticks if the mouse wheel
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * is high resolution or doesn't have "clicks". If your program wants
1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * discrete events (as in the "picking items" example) you should accumulate
1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * fractional click values from multiple messages until the total value
1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * reaches positive or negative one. This should represent a similar amount
1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * of scrolling as for a mouse that has a discrete mouse wheel.
1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  float wheel_ticks_x;
1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /** This value represents */
2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  float wheel_ticks_y;
2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /**
2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * Indicates if the scroll <code>delta_x</code>/<code>delta_y</code>
2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * indicates pages or lines to scroll by. When true, the user is requesting
2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * to scroll by pages.
2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PP_Bool scroll_by_page;
2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_InputEvent_Wheel, 24);
2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @}
2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  /* PPAPI_C_PP_INPUT_EVENT_H_ */
2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
215