Skip to content

Commit

Permalink
Rename IBusText to CompositionText, because it's not about IBus anymo…
Browse files Browse the repository at this point in the history
…re, but it is about Composition text.

Rename preedit to composition on the way.

BUG=283612

Review URL: https://codereview.chromium.org/153573002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248930 0039d316-1c4b-4281-b951-d872f2087c98
  • Loading branch information
uekawa@chromium.org committed Feb 5, 2014
1 parent 3dc87e5 commit 4a9b24a
Show file tree
Hide file tree
Showing 15 changed files with 187 additions and 163 deletions.
44 changes: 22 additions & 22 deletions chrome/browser/chromeos/input_method/input_method_engine.cc
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "chromeos/ime/component_extension_ime_manager.h"
#include "chromeos/ime/composition_text.h"
#include "chromeos/ime/extension_ime_util.h"
#include "chromeos/ime/ibus_keymap.h"
#include "chromeos/ime/ibus_text.h"
#include "chromeos/ime/input_method_manager.h"
#include "ui/aura/root_window.h"
#include "ui/aura/window.h"
Expand All @@ -37,18 +37,18 @@ namespace chromeos {
const char* kErrorNotActive = "IME is not active";
const char* kErrorWrongContext = "Context is not active";
const char* kCandidateNotFound = "Candidate not found";
const char* kEngineBusPrefix = "org.freedesktop.IBus.";

namespace {

// Notifies InputContextHandler that the preedit is changed.
void UpdatePreedit(const IBusText& ibus_text,
uint32 cursor_pos,
bool is_visible) {
// Notifies InputContextHandler that the composition is changed.
void UpdateComposition(const CompositionText& composition_text,
uint32 cursor_pos,
bool is_visible) {
IBusInputContextHandlerInterface* input_context =
IMEBridge::Get()->GetInputContextHandler();
if (input_context)
input_context->UpdatePreeditText(ibus_text, cursor_pos, is_visible);
input_context->UpdateCompositionText(
composition_text, cursor_pos, is_visible);
}

} // namespace
Expand All @@ -59,8 +59,8 @@ InputMethodEngine::InputMethodEngine()
context_id_(0),
next_context_id_(1),
observer_(NULL),
preedit_text_(new IBusText()),
preedit_cursor_(0),
composition_text_(new CompositionText()),
composition_cursor_(0),
candidate_window_(new ui::CandidateWindow()),
window_visible_(false) {}

Expand Down Expand Up @@ -138,36 +138,36 @@ bool InputMethodEngine::SetComposition(
return false;
}

preedit_cursor_ = cursor;
preedit_text_.reset(new IBusText());
preedit_text_->set_text(text);
composition_cursor_ = cursor;
composition_text_.reset(new CompositionText());
composition_text_->set_text(text);

preedit_text_->set_selection_start(selection_start);
preedit_text_->set_selection_end(selection_end);
composition_text_->set_selection_start(selection_start);
composition_text_->set_selection_end(selection_end);

// TODO: Add support for displaying selected text in the composition string.
for (std::vector<SegmentInfo>::const_iterator segment = segments.begin();
segment != segments.end(); ++segment) {
IBusText::UnderlineAttribute underline;
CompositionText::UnderlineAttribute underline;

switch (segment->style) {
case SEGMENT_STYLE_UNDERLINE:
underline.type = IBusText::IBUS_TEXT_UNDERLINE_SINGLE;
underline.type = CompositionText::COMPOSITION_TEXT_UNDERLINE_SINGLE;
break;
case SEGMENT_STYLE_DOUBLE_UNDERLINE:
underline.type = IBusText::IBUS_TEXT_UNDERLINE_DOUBLE;
underline.type = CompositionText::COMPOSITION_TEXT_UNDERLINE_DOUBLE;
break;
default:
continue;
}

underline.start_index = segment->start;
underline.end_index = segment->end;
preedit_text_->mutable_underline_attributes()->push_back(underline);
composition_text_->mutable_underline_attributes()->push_back(underline);
}

// TODO(nona): Makes focus out mode configuable, if necessary.
UpdatePreedit(*preedit_text_, preedit_cursor_, true);
UpdateComposition(*composition_text_, composition_cursor_, true);
return true;
}

Expand All @@ -182,9 +182,9 @@ bool InputMethodEngine::ClearComposition(int context_id,
return false;
}

preedit_cursor_ = 0;
preedit_text_.reset(new IBusText());
UpdatePreedit(*preedit_text_, preedit_cursor_, false);
composition_cursor_ = 0;
composition_text_.reset(new CompositionText());
UpdateComposition(*composition_text_, composition_cursor_, false);
return true;
}

