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

Side by Side Diff: Source/core/layout/LayoutBlock.h

Issue 1158183006: Remove the old multicol implementation. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: rebase master Created 5 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/layout/ColumnInfo.h ('k') | Source/core/layout/LayoutBlock.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.
11 * 11 *
12 * This library is distributed in the hope that it will be useful, 12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Library General Public License for more details. 15 * Library General Public License for more details.
16 * 16 *
17 * You should have received a copy of the GNU Library General Public License 17 * You should have received a copy of the GNU Library General Public License
18 * along with this library; see the file COPYING.LIB. If not, write to 18 * along with this library; see the file COPYING.LIB. If not, write to
19 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 19 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20 * Boston, MA 02110-1301, USA. 20 * Boston, MA 02110-1301, USA.
21 */ 21 */
22 22
23 #ifndef LayoutBlock_h 23 #ifndef LayoutBlock_h
24 #define LayoutBlock_h 24 #define LayoutBlock_h
25 25
26 #include "core/CoreExport.h" 26 #include "core/CoreExport.h"
27 #include "core/layout/ColumnInfo.h"
28 #include "core/layout/FloatingObjects.h" 27 #include "core/layout/FloatingObjects.h"
29 #include "core/layout/GapRects.h" 28 #include "core/layout/GapRects.h"
30 #include "core/layout/LayoutBox.h" 29 #include "core/layout/LayoutBox.h"
31 #include "core/layout/line/LineBoxList.h" 30 #include "core/layout/line/LineBoxList.h"
32 #include "core/layout/line/RootInlineBox.h" 31 #include "core/layout/line/RootInlineBox.h"
33 #include "core/style/ShapeValue.h" 32 #include "core/style/ShapeValue.h"
34 #include "platform/text/TextBreakIterator.h" 33 #include "platform/text/TextBreakIterator.h"
35 #include "wtf/ListHashSet.h" 34 #include "wtf/ListHashSet.h"
36 #include "wtf/OwnPtr.h" 35 #include "wtf/OwnPtr.h"
37 36
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 140
142 void markPositionedObjectsForLayout(); 141 void markPositionedObjectsForLayout();
143 // FIXME: Do we really need this to be virtual? It's just so we can call thi s on 142 // FIXME: Do we really need this to be virtual? It's just so we can call thi s on
144 // LayoutBoxes without needed to check whether they're LayoutBlocks first. 143 // LayoutBoxes without needed to check whether they're LayoutBlocks first.
145 virtual void markForPaginationRelayoutIfNeeded(SubtreeLayoutScope&) override final; 144 virtual void markForPaginationRelayoutIfNeeded(SubtreeLayoutScope&) override final;
146 145
147 LayoutUnit textIndentOffset() const; 146 LayoutUnit textIndentOffset() const;
148 147
149 virtual PositionWithAffinity positionForPoint(const LayoutPoint&) override; 148 virtual PositionWithAffinity positionForPoint(const LayoutPoint&) override;
150 149
151 // Block flows subclass availableWidth to handle multi column layout (shrink ing the width available to children when laying out.)
152 virtual LayoutUnit availableLogicalWidth() const override final;
153
154 LayoutPoint flipForWritingModeIncludingColumns(const LayoutPoint&) const;
155 void adjustStartEdgeForWritingModeIncludingColumns(LayoutRect&) const;
156
157 LayoutUnit blockDirectionOffset(const LayoutSize& offsetFromBlock) const; 150 LayoutUnit blockDirectionOffset(const LayoutSize& offsetFromBlock) const;
158 LayoutUnit inlineDirectionOffset(const LayoutSize& offsetFromBlock) const; 151 LayoutUnit inlineDirectionOffset(const LayoutSize& offsetFromBlock) const;
159 152
160 LayoutBlock* blockBeforeWithinSelectionRoot(LayoutSize& offset) const; 153 LayoutBlock* blockBeforeWithinSelectionRoot(LayoutSize& offset) const;
161 154
162 virtual void setSelectionState(SelectionState) override; 155 virtual void setSelectionState(SelectionState) override;
163 156
164 LayoutRect logicalRectToPhysicalRect(const LayoutPoint& physicalPosition, co nst LayoutRect& logicalRect) const; 157 LayoutRect logicalRectToPhysicalRect(const LayoutPoint& physicalPosition, co nst LayoutRect& logicalRect) const;
165 158
166 // Helper methods for computing line counts and heights for line counts. 159 // Helper methods for computing line counts and heights for line counts.
167 RootInlineBox* lineAtIndex(int) const; 160 RootInlineBox* lineAtIndex(int) const;
168 int lineCount(const RootInlineBox* = 0, bool* = 0) const; 161 int lineCount(const RootInlineBox* = 0, bool* = 0) const;
169 int heightForLineCount(int); 162 int heightForLineCount(int);
170 void clearTruncation(); 163 void clearTruncation();
171 164
172 void adjustRectForColumns(LayoutRect&) const;
173 virtual LayoutSize columnOffset(const LayoutPoint&) const override;
174 void adjustForColumnRect(LayoutSize& offset, const LayoutPoint& locationInCo ntainer) const;
175
176 void addContinuationWithOutline(LayoutInline*); 165 void addContinuationWithOutline(LayoutInline*);
177 166
178 virtual LayoutBoxModelObject* virtualContinuation() const override final { r eturn continuation(); } 167 virtual LayoutBoxModelObject* virtualContinuation() const override final { r eturn continuation(); }
179 bool isAnonymousBlockContinuation() const { return continuation() && isAnony mousBlock(); } 168 bool isAnonymousBlockContinuation() const { return continuation() && isAnony mousBlock(); }
180 LayoutInline* inlineElementContinuation() const; 169 LayoutInline* inlineElementContinuation() const;
181 LayoutBlock* blockElementContinuation() const; 170 LayoutBlock* blockElementContinuation() const;
182 171
183 using LayoutBoxModelObject::continuation; 172 using LayoutBoxModelObject::continuation;
184 using LayoutBoxModelObject::setContinuation; 173 using LayoutBoxModelObject::setContinuation;
185 174
186 static LayoutBlock* createAnonymousWithParentAndDisplay(const LayoutObject*, EDisplay = BLOCK); 175 static LayoutBlock* createAnonymousWithParentAndDisplay(const LayoutObject*, EDisplay = BLOCK);
187 static LayoutBlockFlow* createAnonymousColumnsWithParent(const LayoutObject* ); 176 static LayoutBlockFlow* createAnonymousColumnsWithParent(const LayoutObject* );
188 static LayoutBlockFlow* createAnonymousColumnSpanWithParent(const LayoutObje ct*); 177 static LayoutBlockFlow* createAnonymousColumnSpanWithParent(const LayoutObje ct*);
189 LayoutBlock* createAnonymousBlock(EDisplay display = BLOCK) const { return c reateAnonymousWithParentAndDisplay(this, display); } 178 LayoutBlock* createAnonymousBlock(EDisplay display = BLOCK) const { return c reateAnonymousWithParentAndDisplay(this, display); }
190 LayoutBlockFlow* createAnonymousColumnsBlock() const { return createAnonymou sColumnsWithParent(this); } 179 LayoutBlockFlow* createAnonymousColumnsBlock() const { return createAnonymou sColumnsWithParent(this); }
191 LayoutBlockFlow* createAnonymousColumnSpanBlock() const { return createAnony mousColumnSpanWithParent(this); } 180 LayoutBlockFlow* createAnonymousColumnSpanBlock() const { return createAnony mousColumnSpanWithParent(this); }
192 181
193 virtual LayoutBox* createAnonymousBoxWithSameTypeAs(const LayoutObject* pare nt) const override; 182 virtual LayoutBox* createAnonymousBoxWithSameTypeAs(const LayoutObject* pare nt) const override;
194 183
195 ColumnInfo* columnInfo() const;
196 int columnGap() const; 184 int columnGap() const;
197 185
198 // These two functions take the ColumnInfo* to avoid repeated lookups of the info in the global HashMap.
199 unsigned columnCount(ColumnInfo*) const;
200 LayoutRect columnRectAt(ColumnInfo*, unsigned) const;
201
202 // Accessors for logical width/height and margins in the containing block's block-flow direction. 186 // Accessors for logical width/height and margins in the containing block's block-flow direction.
203 LayoutUnit logicalWidthForChild(const LayoutBox& child) const { return isHor izontalWritingMode() ? child.size().width() : child.size().height(); } 187 LayoutUnit logicalWidthForChild(const LayoutBox& child) const { return isHor izontalWritingMode() ? child.size().width() : child.size().height(); }
204 LayoutUnit logicalHeightForChild(const LayoutBox& child) const { return isHo rizontalWritingMode() ? child.size().height() : child.size().width(); } 188 LayoutUnit logicalHeightForChild(const LayoutBox& child) const { return isHo rizontalWritingMode() ? child.size().height() : child.size().width(); }
205 LayoutSize logicalSizeForChild(const LayoutBox& child) const { return isHori zontalWritingMode() ? child.size() : child.size().transposedSize(); } 189 LayoutSize logicalSizeForChild(const LayoutBox& child) const { return isHori zontalWritingMode() ? child.size() : child.size().transposedSize(); }
206 LayoutUnit logicalTopForChild(const LayoutBox& child) const { return isHoriz ontalWritingMode() ? child.location().y() : child.location().x(); } 190 LayoutUnit logicalTopForChild(const LayoutBox& child) const { return isHoriz ontalWritingMode() ? child.location().y() : child.location().x(); }
207 LayoutUnit marginBeforeForChild(const LayoutBoxModelObject& child) const { r eturn child.marginBefore(style()); } 191 LayoutUnit marginBeforeForChild(const LayoutBoxModelObject& child) const { r eturn child.marginBefore(style()); }
208 LayoutUnit marginAfterForChild(const LayoutBoxModelObject& child) const { re turn child.marginAfter(style()); } 192 LayoutUnit marginAfterForChild(const LayoutBoxModelObject& child) const { re turn child.marginAfter(style()); }
209 LayoutUnit marginStartForChild(const LayoutBoxModelObject& child) const { re turn child.marginStart(style()); } 193 LayoutUnit marginStartForChild(const LayoutBoxModelObject& child) const { re turn child.marginStart(style()); }
210 LayoutUnit marginEndForChild(const LayoutBoxModelObject& child) const { retu rn child.marginEnd(style()); } 194 LayoutUnit marginEndForChild(const LayoutBoxModelObject& child) const { retu rn child.marginEnd(style()); }
211 void setMarginStartForChild(LayoutBox& child, LayoutUnit value) const { chil d.setMarginStart(value, style()); } 195 void setMarginStartForChild(LayoutBox& child, LayoutUnit value) const { chil d.setMarginStart(value, style()); }
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 251
268 // FIXME-BLOCKFLOW: Remove virtualizaion when all callers have moved to Layo utBlockFlow 252 // FIXME-BLOCKFLOW: Remove virtualizaion when all callers have moved to Layo utBlockFlow
269 virtual void paintFloats(const PaintInfo&, const LayoutPoint&, bool) { } 253 virtual void paintFloats(const PaintInfo&, const LayoutPoint&, bool) { }
270 virtual void paintSelection(const PaintInfo&, const LayoutPoint&) { } 254 virtual void paintSelection(const PaintInfo&, const LayoutPoint&) { }
271 255
272 protected: 256 protected:
273 virtual void adjustInlineDirectionLineBounds(unsigned /* expansionOpportunit yCount */, LayoutUnit& /* logicalLeft */, LayoutUnit& /* logicalWidth */) const { } 257 virtual void adjustInlineDirectionLineBounds(unsigned /* expansionOpportunit yCount */, LayoutUnit& /* logicalLeft */, LayoutUnit& /* logicalWidth */) const { }
274 258
275 virtual void computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, Layo utUnit& maxLogicalWidth) const override; 259 virtual void computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, Layo utUnit& maxLogicalWidth) const override;
276 virtual void computePreferredLogicalWidths() override; 260 virtual void computePreferredLogicalWidths() override;
277 void adjustIntrinsicLogicalWidthsForColumns(LayoutUnit& minLogicalWidth, Lay outUnit& maxLogicalWidth) const;
278 261
279 virtual int firstLineBoxBaseline() const override; 262 virtual int firstLineBoxBaseline() const override;
280 virtual int inlineBlockBaseline(LineDirectionMode) const override; 263 virtual int inlineBlockBaseline(LineDirectionMode) const override;
281 int lastLineBoxBaseline(LineDirectionMode) const; 264 int lastLineBoxBaseline(LineDirectionMode) const;
282 265
283 virtual void updateHitTestResult(HitTestResult&, const LayoutPoint&) overrid e; 266 virtual void updateHitTestResult(HitTestResult&, const LayoutPoint&) overrid e;
284 267
285 // Delay update scrollbar until finishDelayUpdateScrollInfo() will be 268 // Delay update scrollbar until finishDelayUpdateScrollInfo() will be
286 // called. This function is used when a flexbox is laying out its 269 // called. This function is used when a flexbox is laying out its
287 // descendant. If multiple calls are made to startDelayUpdateScrollInfo(), 270 // descendant. If multiple calls are made to startDelayUpdateScrollInfo(),
288 // finishDelayUpdateScrollInfo() will do nothing until finishDelayUpdateScro llInfo() 271 // finishDelayUpdateScrollInfo() will do nothing until finishDelayUpdateScro llInfo()
289 // is called the same number of times. 272 // is called the same number of times.
290 static void startDelayUpdateScrollInfo(); 273 static void startDelayUpdateScrollInfo();
291 static void finishDelayUpdateScrollInfo(); 274 static void finishDelayUpdateScrollInfo();
292 275
293 void updateScrollInfoAfterLayout(); 276 void updateScrollInfoAfterLayout();
294 277
295 virtual void styleWillChange(StyleDifference, const ComputedStyle& newStyle) override; 278 virtual void styleWillChange(StyleDifference, const ComputedStyle& newStyle) override;
296 virtual void styleDidChange(StyleDifference, const ComputedStyle* oldStyle) override; 279 virtual void styleDidChange(StyleDifference, const ComputedStyle* oldStyle) override;
297 280
298 virtual bool hasLineIfEmpty() const; 281 virtual bool hasLineIfEmpty() const;
299 282
300 bool simplifiedLayout(); 283 bool simplifiedLayout();
301 virtual void simplifiedNormalFlowLayout(); 284 virtual void simplifiedNormalFlowLayout();
302 285
303 void setDesiredColumnCountAndWidth(int, LayoutUnit);
304
305 public: 286 public:
306 virtual void computeOverflow(LayoutUnit oldClientAfterEdge, bool = false); 287 virtual void computeOverflow(LayoutUnit oldClientAfterEdge, bool = false);
307 protected: 288 protected:
308 virtual void addOverflowFromChildren(); 289 virtual void addOverflowFromChildren();
309 void addOverflowFromPositionedObjects(); 290 void addOverflowFromPositionedObjects();
310 void addOverflowFromBlockChildren(); 291 void addOverflowFromBlockChildren();
311 void addVisualOverflowFromTheme(); 292 void addVisualOverflowFromTheme();
312 293
313 virtual void addFocusRingRects(Vector<LayoutRect>&, const LayoutPoint& addit ionalOffset) const override; 294 virtual void addFocusRingRects(Vector<LayoutRect>&, const LayoutPoint& addit ionalOffset) const override;
314 295
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 330
350 void insertIntoTrackedLayoutBoxMaps(LayoutBox* descendant, TrackedDescendant sMap*&, TrackedContainerMap*&); 331 void insertIntoTrackedLayoutBoxMaps(LayoutBox* descendant, TrackedDescendant sMap*&, TrackedContainerMap*&);
351 static void removeFromTrackedLayoutBoxMaps(LayoutBox* descendant, TrackedDes cendantsMap*&, TrackedContainerMap*&); 332 static void removeFromTrackedLayoutBoxMaps(LayoutBox* descendant, TrackedDes cendantsMap*&, TrackedContainerMap*&);
352 333
353 Node* nodeForHitTest() const; 334 Node* nodeForHitTest() const;
354 335
355 bool tryLayoutDoingPositionedMovementOnly(); 336 bool tryLayoutDoingPositionedMovementOnly();
356 337
357 virtual bool avoidsFloats() const override { return true; } 338 virtual bool avoidsFloats() const override { return true; }
358 339
359 bool hitTestColumns(HitTestResult&, const HitTestLocation& locationInContain er, const LayoutPoint& accumulatedOffset, HitTestAction);
360 bool hitTestContents(HitTestResult&, const HitTestLocation& locationInContai ner, const LayoutPoint& accumulatedOffset, HitTestAction); 340 bool hitTestContents(HitTestResult&, const HitTestLocation& locationInContai ner, const LayoutPoint& accumulatedOffset, HitTestAction);
361 // FIXME-BLOCKFLOW: Remove virtualizaion when all callers have moved to Layo utBlockFlow 341 // FIXME-BLOCKFLOW: Remove virtualizaion when all callers have moved to Layo utBlockFlow
362 virtual bool hitTestFloats(HitTestResult&, const HitTestLocation&, const Lay outPoint&) { return false; } 342 virtual bool hitTestFloats(HitTestResult&, const HitTestLocation&, const Lay outPoint&) { return false; }
363 343
364 virtual bool isPointInOverflowControl(HitTestResult&, const LayoutPoint& loc ationInContainer, const LayoutPoint& accumulatedOffset); 344 virtual bool isPointInOverflowControl(HitTestResult&, const LayoutPoint& loc ationInContainer, const LayoutPoint& accumulatedOffset);
365 345
366 void computeBlockPreferredLogicalWidths(LayoutUnit& minLogicalWidth, LayoutU nit& maxLogicalWidth) const; 346 void computeBlockPreferredLogicalWidths(LayoutUnit& minLogicalWidth, LayoutU nit& maxLogicalWidth) const;
367 347
368 // Obtains the nearest enclosing block (including this block) that contribut es a first-line style to our inline 348 // Obtains the nearest enclosing block (including this block) that contribut es a first-line style to our inline
369 // children. 349 // children.
370 virtual LayoutBlock* firstLineBlock() const override; 350 virtual LayoutBlock* firstLineBlock() const override;
371 351
372 virtual LayoutRect rectWithOutlineForPaintInvalidation(const LayoutBoxModelO bject* paintInvalidationContainer, LayoutUnit outlineWidth, const PaintInvalidat ionState* = 0) const override final; 352 virtual LayoutRect rectWithOutlineForPaintInvalidation(const LayoutBoxModelO bject* paintInvalidationContainer, LayoutUnit outlineWidth, const PaintInvalidat ionState* = 0) const override final;
373 353
374 virtual LayoutObject* hoverAncestor() const override final; 354 virtual LayoutObject* hoverAncestor() const override final;
375 virtual void updateDragState(bool dragOn) override final; 355 virtual void updateDragState(bool dragOn) override final;
376 virtual void childBecameNonInline(LayoutObject* child) override final; 356 virtual void childBecameNonInline(LayoutObject* child) override final;
377 357
378 bool isSelectionRoot() const; 358 bool isSelectionRoot() const;
379 359
380 virtual void absoluteRects(Vector<IntRect>&, const LayoutPoint& accumulatedO ffset) const override; 360 virtual void absoluteRects(Vector<IntRect>&, const LayoutPoint& accumulatedO ffset) const override;
381 virtual void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const overrid e; 361 virtual void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const overrid e;
382 362
383 LayoutUnit desiredColumnWidth() const;
384
385 private: 363 private:
386 virtual LayoutRect localCaretRect(InlineBox*, int caretOffset, LayoutUnit* e xtraWidthToEndOfLine = 0) override final; 364 virtual LayoutRect localCaretRect(InlineBox*, int caretOffset, LayoutUnit* e xtraWidthToEndOfLine = 0) override final;
387 bool isInlineBoxWrapperActuallyChild() const; 365 bool isInlineBoxWrapperActuallyChild() const;
388 366
389 void adjustPointToColumnContents(LayoutPoint&) const;
390
391 void markLinesDirtyInBlockRange(LayoutUnit logicalTop, LayoutUnit logicalBot tom, RootInlineBox* highest = 0); 367 void markLinesDirtyInBlockRange(LayoutUnit logicalTop, LayoutUnit logicalBot tom, RootInlineBox* highest = 0);
392 368
393 Position positionForBox(InlineBox*, bool start = true) const; 369 Position positionForBox(InlineBox*, bool start = true) const;
394 PositionWithAffinity positionForPointWithInlineChildren(const LayoutPoint&); 370 PositionWithAffinity positionForPointWithInlineChildren(const LayoutPoint&);
395 371
396 void calcColumnWidth();
397 void makeChildrenAnonymousColumnBlocks(LayoutObject* beforeChild, LayoutBloc kFlow* newBlockBox, LayoutObject* newChild); 372 void makeChildrenAnonymousColumnBlocks(LayoutObject* beforeChild, LayoutBloc kFlow* newBlockBox, LayoutObject* newChild);
398 373
399 void splitBlocks(LayoutBlock* fromBlock, LayoutBlock* toBlock, LayoutBlock* middleBlock, 374 void splitBlocks(LayoutBlock* fromBlock, LayoutBlock* toBlock, LayoutBlock* middleBlock,
400 LayoutObject* beforeChild, LayoutBoxModelObject* oldCont); 375 LayoutObject* beforeChild, LayoutBoxModelObject* oldCont);
401 void splitFlow(LayoutObject* beforeChild, LayoutBlock* newBlockBox, 376 void splitFlow(LayoutObject* beforeChild, LayoutBlock* newBlockBox,
402 LayoutObject* newChild, LayoutBoxModelObject* oldCont); 377 LayoutObject* newChild, LayoutBoxModelObject* oldCont);
403 LayoutBlock* clone() const; 378 LayoutBlock* clone() const;
404 LayoutBlock* continuationBefore(LayoutObject* beforeChild); 379 LayoutBlock* continuationBefore(LayoutObject* beforeChild);
405 LayoutBlockFlow* containingColumnsBlock(bool allowAnonymousColumnBlock = tru e); 380 LayoutBlockFlow* containingColumnsBlock(bool allowAnonymousColumnBlock = tru e);
406 LayoutBlockFlow* columnsBlockForSpanningElement(LayoutObject* newChild); 381 LayoutBlockFlow* columnsBlockForSpanningElement(LayoutObject* newChild);
(...skipping 25 matching lines...) Expand all
432 void setPageBreak(LayoutUnit offset, LayoutUnit spaceShortage); 407 void setPageBreak(LayoutUnit offset, LayoutUnit spaceShortage);
433 408
434 // Update minimum page height required to avoid fragmentation where it shoul dn't occur (inside 409 // Update minimum page height required to avoid fragmentation where it shoul dn't occur (inside
435 // unbreakable content, between orphans and widows, etc.). This will be used as a hint to the 410 // unbreakable content, between orphans and widows, etc.). This will be used as a hint to the
436 // column balancer to help set a good minimum column height. 411 // column balancer to help set a good minimum column height.
437 void updateMinimumPageHeight(LayoutUnit offset, LayoutUnit minHeight); 412 void updateMinimumPageHeight(LayoutUnit offset, LayoutUnit minHeight);
438 413
439 // Adjust from painting offsets to the local coords of this layoutObject 414 // Adjust from painting offsets to the local coords of this layoutObject
440 void offsetForContents(LayoutPoint&) const; 415 void offsetForContents(LayoutPoint&) const;
441 416
442 bool requiresColumns(int desiredColumnCount) const;
443
444 virtual bool updateLogicalWidthAndColumnWidth(); 417 virtual bool updateLogicalWidthAndColumnWidth();
445 418
446 virtual bool canCollapseAnonymousBlockChild() const { return true; } 419 virtual bool canCollapseAnonymousBlockChild() const { return true; }
447 420
448 LayoutObjectChildList m_children; 421 LayoutObjectChildList m_children;
449 LineBoxList m_lineBoxes; // All of the root line boxes created for this bloc k flow. For example, <div>Hello<br>world.</div> will have two total lines for t he <div>. 422 LineBoxList m_lineBoxes; // All of the root line boxes created for this bloc k flow. For example, <div>Hello<br>world.</div> will have two total lines for t he <div>.
450 423
451 unsigned m_hasMarginBeforeQuirk : 1; // Note these quirk values can't be put in LayoutBlockRareData since they are set too frequently. 424 unsigned m_hasMarginBeforeQuirk : 1; // Note these quirk values can't be put in LayoutBlockRareData since they are set too frequently.
452 unsigned m_hasMarginAfterQuirk : 1; 425 unsigned m_hasMarginAfterQuirk : 1;
453 unsigned m_beingDestroyed : 1; 426 unsigned m_beingDestroyed : 1;
(...skipping 11 matching lines...) Expand all
465 // FIXME: This is temporary as we move code that accesses block flow 438 // FIXME: This is temporary as we move code that accesses block flow
466 // member variables out of LayoutBlock and into LayoutBlockFlow. 439 // member variables out of LayoutBlock and into LayoutBlockFlow.
467 friend class LayoutBlockFlow; 440 friend class LayoutBlockFlow;
468 }; 441 };
469 442
470 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutBlock, isLayoutBlock()); 443 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutBlock, isLayoutBlock());
471 444
472 } // namespace blink 445 } // namespace blink
473 446
474 #endif // LayoutBlock_h 447 #endif // LayoutBlock_h
OLDNEW
« no previous file with comments | « Source/core/layout/ColumnInfo.h ('k') | Source/core/layout/LayoutBlock.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698