summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/chromeos/input_method/candidate_window_controller_impl.cc13
-rw-r--r--chrome/browser/chromeos/input_method/candidate_window_controller_impl.h2
-rw-r--r--chrome/browser/chromeos/input_method/candidate_window_view.cc48
-rw-r--r--chrome/browser/chromeos/input_method/candidate_window_view.h3
-rw-r--r--chrome/browser/chromeos/input_method/candidate_window_view_unittest.cc1
-rw-r--r--chrome/browser/chromeos/input_method/input_method_engine.cc29
-rw-r--r--chrome/browser/chromeos/input_method/input_method_engine.h6
-rw-r--r--chrome/browser/chromeos/input_method/input_method_engine_browsertests.cc19
-rw-r--r--chrome/browser/chromeos/input_method/input_method_engine_interface.h11
-rw-r--r--chrome/browser/extensions/api/input_ime/input_ime_api.cc17
-rw-r--r--chromeos/ime/candidate_window.cc2
-rw-r--r--chromeos/ime/candidate_window.h21
-rw-r--r--ui/base/ime/chromeos/ibus_bridge.h4
-rw-r--r--ui/base/ime/chromeos/mock_ime_candidate_window_handler.cc11
-rw-r--r--ui/base/ime/chromeos/mock_ime_candidate_window_handler.h13
15 files changed, 72 insertions, 128 deletions
diff --git a/chrome/browser/chromeos/input_method/candidate_window_controller_impl.cc b/chrome/browser/chromeos/input_method/candidate_window_controller_impl.cc
index 41e2710..1c558cd 100644
--- a/chrome/browser/chromeos/input_method/candidate_window_controller_impl.cc
+++ b/chrome/browser/chromeos/input_method/candidate_window_controller_impl.cc
@@ -74,7 +74,6 @@ void CandidateWindowControllerImpl::Hide() {
// HideAuxiliaryText. Without calling HideAuxiliaryText the
// auxiliary text area will remain.
candidate_window_view_->HideLookupTable();
- candidate_window_view_->HideAuxiliaryText();
if (infolist_window_)
infolist_window_->HideImmediately();
}
@@ -106,18 +105,6 @@ void CandidateWindowControllerImpl::SetCursorBounds(
mode_indicator_controller_->SetCursorBounds(cursor_bounds);
}
-void CandidateWindowControllerImpl::UpdateAuxiliaryText(
- const std::string& utf8_text,
- bool visible) {
- // If it's not visible, hide the auxiliary text and return.
- if (!visible) {
- candidate_window_view_->HideAuxiliaryText();
- return;
- }
- candidate_window_view_->UpdateAuxiliaryText(utf8_text);
- candidate_window_view_->ShowAuxiliaryText();
-}
-
void CandidateWindowControllerImpl::FocusStateChanged(bool is_focused) {
mode_indicator_controller_->FocusStateChanged(is_focused);
}
diff --git a/chrome/browser/chromeos/input_method/candidate_window_controller_impl.h b/chrome/browser/chromeos/input_method/candidate_window_controller_impl.h
index 5ffae3c..aa84e70 100644
--- a/chrome/browser/chromeos/input_method/candidate_window_controller_impl.h
+++ b/chrome/browser/chromeos/input_method/candidate_window_controller_impl.h
@@ -76,8 +76,6 @@ class CandidateWindowControllerImpl
// IBusPanelCandidateWindowHandlerInterface implementation.
virtual void SetCursorBounds(const gfx::Rect& cursor_bounds,
const gfx::Rect& composition_head) OVERRIDE;
- virtual void UpdateAuxiliaryText(const std::string& utf8_text,
- bool visible) OVERRIDE;
virtual void UpdateLookupTable(const CandidateWindow& candidate_window,
bool visible) OVERRIDE;
virtual void UpdatePreeditText(const std::string& utf8_text,
diff --git a/chrome/browser/chromeos/input_method/candidate_window_view.cc b/chrome/browser/chromeos/input_method/candidate_window_view.cc
index 35a4c6f..bd97f6e 100644
--- a/chrome/browser/chromeos/input_method/candidate_window_view.cc
+++ b/chrome/browser/chromeos/input_method/candidate_window_view.cc
@@ -625,40 +625,11 @@ void CandidateWindowView::UpdateParentArea() {
void CandidateWindowView::HideLookupTable() {
candidate_area_->Hide();
- UpdateParentArea();
-}
-
-void CandidateWindowView::HideAuxiliaryText() {
header_area_->Hide();
footer_area_->Hide();
UpdateParentArea();
}
-void CandidateWindowView::ShowAuxiliaryText() {
- // If candidate_area is not shown, shows auxiliary text at header_area.
- // We expect both header_area_ and footer_area_ contain same value.
- if (!candidate_area_->IsShown()) {
- header_area_->Show();
- footer_area_->Hide();
- } else {
- // If candidate_area is shown, shows auxiliary text with orientation.
- if (candidate_window_.orientation() == CandidateWindow::HORIZONTAL) {
- header_area_->Show();
- footer_area_->Hide();
- } else {
- footer_area_->Show();
- header_area_->Hide();
- }
- }
- UpdateParentArea();
-}
-
-void CandidateWindowView::UpdateAuxiliaryText(const std::string& utf8_text) {
- header_area_->SetText(utf8_text);
- footer_area_->SetText(utf8_text);
- ShowAuxiliaryText();
-}
-
void CandidateWindowView::HidePreeditText() {
preedit_area_->Hide();
UpdateParentArea();
@@ -677,6 +648,19 @@ void CandidateWindowView::ShowLookupTable() {
if (!candidate_area_->IsShown())
should_show_upper_side_ = false;
candidate_area_->Show();
+
+ // Show auxiliary text.
+ if (!candidate_window_.is_auxiliary_text_visible()) {
+ header_area_->Hide();
+ footer_area_->Hide();
+ } else if (candidate_window_.orientation() == CandidateWindow::HORIZONTAL) {
+ header_area_->Show();
+ footer_area_->Hide();
+ } else {
+ header_area_->Hide();
+ footer_area_->Show();
+ }
+
UpdateParentArea();
}
@@ -781,6 +765,12 @@ void CandidateWindowView::UpdateCandidates(
selected_candidate_index_in_page_ = -1;
}
}
+
+ // Updates auxiliary text
+ if (candidate_window_.is_auxiliary_text_visible()) {
+ header_area_->SetText(candidate_window_.auxiliary_text());
+ footer_area_->SetText(candidate_window_.auxiliary_text());
+ }
}
void CandidateWindowView::MaybeInitializeCandidateViews(
diff --git a/chrome/browser/chromeos/input_method/candidate_window_view.h b/chrome/browser/chromeos/input_method/candidate_window_view.h
index e587e1d..dc69f75 100644
--- a/chrome/browser/chromeos/input_method/candidate_window_view.h
+++ b/chrome/browser/chromeos/input_method/candidate_window_view.h
@@ -84,9 +84,6 @@ class CandidateWindowView : public views::View {
// Shows the preedit text.
void ShowPreeditText();
- // Updates the auxiliary text.
- void UpdateAuxiliaryText(const std::string& utf8_text);
-
// Updates the preedit text.
void UpdatePreeditText(const std::string& utf8_text);
diff --git a/chrome/browser/chromeos/input_method/candidate_window_view_unittest.cc b/chrome/browser/chromeos/input_method/candidate_window_view_unittest.cc
index 19b5a5a..dbd8915 100644
--- a/chrome/browser/chromeos/input_method/candidate_window_view_unittest.cc
+++ b/chrome/browser/chromeos/input_method/candidate_window_view_unittest.cc
@@ -124,6 +124,7 @@ TEST_F(CandidateWindowViewTest, SelectCandidateAtTest) {
&candidate_window_large);
candidate_window_large.set_cursor_position(candidate_window_large_size - 1);
candidate_window_view.UpdateCandidates(candidate_window_large);
+
// Select the last candidate.
candidate_window_view.SelectCandidateAt(candidate_window_large_size - 1);
diff --git a/chrome/browser/chromeos/input_method/input_method_engine.cc b/chrome/browser/chromeos/input_method/input_method_engine.cc
index 8edbb57..9751fa2 100644
--- a/chrome/browser/chromeos/input_method/input_method_engine.cc
+++ b/chrome/browser/chromeos/input_method/input_method_engine.cc
@@ -51,15 +51,6 @@ void UpdatePreedit(const IBusText& ibus_text,
input_context->UpdatePreeditText(ibus_text, cursor_pos, is_visible);
}
-// Notifies CandidateWindowHandler that the auxilary text is changed.
-// Auxilary text is usually footer text.
-void UpdateAuxiliaryText(const std::string& text, bool is_visible) {
- IBusPanelCandidateWindowHandlerInterface* candidate_window =
- IBusBridge::Get()->GetCandidateWindowHandler();
- if (candidate_window)
- candidate_window->UpdateAuxiliaryText(text, is_visible);
-}
-
} // namespace
InputMethodEngine::InputMethodEngine()
@@ -67,7 +58,6 @@ InputMethodEngine::InputMethodEngine()
active_(false),
context_id_(0),
next_context_id_(1),
- aux_text_visible_(false),
observer_(NULL),
preedit_text_(new IBusText()),
preedit_cursor_(0),
@@ -258,6 +248,9 @@ void InputMethodEngine::SetCandidateWindowProperty(
property.show_window_at_composition;
dest_property.cursor_position =
candidate_window_->GetProperty().cursor_position;
+ dest_property.auxiliary_text = property.auxiliary_text;
+ dest_property.is_auxiliary_text_visible = property.is_auxiliary_text_visible;
+
candidate_window_->SetProperty(dest_property);
candidate_window_property_ = property;
@@ -284,22 +277,6 @@ bool InputMethodEngine::SetCandidateWindowVisible(bool visible,
return true;
}
-void InputMethodEngine::SetCandidateWindowAuxText(const char* text) {
- aux_text_.assign(text);
- if (active_) {
- // Should not show auxiliary text if the whole window visibility is false.
- UpdateAuxiliaryText(aux_text_, window_visible_ && aux_text_visible_);
- }
-}
-
-void InputMethodEngine::SetCandidateWindowAuxTextVisible(bool visible) {
- aux_text_visible_ = visible;
- if (active_) {
- // Should not show auxiliary text if the whole window visibility is false.
- UpdateAuxiliaryText(aux_text_, window_visible_ && aux_text_visible_);
- }
-}
-
bool InputMethodEngine::SetCandidates(
int context_id,
const std::vector<Candidate>& candidates,
diff --git a/chrome/browser/chromeos/input_method/input_method_engine.h b/chrome/browser/chromeos/input_method/input_method_engine.h
index b49d1de..7763095 100644
--- a/chrome/browser/chromeos/input_method/input_method_engine.h
+++ b/chrome/browser/chromeos/input_method/input_method_engine.h
@@ -61,8 +61,6 @@ class InputMethodEngine : public InputMethodEngineInterface {
const CandidateWindowProperty& property) OVERRIDE;
virtual bool SetCandidateWindowVisible(bool visible,
std::string* error) OVERRIDE;
- virtual void SetCandidateWindowAuxText(const char* text) OVERRIDE;
- virtual void SetCandidateWindowAuxTextVisible(bool visible) OVERRIDE;
virtual bool SetCandidates(int context_id,
const std::vector<Candidate>& candidates,
std::string* error) OVERRIDE;
@@ -116,10 +114,6 @@ class InputMethodEngine : public InputMethodEngineInterface {
// This IME ID in ibus.
std::string ibus_id_;
- // The current auxialy text and it's visiblity.
- std::string aux_text_;
- bool aux_text_visible_;
-
// Pointer to the object recieving events for this IME.
InputMethodEngineInterface::Observer* observer_;
diff --git a/chrome/browser/chromeos/input_method/input_method_engine_browsertests.cc b/chrome/browser/chromeos/input_method/input_method_engine_browsertests.cc
index d7c6b87..5eaf11c 100644
--- a/chrome/browser/chromeos/input_method/input_method_engine_browsertests.cc
+++ b/chrome/browser/chromeos/input_method/input_method_engine_browsertests.cc
@@ -617,9 +617,11 @@ IN_PROC_BROWSER_TEST_P(InputMethodEngineIBusBrowserTest,
ASSERT_TRUE(content::ExecuteScript(
host->host_contents(),
set_candidate_window_properties_test_script));
- EXPECT_EQ(1, mock_candidate_window->update_auxiliary_text_call_count());
- EXPECT_TRUE(
- mock_candidate_window->last_update_auxiliary_text_arg().is_visible);
+ EXPECT_EQ(1, mock_candidate_window->update_lookup_table_call_count());
+
+ const input_method::CandidateWindow& table =
+ mock_candidate_window->last_update_lookup_table_arg().lookup_table;
+ EXPECT_TRUE(table.is_auxiliary_text_visible());
}
{
SCOPED_TRACE("setCandidateWindowProperties:auxText test");
@@ -636,14 +638,13 @@ IN_PROC_BROWSER_TEST_P(InputMethodEngineIBusBrowserTest,
ASSERT_TRUE(content::ExecuteScript(
host->host_contents(),
set_candidate_window_properties_test_script));
- EXPECT_EQ(1, mock_candidate_window->update_auxiliary_text_call_count());
+ EXPECT_EQ(1, mock_candidate_window->update_lookup_table_call_count());
// aux text visibility is kept as before.
- EXPECT_TRUE(
- mock_candidate_window->last_update_auxiliary_text_arg().is_visible);
-
- EXPECT_EQ("AUXILIARY_TEXT",
- mock_candidate_window->last_update_auxiliary_text_arg().text);
+ const input_method::CandidateWindow& table =
+ mock_candidate_window->last_update_lookup_table_arg().lookup_table;
+ EXPECT_TRUE(table.is_auxiliary_text_visible());
+ EXPECT_EQ("AUXILIARY_TEXT", table.auxiliary_text());
}
{
SCOPED_TRACE("setCandidates test");
diff --git a/chrome/browser/chromeos/input_method/input_method_engine_interface.h b/chrome/browser/chromeos/input_method/input_method_engine_interface.h
index 4fba077..8be354b 100644
--- a/chrome/browser/chromeos/input_method/input_method_engine_interface.h
+++ b/chrome/browser/chromeos/input_method/input_method_engine_interface.h
@@ -111,6 +111,11 @@ class InputMethodEngineInterface : public IBusEngineHandlerInterface {
bool is_cursor_visible;
bool is_vertical;
bool show_window_at_composition;
+
+ // Auxiliary text is typically displayed in the footer of the candidate
+ // window.
+ std::string auxiliary_text;
+ bool is_auxiliary_text_visible;
};
struct SegmentInfo {
@@ -204,12 +209,6 @@ class InputMethodEngineInterface : public IBusEngineHandlerInterface {
// Show or hide the candidate window.
virtual bool SetCandidateWindowVisible(bool visible, std::string* error) = 0;
- // Set the text that appears as a label in the candidate window.
- virtual void SetCandidateWindowAuxText(const char* text) = 0;
-
- // Show or hide the extra text in the candidate window.
- virtual void SetCandidateWindowAuxTextVisible(bool visible) = 0;
-
// Set the list of entries displayed in the candidate window.
virtual bool SetCandidates(int context_id,
const std::vector<Candidate>& candidates,
diff --git a/chrome/browser/extensions/api/input_ime/input_ime_api.cc b/chrome/browser/extensions/api/input_ime/input_ime_api.cc
index 7e1cefb..abe1bfe 100644
--- a/chrome/browser/extensions/api/input_ime/input_ime_api.cc
+++ b/chrome/browser/extensions/api/input_ime/input_ime_api.cc
@@ -602,16 +602,19 @@ bool InputImeSetCandidateWindowPropertiesFunction::RunImpl() {
modified = true;
}
- if (modified) {
- engine->SetCandidateWindowProperty(properties_out);
+ if (properties.auxiliary_text) {
+ properties_out.auxiliary_text = *properties.auxiliary_text;
+ modified = true;
}
- if (properties.auxiliary_text)
- engine->SetCandidateWindowAuxText(properties.auxiliary_text->c_str());
-
if (properties.auxiliary_text_visible) {
- engine->SetCandidateWindowAuxTextVisible(
- *properties.auxiliary_text_visible);
+ properties_out.is_auxiliary_text_visible =
+ *properties.auxiliary_text_visible;
+ modified = true;
+ }
+
+ if (modified) {
+ engine->SetCandidateWindowProperty(properties_out);
}
SetResult(new base::FundamentalValue(true));
diff --git a/chromeos/ime/candidate_window.cc b/chromeos/ime/candidate_window.cc
index b78e05a..75ed3eb 100644
--- a/chromeos/ime/candidate_window.cc
+++ b/chromeos/ime/candidate_window.cc
@@ -29,6 +29,8 @@ bool CandidateWindow::IsEqual(const CandidateWindow& cw) const {
is_cursor_visible() != cw.is_cursor_visible() ||
orientation() != cw.orientation() ||
show_window_at_composition() != cw.show_window_at_composition() ||
+ is_auxiliary_text_visible() != cw.is_auxiliary_text_visible() ||
+ auxiliary_text() != cw.auxiliary_text() ||
candidates_.size() != cw.candidates_.size())
return false;
diff --git a/chromeos/ime/candidate_window.h b/chromeos/ime/candidate_window.h
index 9de1a16..d0f5f89 100644
--- a/chromeos/ime/candidate_window.h
+++ b/chromeos/ime/candidate_window.h
@@ -30,6 +30,11 @@ class CHROMEOS_EXPORT CandidateWindow {
bool is_cursor_visible;
bool is_vertical;
bool show_window_at_composition;
+
+ // Auxiliary text is typically displayed in the footer of the candidate
+ // window.
+ std::string auxiliary_text;
+ bool is_auxiliary_text_visible;
};
// Represents a candidate entry.
@@ -83,6 +88,22 @@ class CHROMEOS_EXPORT CandidateWindow {
property_->is_vertical = (orientation == VERTICAL);
}
+ // Returns true if the auxiliary text is visible.
+ bool is_auxiliary_text_visible() const {
+ return property_->is_auxiliary_text_visible;
+ }
+ void set_is_auxiliary_text_visible(bool is_auxiliary_text_visible) const {
+ property_->is_auxiliary_text_visible = is_auxiliary_text_visible;
+ }
+
+ // Accessors of auxiliary_text.
+ const std::string& auxiliary_text() const {
+ return property_->auxiliary_text;
+ }
+ void set_auxiliary_text(const std::string& auxiliary_text) const {
+ property_->auxiliary_text = auxiliary_text;
+ }
+
const std::vector<Entry>& candidates() const { return candidates_; }
std::vector<Entry>* mutable_candidates() { return &candidates_; }
diff --git a/ui/base/ime/chromeos/ibus_bridge.h b/ui/base/ime/chromeos/ibus_bridge.h
index 08e314b..4383bd8 100644
--- a/ui/base/ime/chromeos/ibus_bridge.h
+++ b/ui/base/ime/chromeos/ibus_bridge.h
@@ -115,10 +115,6 @@ class UI_EXPORT IBusPanelCandidateWindowHandlerInterface {
const input_method::CandidateWindow& candidate_window,
bool visible) = 0;
- // Called when the IME updates the auxiliary text. The |text| is given in
- // UTF-8 encoding.
- virtual void UpdateAuxiliaryText(const std::string& text, bool visible) = 0;
-
// Called when the IME updates the preedit text. The |text| is given in
// UTF-8 encoding.
virtual void UpdatePreeditText(const std::string& text, uint32 cursor_pos,
diff --git a/ui/base/ime/chromeos/mock_ime_candidate_window_handler.cc b/ui/base/ime/chromeos/mock_ime_candidate_window_handler.cc
index 7491643..b7bf198 100644
--- a/ui/base/ime/chromeos/mock_ime_candidate_window_handler.cc
+++ b/ui/base/ime/chromeos/mock_ime_candidate_window_handler.cc
@@ -8,8 +8,7 @@ namespace chromeos {
MockIMECandidateWindowHandler::MockIMECandidateWindowHandler()
: set_cursor_bounds_call_count_(0),
- update_lookup_table_call_count_(0),
- update_auxiliary_text_call_count_(0) {
+ update_lookup_table_call_count_(0) {
}
MockIMECandidateWindowHandler::~MockIMECandidateWindowHandler() {
@@ -24,13 +23,6 @@ void MockIMECandidateWindowHandler::UpdateLookupTable(
last_update_lookup_table_arg_.is_visible = visible;
}
-void MockIMECandidateWindowHandler::UpdateAuxiliaryText(const std::string& text,
- bool visible) {
- ++update_auxiliary_text_call_count_;
- last_update_auxiliary_text_arg_.text = text;
- last_update_auxiliary_text_arg_.is_visible = visible;
-}
-
void MockIMECandidateWindowHandler::UpdatePreeditText(const std::string& text,
uint32 cursor_pos,
bool visible) {
@@ -45,7 +37,6 @@ void MockIMECandidateWindowHandler::SetCursorBounds(
void MockIMECandidateWindowHandler::Reset() {
set_cursor_bounds_call_count_ = 0;
update_lookup_table_call_count_ = 0;
- update_auxiliary_text_call_count_ = 0;
}
} // namespace chromeos
diff --git a/ui/base/ime/chromeos/mock_ime_candidate_window_handler.h b/ui/base/ime/chromeos/mock_ime_candidate_window_handler.h
index 5d03b12..6f7829c 100644
--- a/ui/base/ime/chromeos/mock_ime_candidate_window_handler.h
+++ b/ui/base/ime/chromeos/mock_ime_candidate_window_handler.h
@@ -31,8 +31,6 @@ class UI_EXPORT MockIMECandidateWindowHandler
virtual void UpdateLookupTable(
const input_method::CandidateWindow& candidate_window,
bool visible) OVERRIDE;
- virtual void UpdateAuxiliaryText(const std::string& text,
- bool visible) OVERRIDE;
virtual void UpdatePreeditText(const std::string& text, uint32 cursor_pos,
bool visible) OVERRIDE;
virtual void SetCursorBounds(const gfx::Rect& cursor_bounds,
@@ -46,27 +44,16 @@ class UI_EXPORT MockIMECandidateWindowHandler
return update_lookup_table_call_count_;
}
- int update_auxiliary_text_call_count() const {
- return update_auxiliary_text_call_count_;
- }
-
const UpdateLookupTableArg& last_update_lookup_table_arg() {
return last_update_lookup_table_arg_;
}
-
- const UpdateAuxiliaryTextArg& last_update_auxiliary_text_arg() {
- return last_update_auxiliary_text_arg_;
- }
-
// Resets all call count.
void Reset();
private:
int set_cursor_bounds_call_count_;
int update_lookup_table_call_count_;
- int update_auxiliary_text_call_count_;
UpdateLookupTableArg last_update_lookup_table_arg_;
- UpdateAuxiliaryTextArg last_update_auxiliary_text_arg_;
};
} // namespace chromeos