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_WM_OVERVIEW_TRANSPARENT_ACTIVATE_WINDOW_BUTTON_H_ 6 #define ASH_WM_OVERVIEW_TRANSPARENT_ACTIVATE_WINDOW_BUTTON_H_ 7 8 #include "base/macros.h" 9 #include "ui/views/controls/button/button.h" 10 11 namespace ash { 12 13 // Transparent window that covers window selector items and handles mouse and 14 // gestures on overview mode for them. 15 class TransparentActivateWindowButton : public views::ButtonListener { 16 public: 17 explicit TransparentActivateWindowButton(aura::Window* activate_window); 18 virtual ~TransparentActivateWindowButton(); 19 20 // Sets the bounds of the transparent window. 21 void SetBounds(const gfx::Rect& bounds); 22 23 // Sends an a11y focus alert so that if chromevox is enabled, the window title 24 // is read. 25 void SendFocusAlert() const; 26 27 // views::ButtonListener: 28 virtual void ButtonPressed(views::Button* sender, 29 const ui::Event& event) OVERRIDE; 30 31 private: 32 // The transparent window event handler widget itself. 33 scoped_ptr<views::Widget> event_handler_widget_; 34 35 // Pointer to the window that the button activates. 36 aura::Window* activate_window_; 37 38 DISALLOW_COPY_AND_ASSIGN(TransparentActivateWindowButton); 39 }; 40 41 } // namespace ash 42 43 #endif // ASH_WM_OVERVIEW_TRANSPARENT_ACTIVATE_WINDOW_BUTTON_H_ 44