Index: ppapi/c/pp_input_event.h |
=================================================================== |
--- ppapi/c/pp_input_event.h (revision 74025) |
+++ ppapi/c/pp_input_event.h (working copy) |
@@ -7,7 +7,7 @@ |
/** |
* @file |
- * Defines the API ... |
+ * This file defines the API used to handle mouse and keyboard input events. |
*/ |
#include "ppapi/c/pp_bool.h" |
@@ -20,6 +20,10 @@ |
* @addtogroup Enums |
* @{ |
*/ |
+ |
+/** |
+ * This enumeration contains constants representing each mouse button. |
+ */ |
typedef enum { |
PP_INPUTEVENT_MOUSEBUTTON_NONE = -1, |
PP_INPUTEVENT_MOUSEBUTTON_LEFT = 0, |
@@ -32,10 +36,13 @@ |
*/ |
/** |
- * |
* @addtogroup Enums |
* @{ |
*/ |
+ |
+/** |
+ * This enumeration contains mouse and keyboard event constants. |
+ */ |
typedef enum { |
PP_INPUTEVENT_TYPE_UNDEFINED = -1, |
PP_INPUTEVENT_TYPE_MOUSEDOWN = 0, // PP_InputEvent_Mouse |
@@ -56,10 +63,13 @@ |
*/ |
/** |
- * |
* @addtogroup Enums |
* @{ |
*/ |
+ |
+/** |
+ * This enumeration contains event modifier constants. |
+ */ |
typedef enum { |
PP_INPUTEVENT_MODIFIER_SHIFTKEY = 1 << 0, |
PP_INPUTEVENT_MODIFIER_CONTROLKEY = 1 << 1, |
@@ -84,22 +94,23 @@ |
*/ |
/** |
- * An event representing a key up or down event. |
+ * The PP_InputEvent_Key struct represents a key up or key down event. |
* |
- * Key up and down events correspond to physical keys on the keyboard. The |
+ * Key up and key down events correspond to physical keys on the keyboard. The |
* actual character that the user typed (if any) will be delivered in a |
* "character" event. |
* |
- * If the user kills focus on the plugin while a key is down, you may not get |
- * a key up event. For example, if the plugin has focus and the user presses |
- * and holds shift, the plugin will see a "shift down" message. Then if they |
- * click elsewhere on the web page, the plugin focus will be lost and no more |
- * input events will be delivered. If you depend on getting key up events, you |
- * will also want to handle "lost focus" as the equivalent of "all keys up." |
+ * If the user loses focus on the module while a key is down, a key up |
+ * event might not occur. For example, if the module has focus and the user |
+ * presses and holds the shift key, the module will see a "shift down" message. |
+ * Then if the user clicks elsewhere on the web page, the module's focus will |
+ * be lost and no more input events will be delivered. |
* |
+ * If your module depends on receiving key up events, it should also handle |
+ * "lost focus" as the equivalent of "all keys up." |
*/ |
struct PP_InputEvent_Key { |
- /** A combination of the EVENT_MODIFIER flags. */ |
+ /** This value is a bit field combination of the EVENT_MODIFIER flags. */ |
uint32_t modifier; |
/** |
@@ -120,7 +131,7 @@ |
*/ |
/** |
- * An event representing a typed character. |
+ * The PP_InputEvent_Character struct represents a typed character event. |
* |
* Normally, the program will receive a key down event, followed by a character |
* event, followed by a key up event. The character event will have any |
@@ -128,7 +139,7 @@ |
* a '%'. The key down and up events will give you the scan code for the "5" |
* key, and the character event will give you the '%' character. |
* |
- * You may not get a character event for all key down if the key doesn't |
+ * You may not get a character event for all key down events if the key doesn't |
* generate a character. Likewise, you may actually get multiple character |
* events in a row. For example, some locales have an accent key that modifies |
* the next character typed. You might get this stream of events: accent down, |
@@ -136,19 +147,18 @@ |
* accent character event (it was modified by the previous accent key), letter |
* key up. If the letter can't be combined with the accent, like an umlaut and |
* an 'R', the system might send unlaut down, umlaut up, 'R' key down, umlaut |
- * character ("whoops, I can't combine it with 'R', I better just send the raw |
- * unlaut so it isn't lost"), 'R' character event, 'R' key up. |
- * |
+ * character (can't combine it with 'R', so just send the raw unlaut so it |
+ * isn't lost"), 'R' character event, 'R' key up. |
*/ |
struct PP_InputEvent_Character { |
/** A combination of the EVENT_MODIFIER flags. */ |
uint32_t modifier; |
/** |
- * The character the user typed, as a single null-terminated UTF-8 character. |
- * Any unused bytes will be filled with null bytes. Since the maximum UTF-8 |
- * character is 4 bytes, there will always be at least one null at the end |
- * so you can treat this as a null-termianted UTF-8 string. |
+ * This value represents the typed character as a single null-terminated UTF-8 |
+ * character. Any unused bytes will be filled with null bytes. Since the |
+ * maximum UTF-8 character is 4 bytes, there will always be at least one null |
+ * at the end so you can treat this as a null-termianted UTF-8 string. |
*/ |
char text[5]; |
}; |
@@ -162,26 +172,40 @@ |
* @{ |
*/ |
-/** Represents a mouse event for everything other than the mouse wheel. */ |
+/** |
+ * The PP_InputEvent_Mouse struct represents all mouse events except |
+ * mouse wheel events. |
+ */ |
struct PP_InputEvent_Mouse { |
- /** A combination of the EVENT_MODIFIER flags. */ |
+ /** This value is a bit field combination of the EVENT_MODIFIER flags. */ |
uint32_t modifier; |
/** |
- * Which button changed in the case of mouse down or up events. For mouse |
- * move, enter, and leave events, this will be PP_EVENT_MOUSEBUTTON_NONE. |
+ * This value represents the button that changed for mouse down or up events. |
+ * This value will be PP_EVENT_MOUSEBUTTON_NONE for mouse move, enter, and |
+ * leave events. |
*/ |
PP_InputEvent_MouseButton button; |
/** |
- * The coordinates of the mouse when the event occurred. |
+ * This values represents the x coordinate of the mouse when the event |
+ * occurred. |
* |
- * In most cases these coordinates will just be integers, but they may not |
- * be in some cases. For example, the plugin element might be arbitrarily |
- * scaled or transformed in the DOM, and translating a mouse event into the |
- * coordinate space of the plugin will give non-integer values. |
+ * In most, but not all, cases these coordinates will just be integers. |
+ * For example, the plugin element might be arbitrarily scaled or transformed |
+ * in the DOM, and translating a mouse event into the coordinate space of the |
+ * plugin will give non-integer values. |
*/ |
float x; |
+ /** |
+ * This values represents the y coordinate of the mouse when the event |
+ * occurred. |
+ * |
+ * In most, but not all, cases these coordinates will just be integers. |
+ * For example, the plugin element might be arbitrarily scaled or transformed |
+ * in the DOM, and translating a mouse event into the coordinate space of the |
+ * plugin will give non-integer values. |
+ */ |
float y; |
/** TODO(brettw) figure out exactly what this means. */ |
@@ -196,15 +220,27 @@ |
* @addtogroup Structs |
* @{ |
*/ |
+ |
+/** |
+ * The PP_InputEvent_Wheel struct represents all mouse wheel events. |
+ */ |
struct PP_InputEvent_Wheel { |
- /** A combination of the EVENT_MODIFIER flags. */ |
+ /** This value represents a combination of the EVENT_MODIFIER flags. */ |
uint32_t modifier; |
+ /** This value represents */ |
float delta_x; |
+ |
+ /** This value represents */ |
float delta_y; |
+ |
+ /** This value represents */ |
float wheel_ticks_x; |
+ |
+ /** This value represents */ |
float wheel_ticks_y; |
+ /** This value represents */ |
PP_Bool scroll_by_page; |
}; |
PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_InputEvent_Wheel, 24); |
@@ -217,22 +253,28 @@ |
* @addtogroup Structs |
* @{ |
*/ |
+ |
+/** |
+ * The PP_InputEvent struct represents all input events. |
+ */ |
struct PP_InputEvent { |
- /** Identifies the type of the event. */ |
+ /** This value represents the type of the event. */ |
PP_InputEvent_Type type; |
- /* Ensure the time_stamp is aligned on an 8-byte boundary relative to the |
- start of the struct. Some compilers align doubles on 8-byte boundaries |
- for 32-bit x86, and some align on 4-byte boundaries. */ |
+ /** This value ensure the time_stamp is aligned on an 8-byte boundary |
+ * relative to the start of the struct. Some compilers align doubles |
+ * on 8-byte boundaries for 32-bit x86, and some align on 4-byte boundaries. |
+ */ |
int32_t padding; |
/** |
- * When this event was generated. This is not relative to any particular |
- * epoch, the most you can do is compare time stamps. |
+ * This value represents the time that this event was generated. This value |
+ * is not relative to any particular epoch; the most you can do is compare |
+ * time stamps. |
*/ |
PP_TimeTicks time_stamp; |
- /** Event-specific data. */ |
+ /** This value represents the event type and its specific data. */ |
union { |
struct PP_InputEvent_Key key; |
struct PP_InputEvent_Character character; |
@@ -240,8 +282,8 @@ |
struct PP_InputEvent_Wheel wheel; |
/** |
- * Allows new events to be added without changing the size of this |
- * struct. |
+ * This value allows new events to be added without changing the size of |
+ * this struct. |
*/ |
char padding[64]; |
} u; |