OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
| 5 #include "ppapi/c/ppb_text_input_controller.h" |
| 6 |
| 7 #include "ppapi/shared_impl/var.h" |
5 #include "ppapi/thunk/enter.h" | 8 #include "ppapi/thunk/enter.h" |
| 9 #include "ppapi/thunk/ppb_instance_api.h" |
6 #include "ppapi/thunk/thunk.h" | 10 #include "ppapi/thunk/thunk.h" |
7 #include "ppapi/thunk/ppb_instance_api.h" | |
8 | 11 |
9 namespace ppapi { | 12 namespace ppapi { |
10 namespace thunk { | 13 namespace thunk { |
11 | 14 |
12 namespace { | 15 namespace { |
13 | 16 |
14 void SetTextInputType(PP_Instance instance, PP_TextInput_Type type) { | 17 void SetTextInputType(PP_Instance instance, PP_TextInput_Type type) { |
15 EnterInstance enter(instance); | 18 EnterInstance enter(instance); |
16 if (enter.succeeded()) | 19 if (enter.succeeded()) |
17 enter.functions()->SetTextInputType(instance, type); | 20 enter.functions()->SetTextInputType(instance, type); |
18 } | 21 } |
19 | 22 |
20 void UpdateCaretPosition(PP_Instance instance, | 23 void UpdateCaretPosition_0_2(PP_Instance instance, |
21 const PP_Rect* caret, | 24 const PP_Rect* caret, |
22 const PP_Rect* bounding_box) { | 25 const PP_Rect* bounding_box) { |
23 EnterInstance enter(instance); | 26 EnterInstance enter(instance); |
24 if (enter.succeeded() && caret && bounding_box) | 27 if (enter.succeeded() && caret && bounding_box) |
25 enter.functions()->UpdateCaretPosition(instance, *caret, *bounding_box); | 28 enter.functions()->UpdateCaretPosition(instance, *caret, *bounding_box); |
26 } | 29 } |
27 | 30 |
| 31 void UpdateCaretPosition(PP_Instance instance, |
| 32 const PP_Rect* caret) { |
| 33 EnterInstance enter(instance); |
| 34 if (enter.succeeded() && caret) |
| 35 enter.functions()->UpdateCaretPosition(instance, *caret, PP_Rect()); |
| 36 } |
| 37 |
28 void CancelCompositionText(PP_Instance instance) { | 38 void CancelCompositionText(PP_Instance instance) { |
29 EnterInstance enter(instance); | 39 EnterInstance enter(instance); |
30 if (enter.succeeded()) | 40 if (enter.succeeded()) |
31 enter.functions()->CancelCompositionText(instance); | 41 enter.functions()->CancelCompositionText(instance); |
32 } | 42 } |
33 | 43 |
34 void UpdateSurroundingText(PP_Instance instance, const char* text, | 44 void UpdateSurroundingText_0_2(PP_Instance instance, const char* text, |
35 uint32_t caret, uint32_t anchor) { | 45 uint32_t caret, uint32_t anchor) { |
36 EnterInstance enter(instance); | 46 EnterInstance enter(instance); |
37 if (enter.succeeded()) | 47 if (enter.succeeded()) |
38 enter.functions()->UpdateSurroundingText(instance, text, caret, anchor); | 48 enter.functions()->UpdateSurroundingText(instance, text, caret, anchor); |
39 } | 49 } |
40 | 50 |
| 51 void UpdateSurroundingText_1_0(PP_Instance instance, PP_Var text, |
| 52 uint32_t caret, uint32_t anchor) { |
| 53 EnterInstance enter(instance); |
| 54 StringVar* var = StringVar::FromPPVar(text); |
| 55 if (enter.succeeded() && var) |
| 56 enter.functions()->UpdateSurroundingText(instance, |
| 57 var->value().c_str(), |
| 58 caret, |
| 59 anchor); |
| 60 } |
| 61 |
41 void SelectionChanged(PP_Instance instance) { | 62 void SelectionChanged(PP_Instance instance) { |
42 EnterInstance enter(instance); | 63 EnterInstance enter(instance); |
43 if (enter.succeeded()) | 64 if (enter.succeeded()) |
44 enter.functions()->SelectionChanged(instance); | 65 enter.functions()->SelectionChanged(instance); |
45 } | 66 } |
46 | 67 |
47 const PPB_TextInput_Dev_0_1 g_ppb_textinput_0_1_thunk = { | 68 const PPB_TextInput_Dev_0_1 g_ppb_textinput_0_1_thunk = { |
48 &SetTextInputType, | 69 &SetTextInputType, |
49 &UpdateCaretPosition, | 70 &UpdateCaretPosition_0_2, |
50 &CancelCompositionText, | 71 &CancelCompositionText, |
51 }; | 72 }; |
52 | 73 |
53 const PPB_TextInput_Dev g_ppb_textinput_0_2_thunk = { | 74 const PPB_TextInput_Dev_0_2 g_ppb_textinput_0_2_thunk = { |
| 75 &SetTextInputType, |
| 76 &UpdateCaretPosition_0_2, |
| 77 &CancelCompositionText, |
| 78 &UpdateSurroundingText_0_2, |
| 79 &SelectionChanged, |
| 80 }; |
| 81 |
| 82 const PPB_TextInputController_1_0 g_ppb_textinputcontroller_1_0_thunk = { |
54 &SetTextInputType, | 83 &SetTextInputType, |
55 &UpdateCaretPosition, | 84 &UpdateCaretPosition, |
56 &CancelCompositionText, | 85 &CancelCompositionText, |
57 &UpdateSurroundingText, | 86 &UpdateSurroundingText_1_0, |
58 &SelectionChanged, | |
59 }; | 87 }; |
60 | 88 |
61 } // namespace | 89 } // namespace |
62 | 90 |
63 const PPB_TextInput_Dev_0_1* GetPPB_TextInput_Dev_0_1_Thunk() { | 91 const PPB_TextInput_Dev_0_1* GetPPB_TextInput_Dev_0_1_Thunk() { |
64 return &g_ppb_textinput_0_1_thunk; | 92 return &g_ppb_textinput_0_1_thunk; |
65 } | 93 } |
66 | 94 |
67 const PPB_TextInput_Dev_0_2* GetPPB_TextInput_Dev_0_2_Thunk() { | 95 const PPB_TextInput_Dev_0_2* GetPPB_TextInput_Dev_0_2_Thunk() { |
68 return &g_ppb_textinput_0_2_thunk; | 96 return &g_ppb_textinput_0_2_thunk; |
69 } | 97 } |
70 | 98 |
| 99 const PPB_TextInputController_1_0* GetPPB_TextInputController_1_0_Thunk() { |
| 100 return &g_ppb_textinputcontroller_1_0_thunk; |
| 101 } |
| 102 |
71 } // namespace thunk | 103 } // namespace thunk |
72 } // namespace ppapi | 104 } // namespace ppapi |
OLD | NEW |