Home | History | Annotate | Download | only in dev
      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 dev/ppb_scrollbar_dev.idl modified Wed Oct  5 14:06:02 2011. */
      7 
      8 #ifndef PPAPI_C_DEV_PPB_SCROLLBAR_DEV_H_
      9 #define PPAPI_C_DEV_PPB_SCROLLBAR_DEV_H_
     10 
     11 #include "ppapi/c/pp_bool.h"
     12 #include "ppapi/c/pp_instance.h"
     13 #include "ppapi/c/pp_macros.h"
     14 #include "ppapi/c/pp_point.h"
     15 #include "ppapi/c/pp_rect.h"
     16 #include "ppapi/c/pp_resource.h"
     17 #include "ppapi/c/pp_size.h"
     18 #include "ppapi/c/pp_stdint.h"
     19 
     20 #define PPB_SCROLLBAR_DEV_INTERFACE_0_5 "PPB_Scrollbar(Dev);0.5"
     21 #define PPB_SCROLLBAR_DEV_INTERFACE PPB_SCROLLBAR_DEV_INTERFACE_0_5
     22 
     23 /**
     24  * @file
     25  * This file defines the <code>PPB_Buffer_Dev</code> interface.
     26  */
     27 
     28 
     29 /**
     30  * @addtogroup Enums
     31  * @{
     32  */
     33 typedef enum {
     34   PP_SCROLLBY_PIXEL = 0,
     35   PP_SCROLLBY_LINE = 1,
     36   PP_SCROLLBY_PAGE = 2,
     37   PP_SCROLLBY_DOCUMENT = 3
     38 } PP_ScrollBy_Dev;
     39 PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_ScrollBy_Dev, 4);
     40 /**
     41  * @}
     42  */
     43 
     44 /**
     45  * @addtogroup Interfaces
     46  * @{
     47  */
     48 /**
     49  * The interface for a scrollbar.  A scrollbar is a widget, so the functions
     50  * in PPB_Widget can also be used with scrollbar objects.
     51  */
     52 struct PPB_Scrollbar_Dev_0_5 {
     53   /**
     54    * Create a new scrollbar.  Returns 0 if the instance is invalid.
     55    */
     56   PP_Resource (*Create)(PP_Instance instance, PP_Bool vertical);
     57   /**
     58    * Returns PP_TRUE if the given resource is a Scrollbar. Returns PP_FALSE if
     59    * the resource is invalid or some type other than a scrollbar.
     60    */
     61   PP_Bool (*IsScrollbar)(PP_Resource resource);
     62   /**
     63    * Gets the thickness of a scrollbar.
     64    */
     65   uint32_t (*GetThickness)(PP_Resource resource);
     66   /**
     67    * Returns PP_TRUE if the system scrollbar style is an overlap scrollbar.
     68    */
     69   PP_Bool (*IsOverlay)(PP_Resource scrollbar);
     70   /**
     71    * Gets the value of the scrollbar.
     72    */
     73   uint32_t (*GetValue)(PP_Resource scrollbar);
     74   /**
     75    * Sets the value of the scrollbar.
     76    */
     77   void (*SetValue)(PP_Resource scrollbar, uint32_t value);
     78   /**
     79    * Set the document size (i.e. total length of the region that's being
     80    * scrolled).
     81    */
     82   void (*SetDocumentSize)(PP_Resource scrollbar, uint32_t size);
     83   /**
     84    * Updates the tickmarks.  Only valid for vertical scrollbars.  "tick_marks"
     85    * contains "count" PP_Rect objects.
     86    */
     87   void (*SetTickMarks)(PP_Resource scrollbar,
     88                        const struct PP_Rect tick_marks[],
     89                        uint32_t count);
     90   /**
     91    * Scroll by "multiplier" pixels/lines/pages units.  Positive values are
     92    * forward and negative are backward.  If "unit" is document then any positive
     93    * value goes to the end while any negative value goes to the beginning.
     94    */
     95   void (*ScrollBy)(PP_Resource scrollbar,
     96                    PP_ScrollBy_Dev unit,
     97                    int32_t multiplier);
     98 };
     99 
    100 typedef struct PPB_Scrollbar_Dev_0_5 PPB_Scrollbar_Dev;
    101 /**
    102  * @}
    103  */
    104 
    105 #endif  /* PPAPI_C_DEV_PPB_SCROLLBAR_DEV_H_ */
    106 
    107