| 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 #include "config.h" | 5 #include "config.h" |
| 6 #include "modules/canvas2d/HitRegion.h" | 6 #include "modules/canvas2d/HitRegion.h" |
| 7 | 7 |
| 8 #include "core/dom/AXObjectCache.h" | 8 #include "core/dom/AXObjectCache.h" |
| 9 #include "core/layout/LayoutBoxModelObject.h" | 9 #include "core/layout/LayoutBoxModelObject.h" |
| 10 | 10 |
| 11 namespace blink { | 11 namespace blink { |
| 12 | 12 |
| 13 HitRegion::HitRegion(const Path& path, const HitRegionOptions& options) | 13 HitRegion::HitRegion(const Path& path, const HitRegionOptions& options) |
| 14 : m_id(options.id()) | 14 : m_id(options.id()) |
| 15 , m_control(options.control()) | 15 , m_control(options.control()) |
| 16 , m_path(path) | 16 , m_path(path) |
| 17 { | 17 { |
| 18 if (options.fillRule() != "evenodd") | 18 if (options.fillRule() != "evenodd") |
| 19 m_fillRule = RULE_NONZERO; | 19 m_fillRule = RULE_NONZERO; |
| 20 else | 20 else |
| 21 m_fillRule = RULE_EVENODD; | 21 m_fillRule = RULE_EVENODD; |
| 22 } | 22 } |
| 23 | 23 |
| 24 bool HitRegion::contains(const LayoutPoint& point) const | |
| 25 { | |
| 26 return m_path.contains(FloatPoint(point), m_fillRule); | |
| 27 } | |
| 28 | |
| 29 bool HitRegion::contains(const FloatPoint& point) const | 24 bool HitRegion::contains(const FloatPoint& point) const |
| 30 { | 25 { |
| 31 return m_path.contains(point, m_fillRule); | 26 return m_path.contains(point, m_fillRule); |
| 32 } | 27 } |
| 33 | 28 |
| 34 void HitRegion::removePixels(const Path& clearArea) | 29 void HitRegion::removePixels(const Path& clearArea) |
| 35 { | 30 { |
| 36 m_path.subtractPath(clearArea); | 31 m_path.subtractPath(clearArea); |
| 37 } | 32 } |
| 38 | 33 |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 113 } | 108 } |
| 114 | 109 |
| 115 HitRegion* HitRegionManager::getHitRegionByControl(Element* control) const | 110 HitRegion* HitRegionManager::getHitRegionByControl(Element* control) const |
| 116 { | 111 { |
| 117 if (control) | 112 if (control) |
| 118 return m_hitRegionControlMap.get(control); | 113 return m_hitRegionControlMap.get(control); |
| 119 | 114 |
| 120 return nullptr; | 115 return nullptr; |
| 121 } | 116 } |
| 122 | 117 |
| 123 HitRegion* HitRegionManager::getHitRegionAtPoint(const LayoutPoint& point) const | 118 HitRegion* HitRegionManager::getHitRegionAtPoint(const FloatPoint& point) const |
| 124 { | 119 { |
| 125 HitRegionIterator itEnd = m_hitRegionList.rend(); | 120 HitRegionIterator itEnd = m_hitRegionList.rend(); |
| 126 | 121 |
| 127 for (HitRegionIterator it = m_hitRegionList.rbegin(); it != itEnd; ++it) { | 122 for (HitRegionIterator it = m_hitRegionList.rbegin(); it != itEnd; ++it) { |
| 128 RefPtrWillBeRawPtr<HitRegion> hitRegion = *it; | 123 RefPtrWillBeRawPtr<HitRegion> hitRegion = *it; |
| 129 if (hitRegion->contains(point)) | 124 if (hitRegion->contains(point)) |
| 130 return hitRegion.get(); | 125 return hitRegion.get(); |
| 131 } | 126 } |
| 132 | 127 |
| 133 return nullptr; | 128 return nullptr; |
| 134 } | 129 } |
| 135 | 130 |
| 136 unsigned HitRegionManager::getHitRegionsCount() const | 131 unsigned HitRegionManager::getHitRegionsCount() const |
| 137 { | 132 { |
| 138 return m_hitRegionList.size(); | 133 return m_hitRegionList.size(); |
| 139 } | 134 } |
| 140 | 135 |
| 141 DEFINE_TRACE(HitRegionManager) | 136 DEFINE_TRACE(HitRegionManager) |
| 142 { | 137 { |
| 143 #if ENABLE(OILPAN) | 138 #if ENABLE(OILPAN) |
| 144 visitor->trace(m_hitRegionList); | 139 visitor->trace(m_hitRegionList); |
| 145 visitor->trace(m_hitRegionIdMap); | 140 visitor->trace(m_hitRegionIdMap); |
| 146 visitor->trace(m_hitRegionControlMap); | 141 visitor->trace(m_hitRegionControlMap); |
| 147 #endif | 142 #endif |
| 148 } | 143 } |
| 149 | 144 |
| 150 } // namespace blink | 145 } // namespace blink |
| OLD | NEW |