From 2daba2f3623744b78f1880d8ebb0a673d03f52d3 Mon Sep 17 00:00:00 2001 From: "kinaba@chromium.org" Date: Thu, 29 Sep 2011 04:23:09 +0000 Subject: Additional update on Pepper IME API and boilerplate thunk/proxy implementation. BUG=59425 TEST=Check that ppapi_tests compile (with GYP_DEFINES=shared_library, too). This CL is the second (out of three) part for adding IME support for PPAPI. It reflects comments from James Su to the previous CL: http://codereview.chromium.org/7882004. - Renamed ..._COMPOSTION_START to _IME_COMPOSITON_START. - Changed to assure GetSegment to return a strictly increasing sequence of segmentation points from 0 to the length. and, - Added the mostly boilerplate code for interfacing with in-process & out-of-process plugins. The actual implementation of the IME support will come as the next and the last part of this series of patches. Review URL: http://codereview.chromium.org/8059006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@103234 0039d316-1c4b-4281-b951-d872f2087c98 --- ppapi/cpp/dev/ime_input_event_dev.cc | 13 ++++--------- ppapi/cpp/dev/ime_input_event_dev.h | 22 ++++++++++++++-------- ppapi/cpp/dev/text_input_dev.cc | 7 ------- ppapi/cpp/dev/text_input_dev.h | 1 - 4 files changed, 18 insertions(+), 25 deletions(-) (limited to 'ppapi/cpp') diff --git a/ppapi/cpp/dev/ime_input_event_dev.cc b/ppapi/cpp/dev/ime_input_event_dev.cc index 21fe879..bc1f387 100644 --- a/ppapi/cpp/dev/ime_input_event_dev.cc +++ b/ppapi/cpp/dev/ime_input_event_dev.cc @@ -49,16 +49,11 @@ uint32_t IMEInputEvent_Dev::GetSegmentNumber() const { pp_resource()); } -std::pair -IMEInputEvent_Dev::GetSegmentAt(uint32_t index) const { - std::pair range(0, 0); +uint32_t IMEInputEvent_Dev::GetSegmentOffset(uint32_t index) const { if (!has_interface()) - return range; - get_interface()->GetSegmentAt(pp_resource(), - index, - &range.first, - &range.second); - return range; + return 0; + return get_interface()->GetSegmentOffset(pp_resource(), + index); } int32_t IMEInputEvent_Dev::GetTargetSegment() const { diff --git a/ppapi/cpp/dev/ime_input_event_dev.h b/ppapi/cpp/dev/ime_input_event_dev.h index 3c9b4a3..17216a8 100644 --- a/ppapi/cpp/dev/ime_input_event_dev.h +++ b/ppapi/cpp/dev/ime_input_event_dev.h @@ -41,17 +41,23 @@ class IMEInputEvent_Dev : public InputEvent { /// returns 0. uint32_t GetSegmentNumber() const; - /// Returns the start and the end position of the index-th segment in the - /// composition text. The positions are given by byte-indices of the string - /// GetText(). They always satisfy 0 <= .first < .second <= (Length of - /// GetText()) and GetSegmentAt(index).first < GetSegmentAt(index+1).first. - /// When the event is not COMPOSITION_UPDATE or index >= GetSegmentNumber(), - /// returns (0, 0). + /// Returns the position of the index-th segmentation point in the composition + /// text. The position is given by a byte-offset (not a character-offset) of + /// the string returned by GetText(). It always satisfies + /// 0=GetSegmentOffset(0) < ... < GetSegmentOffset(i) < GetSegmentOffset(i+1) + /// < ... < GetSegmentOffset(GetSegmentNumber())=(byte-length of GetText()). + /// Note that [GetSegmentOffset(i), GetSegmentOffset(i+1)) represents the + /// range of the i-th segment, and hence GetSegmentNumber() can be a valid + /// argument to this function instead of an off-by-1 error. + /// + /// @param[in] ime_event A PP_Resource corresponding to an IME + /// event. /// /// @param[in] index An integer indicating a segment. /// - /// @return A pair of integers representing the index-th segment. - std::pair GetSegmentAt(uint32_t index) const; + /// @return The byte-offset of the segmentation point. If the event is not + /// COMPOSITION_UPDATE or index is out of range, returns 0. + uint32_t GetSegmentOffset(uint32_t index) const; /// Returns the index of the current target segment of composition. /// diff --git a/ppapi/cpp/dev/text_input_dev.cc b/ppapi/cpp/dev/text_input_dev.cc index 3ead040..6388836 100644 --- a/ppapi/cpp/dev/text_input_dev.cc +++ b/ppapi/cpp/dev/text_input_dev.cc @@ -40,13 +40,6 @@ void TextInput_Dev::UpdateCaretPosition(const Rect& caret, instance_->pp_instance(), &caret.pp_rect(), &bounding_box.pp_rect()); } -void TextInput_Dev::ConfirmCompositionText() { - if (!has_interface()) - return; - get_interface()->ConfirmCompositionText( - instance_->pp_instance()); -} - void TextInput_Dev::CancelCompositionText() { if (!has_interface()) return; diff --git a/ppapi/cpp/dev/text_input_dev.h b/ppapi/cpp/dev/text_input_dev.h index 2283bf7..79fadd6 100644 --- a/ppapi/cpp/dev/text_input_dev.h +++ b/ppapi/cpp/dev/text_input_dev.h @@ -21,7 +21,6 @@ class TextInput_Dev { void SetTextInputType(PP_TextInput_Type type); void UpdateCaretPosition(const Rect& caret, const Rect& bounding_box); - void ConfirmCompositionText(); void CancelCompositionText(); private: -- cgit v1.1