1 // Copyright 2014 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 UI_WM_CORE_MASKED_WINDOW_TARGETER_H_ 6 #define UI_WM_CORE_MASKED_WINDOW_TARGETER_H_ 7 8 #include "ui/aura/window_targeter.h" 9 #include "ui/wm/wm_export.h" 10 11 namespace gfx { 12 class Path; 13 } 14 15 namespace wm { 16 17 class WM_EXPORT MaskedWindowTargeter : public aura::WindowTargeter { 18 public: 19 explicit MaskedWindowTargeter(aura::Window* masked_window); 20 virtual ~MaskedWindowTargeter(); 21 22 protected: 23 // Sets the hit-test mask for |window| in |mask| (in |window|'s local 24 // coordinate system). Returns whether a valid mask has been set in |mask|. 25 virtual bool GetHitTestMask(aura::Window* window, gfx::Path* mask) const = 0; 26 27 // ui::EventTargeter: 28 virtual bool EventLocationInsideBounds( 29 ui::EventTarget* target, 30 const ui::LocatedEvent& event) const OVERRIDE; 31 32 private: 33 aura::Window* masked_window_; 34 35 DISALLOW_COPY_AND_ASSIGN(MaskedWindowTargeter); 36 }; 37 38 } // namespace wm 39 40 #endif // UI_WM_CORE_MASKED_WINDOW_TARGETER_H_ 41