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

Unified Diff: Source/core/rendering/shapes/Shape.cpp

Issue 115253003: Layout support for new circle shape syntax (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Update virtual/legacy-animations-engine/animations/interpolation/shape-outside-expected.txt Created 7 years 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
Index: Source/core/rendering/shapes/Shape.cpp
diff --git a/Source/core/rendering/shapes/Shape.cpp b/Source/core/rendering/shapes/Shape.cpp
index c45b5b4a2c1cf9d1efe7034c3622c7eecb2a2457..1a5cab8b797c93fce9b690457f58f4763c9784ff 100644
--- a/Source/core/rendering/shapes/Shape.cpp
+++ b/Source/core/rendering/shapes/Shape.cpp
@@ -30,6 +30,7 @@
#include "config.h"
#include "core/rendering/shapes/Shape.h"
+#include "core/css/BasicShapeFunctions.h"
#include "core/fetch/ImageResource.h"
#include "core/rendering/shapes/BoxShape.h"
#include "core/rendering/shapes/PolygonShape.h"
@@ -154,8 +155,13 @@ PassOwnPtr<Shape> Shape::createShape(const BasicShape* basicShape, const LayoutS
}
case BasicShape::BasicShapeCircleType: {
- // FIXME implement layout.
- shape = createRectangleShape(FloatRect(0, 0, boxWidth, boxHeight), FloatSize(0, 0));
+ const BasicShapeCircle* circle = static_cast<const BasicShapeCircle*>(basicShape);
+ float centerX = floatValueForCenterCoordinate(circle->centerX(), boxWidth);
leviw_travelin_and_unemployed 2014/01/07 19:41:34 I don't love having these coordinates split up so
+ float centerY = floatValueForCenterCoordinate(circle->centerY(), boxHeight);
+ float radius = circle->floatValueForRadiusInBox(boxWidth, boxHeight);
+ FloatPoint logicalCenter = physicalPointToLogical(FloatPoint(centerX, centerY), logicalBoxSize.height(), writingMode);
+
+ shape = createCircleShape(logicalCenter, radius);
break;
}

Powered by Google App Engine
This is Rietveld 408576698