Home | History | Annotate | Download | only in c
      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.
      4  */
      5 
      6 /* From pp_touch_point.idl modified Thu Mar 28 10:13:07 2013. */
      7 
      8 #ifndef PPAPI_C_PP_TOUCH_POINT_H_
      9 #define PPAPI_C_PP_TOUCH_POINT_H_
     10 
     11 #include "ppapi/c/pp_macros.h"
     12 #include "ppapi/c/pp_point.h"
     13 #include "ppapi/c/pp_stdint.h"
     14 
     15 /**
     16  * @file
     17  * This file defines the API to create a touch point or position where fingers
     18  * makes contact with touch screen device.
     19  */
     20 
     21 
     22 /**
     23  * @addtogroup Structs
     24  * @{
     25  */
     26 /**
     27  * The <code>PP_TouchPoint</code> struct represents all information about a
     28  * single touch point, such as position, id, rotation angle, and pressure.
     29  */
     30 struct PP_TouchPoint {
     31   /**
     32    * This value represents the identifier for this TouchPoint. The id
     33    * corresponds to the order in which the points were pressed. For example,
     34    * the first point to be pressed has an id of 0, the second has an id of 1,
     35    * and so on. An id can be reused when a touch point is released.  For
     36    * example, if two fingers are down, with id 0 and 1, and finger 0 releases,
     37    * the next finger to be pressed can be assigned to id 0.
     38    */
     39   uint32_t id;
     40   /**
     41    * This value represents the x and y pixel position of this TouchPoint
     42    * relative to the upper-left of the module instance receiving the event.
     43    */
     44   struct PP_FloatPoint position;
     45   /**
     46    * This value represents the elliptical radii, in screen pixels, in the x
     47    * and y direction of this TouchPoint.
     48    */
     49   struct PP_FloatPoint radius;
     50   /**
     51    * This value represents the angle of rotation in degrees of the elliptical
     52    * model of this TouchPoint clockwise from "up."
     53    */
     54   float rotation_angle;
     55   /**
     56    * This value represents the pressure applied to this TouchPoint.  This value
     57    * is typically between 0 and 1, with 0 indicating no pressure and 1
     58    * indicating some maximum pressure. Scaling differs depending on the
     59    * hardware and the value is not guaranteed to stay within that range.
     60    */
     61   float pressure;
     62 };
     63 PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_TouchPoint, 28);
     64 /**
     65  * @}
     66  */
     67 
     68 /**
     69  * @addtogroup Functions
     70  * @{
     71  */
     72 
     73 /**
     74  * PP_MakeTouchPoint() creates a <code>PP_TouchPoint</code>.
     75  *
     76  * @return A <code>PP_TouchPoint</code> structure.
     77  */
     78 PP_INLINE struct PP_TouchPoint PP_MakeTouchPoint(void) {
     79   struct PP_TouchPoint result = { 0, {0, 0}, {0, 0}, 0, 0 };
     80   return result;
     81 }
     82 /**
     83  * @}
     84  */
     85 
     86 #endif  /* PPAPI_C_PP_TOUCH_POINT_H_ */
     87 
     88