OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 #ifndef PPAPI_CPP_DEV_TEXT_INPUT_DEV_H_ | 5 #ifndef PPAPI_CPP_DEV_TEXT_INPUT_DEV_H_ |
6 #define PPAPI_CPP_DEV_TEXT_INPUT_DEV_H_ | 6 #define PPAPI_CPP_DEV_TEXT_INPUT_DEV_H_ |
7 | 7 |
| 8 #include <string> |
| 9 |
8 #include "ppapi/c/dev/ppb_text_input_dev.h" | 10 #include "ppapi/c/dev/ppb_text_input_dev.h" |
9 #include "ppapi/cpp/instance_handle.h" | 11 #include "ppapi/cpp/instance_handle.h" |
10 | 12 |
11 /// @file | |
12 /// This file defines the API for controlling text input methods. | |
13 namespace pp { | 13 namespace pp { |
14 | 14 |
15 class Rect; | 15 class Rect; |
| 16 class Instance; |
16 | 17 |
| 18 // This class allows you to associate the PPP_TextInput_Dev and |
| 19 // PPB_TextInput_Dev C-based interfaces with an object. It associates itself |
| 20 // with the given instance, and registers as the global handler for handling the |
| 21 // PPP_TextInput_Dev interface that the browser calls. |
| 22 // |
| 23 // You would typically use this either via inheritance on your instance: |
| 24 // class MyInstance : public pp::Instance, public pp::TextInput_Dev { |
| 25 // MyInstance() : pp::TextInput_Dev(this) { |
| 26 // } |
| 27 // ... |
| 28 // }; |
| 29 // |
| 30 // or by composition: |
| 31 // class MyTextInput : public pp::TextInput_Dev { |
| 32 // ... |
| 33 // }; |
| 34 // |
| 35 // class MyInstance : public pp::Instance { |
| 36 // MyInstance() : text_input_(this) { |
| 37 // } |
| 38 // |
| 39 // MyTextInput text_input_; |
| 40 // }; |
17 class TextInput_Dev { | 41 class TextInput_Dev { |
18 public: | 42 public: |
19 explicit TextInput_Dev(const InstanceHandle& instance); | 43 explicit TextInput_Dev(Instance* instance); |
20 virtual ~TextInput_Dev(); | 44 virtual ~TextInput_Dev(); |
21 | 45 |
| 46 virtual void RequestSurroundingText(uint32_t desired_number_of_characters); |
| 47 |
22 void SetTextInputType(PP_TextInput_Type type); | 48 void SetTextInputType(PP_TextInput_Type type); |
23 void UpdateCaretPosition(const Rect& caret, const Rect& bounding_box); | 49 void UpdateCaretPosition(const Rect& caret, const Rect& bounding_box); |
24 void CancelCompositionText(); | 50 void CancelCompositionText(); |
| 51 void SelectionChanged(); |
| 52 void UpdateSurroundingText(const std::string& text, |
| 53 uint32_t caret, uint32_t anchor); |
25 | 54 |
26 private: | 55 private: |
27 InstanceHandle instance_; | 56 InstanceHandle instance_; |
28 }; | 57 }; |
29 | 58 |
30 } // namespace pp | 59 } // namespace pp |
31 | 60 |
32 #endif // PPAPI_CPP_DEV_TEXT_INPUT_DEV_H_ | 61 #endif // PPAPI_CPP_DEV_TEXT_INPUT_DEV_H_ |
OLD | NEW |