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

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

Issue 364233005: [New Multicolumn] Support for paged overflow. (By mstensho). (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Run fast/pagination in virtual/regionbasedmulticol. Created 6 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
« no previous file with comments | « Source/core/core.gypi ('k') | Source/core/rendering/RenderBlockFlow.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-2013 Apple Inc. All rights reserved. 5 * Copyright (C) 2003-2013 Apple Inc. All rights reserved.
6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved.
7 * Copyright (C) 2013 Google Inc. All rights reserved. 7 * Copyright (C) 2013 Google Inc. All rights reserved.
8 * 8 *
9 * Redistribution and use in source and binary forms, with or without 9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions are 10 * modification, are permitted provided that the following conditions are
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 LayoutUnit logicalRightOffsetForPositioningFloat(LayoutUnit logicalTop, Layo utUnit fixedOffset, bool applyTextIndent, LayoutUnit* heightRemaining) const; 284 LayoutUnit logicalRightOffsetForPositioningFloat(LayoutUnit logicalTop, Layo utUnit fixedOffset, bool applyTextIndent, LayoutUnit* heightRemaining) const;
285 LayoutUnit logicalLeftOffsetForPositioningFloat(LayoutUnit logicalTop, Layou tUnit fixedOffset, bool applyTextIndent, LayoutUnit* heightRemaining) const; 285 LayoutUnit logicalLeftOffsetForPositioningFloat(LayoutUnit logicalTop, Layou tUnit fixedOffset, bool applyTextIndent, LayoutUnit* heightRemaining) const;
286 286
287 LayoutUnit adjustLogicalRightOffsetForLine(LayoutUnit offsetFromFloats, bool applyTextIndent) const; 287 LayoutUnit adjustLogicalRightOffsetForLine(LayoutUnit offsetFromFloats, bool applyTextIndent) const;
288 LayoutUnit adjustLogicalLeftOffsetForLine(LayoutUnit offsetFromFloats, bool applyTextIndent) const; 288 LayoutUnit adjustLogicalLeftOffsetForLine(LayoutUnit offsetFromFloats, bool applyTextIndent) const;
289 289
290 virtual void adjustForBorderFit(LayoutUnit x, LayoutUnit& left, LayoutUnit& right) const OVERRIDE; // Helper function for borderFitAdjust 290 virtual void adjustForBorderFit(LayoutUnit x, LayoutUnit& left, LayoutUnit& right) const OVERRIDE; // Helper function for borderFitAdjust
291 291
292 virtual RootInlineBox* createRootInlineBox(); // Subclassed by SVG 292 virtual RootInlineBox* createRootInlineBox(); // Subclassed by SVG
293 293
294 void createOrDestroyMultiColumnFlowThreadIfNeeded(); 294 bool isPagedOverflow(const RenderStyle*);
295
296 enum FlowThreadType {
297 NoFlowThread,
298 MultiColumnFlowThread,
299 PagedFlowThread
300 };
301
302 FlowThreadType flowThreadType(const RenderStyle*);
303
304 RenderMultiColumnFlowThread* createMultiColumnFlowThread(FlowThreadType);
305 void createOrDestroyMultiColumnFlowThreadIfNeeded(const RenderStyle* oldStyl e);
295 306
296 void updateLogicalWidthForAlignment(const ETextAlign&, const RootInlineBox*, BidiRun* trailingSpaceRun, float& logicalLeft, float& totalLogicalWidth, float& availableLogicalWidth, unsigned expansionOpportunityCount); 307 void updateLogicalWidthForAlignment(const ETextAlign&, const RootInlineBox*, BidiRun* trailingSpaceRun, float& logicalLeft, float& totalLogicalWidth, float& availableLogicalWidth, unsigned expansionOpportunityCount);
297 void checkForPaginationLogicalHeightChange(LayoutUnit& pageLogicalHeight, bo ol& pageLogicalHeightChanged, bool& hasSpecifiedPageLogicalHeight); 308 void checkForPaginationLogicalHeightChange(LayoutUnit& pageLogicalHeight, bo ol& pageLogicalHeightChanged, bool& hasSpecifiedPageLogicalHeight);
298 bool shouldRelayoutForPagination(LayoutUnit& pageLogicalHeight, LayoutUnit l ayoutOverflowLogicalBottom) const; 309 bool shouldRelayoutForPagination(LayoutUnit& pageLogicalHeight, LayoutUnit l ayoutOverflowLogicalBottom) const;
299 void setColumnCountAndHeight(unsigned count, LayoutUnit pageLogicalHeight); 310 void setColumnCountAndHeight(unsigned count, LayoutUnit pageLogicalHeight);
300 311
301 public: 312 public:
302 struct FloatWithRect { 313 struct FloatWithRect {
303 FloatWithRect(RenderBox* f) 314 FloatWithRect(RenderBox* f)
304 : object(f) 315 : object(f)
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
479 490
480 // END METHODS DEFINED IN RenderBlockLineLayout 491 // END METHODS DEFINED IN RenderBlockLineLayout
481 492
482 }; 493 };
483 494
484 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderBlockFlow, isRenderBlockFlow()); 495 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderBlockFlow, isRenderBlockFlow());
485 496
486 } // namespace WebCore 497 } // namespace WebCore
487 498
488 #endif // RenderBlockFlow_h 499 #endif // RenderBlockFlow_h
OLDNEW
« no previous file with comments | « Source/core/core.gypi ('k') | Source/core/rendering/RenderBlockFlow.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698