blob: 59850d31be0d25f7ae7bc1ebe8b839982ba603e0 [file] [log] [blame]
Torne (Richard Coles)a36e5922013-08-05 13:57:33 +01001// 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