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 #ifndef ASH_SYSTEM_CHROMEOS_VIRTUAL_KEYBOARD_VIRTUAL_KEYBOARD_TRAY_H_ 6 #define ASH_SYSTEM_CHROMEOS_VIRTUAL_KEYBOARD_VIRTUAL_KEYBOARD_TRAY_H_ 7 8 #include "ash/system/tray/tray_background_view.h" 9 #include "ash/system/tray_accessibility.h" 10 #include "ash/system/user/login_status.h" 11 #include "base/basictypes.h" 12 #include "ui/views/controls/button/button.h" 13 14 namespace views { 15 class ImageButton; 16 } 17 18 namespace ash { 19 class StatusAreaWidget; 20 21 class VirtualKeyboardTray : public TrayBackgroundView, 22 public views::ButtonListener, 23 public AccessibilityObserver { 24 public: 25 explicit VirtualKeyboardTray(StatusAreaWidget* status_area_widget); 26 virtual ~VirtualKeyboardTray(); 27 28 // TrayBackgroundView: 29 virtual void SetShelfAlignment(ShelfAlignment alignment) OVERRIDE; 30 virtual base::string16 GetAccessibleNameForTray() OVERRIDE; 31 virtual void HideBubbleWithView( 32 const views::TrayBubbleView* bubble_view) OVERRIDE; 33 virtual bool ClickedOutsideBubble() OVERRIDE; 34 virtual bool PerformAction(const ui::Event& event) OVERRIDE; 35 36 // views::ButtonListener: 37 virtual void ButtonPressed(views::Button* sender, 38 const ui::Event& event) OVERRIDE; 39 40 // AccessibilityObserver: 41 virtual void OnAccessibilityModeChanged( 42 AccessibilityNotificationVisibility notify) OVERRIDE; 43 44 private: 45 views::ImageButton* button_; // Not owned. 46 47 DISALLOW_COPY_AND_ASSIGN(VirtualKeyboardTray); 48 }; 49 50 } // namespace ash 51 52 #endif // ASH_SYSTEM_CHROMEOS_VIRTUAL_KEYBOARD_VIRTUAL_KEYBOARD_TRAY_H_ 53