summaryrefslogtreecommitdiffstats
path: root/ppapi/cpp/dev
diff options
context:
space:
mode:
Diffstat (limited to 'ppapi/cpp/dev')
-rw-r--r--ppapi/cpp/dev/ime_input_event_dev.cc13
-rw-r--r--ppapi/cpp/dev/ime_input_event_dev.h22
-rw-r--r--ppapi/cpp/dev/text_input_dev.cc7
-rw-r--r--ppapi/cpp/dev/text_input_dev.h1
4 files changed, 25 insertions, 18 deletions
diff --git a/ppapi/cpp/dev/ime_input_event_dev.cc b/ppapi/cpp/dev/ime_input_event_dev.cc
index bc1f387..21fe879 100644
--- a/ppapi/cpp/dev/ime_input_event_dev.cc
+++ b/ppapi/cpp/dev/ime_input_event_dev.cc
@@ -49,11 +49,16 @@ uint32_t IMEInputEvent_Dev::GetSegmentNumber() const {
pp_resource());
}
-uint32_t IMEInputEvent_Dev::GetSegmentOffset(uint32_t index) const {
+std::pair<uint32_t, uint32_t>
+IMEInputEvent_Dev::GetSegmentAt(uint32_t index) const {
+ std::pair<uint32_t, uint32_t> range(0, 0);
if (!has_interface<PPB_IMEInputEvent_Dev>())
- return 0;
- return get_interface<PPB_IMEInputEvent_Dev>()->GetSegmentOffset(pp_resource(),
- index);
+ return range;
+ get_interface<PPB_IMEInputEvent_Dev>()->GetSegmentAt(pp_resource(),
+ index,
+ &range.first,
+ &range.second);
+ return range;
}
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 17216a8..3c9b4a3 100644
--- a/ppapi/cpp/dev/ime_input_event_dev.h
+++ b/ppapi/cpp/dev/ime_input_event_dev.h
@@ -41,23 +41,17 @@ class IMEInputEvent_Dev : public InputEvent {
/// returns 0.
uint32_t GetSegmentNumber() const;
- /// 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 <code>PP_Resource</code> corresponding to an IME
- /// event.
+ /// 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).
///
/// @param[in] index An integer indicating a segment.
///
- /// @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;
+ /// @return A pair of integers representing the index-th segment.
+ std::pair<uint32_t, uint32_t> GetSegmentAt(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 6388836..3ead040 100644
--- a/ppapi/cpp/dev/text_input_dev.cc
+++ b/ppapi/cpp/dev/text_input_dev.cc
@@ -40,6 +40,13 @@ void TextInput_Dev::UpdateCaretPosition(const Rect& caret,
instance_->pp_instance(), &caret.pp_rect(), &bounding_box.pp_rect());
}
+void TextInput_Dev::ConfirmCompositionText() {
+ if (!has_interface<PPB_TextInput_Dev>())
+ return;
+ get_interface<PPB_TextInput_Dev>()->ConfirmCompositionText(
+ instance_->pp_instance());
+}
+
void TextInput_Dev::CancelCompositionText() {
if (!has_interface<PPB_TextInput_Dev>())
return;
diff --git a/ppapi/cpp/dev/text_input_dev.h b/ppapi/cpp/dev/text_input_dev.h
index 79fadd6..2283bf7 100644
--- a/ppapi/cpp/dev/text_input_dev.h
+++ b/ppapi/cpp/dev/text_input_dev.h
@@ -21,6 +21,7 @@ class TextInput_Dev {
void SetTextInputType(PP_TextInput_Type type);
void UpdateCaretPosition(const Rect& caret, const Rect& bounding_box);
+ void ConfirmCompositionText();
void CancelCompositionText();
private: