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