OLD | NEW |
| (Empty) |
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 #include "ppapi/thunk/thunk.h" | |
6 #include "ppapi/thunk/enter.h" | |
7 #include "ppapi/thunk/ppb_scrollbar_api.h" | |
8 #include "ppapi/thunk/resource_creation_api.h" | |
9 | |
10 namespace ppapi { | |
11 namespace thunk { | |
12 | |
13 typedef EnterResource<PPB_Scrollbar_API> EnterScrollbar; | |
14 | |
15 namespace { | |
16 | |
17 PP_Resource Create(PP_Instance instance, PP_Bool vertical) { | |
18 EnterResourceCreation enter(instance); | |
19 if (enter.failed()) | |
20 return 0; | |
21 return enter.functions()->CreateScrollbar(instance, vertical); | |
22 } | |
23 | |
24 PP_Bool IsScrollbar(PP_Resource resource) { | |
25 EnterScrollbar enter(resource, false); | |
26 return PP_FromBool(enter.succeeded()); | |
27 } | |
28 | |
29 uint32_t GetThickness(PP_Resource scrollbar) { | |
30 EnterScrollbar enter(scrollbar, true); | |
31 if (enter.failed()) | |
32 return 0; | |
33 return enter.object()->GetThickness(); | |
34 } | |
35 | |
36 PP_Bool IsOverlay(PP_Resource scrollbar) { | |
37 EnterScrollbar enter(scrollbar, true); | |
38 if (enter.failed()) | |
39 return PP_FALSE; | |
40 return PP_FromBool(enter.object()->IsOverlay()); | |
41 } | |
42 | |
43 uint32_t GetValue(PP_Resource scrollbar) { | |
44 EnterScrollbar enter(scrollbar, true); | |
45 if (enter.failed()) | |
46 return 0; | |
47 return enter.object()->GetValue(); | |
48 } | |
49 | |
50 void SetValue(PP_Resource scrollbar, uint32_t value) { | |
51 EnterScrollbar enter(scrollbar, true); | |
52 if (enter.succeeded()) | |
53 enter.object()->SetValue(value); | |
54 } | |
55 | |
56 void SetDocumentSize(PP_Resource scrollbar, uint32_t size) { | |
57 EnterScrollbar enter(scrollbar, true); | |
58 if (enter.succeeded()) | |
59 enter.object()->SetDocumentSize(size); | |
60 } | |
61 | |
62 void SetTickMarks(PP_Resource scrollbar, | |
63 const PP_Rect* tick_marks, | |
64 uint32_t count) { | |
65 EnterScrollbar enter(scrollbar, true); | |
66 if (enter.succeeded()) | |
67 enter.object()->SetTickMarks(tick_marks, count); | |
68 } | |
69 | |
70 void ScrollBy(PP_Resource scrollbar, PP_ScrollBy_Dev unit, int32_t multiplier) { | |
71 EnterScrollbar enter(scrollbar, true); | |
72 if (enter.succeeded()) | |
73 enter.object()->ScrollBy(unit, multiplier); | |
74 } | |
75 | |
76 const PPB_Scrollbar_Dev g_ppb_scrollbar_thunk = { | |
77 &Create, | |
78 &IsScrollbar, | |
79 &GetThickness, | |
80 &IsOverlay, | |
81 &GetValue, | |
82 &SetValue, | |
83 &SetDocumentSize, | |
84 &SetTickMarks, | |
85 &ScrollBy | |
86 }; | |
87 | |
88 } // namespace | |
89 | |
90 const PPB_Scrollbar_Dev_0_5* GetPPB_Scrollbar_Dev_0_5_Thunk() { | |
91 return &g_ppb_scrollbar_thunk; | |
92 } | |
93 | |
94 } // namespace thunk | |
95 } // namespace ppapi | |
OLD | NEW |