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

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

Issue 23567004: Fix alignment for bidirectional text. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Trying Again Created 7 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 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 329 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 LayoutUnit marginAfterForChild(const RenderBoxModelObject* child) const { re turn child->marginAfter(style()); } 340 LayoutUnit marginAfterForChild(const RenderBoxModelObject* child) const { re turn child->marginAfter(style()); }
341 LayoutUnit marginStartForChild(const RenderBoxModelObject* child) const { re turn child->marginStart(style()); } 341 LayoutUnit marginStartForChild(const RenderBoxModelObject* child) const { re turn child->marginStart(style()); }
342 LayoutUnit marginEndForChild(const RenderBoxModelObject* child) const { retu rn child->marginEnd(style()); } 342 LayoutUnit marginEndForChild(const RenderBoxModelObject* child) const { retu rn child->marginEnd(style()); }
343 void setMarginStartForChild(RenderBox* child, LayoutUnit value) const { chil d->setMarginStart(value, style()); } 343 void setMarginStartForChild(RenderBox* child, LayoutUnit value) const { chil d->setMarginStart(value, style()); }
344 void setMarginEndForChild(RenderBox* child, LayoutUnit value) const { child- >setMarginEnd(value, style()); } 344 void setMarginEndForChild(RenderBox* child, LayoutUnit value) const { child- >setMarginEnd(value, style()); }
345 void setMarginBeforeForChild(RenderBox* child, LayoutUnit value) const { chi ld->setMarginBefore(value, style()); } 345 void setMarginBeforeForChild(RenderBox* child, LayoutUnit value) const { chi ld->setMarginBefore(value, style()); }
346 void setMarginAfterForChild(RenderBox* child, LayoutUnit value) const { chil d->setMarginAfter(value, style()); } 346 void setMarginAfterForChild(RenderBox* child, LayoutUnit value) const { chil d->setMarginAfter(value, style()); }
347 LayoutUnit collapsedMarginBeforeForChild(const RenderBox* child) const; 347 LayoutUnit collapsedMarginBeforeForChild(const RenderBox* child) const;
348 LayoutUnit collapsedMarginAfterForChild(const RenderBox* child) const; 348 LayoutUnit collapsedMarginAfterForChild(const RenderBox* child) const;
349 349
350 void updateLogicalWidthForAlignment(const ETextAlign&, BidiRun* trailingSpac eRun, float& logicalLeft, float& totalLogicalWidth, float& availableLogicalWidth , int expansionOpportunityCount); 350 void updateLogicalWidthForAlignment(const ETextAlign&, const RootInlineBox*, BidiRun* trailingSpaceRun, float& logicalLeft, float& totalLogicalWidth, float& availableLogicalWidth, int expansionOpportunityCount);
351 351
352 virtual void updateFirstLetter(); 352 virtual void updateFirstLetter();
353 353
354 class MarginValues { 354 class MarginValues {
355 public: 355 public:
356 MarginValues(LayoutUnit beforePos, LayoutUnit beforeNeg, LayoutUnit afte rPos, LayoutUnit afterNeg) 356 MarginValues(LayoutUnit beforePos, LayoutUnit beforeNeg, LayoutUnit afte rPos, LayoutUnit afterNeg)
357 : m_positiveMarginBefore(beforePos) 357 : m_positiveMarginBefore(beforePos)
358 , m_negativeMarginBefore(beforeNeg) 358 , m_negativeMarginBefore(beforeNeg)
359 , m_positiveMarginAfter(afterPos) 359 , m_positiveMarginAfter(afterPos)
360 , m_negativeMarginAfter(afterNeg) 360 , m_negativeMarginAfter(afterNeg)
(...skipping 573 matching lines...) Expand 10 before | Expand all | Expand 10 after
934 934
935 LayoutUnit collapseMargins(RenderBox* child, MarginInfo&); 935 LayoutUnit collapseMargins(RenderBox* child, MarginInfo&);
936 LayoutUnit clearFloatsIfNeeded(RenderBox* child, MarginInfo&, LayoutUnit old TopPosMargin, LayoutUnit oldTopNegMargin, LayoutUnit yPos); 936 LayoutUnit clearFloatsIfNeeded(RenderBox* child, MarginInfo&, LayoutUnit old TopPosMargin, LayoutUnit oldTopNegMargin, LayoutUnit yPos);
937 LayoutUnit estimateLogicalTopPosition(RenderBox* child, const MarginInfo&, L ayoutUnit& estimateWithoutPagination); 937 LayoutUnit estimateLogicalTopPosition(RenderBox* child, const MarginInfo&, L ayoutUnit& estimateWithoutPagination);
938 void marginBeforeEstimateForChild(RenderBox*, LayoutUnit&, LayoutUnit&, bool &) const; 938 void marginBeforeEstimateForChild(RenderBox*, LayoutUnit&, LayoutUnit&, bool &) const;
939 void handleAfterSideOfBlock(LayoutUnit top, LayoutUnit bottom, MarginInfo&); 939 void handleAfterSideOfBlock(LayoutUnit top, LayoutUnit bottom, MarginInfo&);
940 void setCollapsedBottomMargin(const MarginInfo&); 940 void setCollapsedBottomMargin(const MarginInfo&);
941 // End helper functions and structs used by layoutBlockChildren. 941 // End helper functions and structs used by layoutBlockChildren.
942 942
943 // Helper function for layoutInlineChildren() 943 // Helper function for layoutInlineChildren()
944 RootInlineBox* createLineBoxesFromBidiRuns(BidiRunList<BidiRun>&, const Inli neIterator& end, LineInfo&, VerticalPositionCache&, BidiRun* trailingSpaceRun, W ordMeasurements&); 944 RootInlineBox* createLineBoxesFromBidiRuns(unsigned bidiLevel, BidiRunList<B idiRun>&, const InlineIterator& end, LineInfo&, VerticalPositionCache&, BidiRun* trailingSpaceRun, WordMeasurements&);
945 void layoutRunsAndFloats(LineLayoutState&, bool hasInlineChild); 945 void layoutRunsAndFloats(LineLayoutState&, bool hasInlineChild);
946 void layoutRunsAndFloatsInRange(LineLayoutState&, InlineBidiResolver&, const InlineIterator& cleanLineStart, const BidiStatus& cleanLineBidiStatus, unsigned consecutiveHyphenatedLines); 946 void layoutRunsAndFloatsInRange(LineLayoutState&, InlineBidiResolver&, const InlineIterator& cleanLineStart, const BidiStatus& cleanLineBidiStatus, unsigned consecutiveHyphenatedLines);
947 void updateShapeAndSegmentsForCurrentLine(ShapeInsideInfo*&, LayoutUnit&, Li neLayoutState&); 947 void updateShapeAndSegmentsForCurrentLine(ShapeInsideInfo*&, LayoutUnit&, Li neLayoutState&);
948 void updateShapeAndSegmentsForCurrentLineInFlowThread(ShapeInsideInfo*&, Lin eLayoutState&); 948 void updateShapeAndSegmentsForCurrentLineInFlowThread(ShapeInsideInfo*&, Lin eLayoutState&);
949 bool adjustLogicalLineTopAndLogicalHeightIfNeeded(ShapeInsideInfo*, LayoutUn it, LineLayoutState&, InlineBidiResolver&, FloatingObject*, InlineIterator&, Wor dMeasurements&); 949 bool adjustLogicalLineTopAndLogicalHeightIfNeeded(ShapeInsideInfo*, LayoutUn it, LineLayoutState&, InlineBidiResolver&, FloatingObject*, InlineIterator&, Wor dMeasurements&);
950 const InlineIterator& restartLayoutRunsAndFloatsInRange(LayoutUnit oldLogica lHeight, LayoutUnit newLogicalHeight, FloatingObject* lastFloatFromPreviousLine , InlineBidiResolver&, const InlineIterator&); 950 const InlineIterator& restartLayoutRunsAndFloatsInRange(LayoutUnit oldLogica lHeight, LayoutUnit newLogicalHeight, FloatingObject* lastFloatFromPreviousLine , InlineBidiResolver&, const InlineIterator&);
951 void linkToEndLineIfNeeded(LineLayoutState&); 951 void linkToEndLineIfNeeded(LineLayoutState&);
952 static void repaintDirtyFloats(Vector<FloatWithRect>& floats); 952 static void repaintDirtyFloats(Vector<FloatWithRect>& floats);
953 953
954 protected: 954 protected:
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
1100 ASSERT_WITH_SECURITY_IMPLICATION(!object || object->isRenderBlock()); 1100 ASSERT_WITH_SECURITY_IMPLICATION(!object || object->isRenderBlock());
1101 return static_cast<const RenderBlock*>(object); 1101 return static_cast<const RenderBlock*>(object);
1102 } 1102 }
1103 1103
1104 // This will catch anyone doing an unnecessary cast. 1104 // This will catch anyone doing an unnecessary cast.
1105 void toRenderBlock(const RenderBlock*); 1105 void toRenderBlock(const RenderBlock*);
1106 1106
1107 } // namespace WebCore 1107 } // namespace WebCore
1108 1108
1109 #endif // RenderBlock_h 1109 #endif // RenderBlock_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698