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.
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"
13 typedef EnterResource
<PPB_Scrollbar_API
> EnterScrollbar
;
17 PP_Resource
Create(PP_Instance instance
, PP_Bool vertical
) {
18 EnterResourceCreation
enter(instance
);
21 return enter
.functions()->CreateScrollbar(instance
, vertical
);
24 PP_Bool
IsScrollbar(PP_Resource resource
) {
25 EnterScrollbar
enter(resource
, false);
26 return PP_FromBool(enter
.succeeded());
29 uint32_t GetThickness(PP_Resource scrollbar
) {
30 EnterScrollbar
enter(scrollbar
, true);
33 return enter
.object()->GetThickness();
36 PP_Bool
IsOverlay(PP_Resource scrollbar
) {
37 EnterScrollbar
enter(scrollbar
, true);
40 return PP_FromBool(enter
.object()->IsOverlay());
43 uint32_t GetValue(PP_Resource scrollbar
) {
44 EnterScrollbar
enter(scrollbar
, true);
47 return enter
.object()->GetValue();
50 void SetValue(PP_Resource scrollbar
, uint32_t value
) {
51 EnterScrollbar
enter(scrollbar
, true);
52 if (enter
.succeeded())
53 enter
.object()->SetValue(value
);
56 void SetDocumentSize(PP_Resource scrollbar
, uint32_t size
) {
57 EnterScrollbar
enter(scrollbar
, true);
58 if (enter
.succeeded())
59 enter
.object()->SetDocumentSize(size
);
62 void SetTickMarks(PP_Resource scrollbar
,
63 const PP_Rect
* tick_marks
,
65 EnterScrollbar
enter(scrollbar
, true);
66 if (enter
.succeeded())
67 enter
.object()->SetTickMarks(tick_marks
, count
);
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
);
76 const PPB_Scrollbar_Dev g_ppb_scrollbar_thunk
= {
90 const PPB_Scrollbar_Dev_0_5
* GetPPB_Scrollbar_Dev_0_5_Thunk() {
91 return &g_ppb_scrollbar_thunk
;