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

Unified Diff: ash/system/chromeos/virtual_keyboard/virtual_keyboard_tray.cc

Issue 177123016: Add a11y virtual keyboard icon when a11y VK is enabled (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: reviews Created 6 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
Index: ash/system/chromeos/virtual_keyboard/virtual_keyboard_tray.cc
diff --git a/ash/system/chromeos/virtual_keyboard/virtual_keyboard_tray.cc b/ash/system/chromeos/virtual_keyboard/virtual_keyboard_tray.cc
new file mode 100644
index 0000000000000000000000000000000000000000..f398db75dab2c193d12b9019eeab4219eac34441
--- /dev/null
+++ b/ash/system/chromeos/virtual_keyboard/virtual_keyboard_tray.cc
@@ -0,0 +1,116 @@
+// Copyright 2014 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/system/chromeos/virtual_keyboard/virtual_keyboard_tray.h"
+
+#include "ash/shell.h"
+#include "ash/system/status_area_widget.h"
+#include "ash/system/tray/system_tray_notifier.h"
+#include "ash/system/tray/tray_constants.h"
+#include "ash/system/tray/tray_utils.h"
+#include "grit/ash_resources.h"
+#include "grit/ash_strings.h"
+#include "ui/base/l10n/l10n_util.h"
+#include "ui/base/resource/resource_bundle.h"
+#include "ui/events/event.h"
+#include "ui/gfx/image/image_skia.h"
+#include "ui/keyboard/keyboard_controller.h"
+#include "ui/views/controls/button/image_button.h"
+
+namespace ash {
+namespace internal {
+
+namespace {
+
+class VirtualKeyboardButton : public views::ImageButton {
+ public:
+ VirtualKeyboardButton(views::ButtonListener* listener);
+ virtual ~VirtualKeyboardButton();
+
+ // Overridden from views::ImageButton:
+ virtual gfx::Size GetPreferredSize() OVERRIDE;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(VirtualKeyboardButton);
+};
+
+} // namespace
+
+VirtualKeyboardButton::VirtualKeyboardButton(views::ButtonListener* listener)
sadrul 2014/03/04 07:00:32 Shouldn't these be inside the anonymous namespace
bshe 2014/03/04 16:11:54 doh. Sorry. On 2014/03/04 07:00:32, sadrul wrote:
+ : views::ImageButton(listener) {
+}
+
+VirtualKeyboardButton::~VirtualKeyboardButton() {
+}
+
+gfx::Size VirtualKeyboardButton::GetPreferredSize() {
+ const int virtual_keyboard_button_size = GetShelfItemHeight();
+ return gfx::Size(virtual_keyboard_button_size, virtual_keyboard_button_size);
+}
+
+VirtualKeyboardTray::VirtualKeyboardTray(StatusAreaWidget* status_area_widget)
+ : TrayBackgroundView(status_area_widget),
+ button_(NULL) {
+ button_ = new VirtualKeyboardButton(this);
+ button_->SetImage(views::CustomButton::STATE_NORMAL,
+ ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
+ IDR_AURA_UBER_TRAY_VIRTUAL_KEYBOARD));
+ button_->SetImageAlignment(views::ImageButton::ALIGN_CENTER,
+ views::ImageButton::ALIGN_MIDDLE);
+
+ tray_container()->AddChildView(button_);
+ SetContentsBackground();
+ SetVisible(false);
+ // The Shell may not exist in some unit tests.
+ if (Shell::HasInstance()) {
+ Shell::GetInstance()->system_tray_notifier()->
+ AddAccessibilityObserver(this);
+ }
+}
+
+VirtualKeyboardTray::~VirtualKeyboardTray() {
+ // The Shell may not exist in some unit tests.
+ if (Shell::HasInstance()) {
+ Shell::GetInstance()->system_tray_notifier()->
+ RemoveAccessibilityObserver(this);
+ }
+}
+
+void VirtualKeyboardTray::SetShelfAlignment(ShelfAlignment alignment) {
+ TrayBackgroundView::SetShelfAlignment(alignment);
+ tray_container()->SetBorder(views::Border::NullBorder());
+}
+
+base::string16 VirtualKeyboardTray::GetAccessibleNameForTray() {
+ return l10n_util::GetStringUTF16(
+ IDS_ASH_VIRTUAL_KEYBOARD_TRAY_ACCESSIBLE_NAME);
+}
+
+void VirtualKeyboardTray::HideBubbleWithView(
+ const views::TrayBubbleView* bubble_view) {
+}
+
+bool VirtualKeyboardTray::ClickedOutsideBubble() {
+ return false;
+}
+
+bool VirtualKeyboardTray::PerformAction(const ui::Event& event) {
+ Shell::GetInstance()->keyboard_controller()->ShowAndLockKeyboard();
+ return true;
+}
+
+void VirtualKeyboardTray::ButtonPressed(views::Button* sender,
+ const ui::Event& event) {
+ DCHECK_EQ(button_, sender);
+ PerformAction(event);
+}
+
+void VirtualKeyboardTray::OnAccessibilityModeChanged(
+ AccessibilityNotificationVisibility notify) {
+ SetVisible(Shell::GetInstance()->accessibility_delegate()->
+ IsVirtualKeyboardEnabled());
+}
+
+} // namespace internal
+} // namespace ash

Powered by Google App Engine
This is Rietveld 408576698