1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// found in the LICENSE file. 4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#ifndef ASH_WM_OVERVIEW_TRANSPARENT_ACTIVATE_WINDOW_BUTTON_H_ 6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#define ASH_WM_OVERVIEW_TRANSPARENT_ACTIVATE_WINDOW_BUTTON_H_ 7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "base/macros.h" 9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "ui/views/controls/button/button.h" 10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace ash { 12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Transparent window that covers window selector items and handles mouse and 14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// gestures on overview mode for them. 15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class TransparentActivateWindowButton : public views::ButtonListener { 16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) public: 17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) explicit TransparentActivateWindowButton(aura::Window* activate_window); 18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual ~TransparentActivateWindowButton(); 19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Sets the bounds of the transparent window. 21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) void SetBounds(const gfx::Rect& bounds); 22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 2346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Sends an a11y focus alert so that if chromevox is enabled, the window title 2446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // is read. 2546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void SendFocusAlert() const; 2646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // views::ButtonListener: 28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual void ButtonPressed(views::Button* sender, 29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) const ui::Event& event) OVERRIDE; 30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) private: 32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // The transparent window event handler widget itself. 33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) scoped_ptr<views::Widget> event_handler_widget_; 34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Pointer to the window that the button activates. 36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) aura::Window* activate_window_; 37cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 38cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(TransparentActivateWindowButton); 39cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 40cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 41cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} // namespace ash 42cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 43cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#endif // ASH_WM_OVERVIEW_TRANSPARENT_ACTIVATE_WINDOW_BUTTON_H_ 44