OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef HitRegion_h | 5 #ifndef HitRegion_h |
6 #define HitRegion_h | 6 #define HitRegion_h |
7 | 7 |
8 #include "core/dom/Element.h" | 8 #include "core/dom/Element.h" |
9 #include "modules/canvas2d/HitRegionOptions.h" | 9 #include "modules/canvas2d/HitRegionOptions.h" |
10 #include "platform/graphics/Path.h" | 10 #include "platform/graphics/Path.h" |
(...skipping 10 matching lines...) Expand all Loading... |
21 public: | 21 public: |
22 static PassRefPtrWillBeRawPtr<HitRegion> create(const Path& path, const HitR
egionOptions& options) | 22 static PassRefPtrWillBeRawPtr<HitRegion> create(const Path& path, const HitR
egionOptions& options) |
23 { | 23 { |
24 return adoptRefWillBeNoop(new HitRegion(path, options)); | 24 return adoptRefWillBeNoop(new HitRegion(path, options)); |
25 } | 25 } |
26 | 26 |
27 virtual ~HitRegion() { } | 27 virtual ~HitRegion() { } |
28 | 28 |
29 void removePixels(const Path&); | 29 void removePixels(const Path&); |
30 | 30 |
31 bool contains(const LayoutPoint&) const; | |
32 bool contains(const FloatPoint&) const; | 31 bool contains(const FloatPoint&) const; |
33 | 32 |
34 const String& id() const { return m_id; } | 33 const String& id() const { return m_id; } |
35 const Path& path() const { return m_path; } | 34 const Path& path() const { return m_path; } |
36 Element* control() const { return m_control.get(); } | 35 Element* control() const { return m_control.get(); } |
37 WindRule fillRule() const { return m_fillRule; } | 36 WindRule fillRule() const { return m_fillRule; } |
38 | 37 |
39 DECLARE_TRACE(); | 38 DECLARE_TRACE(); |
40 | 39 |
41 private: | 40 private: |
(...skipping 14 matching lines...) Expand all Loading... |
56 void addHitRegion(PassRefPtrWillBeRawPtr<HitRegion>); | 55 void addHitRegion(PassRefPtrWillBeRawPtr<HitRegion>); |
57 | 56 |
58 void removeHitRegion(HitRegion*); | 57 void removeHitRegion(HitRegion*); |
59 void removeHitRegionById(const String& id); | 58 void removeHitRegionById(const String& id); |
60 void removeHitRegionByControl(Element*); | 59 void removeHitRegionByControl(Element*); |
61 void removeHitRegionsInRect(const FloatRect&, const AffineTransform&); | 60 void removeHitRegionsInRect(const FloatRect&, const AffineTransform&); |
62 void removeAllHitRegions(); | 61 void removeAllHitRegions(); |
63 | 62 |
64 HitRegion* getHitRegionById(const String& id) const; | 63 HitRegion* getHitRegionById(const String& id) const; |
65 HitRegion* getHitRegionByControl(Element*) const; | 64 HitRegion* getHitRegionByControl(Element*) const; |
66 HitRegion* getHitRegionAtPoint(const LayoutPoint&) const; | 65 HitRegion* getHitRegionAtPoint(const FloatPoint&) const; |
67 | 66 |
68 unsigned getHitRegionsCount() const; | 67 unsigned getHitRegionsCount() const; |
69 | 68 |
70 DECLARE_TRACE(); | 69 DECLARE_TRACE(); |
71 | 70 |
72 private: | 71 private: |
73 HitRegionManager() { } | 72 HitRegionManager() { } |
74 | 73 |
75 typedef WillBeHeapListHashSet<RefPtrWillBeMember<HitRegion>> HitRegionList; | 74 typedef WillBeHeapListHashSet<RefPtrWillBeMember<HitRegion>> HitRegionList; |
76 typedef HitRegionList::const_reverse_iterator HitRegionIterator; | 75 typedef HitRegionList::const_reverse_iterator HitRegionIterator; |
77 typedef WillBeHeapHashMap<String, RefPtrWillBeMember<HitRegion>> HitRegionId
Map; | 76 typedef WillBeHeapHashMap<String, RefPtrWillBeMember<HitRegion>> HitRegionId
Map; |
78 typedef WillBeHeapHashMap<RefPtrWillBeMember<Element>, RefPtrWillBeMember<Hi
tRegion>> HitRegionControlMap; | 77 typedef WillBeHeapHashMap<RefPtrWillBeMember<Element>, RefPtrWillBeMember<Hi
tRegion>> HitRegionControlMap; |
79 | 78 |
80 HitRegionList m_hitRegionList; | 79 HitRegionList m_hitRegionList; |
81 HitRegionIdMap m_hitRegionIdMap; | 80 HitRegionIdMap m_hitRegionIdMap; |
82 HitRegionControlMap m_hitRegionControlMap; | 81 HitRegionControlMap m_hitRegionControlMap; |
83 }; | 82 }; |
84 | 83 |
85 } // namespace blink | 84 } // namespace blink |
86 | 85 |
87 #endif | 86 #endif |
OLD | NEW |