static inline void appendQuadsToSubtargetList(Vector<FloatQuad>& quads, Node* node, SubtargetGeometryList& subtargets) { Vector<FloatQuad>::const_iterator it = quads.begin(); const Vector<FloatQuad>::const_iterator end = quads.end(); for (; it != end; ++it) subtargets.append(SubtargetGeometry(node, *it)); }
static inline void appendSubtargetsForNodeToList(Node* node, SubtargetGeometryList& subtargets) { // Since the node is a result of a hit test, we are already ensured it has a renderer. ASSERT(node->renderer()); Vector<FloatQuad> quads; node->renderer()->absoluteQuads(quads); Vector<FloatQuad>::const_iterator it = quads.begin(); const Vector<FloatQuad>::const_iterator end = quads.end(); for (; it != end; ++it) subtargets.append(SubtargetGeometry(node, *it)); }
static inline void appendZoomableSubtargets(Node* node, SubtargetGeometryList& subtargets) { RenderBox* renderer = toRenderBox(node->renderer()); ASSERT(renderer); Vector<FloatQuad> quads; FloatRect borderBoxRect = renderer->borderBoxRect(); FloatRect contentBoxRect = renderer->contentBoxRect(); quads.append(renderer->localToAbsoluteQuad(borderBoxRect)); if (borderBoxRect != contentBoxRect) quads.append(renderer->localToAbsoluteQuad(contentBoxRect)); // FIXME: For RenderBlocks, add column boxes and content boxes cleared for floats. Vector<FloatQuad>::const_iterator it = quads.begin(); const Vector<FloatQuad>::const_iterator end = quads.end(); for (; it != end; ++it) subtargets.append(SubtargetGeometry(node, *it)); }