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

Unified Diff: ash/common/system/ime/tray_ime_chromeos.cc

Issue 2429923002: Implement all system menu title row buttons for Ash MD (Closed)
Patch Set: OS_WIN define in tests Created 4 years, 2 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/ime/tray_ime_chromeos.cc
diff --git a/ash/common/system/ime/tray_ime_chromeos.cc b/ash/common/system/ime/tray_ime_chromeos.cc
index d5488580de4d0a2b83ae8ccc66c5707c2e27699f..7bcc4e949c6f69a927798474b52775e7568a3c46 100644
--- a/ash/common/system/ime/tray_ime_chromeos.cc
+++ b/ash/common/system/ime/tray_ime_chromeos.cc
@@ -113,7 +113,9 @@ class IMEDetailedView : public ImeListView {
LoginStatus login,
bool show_keyboard_toggle)
: ImeListView(owner, show_keyboard_toggle, ImeListView::HIDE_SINGLE_IME),
- login_(login) {
+ login_(login),
+ settings_(nullptr),
+ settings_button_(nullptr) {
SystemTrayDelegate* delegate = WmShell::Get()->system_tray_delegate();
IMEInfoList list;
delegate->GetAvailableIMEList(&list);
@@ -131,10 +133,8 @@ class IMEDetailedView : public ImeListView {
SingleImeBehavior single_ime_behavior) override {
ImeListView::Update(list, property_list, show_keyboard_toggle,
single_ime_behavior);
- if (login_ != LoginStatus::NOT_LOGGED_IN && login_ != LoginStatus::LOCKED &&
- !WmShell::Get()
- ->GetSessionStateDelegate()
- ->IsInSecondaryLoginScreen()) {
+ if (!MaterialDesignController::IsSystemTrayMenuMaterial() &&
+ CanOpenWebUISettings(login_)) {
AppendSettings();
}
@@ -145,11 +145,19 @@ class IMEDetailedView : public ImeListView {
// ImeListView:
void HandleViewClicked(views::View* view) override {
ImeListView::HandleViewClicked(view);
- if (view == settings_) {
- WmShell::Get()->RecordUserMetricsAction(
- UMA_STATUS_AREA_IME_SHOW_DETAILED);
- WmShell::Get()->system_tray_controller()->ShowIMESettings();
- }
+ if (view == settings_)
+ ShowSettings();
+ }
+
+ void HandleButtonPressed(views::Button* sender,
+ const ui::Event& event) override {
+ if (sender == settings_button_)
+ ShowSettings();
+ }
+
+ void CreateExtraTitleRowButtons() override {
+ if (MaterialDesignController::IsSystemTrayMenuMaterial())
+ settings_button_ = title_row()->AddSettingsButton(this, login_);
}
void AppendSettings() {
@@ -162,10 +170,21 @@ class IMEDetailedView : public ImeListView {
settings_ = container;
}
+ void ShowSettings() {
+ WmShell::Get()->RecordUserMetricsAction(UMA_STATUS_AREA_IME_SHOW_DETAILED);
+ WmShell::Get()->system_tray_controller()->ShowIMESettings();
+ if (owner()->system_tray())
+ owner()->system_tray()->CloseSystemBubble();
+ }
+
LoginStatus login_;
+ // Not used in material design.
views::View* settings_;
+ // Only used in material design.
+ views::Button* settings_button_;
+
DISALLOW_COPY_AND_ASSIGN(IMEDetailedView);
};
« no previous file with comments | « ash/common/system/chromeos/network/network_state_list_detailed_view.cc ('k') | ash/common/system/tiles/tiles_default_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698