Expand Down
6 changes: 3 additions & 3 deletions chrome/browser/chromeos/input_method/input_method_engine.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ class KeyEvent;

namespace chromeos {

class IBusText;
class CompositionText;

namespace input_method {
struct InputMethodProperty;
Expand Down Expand Up @@ -124,8 +124,8 @@ class InputMethodEngine : public InputMethodEngineInterface {
InputMethodEngineInterface::Observer* observer_;

// The current preedit text, and it's cursor position.
scoped_ptr<IBusText> preedit_text_;
int preedit_cursor_;
scoped_ptr<CompositionText> composition_text_;
int composition_cursor_;

// The current candidate window.
scoped_ptr<ui::CandidateWindow> candidate_window_;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#include "chrome/browser/extensions/extension_browsertest.h"
#include "chrome/browser/extensions/extension_test_message_listener.h"
#include "chromeos/ime/component_extension_ime_manager.h"
#include "chromeos/ime/ibus_text.h"
#include "chromeos/ime/composition_text.h"
#include "chromeos/ime/input_method_descriptor.h"
#include "chromeos/ime/input_method_manager.h"
#include "content/public/test/browser_test_utils.h"
Expand Down Expand Up @@ -461,21 +461,24 @@ IN_PROC_BROWSER_TEST_P(InputMethodEngineIBusBrowserTest,
set_composition_test_script));
EXPECT_EQ(1, mock_input_context->update_preedit_text_call_count());

EXPECT_EQ(4U, mock_input_context->last_update_preedit_arg().cursor_pos);
EXPECT_TRUE(mock_input_context->last_update_preedit_arg().is_visible);
EXPECT_EQ(4U,
mock_input_context->last_update_composition_arg().cursor_pos);
EXPECT_TRUE(mock_input_context->last_update_composition_arg().is_visible);

const IBusText& ibus_text =
mock_input_context->last_update_preedit_arg().ibus_text;
EXPECT_EQ("COMPOSITION_TEXT", ibus_text.text());
const std::vector<IBusText::UnderlineAttribute>& underlines =
ibus_text.underline_attributes();
const CompositionText& composition_text =
mock_input_context->last_update_composition_arg().composition_text;
EXPECT_EQ("COMPOSITION_TEXT", composition_text.text());
const std::vector<CompositionText::UnderlineAttribute>& underlines =
composition_text.underline_attributes();

ASSERT_EQ(2U, underlines.size());
EXPECT_EQ(IBusText::IBUS_TEXT_UNDERLINE_SINGLE, underlines[0].type);
EXPECT_EQ(CompositionText::COMPOSITION_TEXT_UNDERLINE_SINGLE,
underlines[0].type);
EXPECT_EQ(0U, underlines[0].start_index);
EXPECT_EQ(5U, underlines[0].end_index);

EXPECT_EQ(IBusText::IBUS_TEXT_UNDERLINE_DOUBLE, underlines[1].type);
EXPECT_EQ(CompositionText::COMPOSITION_TEXT_UNDERLINE_DOUBLE,
underlines[1].type);
EXPECT_EQ(6U, underlines[1].start_index);
EXPECT_EQ(10U, underlines[1].end_index);
}
Expand All @@ -492,10 +495,11 @@ IN_PROC_BROWSER_TEST_P(InputMethodEngineIBusBrowserTest,
ASSERT_TRUE(content::ExecuteScript(host->host_contents(),
commite_text_test_script));
EXPECT_EQ(1, mock_input_context->update_preedit_text_call_count());
EXPECT_FALSE(mock_input_context->last_update_preedit_arg().is_visible);
const IBusText& ibus_text =
mock_input_context->last_update_preedit_arg().ibus_text;
EXPECT_TRUE(ibus_text.text().empty());
EXPECT_FALSE(
mock_input_context->last_update_composition_arg().is_visible);
const CompositionText& composition_text =
mock_input_context->last_update_composition_arg().composition_text;
EXPECT_TRUE(composition_text.text().empty());
}
{
SCOPED_TRACE("setCandidateWindowProperties:visibility test");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "chromeos/ime/component_extension_ime_manager.h"
#include "chromeos/ime/composition_text.h"
#include "chromeos/ime/extension_ime_util.h"
#include "chromeos/ime/ibus_keymap.h"
#include "chromeos/ime/ibus_text.h"
#include "chromeos/ime/input_method_manager.h"
#include "ui/base/ime/candidate_window.h"
#include "ui/events/event.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ class KeyEvent;

namespace chromeos {

class IBusText;
class CompositionText;

namespace input_method {
class CandidateWindow;
Expand Down
6 changes: 3 additions & 3 deletions chromeos/chromeos.gyp
Original file line number Diff line number Diff line change
Expand Up @@ -216,8 +216,8 @@
'ime/extension_ime_util.h',
'ime/ibus_keymap.cc',
'ime/ibus_keymap.h',
'ime/ibus_text.cc',
'ime/ibus_text.h',
'ime/composition_text.cc',
'ime/composition_text.h',
'ime/input_method_delegate.h',
'ime/input_method_descriptor.cc',
'ime/input_method_descriptor.h',
Expand Down Expand Up @@ -490,7 +490,7 @@
'display/output_util_unittest.cc',
'ime/component_extension_ime_manager_unittest.cc',
'ime/extension_ime_util_unittest.cc',
'ime/ibus_text_unittest.cc',
'ime/composition_text_unittest.cc',
'ime/input_method_manager.h',
'ime/input_method_property_unittest.cc',
'ime/input_method_whitelist_unittest.cc',
Expand Down
10 changes: 5 additions & 5 deletions chromeos/ime/ibus_text.cc → chromeos/ime/composition_text.cc
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
// Copyright 2013 The Chromium Authors. All rights reserved.
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chromeos/ime/ibus_text.h"
#include "chromeos/ime/composition_text.h"

namespace chromeos {

IBusText::IBusText()
CompositionText::CompositionText()
: selection_start_(0),
selection_end_(0) {}

IBusText::~IBusText() {}
CompositionText::~CompositionText() {}

void IBusText::CopyFrom(const IBusText& obj) {
void CompositionText::CopyFrom(const CompositionText& obj) {
text_ = obj.text();
underline_attributes_ = obj.underline_attributes();
selection_start_ = obj.selection_start();
Expand Down
30 changes: 15 additions & 15 deletions chromeos/ime/ibus_text.h → chromeos/ime/composition_text.h
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// Copyright 2013 The Chromium Authors. All rights reserved.
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROMEOS_IME_IBUS_TEXT_H_
#define CHROMEOS_IME_IBUS_TEXT_H_
#ifndef CHROMEOS_IME_COMPOSITION_TEXT_H_
#define CHROMEOS_IME_COMPOSITION_TEXT_H_

#include <string>
#include <vector>
Expand All @@ -12,24 +12,24 @@

namespace chromeos {

class CHROMEOS_EXPORT IBusText {
class CHROMEOS_EXPORT CompositionText {
public:
enum IBusTextUnderlineType {
IBUS_TEXT_UNDERLINE_SINGLE = 1,
IBUS_TEXT_UNDERLINE_DOUBLE = 2,
IBUS_TEXT_UNDERLINE_ERROR = 4,
enum UnderlineType {
COMPOSITION_TEXT_UNDERLINE_SINGLE = 1,
COMPOSITION_TEXT_UNDERLINE_DOUBLE = 2,
COMPOSITION_TEXT_UNDERLINE_ERROR = 4,
};

struct UnderlineAttribute {
IBusTextUnderlineType type;
UnderlineType type;
uint32 start_index; // The inclusive start index.
uint32 end_index; // The exclusive end index.
};

// Accessors
IBusText();
virtual ~IBusText();
CompositionText();
virtual ~CompositionText();

// Accessors
const std::string& text() const { return text_; }
void set_text(const std::string& text) { text_ = text; }

Expand All @@ -51,17 +51,17 @@ class CHROMEOS_EXPORT IBusText {
selection_end_ = selection_end;
}

void CopyFrom(const IBusText& obj);
void CopyFrom(const CompositionText& obj);

private:
std::string text_;
std::vector<UnderlineAttribute> underline_attributes_;
uint32 selection_start_;
uint32 selection_end_;

DISALLOW_COPY_AND_ASSIGN(IBusText);
DISALLOW_COPY_AND_ASSIGN(CompositionText);
};

} // namespace chromeos

#endif // CHROMEOS_IME_IBUS_TEXT_H_
#endif // CHROMEOS_IME_COMPOSITION_TEXT_H_
Original file line number Diff line number Diff line change
@@ -1,37 +1,37 @@
// Copyright 2013 The Chromium Authors. All rights reserved.
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// TODO(nona): Add more tests.

#include "chromeos/ime/ibus_text.h"
#include "chromeos/ime/composition_text.h"

#include "testing/gtest/include/gtest/gtest.h"

namespace chromeos {

TEST(IBusTextTest, CopyTest) {
TEST(CompositionTextTest, CopyTest) {
const char kSampleText[] = "Sample Text";
const IBusText::UnderlineAttribute kSampleUnderlineAttribute1 = {
IBusText::IBUS_TEXT_UNDERLINE_SINGLE, 10, 20};
const CompositionText::UnderlineAttribute kSampleUnderlineAttribute1 = {
CompositionText::COMPOSITION_TEXT_UNDERLINE_SINGLE, 10, 20};

const IBusText::UnderlineAttribute kSampleUnderlineAttribute2 = {
IBusText::IBUS_TEXT_UNDERLINE_DOUBLE, 11, 21};
const CompositionText::UnderlineAttribute kSampleUnderlineAttribute2 = {
CompositionText::COMPOSITION_TEXT_UNDERLINE_DOUBLE, 11, 21};

const IBusText::UnderlineAttribute kSampleUnderlineAttribute3 = {
IBusText::IBUS_TEXT_UNDERLINE_ERROR, 12, 22};
const CompositionText::UnderlineAttribute kSampleUnderlineAttribute3 = {
CompositionText::COMPOSITION_TEXT_UNDERLINE_ERROR, 12, 22};

// Make IBusText
IBusText text;
// Make CompositionText
CompositionText text;
text.set_text(kSampleText);
std::vector<IBusText::UnderlineAttribute>* underline_attributes =
std::vector<CompositionText::UnderlineAttribute>* underline_attributes =
text.mutable_underline_attributes();
underline_attributes->push_back(kSampleUnderlineAttribute1);
underline_attributes->push_back(kSampleUnderlineAttribute2);
underline_attributes->push_back(kSampleUnderlineAttribute3);
text.set_selection_start(30);
text.set_selection_end(40);

IBusText text2;
CompositionText text2;
text2.CopyFrom(text);

EXPECT_EQ(text.text(), text2.text());
Expand Down
10 changes: 5 additions & 5 deletions ui/base/ime/chromeos/ime_bridge.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,17 @@ class KeyEvent;

namespace chromeos {

class IBusText;
class CompositionText;

class UI_BASE_EXPORT IBusInputContextHandlerInterface {
public:
// Called when the engine commit a text.
virtual void CommitText(const std::string& text) = 0;

// Called when the engine update preedit stroing.
virtual void UpdatePreeditText(const IBusText& text,
uint32 cursor_pos,
bool visible) = 0;
// Called when the engine updates composition text.
virtual void UpdateCompositionText(const CompositionText& text,
uint32 cursor_pos,
bool visible) = 0;

// Called when the engine request deleting surrounding string.
virtual void DeleteSurroundingText(int32 offset, uint32 length) = 0;
Expand Down
Loading

0 comments on commit 4a9b24a

Please sign in to comment.