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

Side by Side Diff: Source/core/rendering/RenderBlock.h

Issue 13909006: Merge patch for stacked floats with shape-outside from WebKit (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebase just to make sure it will submit cleanly Created 7 years, 5 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2007 David Smith (catfish.man@gmail.com) 4 * (C) 2007 David Smith (catfish.man@gmail.com)
5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All r ights reserved. 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All r ights reserved.
6 * 6 *
7 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public 8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
(...skipping 488 matching lines...) Expand 10 before | Expand all | Expand 10 after
499 virtual void layout(); 499 virtual void layout();
500 500
501 void layoutPositionedObjects(bool relayoutChildren, bool fixedPositionObject sOnly = false); 501 void layoutPositionedObjects(bool relayoutChildren, bool fixedPositionObject sOnly = false);
502 void markFixedPositionObjectForLayoutIfNeeded(RenderObject* child); 502 void markFixedPositionObjectForLayoutIfNeeded(RenderObject* child);
503 503
504 virtual void paint(PaintInfo&, const LayoutPoint&); 504 virtual void paint(PaintInfo&, const LayoutPoint&);
505 virtual void paintObject(PaintInfo&, const LayoutPoint&); 505 virtual void paintObject(PaintInfo&, const LayoutPoint&);
506 virtual void paintChildren(PaintInfo&, const LayoutPoint&); 506 virtual void paintChildren(PaintInfo&, const LayoutPoint&);
507 void paintChild(RenderBox*, PaintInfo&, const LayoutPoint&); 507 void paintChild(RenderBox*, PaintInfo&, const LayoutPoint&);
508 508
509 LayoutUnit logicalRightOffsetForLine(LayoutUnit position, LayoutUnit fixedOf fset, bool applyTextIndent, LayoutUnit* logicalHeightRemaining = 0, LayoutUnit l ogicalHeight = 0) const; 509 LayoutUnit logicalRightOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixed Offset, bool applyTextIndent, LayoutUnit* heightRemaining = 0, LayoutUnit logica lHeight = 0) const
510 LayoutUnit logicalLeftOffsetForLine(LayoutUnit position, LayoutUnit fixedOff set, bool applyTextIndent, LayoutUnit* logicalHeightRemaining = 0, LayoutUnit lo gicalHeight = 0) const; 510 {
511 return adjustLogicalRightOffsetForLine(logicalRightFloatOffsetForLine(lo gicalTop, fixedOffset, heightRemaining, logicalHeight, ShapeOutsideFloatShapeOff set), applyTextIndent);
512 }
513 LayoutUnit logicalLeftOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixedO ffset, bool applyTextIndent, LayoutUnit* heightRemaining = 0, LayoutUnit logical Height = 0) const
514 {
515 return adjustLogicalLeftOffsetForLine(logicalLeftFloatOffsetForLine(logi calTop, fixedOffset, heightRemaining, logicalHeight, ShapeOutsideFloatShapeOffse t), applyTextIndent);
516 }
517 LayoutUnit logicalRightOffsetForLineUsingFloatBoundingBox(LayoutUnit logical Top, LayoutUnit fixedOffset, bool applyTextIndent, LayoutUnit* heightRemaining = 0, LayoutUnit logicalHeight = 0) const
518 {
519 return adjustLogicalRightOffsetForLine(logicalRightFloatOffsetForLine(lo gicalTop, fixedOffset, heightRemaining, logicalHeight, ShapeOutsideFloatBounding BoxOffset), applyTextIndent);
520 }
521 LayoutUnit logicalLeftOffsetForLineUsingFloatBoundingBox(LayoutUnit logicalT op, LayoutUnit fixedOffset, bool applyTextIndent, LayoutUnit* heightRemaining = 0, LayoutUnit logicalHeight = 0) const
522 {
523 return adjustLogicalLeftOffsetForLine(logicalLeftFloatOffsetForLine(logi calTop, fixedOffset, heightRemaining, logicalHeight, ShapeOutsideFloatBoundingBo xOffset), applyTextIndent);
524 }
511 525
512 virtual ETextAlign textAlignmentForLine(bool endsWithSoftBreak) const; 526 virtual ETextAlign textAlignmentForLine(bool endsWithSoftBreak) const;
513 virtual void adjustInlineDirectionLineBounds(int /* expansionOpportunityCoun t */, float& /* logicalLeft */, float& /* logicalWidth */) const { } 527 virtual void adjustInlineDirectionLineBounds(int /* expansionOpportunityCoun t */, float& /* logicalLeft */, float& /* logicalWidth */) const { }
514 528
515 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAct ion) OVERRIDE; 529 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAct ion) OVERRIDE;
516 530
517 virtual void computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, Layo utUnit& maxLogicalWidth) const OVERRIDE; 531 virtual void computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, Layo utUnit& maxLogicalWidth) const OVERRIDE;
518 virtual void computePreferredLogicalWidths() OVERRIDE; 532 virtual void computePreferredLogicalWidths() OVERRIDE;
519 533
520 virtual int firstLineBoxBaseline() const; 534 virtual int firstLineBoxBaseline() const;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
565 } 579 }
566 580
567 bool updateRegionsAndShapesLogicalSize(RenderFlowThread*); 581 bool updateRegionsAndShapesLogicalSize(RenderFlowThread*);
568 void computeRegionRangeForBlock(RenderFlowThread*); 582 void computeRegionRangeForBlock(RenderFlowThread*);
569 583
570 void updateBlockChildDirtyBitsBeforeLayout(bool relayoutChildren, RenderBox* ); 584 void updateBlockChildDirtyBitsBeforeLayout(bool relayoutChildren, RenderBox* );
571 585
572 virtual void checkForPaginationLogicalHeightChange(LayoutUnit& pageLogicalHe ight, bool& pageLogicalHeightChanged, bool& hasSpecifiedPageLogicalHeight); 586 virtual void checkForPaginationLogicalHeightChange(LayoutUnit& pageLogicalHe ight, bool& pageLogicalHeightChanged, bool& hasSpecifiedPageLogicalHeight);
573 587
574 private: 588 private:
589 enum ShapeOutsideFloatOffsetMode { ShapeOutsideFloatShapeOffset, ShapeOutsid eFloatBoundingBoxOffset };
590
591 LayoutUnit logicalRightFloatOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixedOffset, LayoutUnit* heightRemaining, LayoutUnit logicalHeight, ShapeOutside FloatOffsetMode) const;
592 LayoutUnit logicalLeftFloatOffsetForLine(LayoutUnit logicalTop, LayoutUnit f ixedOffset, LayoutUnit* heightRemaining, LayoutUnit logicalHeight, ShapeOutsideF loatOffsetMode) const;
593 LayoutUnit adjustLogicalRightOffsetForLine(LayoutUnit offsetFromFloats, bool applyTextIndent) const;
594 LayoutUnit adjustLogicalLeftOffsetForLine(LayoutUnit offsetFromFloats, bool applyTextIndent) const;
595
575 void computeShapeSize(); 596 void computeShapeSize();
576 void updateRegionsAndShapesAfterChildLayout(RenderFlowThread*, bool); 597 void updateRegionsAndShapesAfterChildLayout(RenderFlowThread*, bool);
577 void updateShapeInsideInfoAfterStyleChange(const ShapeValue*, const ShapeVal ue* oldShape); 598 void updateShapeInsideInfoAfterStyleChange(const ShapeValue*, const ShapeVal ue* oldShape);
578 599
579 virtual RenderObjectChildList* virtualChildren() OVERRIDE FINAL { return chi ldren(); } 600 virtual RenderObjectChildList* virtualChildren() OVERRIDE FINAL { return chi ldren(); }
580 virtual const RenderObjectChildList* virtualChildren() const OVERRIDE FINAL { return children(); } 601 virtual const RenderObjectChildList* virtualChildren() const OVERRIDE FINAL { return children(); }
581 602
582 virtual const char* renderName() const; 603 virtual const char* renderName() const;
583 604
584 virtual bool isRenderBlock() const OVERRIDE FINAL { return true; } 605 virtual bool isRenderBlock() const OVERRIDE FINAL { return true; }
(...skipping 739 matching lines...) Expand 10 before | Expand all | Expand 10 after
1324 static String string(const int value); 1345 static String string(const int value);
1325 }; 1346 };
1326 template<> struct ValueToString<RenderBlock::FloatingObject*> { 1347 template<> struct ValueToString<RenderBlock::FloatingObject*> {
1327 static String string(const RenderBlock::FloatingObject*); 1348 static String string(const RenderBlock::FloatingObject*);
1328 }; 1349 };
1329 #endif 1350 #endif
1330 1351
1331 } // namespace WebCore 1352 } // namespace WebCore
1332 1353
1333 #endif // RenderBlock_h 1354 #endif // RenderBlock_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698