- add sources.
[platform/framework/web/crosswalk.git] / src / ppapi / c / dev / ppb_scrollbar_dev.h
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