// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef UI_VIEWS_MASKED_TARGETER_DELEGATE_H_
#define UI_VIEWS_MASKED_TARGETER_DELEGATE_H_

#include "ui/base/ui_base_types.h"
#include "ui/views/view_targeter_delegate.h"
#include "ui/views/views_export.h"

namespace gfx {
class Path;
class Rect;
}

namespace views {
class View;

// Defines the default behaviour for hit-testing a rectangular region against
// the bounds of a View having a custom-shaped hit test mask. Views define
// such a mask by extending this class.
class VIEWS_EXPORT MaskedTargeterDelegate : public ViewTargeterDelegate {
 public:
  MaskedTargeterDelegate() {}
  virtual ~MaskedTargeterDelegate() {}

  // Sets the hit-test mask for the view which implements this interface,
  // in that view's local coordinate space. Returns whether a valid mask
  // has been set in |mask|.
  virtual bool GetHitTestMask(gfx::Path* mask) const = 0;

  // ViewTargeterDelegate:
  virtual bool DoesIntersectRect(const View* target,
                                 const gfx::Rect& rect) const OVERRIDE;

 private:
  DISALLOW_COPY_AND_ASSIGN(MaskedTargeterDelegate);
};

}  // namespace views

#endif  // UI_VIEWS_MASKED_TARGETER_DELEGATE_H_
