| Index: ppapi/native_client/src/shared/ppapi_proxy/plugin_ppb_scrollbar.cc
|
| ===================================================================
|
| --- ppapi/native_client/src/shared/ppapi_proxy/plugin_ppb_scrollbar.cc (revision 0)
|
| +++ ppapi/native_client/src/shared/ppapi_proxy/plugin_ppb_scrollbar.cc (revision 0)
|
| @@ -0,0 +1,201 @@
|
| +// Copyright (c) 2011 The Native Client Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "native_client/src/shared/ppapi_proxy/plugin_ppb_scrollbar.h"
|
| +
|
| +#include "native_client/src/include/portability.h"
|
| +#include "native_client/src/shared/ppapi_proxy/plugin_callback.h"
|
| +#include "native_client/src/shared/ppapi_proxy/plugin_globals.h"
|
| +#include "native_client/src/shared/ppapi_proxy/utility.h"
|
| +#include "ppapi/c/dev/ppb_scrollbar_dev.h"
|
| +#include "ppapi/c/pp_completion_callback.h"
|
| +#include "ppapi/c/pp_errors.h"
|
| +#include "ppapi/c/pp_rect.h"
|
| +#include "srpcgen/ppb_rpc.h"
|
| +
|
| +namespace ppapi_proxy {
|
| +
|
| +namespace {
|
| +
|
| +const nacl_abi_size_t kPPRectBytes =
|
| + static_cast<nacl_abi_size_t>(sizeof(struct PP_Rect));
|
| +
|
| +PP_Resource Create(PP_Instance instance, PP_Bool vertical) {
|
| + DebugPrintf("PPB_Scrollbar::Create: "
|
| + "instance=%"NACL_PRIu32"\n",
|
| + instance);
|
| +
|
| + PP_Resource scrollbar = kInvalidResourceId;
|
| + NaClSrpcError srpc_result =
|
| + PpbScrollbarRpcClient::PPB_Scrollbar_Create(
|
| + GetMainSrpcChannel(),
|
| + instance,
|
| + vertical,
|
| + &scrollbar);
|
| +
|
| + DebugPrintf("PPB_Scrollbar::Create: %s\n",
|
| + NaClSrpcErrorString(srpc_result));
|
| + return scrollbar;
|
| +}
|
| +
|
| +PP_Bool IsScrollbar(PP_Resource resource) {
|
| + DebugPrintf("PPB_Scrollbar::IsScrollbar: "
|
| + "resource=%"NACL_PRIu32"\n",
|
| + resource);
|
| +
|
| + int32_t is_scrollbar = 0;
|
| + NaClSrpcError srpc_result =
|
| + PpbScrollbarRpcClient::PPB_Scrollbar_IsScrollbar(
|
| + GetMainSrpcChannel(),
|
| + resource,
|
| + &is_scrollbar);
|
| +
|
| + DebugPrintf("PPB_Scrollbar::IsScrollbar: %s\n",
|
| + NaClSrpcErrorString(srpc_result));
|
| +
|
| + if (srpc_result == NACL_SRPC_RESULT_OK && is_scrollbar)
|
| + return PP_TRUE;
|
| + return PP_FALSE;
|
| +}
|
| +
|
| +uint32_t GetThickness(PP_Resource resource) {
|
| + DebugPrintf("PPB_Scrollbar::GetThickness");
|
| +
|
| + int32_t thickness = 0;
|
| + NaClSrpcError srpc_result =
|
| + PpbScrollbarRpcClient::PPB_Scrollbar_GetThickness(
|
| + GetMainSrpcChannel(),
|
| + resource,
|
| + &thickness);
|
| +
|
| + DebugPrintf("PPB_Scrollbar::GetThickness: %s\n",
|
| + NaClSrpcErrorString(srpc_result));
|
| +
|
| + return thickness;
|
| +}
|
| +
|
| +PP_Bool IsOverlay(PP_Resource resource) {
|
| + DebugPrintf("PPB_Scrollbar::IsOverlay: "
|
| + "resource=%"NACL_PRIu32"\n",
|
| + resource);
|
| +
|
| + int32_t is_overlay = 0;
|
| + NaClSrpcError srpc_result =
|
| + PpbScrollbarRpcClient::PPB_Scrollbar_IsOverlay(
|
| + GetMainSrpcChannel(),
|
| + resource,
|
| + &is_overlay);
|
| +
|
| + DebugPrintf("PPB_Scrollbar::IsOverlay: %s\n",
|
| + NaClSrpcErrorString(srpc_result));
|
| +
|
| + if (srpc_result == NACL_SRPC_RESULT_OK && is_overlay)
|
| + return PP_TRUE;
|
| + return PP_FALSE;
|
| +}
|
| +
|
| +uint32_t GetValue(PP_Resource scrollbar) {
|
| + DebugPrintf("PPB_Scrollbar::GetValue: "
|
| + "scrollbar=%"NACL_PRIu32"\n",
|
| + scrollbar);
|
| +
|
| + int32_t value = 0;
|
| + NaClSrpcError srpc_result =
|
| + PpbScrollbarRpcClient::PPB_Scrollbar_GetValue(
|
| + GetMainSrpcChannel(),
|
| + scrollbar,
|
| + &value);
|
| +
|
| + DebugPrintf("PPB_Scrollbar::GetValue: %s\n",
|
| + NaClSrpcErrorString(srpc_result));
|
| +
|
| + return value;
|
| +}
|
| +
|
| +void SetValue(PP_Resource scrollbar, uint32_t value) {
|
| + DebugPrintf("PPB_Scrollbar::SetValue: "
|
| + "scrollbar=%"NACL_PRIu32"\n",
|
| + scrollbar);
|
| +
|
| + NaClSrpcError srpc_result =
|
| + PpbScrollbarRpcClient::PPB_Scrollbar_SetValue(
|
| + GetMainSrpcChannel(),
|
| + scrollbar,
|
| + value);
|
| +
|
| + DebugPrintf("PPB_Scrollbar::SetValue: %s\n",
|
| + NaClSrpcErrorString(srpc_result));
|
| +}
|
| +
|
| +void SetDocumentSize(PP_Resource scrollbar, uint32_t size) {
|
| + DebugPrintf("PPB_Scrollbar::SetDocumentSize: "
|
| + "scrollbar=%"NACL_PRIu32"\n", scrollbar);
|
| +
|
| + NaClSrpcError srpc_result =
|
| + PpbScrollbarRpcClient::PPB_Scrollbar_SetDocumentSize(
|
| + GetMainSrpcChannel(),
|
| + scrollbar,
|
| + size);
|
| +
|
| + DebugPrintf("PPB_Scrollbar::SetDocumentSize: %s\n",
|
| + NaClSrpcErrorString(srpc_result));
|
| +}
|
| +
|
| +void SetTickMarks(PP_Resource scrollbar,
|
| + const struct PP_Rect* tick_marks,
|
| + uint32_t count) {
|
| + DebugPrintf("PPB_Scrollbar::SetTickMarks: "
|
| + "scrollbar=%"NACL_PRIu32"\n",
|
| + scrollbar);
|
| +
|
| + nacl_abi_size_t tick_marks_bytes = kPPRectBytes * count;
|
| + NaClSrpcError srpc_result =
|
| + PpbScrollbarRpcClient::PPB_Scrollbar_SetTickMarks(
|
| + GetMainSrpcChannel(),
|
| + scrollbar,
|
| + tick_marks_bytes,
|
| + reinterpret_cast<char*>(const_cast<struct PP_Rect*>(tick_marks)),
|
| + count);
|
| +
|
| + DebugPrintf("PPB_Scrollbar::SetTickMarks: %s\n",
|
| + NaClSrpcErrorString(srpc_result));
|
| +}
|
| +
|
| +void ScrollBy(PP_Resource scrollbar,
|
| + PP_ScrollBy_Dev unit,
|
| + int32_t multiplier) {
|
| + DebugPrintf("PPB_Scrollbar::ScrollBy: "
|
| + "scrollbar=%"NACL_PRIu32"\n",
|
| + scrollbar);
|
| +
|
| + NaClSrpcError srpc_result =
|
| + PpbScrollbarRpcClient::PPB_Scrollbar_ScrollBy(
|
| + GetMainSrpcChannel(),
|
| + scrollbar,
|
| + unit,
|
| + multiplier);
|
| +
|
| + DebugPrintf("PPB_Scrollbar::ScrollBy: %s\n",
|
| + NaClSrpcErrorString(srpc_result));
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| +const PPB_Scrollbar_Dev* PluginScrollbar::GetInterface() {
|
| + static const PPB_Scrollbar_Dev scrollbar_interface = {
|
| + Create,
|
| + IsScrollbar,
|
| + GetThickness,
|
| + IsOverlay,
|
| + GetValue,
|
| + SetValue,
|
| + SetDocumentSize,
|
| + SetTickMarks,
|
| + ScrollBy
|
| + };
|
| + return &scrollbar_interface;
|
| +}
|
| +
|
| +} // namespace ppapi_proxy
|
| +
|
|
|