1// Copyright 2013 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/cpp/text_input_controller.h" 6 7#include "ppapi/cpp/module_impl.h" 8#include "ppapi/cpp/rect.h" 9#include "ppapi/cpp/var.h" 10 11namespace pp { 12 13namespace { 14 15template <> const char* interface_name<PPB_TextInputController_1_0>() { 16 return PPB_TEXTINPUTCONTROLLER_INTERFACE_1_0; 17} 18 19} // namespace 20 21 22TextInputController::TextInputController(const InstanceHandle& instance) 23 : instance_(instance) { 24} 25 26TextInputController::~TextInputController() { 27} 28 29void TextInputController::SetTextInputType(PP_TextInput_Type type) { 30 if (has_interface<PPB_TextInputController_1_0>()) { 31 get_interface<PPB_TextInputController_1_0>()->SetTextInputType( 32 instance_.pp_instance(), type); 33 } 34} 35 36void TextInputController::UpdateCaretPosition(const Rect& caret) { 37 if (has_interface<PPB_TextInputController_1_0>()) { 38 get_interface<PPB_TextInputController_1_0>()->UpdateCaretPosition( 39 instance_.pp_instance(), &caret.pp_rect()); 40 } 41} 42 43void TextInputController::CancelCompositionText() { 44 if (has_interface<PPB_TextInputController_1_0>()) { 45 get_interface<PPB_TextInputController_1_0>()->CancelCompositionText( 46 instance_.pp_instance()); 47 } 48} 49 50void TextInputController::UpdateSurroundingText(const Var& text, 51 uint32_t caret, 52 uint32_t anchor) { 53 if (has_interface<PPB_TextInputController_1_0>()) { 54 get_interface<PPB_TextInputController_1_0>()->UpdateSurroundingText( 55 instance_.pp_instance(), 56 text.pp_var(), 57 caret, 58 anchor); 59 } 60} 61 62 63} // namespace pp 64