Chromium Code Reviews| Index: ash/common/system/chromeos/ime_menu/ime_menu_tray.cc |
| diff --git a/ash/common/system/chromeos/ime_menu/ime_menu_tray.cc b/ash/common/system/chromeos/ime_menu/ime_menu_tray.cc |
| index 6defd83cdc7e06b58e5413e14f2ea3480baf0199..664fb21026b91a3ea08d97cf5117003e62b7d538 100644 |
| --- a/ash/common/system/chromeos/ime_menu/ime_menu_tray.cc |
| +++ b/ash/common/system/chromeos/ime_menu/ime_menu_tray.cc |
| @@ -23,6 +23,7 @@ |
| #include "base/strings/utf_string_conversions.h" |
| #include "grit/ash_resources.h" |
| #include "grit/ash_strings.h" |
| +#include "ui/base/ime/chromeos/input_method_manager.h" |
| #include "ui/base/l10n/l10n_util.h" |
| #include "ui/base/resource/resource_bundle.h" |
| #include "ui/views/controls/label.h" |
| @@ -83,10 +84,12 @@ class ImeButtonsView : public views::View, |
| public views::ButtonListener, |
| public ViewClickListener { |
| public: |
| - ImeButtonsView(bool show_emoji_button, |
| + ImeButtonsView(ImeMenuTray* ime_menu_tray, |
| + bool show_emoji_button, |
| bool show_voice_button, |
| bool show_handwriting_button, |
| - bool show_settings_button) { |
| + bool show_settings_button) |
| + : ime_menu_tray_(ime_menu_tray) { |
| SetBorder( |
|
James Cook
2016/09/12 03:21:54
nit: DCHECK(ime_menu_tray_) helps the reader under
Azure Wei
2016/09/12 13:12:56
Done.
|
| views::Border::CreateSolidSidedBorder(1, 0, 0, 0, kBorderDarkColor)); |
| @@ -116,20 +119,31 @@ class ImeButtonsView : public views::View, |
| // views::ButtonListener: |
| void ButtonPressed(views::Button* sender, const ui::Event& event) override { |
| + if (settings_button_ && sender == settings_button_) { |
|
James Cook
2016/09/12 03:21:54
nit: |sender| should never be null, so you don't n
Azure Wei
2016/09/12 13:12:56
Done. Thanks.
|
| + ime_menu_tray_->HideImeMenuBubble(); |
| + ShowIMESettings(); |
| + return; |
| + } |
| + |
| + std::string appended_url; |
|
James Cook
2016/09/12 03:21:54
nit: This isn't a URL. It should be called somethi
Azure Wei
2016/09/12 13:12:56
Done. Renamed as keyset.
|
| if (emoji_button_ && sender == emoji_button_) { |
|
James Cook
2016/09/12 03:21:54
nit: {} not needed for single-line if()
Azure Wei
2016/09/12 13:12:57
Done.
|
| - // TODO(azurewei): Opens emoji palette. |
| + appended_url = "emoji"; |
| } else if (voice_button_ && sender == voice_button_) { |
| - // TODO(azurewei): Brings virtual keyboard for emoji input. |
| + appended_url = "voice"; |
| } else if (handwriting_button_ && sender == handwriting_button_) { |
| - // TODO(azurewei): Brings virtual keyboard for handwriting input. |
| - } else if (settings_button_ && sender == settings_button_) { |
| - ShowIMESettings(); |
| + appended_url = "handwriting"; |
| } |
| + if (appended_url.empty()) |
|
James Cook
2016/09/12 03:21:54
nit: This should never happen. I would do:
else
Azure Wei
2016/09/12 13:12:57
Done.
|
| + return; |
| + ime_menu_tray_->HideImeMenuBubble(); |
| + chromeos::input_method::InputMethodManager::Get()->ShowInputViewWithUrl( |
|
James Cook
2016/09/12 03:21:54
I think it would be better for this function to ta
Azure Wei
2016/09/12 13:12:56
Done.
|
| + "&keyboard=" + appended_url); |
| } |
| // ViewClickListener: |
| void OnViewClicked(views::View* sender) override { |
| if (one_settings_button_view_ && sender == one_settings_button_view_) { |
| + ime_menu_tray_->HideImeMenuBubble(); |
| ShowIMESettings(); |
| } |
| } |
| @@ -183,6 +197,7 @@ class ImeButtonsView : public views::View, |
| } |
| } |
| + ImeMenuTray* ime_menu_tray_; |
| TrayPopupHeaderButton* emoji_button_; |
| TrayPopupHeaderButton* voice_button_; |
| TrayPopupHeaderButton* handwriting_button_; |
| @@ -235,12 +250,19 @@ void ImeMenuTray::ShowImeMenuBubble() { |
| WmShell::Get()->system_tray_delegate()->GetUserLoginStatus(); |
| if (login != LoginStatus::NOT_LOGGED_IN && login != LoginStatus::LOCKED && |
| !WmShell::Get()->GetSessionStateDelegate()->IsInSecondaryLoginScreen()) |
| - bubble_view->AddChildView(new ImeButtonsView(false, false, false, true)); |
| + bubble_view->AddChildView( |
| + new ImeButtonsView(this, false, false, false, true)); |
| bubble_.reset(new TrayBubbleWrapper(this, bubble_view)); |
| SetDrawBackgroundAsActive(true); |
| } |
| +void ImeMenuTray::HideImeMenuBubble() { |
| + bubble_.reset(); |
| + ime_list_view_ = nullptr; |
| + SetDrawBackgroundAsActive(false); |
| +} |
| + |
| bool ImeMenuTray::IsImeMenuBubbleShown() { |
| return !!bubble_; |
| } |
| @@ -350,10 +372,4 @@ void ImeMenuTray::UpdateTrayLabel() { |
| label_->SetText(current_ime_.short_name); |
| } |
| -void ImeMenuTray::HideImeMenuBubble() { |
| - bubble_.reset(); |
| - ime_list_view_ = nullptr; |
| - SetDrawBackgroundAsActive(false); |
| -} |
| - |
| } // namespace ash |