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

Side by Side Diff: ash/system/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: Created 6 years, 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "ash/system/virtual_keyboard/virtual_keyboard_tray.h"
6
7 #include "ash/shell.h"
8 #include "ash/system/status_area_widget.h"
9 #include "ash/system/tray/system_tray_notifier.h"
10 #include "ash/system/tray/tray_constants.h"
11 #include "ash/system/tray/tray_utils.h"
12 #include "grit/ash_resources.h"
13 #include "grit/ash_strings.h"
14 #include "ui/base/l10n/l10n_util.h"
15 #include "ui/base/resource/resource_bundle.h"
16 #include "ui/events/event.h"
17 #include "ui/gfx/image/image_skia.h"
18 #include "ui/keyboard/keyboard_controller.h"
19 #include "ui/views/controls/button/image_button.h"
20
21 namespace ash {
22 namespace internal {
23
24 namespace {
25
26 class VirtualKeyboardButton : public views::ImageButton {
27 public:
28 VirtualKeyboardButton(views::ButtonListener* listener);
29 virtual ~VirtualKeyboardButton();
30
31 // Overridden from views::ImageButton:
32 virtual gfx::Size GetPreferredSize() OVERRIDE;
33
34 private:
35 DISALLOW_COPY_AND_ASSIGN(VirtualKeyboardButton);
36 };
37
38 } // namespace
39
40 VirtualKeyboardButton::VirtualKeyboardButton(views::ButtonListener* listener)
41 : views::ImageButton(listener) {
42 }
43
44 VirtualKeyboardButton::~VirtualKeyboardButton() {
45 }
46
47 gfx::Size VirtualKeyboardButton::GetPreferredSize() {
48 const int virtual_keyboard_button_size = GetShelfItemHeight();
49 return gfx::Size(virtual_keyboard_button_size, virtual_keyboard_button_size);
50 }
51
52 VirtualKeyboardTray::VirtualKeyboardTray(StatusAreaWidget* status_area_widget)
53 : TrayBackgroundView(status_area_widget),
54 button_(NULL) {
55 button_ = new VirtualKeyboardButton(this);
56 button_->SetImage(views::CustomButton::STATE_NORMAL,
57 ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(
58 IDR_AURA_UBER_TRAY_VIRTUAL_KEYBOARD));
59 button_->SetImageAlignment(views::ImageButton::ALIGN_CENTER,
60 views::ImageButton::ALIGN_MIDDLE);
61
62 tray_container()->AddChildView(button_);
63 SetContentsBackground();
64 // The Shell may not exist in some unit tests.
65 if (Shell::HasInstance()) {
66 Shell::GetInstance()->system_tray_notifier()->
67 AddAccessibilityObserver(this);
68 }
69 }
70
71 VirtualKeyboardTray::~VirtualKeyboardTray() {
72 // The Shell may not exist in some unit tests.
73 if (Shell::HasInstance()) {
74 Shell::GetInstance()->system_tray_notifier()->
75 RemoveAccessibilityObserver(this);
76 }
77 }
78
79 void VirtualKeyboardTray::SetShelfAlignment(ShelfAlignment alignment) {
80 TrayBackgroundView::SetShelfAlignment(alignment);
81 tray_container()->SetBorder(views::Border::NullBorder());
82 }
83
84 base::string16 VirtualKeyboardTray::GetAccessibleNameForTray() {
85 return l10n_util::GetStringUTF16(
86 IDS_ASH_VIRTUAL_KEYBOARD_TRAY_ACCESSIBLE_NAME);
87 }
88
89 void VirtualKeyboardTray::HideBubbleWithView(
90 const views::TrayBubbleView* bubble_view) {
91 }
92
93 bool VirtualKeyboardTray::ClickedOutsideBubble() {
94 return false;
95 }
96
97 bool VirtualKeyboardTray::PerformAction(const ui::Event& event) {
98 Shell::GetInstance()->keyboard_controller()->ShowAndLockKeyboard();
99 return true;
100 }
101
102 void VirtualKeyboardTray::ButtonPressed(views::Button* sender,
103 const ui::Event& event) {
104 DCHECK_EQ(button_, sender);
105 PerformAction(event);
106 }
107
108 void VirtualKeyboardTray::OnAccessibilityModeChanged(
109 AccessibilityNotificationVisibility notify) {
110 SetVisible(Shell::GetInstance()->accessibility_delegate()->
111 IsVirtualKeyboardEnabled());
112 }
113
114 } // namespace internal
115 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698