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

Unified Diff: ash/common/system/chromeos/tray_caps_lock.cc

Issue 2734653002: chromeos: Move files in //ash/common to //ash (Closed)
Patch Set: fix a11y tests, fix docs Created 3 years, 10 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
« no previous file with comments | « ash/common/system/chromeos/tray_caps_lock.h ('k') | ash/common/system/chromeos/tray_tracing.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/common/system/chromeos/tray_caps_lock.cc
diff --git a/ash/common/system/chromeos/tray_caps_lock.cc b/ash/common/system/chromeos/tray_caps_lock.cc
deleted file mode 100644
index c4c115e1239db5f893f99f40bc5ac98300210d6f..0000000000000000000000000000000000000000
--- a/ash/common/system/chromeos/tray_caps_lock.cc
+++ /dev/null
@@ -1,232 +0,0 @@
-// Copyright (c) 2012 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 "ash/common/system/chromeos/tray_caps_lock.h"
-
-#include "ash/common/accessibility_delegate.h"
-#include "ash/common/system/tray/actionable_view.h"
-#include "ash/common/system/tray/system_tray_delegate.h"
-#include "ash/common/system/tray/tray_constants.h"
-#include "ash/common/system/tray/tray_popup_item_style.h"
-#include "ash/common/system/tray/tray_popup_utils.h"
-#include "ash/common/system/tray/tri_view.h"
-#include "ash/common/wm_shell.h"
-#include "ash/resources/grit/ash_resources.h"
-#include "ash/resources/vector_icons/vector_icons.h"
-#include "ash/strings/grit/ash_strings.h"
-#include "base/sys_info.h"
-#include "ui/accessibility/ax_node_data.h"
-#include "ui/base/ime/chromeos/ime_keyboard.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/gfx/image/image.h"
-#include "ui/gfx/paint_vector_icon.h"
-#include "ui/views/border.h"
-#include "ui/views/controls/image_view.h"
-#include "ui/views/controls/label.h"
-#include "ui/views/layout/box_layout.h"
-#include "ui/views/layout/fill_layout.h"
-#include "ui/views/widget/widget.h"
-
-namespace ash {
-namespace {
-
-// Padding used to position the caption in the caps lock default view row.
-const int kCaptionRightPadding = 6;
-
-bool CapsLockIsEnabled() {
- chromeos::input_method::InputMethodManager* ime =
- chromeos::input_method::InputMethodManager::Get();
- return (ime && ime->GetImeKeyboard())
- ? ime->GetImeKeyboard()->CapsLockIsEnabled()
- : false;
-}
-}
-
-class CapsLockDefaultView : public ActionableView {
- public:
- CapsLockDefaultView()
- : ActionableView(nullptr, TrayPopupInkDropStyle::FILL_BOUNDS),
- text_label_(TrayPopupUtils::CreateDefaultLabel()),
- shortcut_label_(TrayPopupUtils::CreateDefaultLabel()) {
- shortcut_label_->SetEnabled(false);
-
- TriView* tri_view(TrayPopupUtils::CreateDefaultRowView());
- SetLayoutManager(new views::FillLayout);
- AddChildView(tri_view);
-
- auto* image = TrayPopupUtils::CreateMainImageView();
- image->SetEnabled(enabled());
- TrayPopupItemStyle default_view_style(
- TrayPopupItemStyle::FontStyle::DEFAULT_VIEW_LABEL);
- image->SetImage(gfx::CreateVectorIcon(kSystemMenuCapsLockIcon,
- default_view_style.GetIconColor()));
- default_view_style.SetupLabel(text_label_);
-
- TrayPopupItemStyle caption_style(TrayPopupItemStyle::FontStyle::CAPTION);
- caption_style.SetupLabel(shortcut_label_);
-
- SetInkDropMode(InkDropHostView::InkDropMode::ON);
-
- tri_view->AddView(TriView::Container::START, image);
- tri_view->AddView(TriView::Container::CENTER, text_label_);
- tri_view->AddView(TriView::Container::END, shortcut_label_);
- tri_view->SetContainerBorder(
- TriView::Container::END,
- views::CreateEmptyBorder(0, 0, 0, kCaptionRightPadding));
- }
-
- ~CapsLockDefaultView() override {}
-
- // Updates the label text and the shortcut text.
- void Update(bool caps_lock_enabled) {
- const int text_string_id = caps_lock_enabled
- ? IDS_ASH_STATUS_TRAY_CAPS_LOCK_ENABLED
- : IDS_ASH_STATUS_TRAY_CAPS_LOCK_DISABLED;
- text_label_->SetText(l10n_util::GetStringUTF16(text_string_id));
-
- int shortcut_string_id = 0;
- bool search_mapped_to_caps_lock =
- WmShell::Get()->system_tray_delegate()->IsSearchKeyMappedToCapsLock();
- if (caps_lock_enabled) {
- shortcut_string_id =
- search_mapped_to_caps_lock
- ? IDS_ASH_STATUS_TRAY_CAPS_LOCK_SHORTCUT_SEARCH_OR_SHIFT
- : IDS_ASH_STATUS_TRAY_CAPS_LOCK_SHORTCUT_ALT_SEARCH_OR_SHIFT;
- } else {
- shortcut_string_id =
- search_mapped_to_caps_lock
- ? IDS_ASH_STATUS_TRAY_CAPS_LOCK_SHORTCUT_SEARCH
- : IDS_ASH_STATUS_TRAY_CAPS_LOCK_SHORTCUT_ALT_SEARCH;
- }
- shortcut_label_->SetText(l10n_util::GetStringUTF16(shortcut_string_id));
-
- Layout();
- }
-
- private:
- void GetAccessibleNodeData(ui::AXNodeData* node_data) override {
- node_data->role = ui::AX_ROLE_BUTTON;
- node_data->SetName(text_label_->text());
- }
-
- // ActionableView:
- bool PerformAction(const ui::Event& event) override {
- chromeos::input_method::ImeKeyboard* keyboard =
- chromeos::input_method::InputMethodManager::Get()->GetImeKeyboard();
- if (keyboard) {
- WmShell::Get()->RecordUserMetricsAction(
- keyboard->CapsLockIsEnabled()
- ? UMA_STATUS_AREA_CAPS_LOCK_DISABLED_BY_CLICK
- : UMA_STATUS_AREA_CAPS_LOCK_ENABLED_BY_CLICK);
- keyboard->SetCapsLockEnabled(!keyboard->CapsLockIsEnabled());
- }
- return true;
- }
-
- // It indicates whether the Caps Lock is on or off.
- views::Label* text_label_;
-
- // It indicates the shortcut can be used to turn on or turn off Caps Lock.
- views::Label* shortcut_label_;
-
- DISALLOW_COPY_AND_ASSIGN(CapsLockDefaultView);
-};
-
-TrayCapsLock::TrayCapsLock(SystemTray* system_tray)
- : TrayImageItem(system_tray, kSystemTrayCapsLockIcon, UMA_CAPS_LOCK),
- default_(nullptr),
- detailed_(nullptr),
- caps_lock_enabled_(CapsLockIsEnabled()),
- message_shown_(false) {
- chromeos::input_method::InputMethodManager* ime =
- chromeos::input_method::InputMethodManager::Get();
- if (ime && ime->GetImeKeyboard())
- ime->GetImeKeyboard()->AddObserver(this);
-}
-
-TrayCapsLock::~TrayCapsLock() {
- chromeos::input_method::InputMethodManager* ime =
- chromeos::input_method::InputMethodManager::Get();
- if (ime && ime->GetImeKeyboard())
- ime->GetImeKeyboard()->RemoveObserver(this);
-}
-
-void TrayCapsLock::OnCapsLockChanged(bool enabled) {
- caps_lock_enabled_ = enabled;
-
- // Send an a11y alert.
- WmShell::Get()->accessibility_delegate()->TriggerAccessibilityAlert(
- enabled ? A11Y_ALERT_CAPS_ON : A11Y_ALERT_CAPS_OFF);
-
- if (tray_view())
- tray_view()->SetVisible(caps_lock_enabled_);
-
- if (default_) {
- default_->Update(caps_lock_enabled_);
- } else {
- if (caps_lock_enabled_) {
- if (!message_shown_) {
- WmShell::Get()->RecordUserMetricsAction(
- UMA_STATUS_AREA_CAPS_LOCK_POPUP);
- PopupDetailedView(kTrayPopupAutoCloseDelayForTextInSeconds, false);
- message_shown_ = true;
- }
- } else if (detailed_) {
- detailed_->GetWidget()->Close();
- }
- }
-}
-
-bool TrayCapsLock::GetInitialVisibility() {
- return CapsLockIsEnabled();
-}
-
-views::View* TrayCapsLock::CreateDefaultView(LoginStatus status) {
- if (!caps_lock_enabled_)
- return nullptr;
- DCHECK(!default_);
- default_ = new CapsLockDefaultView;
- default_->Update(caps_lock_enabled_);
- return default_;
-}
-
-views::View* TrayCapsLock::CreateDetailedView(LoginStatus status) {
- DCHECK(!detailed_);
- detailed_ = new views::View;
-
- detailed_->SetLayoutManager(new views::BoxLayout(
- views::BoxLayout::kHorizontal, kTrayPopupPaddingHorizontal, 10,
- kTrayPopupPaddingBetweenItems));
-
- ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance();
- views::ImageView* image = new views::ImageView;
- image->SetImage(
- CreateVectorIcon(kSystemMenuCapsLockIcon, kMenuIconSize, kMenuIconColor));
- detailed_->AddChildView(image);
-
- const int string_id =
- WmShell::Get()->system_tray_delegate()->IsSearchKeyMappedToCapsLock()
- ? IDS_ASH_STATUS_TRAY_CAPS_LOCK_CANCEL_BY_SEARCH
- : IDS_ASH_STATUS_TRAY_CAPS_LOCK_CANCEL_BY_ALT_SEARCH;
- views::Label* label = TrayPopupUtils::CreateDefaultLabel();
- label->SetText(bundle.GetLocalizedString(string_id));
- label->SetMultiLine(true);
- label->SetHorizontalAlignment(gfx::ALIGN_LEFT);
- detailed_->AddChildView(label);
- WmShell::Get()->RecordUserMetricsAction(UMA_STATUS_AREA_CAPS_LOCK_DETAILED);
-
- return detailed_;
-}
-
-void TrayCapsLock::DestroyDefaultView() {
- default_ = nullptr;
-}
-
-void TrayCapsLock::DestroyDetailedView() {
- detailed_ = nullptr;
-}
-
-} // namespace ash
« no previous file with comments | « ash/common/system/chromeos/tray_caps_lock.h ('k') | ash/common/system/chromeos/tray_tracing.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698