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