• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
12 namespace aura {
13 class Window;
14 }
15 
16 namespace gfx {
17 class Point;
18 }
19 
20 namespace views {
21 class NonClientFrameView;
22 class Widget;
23 }
24 
25 namespace ash {
26 class FrameCaptionButtonContainerView;
27 
28 // Class which manages the hittest override bounds for |frame|.
29 class 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