From f562a36006fc9e1c74c18c5c13fa594d93fadffd Mon Sep 17 00:00:00 2001 From: "sadrul@chromium.org" Date: Tue, 7 Jan 2014 13:36:31 +0000 Subject: aura: Add a window-targeter for windows with hit-test masks. Use the masked-window targeter for the touch-selection handlers. Subsequent patches will install similar targeters for the other windows that use hit-test masks, which will allow getting rid of some hit-test mask related API from aura and views. BUG=318879 R=ben@chromium.org Review URL: https://codereview.chromium.org/122573005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@243287 0039d316-1c4b-4281-b951-d872f2087c98 --- ui/wm/public/masked_window_targeter.h | 38 +++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 ui/wm/public/masked_window_targeter.h (limited to 'ui/wm/public') diff --git a/ui/wm/public/masked_window_targeter.h b/ui/wm/public/masked_window_targeter.h new file mode 100644 index 0000000..c5b4d88 --- /dev/null +++ b/ui/wm/public/masked_window_targeter.h @@ -0,0 +1,38 @@ +// 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_WM_PUBLIC_MASKED_WINDOW_TARGETER_H_ +#define UI_WM_PUBLIC_MASKED_WINDOW_TARGETER_H_ + +#include "ui/aura/window_targeter.h" + +namespace gfx { +class Path; +} + +namespace wm { + +class MaskedWindowTargeter : public aura::WindowTargeter { + public: + explicit MaskedWindowTargeter(aura::Window* masked_window); + virtual ~MaskedWindowTargeter(); + + protected: + // Sets the hit-test mask for |window| in |mask| (in |window|'s local + // coordinate system). + virtual void GetHitTestMask(aura::Window* window, gfx::Path* mask) const = 0; + + // aura::WindowTargeter: + virtual bool EventLocationInsideBounds( + aura::Window* window, + const ui::LocatedEvent& event) const OVERRIDE; + + aura::Window* masked_window_; + + DISALLOW_COPY_AND_ASSIGN(MaskedWindowTargeter); +}; + +} // namespace wm + +#endif // UI_WM_PUBLIC_MASKED_WINDOW_TARGETER_H_ -- cgit v1.1