Home | History | Annotate | Download | only in frame
      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