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 10namespace ppapi { 11namespace thunk { 12 13typedef EnterResource<PPB_Scrollbar_API> EnterScrollbar; 14 15namespace { 16 17PP_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 24PP_Bool IsScrollbar(PP_Resource resource) { 25 EnterScrollbar enter(resource, false); 26 return PP_FromBool(enter.succeeded()); 27} 28 29uint32_t GetThickness(PP_Resource scrollbar) { 30 EnterScrollbar enter(scrollbar, true); 31 if (enter.failed()) 32 return 0; 33 return enter.object()->GetThickness(); 34} 35 36PP_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 43uint32_t GetValue(PP_Resource scrollbar) { 44 EnterScrollbar enter(scrollbar, true); 45 if (enter.failed()) 46 return 0; 47 return enter.object()->GetValue(); 48} 49 50void SetValue(PP_Resource scrollbar, uint32_t value) { 51 EnterScrollbar enter(scrollbar, true); 52 if (enter.succeeded()) 53 enter.object()->SetValue(value); 54} 55 56void SetDocumentSize(PP_Resource scrollbar, uint32_t size) { 57 EnterScrollbar enter(scrollbar, true); 58 if (enter.succeeded()) 59 enter.object()->SetDocumentSize(size); 60} 61 62void 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 70void 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 76const 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 90const 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