• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
Create(PP_Instance instance,PP_Bool vertical)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 
IsScrollbar(PP_Resource resource)24 PP_Bool IsScrollbar(PP_Resource resource) {
25   EnterScrollbar enter(resource, false);
26   return PP_FromBool(enter.succeeded());
27 }
28 
GetThickness(PP_Resource scrollbar)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 
IsOverlay(PP_Resource scrollbar)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 
GetValue(PP_Resource scrollbar)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 
SetValue(PP_Resource scrollbar,uint32_t value)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 
SetDocumentSize(PP_Resource scrollbar,uint32_t size)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 
SetTickMarks(PP_Resource scrollbar,const PP_Rect * tick_marks,uint32_t count)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 
ScrollBy(PP_Resource scrollbar,PP_ScrollBy_Dev unit,int32_t multiplier)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 
GetPPB_Scrollbar_Dev_0_5_Thunk()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
96