diff options
author | nona@chromium.org <nona@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-01 00:22:48 +0000 |
---|---|---|
committer | nona@chromium.org <nona@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-01 00:22:48 +0000 |
commit | 79cad34f87841d010fd39023d369e406daef39f7 (patch) | |
tree | 4bf8330916574fe9fa103f92c381f77d36ffdf73 /ppapi/cpp/input_event.cc | |
parent | 934e3c950dad11ddc4198005ea2bc5ec6df3a5ec (diff) | |
download | chromium_src-79cad34f87841d010fd39023d369e406daef39f7.zip chromium_src-79cad34f87841d010fd39023d369e406daef39f7.tar.gz chromium_src-79cad34f87841d010fd39023d369e406daef39f7.tar.bz2 |
PPAPI: Move IMEInputEvent and TextInput to stable.
To be able to work with current ppapi Flash, this CL keeps ABI of "PPB_IMEInputEvent_Dev_0_2", "PPB_TextInput_Dev_0_2" and "PPP_TextInput_Dev_0_2".
BUG=None
TEST=Manually checked that ppapi_example_ime works and also works with current Flash.
NOTRY=True
Review URL: https://chromiumcodereview.appspot.com/18671004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@214878 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/cpp/input_event.cc')
-rw-r--r-- | ppapi/cpp/input_event.cc | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/ppapi/cpp/input_event.cc b/ppapi/cpp/input_event.cc index 1f368b0..e4e0003 100644 --- a/ppapi/cpp/input_event.cc +++ b/ppapi/cpp/input_event.cc @@ -35,6 +35,10 @@ template <> const char* interface_name<PPB_TouchInputEvent_1_0>() { return PPB_TOUCH_INPUT_EVENT_INTERFACE_1_0; } +template <> const char* interface_name<PPB_IMEInputEvent_1_0>() { + return PPB_IME_INPUT_EVENT_INTERFACE_1_0; +} + } // namespace // InputEvent ------------------------------------------------------------------ @@ -280,4 +284,79 @@ TouchPoint TouchInputEvent::GetTouchByIndex(PP_TouchListType list, GetTouchByIndex(pp_resource(), list, index)); } +// IMEInputEvent ------------------------------------------------------- + +IMEInputEvent::IMEInputEvent() : InputEvent() { +} + +IMEInputEvent::IMEInputEvent(const InputEvent& event) : InputEvent() { + if (has_interface<PPB_IMEInputEvent_1_0>()) { + if (get_interface<PPB_IMEInputEvent_1_0>()->IsIMEInputEvent( + event.pp_resource())) { + Module::Get()->core()->AddRefResource(event.pp_resource()); + PassRefFromConstructor(event.pp_resource()); + } + } +} + +IMEInputEvent::IMEInputEvent( + const InstanceHandle& instance, + PP_InputEvent_Type type, + PP_TimeTicks time_stamp, + const Var& text, + const std::vector<uint32_t>& segment_offsets, + int32_t target_segment, + const std::pair<uint32_t, uint32_t>& selection) : InputEvent() { + if (!has_interface<PPB_IMEInputEvent_1_0>()) + return; + uint32_t dummy = 0; + PassRefFromConstructor(get_interface<PPB_IMEInputEvent_1_0>()->Create( + instance.pp_instance(), type, time_stamp, text.pp_var(), + segment_offsets.empty() ? 0 : segment_offsets.size() - 1, + segment_offsets.empty() ? &dummy : &segment_offsets[0], + target_segment, selection.first, selection.second)); +} + + +Var IMEInputEvent::GetText() const { + if (has_interface<PPB_IMEInputEvent_1_0>()) { + return Var(PASS_REF, + get_interface<PPB_IMEInputEvent_1_0>()->GetText( + pp_resource())); + } + return Var(); +} + +uint32_t IMEInputEvent::GetSegmentNumber() const { + if (has_interface<PPB_IMEInputEvent_1_0>()) { + return get_interface<PPB_IMEInputEvent_1_0>()->GetSegmentNumber( + pp_resource()); + } + return 0; +} + +uint32_t IMEInputEvent::GetSegmentOffset(uint32_t index) const { + if (has_interface<PPB_IMEInputEvent_1_0>()) { + return get_interface<PPB_IMEInputEvent_1_0>()->GetSegmentOffset( + pp_resource(), index); + } + return 0; +} + +int32_t IMEInputEvent::GetTargetSegment() const { + if (has_interface<PPB_IMEInputEvent_1_0>()) { + return get_interface<PPB_IMEInputEvent_1_0>()->GetTargetSegment( + pp_resource()); + } + return 0; +} + +void IMEInputEvent::GetSelection(uint32_t* start, uint32_t* end) const { + if (has_interface<PPB_IMEInputEvent_1_0>()) { + get_interface<PPB_IMEInputEvent_1_0>()->GetSelection(pp_resource(), + start, + end); + } +} + } // namespace pp |