Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(172)

Unified Diff: ash/common/system/chromeos/ime_menu/ime_menu_tray.cc

Issue 2323823004: Add action for each button on opt-in IME menu. (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698