Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1435)

Unified Diff: Source/core/rendering/RenderDetailsMarker.cpp

Issue 596563003: Move painting code from RenderDetailsMarker into DetailsMarkerPainter. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Merge Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/rendering/RenderDetailsMarker.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/rendering/RenderDetailsMarker.cpp
diff --git a/Source/core/rendering/RenderDetailsMarker.cpp b/Source/core/rendering/RenderDetailsMarker.cpp
index 50d3ac69fea3ebf74e0664ca0ab53c653b8f9d25..0f9ded3f063adb5d2897b82da838c29acd124768 100644
--- a/Source/core/rendering/RenderDetailsMarker.cpp
+++ b/Source/core/rendering/RenderDetailsMarker.cpp
@@ -24,8 +24,8 @@
#include "core/HTMLNames.h"
#include "core/dom/Element.h"
#include "core/html/HTMLElement.h"
+#include "core/paint/DetailsMarkerPainter.h"
#include "core/rendering/PaintInfo.h"
-#include "platform/graphics/GraphicsContext.h"
namespace blink {
@@ -36,39 +36,6 @@ RenderDetailsMarker::RenderDetailsMarker(Element* element)
{
}
-static Path createPath(const FloatPoint* path)
-{
- Path result;
- result.moveTo(FloatPoint(path[0].x(), path[0].y()));
- for (int i = 1; i < 4; ++i)
- result.addLineTo(FloatPoint(path[i].x(), path[i].y()));
- return result;
-}
-
-static Path createDownArrowPath()
-{
- FloatPoint points[4] = { FloatPoint(0.0f, 0.07f), FloatPoint(0.5f, 0.93f), FloatPoint(1.0f, 0.07f), FloatPoint(0.0f, 0.07f) };
- return createPath(points);
-}
-
-static Path createUpArrowPath()
-{
- FloatPoint points[4] = { FloatPoint(0.0f, 0.93f), FloatPoint(0.5f, 0.07f), FloatPoint(1.0f, 0.93f), FloatPoint(0.0f, 0.93f) };
- return createPath(points);
-}
-
-static Path createLeftArrowPath()
-{
- FloatPoint points[4] = { FloatPoint(1.0f, 0.0f), FloatPoint(0.14f, 0.5f), FloatPoint(1.0f, 1.0f), FloatPoint(1.0f, 0.0f) };
- return createPath(points);
-}
-
-static Path createRightArrowPath()
-{
- FloatPoint points[4] = { FloatPoint(0.0f, 0.0f), FloatPoint(0.86f, 0.5f), FloatPoint(0.0f, 1.0f), FloatPoint(0.0f, 0.0f) };
- return createPath(points);
-}
-
RenderDetailsMarker::Orientation RenderDetailsMarker::orientation() const
{
switch (style()->writingMode()) {
@@ -92,48 +59,9 @@ RenderDetailsMarker::Orientation RenderDetailsMarker::orientation() const
return Right;
}
-Path RenderDetailsMarker::getCanonicalPath() const
-{
- switch (orientation()) {
- case Left: return createLeftArrowPath();
- case Right: return createRightArrowPath();
- case Up: return createUpArrowPath();
- case Down: return createDownArrowPath();
- }
-
- return Path();
-}
-
-Path RenderDetailsMarker::getPath(const LayoutPoint& origin) const
-{
- Path result = getCanonicalPath();
- result.transform(AffineTransform().scale(contentWidth().toFloat(), contentHeight().toFloat()));
- result.translate(FloatSize(origin.x().toFloat(), origin.y().toFloat()));
- return result;
-}
-
void RenderDetailsMarker::paint(PaintInfo& paintInfo, const LayoutPoint& paintOffset)
{
- if (paintInfo.phase != PaintPhaseForeground || style()->visibility() != VISIBLE) {
- RenderBlock::paint(paintInfo, paintOffset);
- return;
- }
-
- LayoutPoint boxOrigin(paintOffset + location());
- LayoutRect overflowRect(visualOverflowRect());
- overflowRect.moveBy(boxOrigin);
-
- if (!paintInfo.rect.intersects(pixelSnappedIntRect(overflowRect)))
- return;
-
- const Color color(resolveColor(CSSPropertyColor));
- paintInfo.context->setStrokeColor(color);
- paintInfo.context->setStrokeStyle(SolidStroke);
- paintInfo.context->setStrokeThickness(1.0f);
- paintInfo.context->setFillColor(color);
-
- boxOrigin.move(borderLeft() + paddingLeft(), borderTop() + paddingTop());
- paintInfo.context->fillPath(getPath(boxOrigin));
+ DetailsMarkerPainter(*this).paint(paintInfo, paintOffset);
}
bool RenderDetailsMarker::isOpen() const
« no previous file with comments | « Source/core/rendering/RenderDetailsMarker.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698