SW: Move TRACE_EVENT_ASYNC_END to avoid early return and fix typo
[chromium-blink-merge.git] / ppapi / thunk / ppb_scrollbar_thunk.cc
blob589948c16530933a8af2a5f5b0305783dde61d63
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"
10 namespace ppapi {
11 namespace thunk {
13 typedef EnterResource<PPB_Scrollbar_API> EnterScrollbar;
15 namespace {
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);
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);
31 if (enter.failed())
32 return 0;
33 return enter.object()->GetThickness();
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());
43 uint32_t GetValue(PP_Resource scrollbar) {
44 EnterScrollbar enter(scrollbar, true);
45 if (enter.failed())
46 return 0;
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,
64 uint32_t count) {
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 = {
77 &Create,
78 &IsScrollbar,
79 &GetThickness,
80 &IsOverlay,
81 &GetValue,
82 &SetValue,
83 &SetDocumentSize,
84 &SetTickMarks,
85 &ScrollBy
88 } // namespace
90 const PPB_Scrollbar_Dev_0_5* GetPPB_Scrollbar_Dev_0_5_Thunk() {
91 return &g_ppb_scrollbar_thunk;
94 } // namespace thunk
95 } // namespace ppapi