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