1// Copyright 2013 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_FRAME_FRAME_BORDER_HITTEST_CONTROLLER_H_
6#define ASH_FRAME_FRAME_BORDER_HITTEST_CONTROLLER_H_
7
8#include "ash/ash_export.h"
9#include "base/basictypes.h"
10#include "base/compiler_specific.h"
11
12namespace aura {
13class Window;
14}
15
16namespace gfx {
17class Point;
18}
19
20namespace views {
21class NonClientFrameView;
22class Widget;
23}
24
25namespace ash {
26class FrameCaptionButtonContainerView;
27
28// Class which manages the hittest override bounds for |frame|.
29class ASH_EXPORT FrameBorderHitTestController {
30 public:
31  explicit FrameBorderHitTestController(views::Widget* frame);
32  virtual ~FrameBorderHitTestController();
33
34  // Does the non client hit test on behalf of |view|. |point_in_widget| must be
35  // in the coordinates of |view|'s widget.
36  static int NonClientHitTest(
37      views::NonClientFrameView* view,
38      FrameCaptionButtonContainerView* caption_button_container,
39      const gfx::Point& point_in_widget);
40
41 private:
42  // The window whose hittest override bounds are being managed.
43  aura::Window* frame_window_;
44
45  DISALLOW_COPY_AND_ASSIGN(FrameBorderHitTestController);
46};
47
48}  // namespace ash
49
50#endif  // ASH_FRAME_FRAME_BORDER_HITTEST_CONTROLLER_H_
51