OLD | NEW |
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 350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
361 void markLinesDirtyInBlockRange(LayoutUnit logicalTop, LayoutUnit logicalBot
tom, RootInlineBox* highest = nullptr); | 361 void markLinesDirtyInBlockRange(LayoutUnit logicalTop, LayoutUnit logicalBot
tom, RootInlineBox* highest = nullptr); |
362 | 362 |
363 Position positionForBox(InlineBox*, bool start = true) const; | 363 Position positionForBox(InlineBox*, bool start = true) const; |
364 PositionWithAffinity positionForPointWithInlineChildren(const LayoutPoint&); | 364 PositionWithAffinity positionForPointWithInlineChildren(const LayoutPoint&); |
365 | 365 |
366 // End helper functions and structs used by layoutBlockChildren. | 366 // End helper functions and structs used by layoutBlockChildren. |
367 | 367 |
368 void removeFromGlobalMaps(); | 368 void removeFromGlobalMaps(); |
369 bool widthAvailableToChildrenHasChanged(); | 369 bool widthAvailableToChildrenHasChanged(); |
370 | 370 |
| 371 public: |
| 372 // Specify which page or column to associate with an offset, if said offset
is exactly at a page |
| 373 // or column boundary. |
| 374 enum PageBoundaryRule { AssociateWithFormerPage, AssociateWithLatterPage }; |
| 375 |
| 376 LayoutUnit pageLogicalHeightForOffset(LayoutUnit) const; |
| 377 LayoutUnit pageRemainingLogicalHeightForOffset(LayoutUnit, PageBoundaryRule)
const; |
| 378 |
371 protected: | 379 protected: |
372 bool isPageLogicalHeightKnown(LayoutUnit logicalOffset) const { return pageL
ogicalHeightForOffset(logicalOffset); } | 380 bool isPageLogicalHeightKnown(LayoutUnit logicalOffset) const { return pageL
ogicalHeightForOffset(logicalOffset); } |
373 | 381 |
374 // Returns the logicalOffset at the top of the next page. If the offset pass
ed in is already at the top of the current page, | 382 // Returns the logical offset at the top of the next page, for a given offse
t. |
375 // then nextPageLogicalTop with ExcludePageBoundary will still move to the t
op of the next page. nextPageLogicalTop with | |
376 // IncludePageBoundary set will not. | |
377 // | 383 // |
378 // For a page height of 800px, the first rule will return 800 if the value p
assed in is 0. The second rule will simply return 0. | 384 // If the given offset is at a page boundary, using AssociateWithLatterPage
as PageBoundaryRule |
379 enum PageBoundaryRule { ExcludePageBoundary, IncludePageBoundary }; | 385 // will move us one page ahead (since the offset is at the top of the "curre
nt" page). Using |
380 LayoutUnit nextPageLogicalTop(LayoutUnit logicalOffset, PageBoundaryRule = E
xcludePageBoundary) const; | 386 // AssociateWithFormerPage instead will keep us where we are (since the offs
et is at the bottom |
| 387 // of the "current" page, which is exactly the same offset as the top offset
on the next page). |
| 388 // |
| 389 // For a page height of 800px, AssociateWithLatterPage will return 1600 if t
he value passed in |
| 390 // is 800. AssociateWithFormerPage will simply return 800. |
| 391 LayoutUnit nextPageLogicalTop(LayoutUnit logicalOffset, PageBoundaryRule) co
nst; |
381 | 392 |
382 bool createsNewFormattingContext() const; | 393 bool createsNewFormattingContext() const; |
383 | 394 |
384 public: | |
385 LayoutUnit pageLogicalHeightForOffset(LayoutUnit offset) const; | |
386 LayoutUnit pageRemainingLogicalHeightForOffset(LayoutUnit offset, PageBounda
ryRule = IncludePageBoundary) const; | |
387 | |
388 protected: | |
389 // A page break is required at some offset due to space shortage in the curr
ent fragmentainer. | 395 // A page break is required at some offset due to space shortage in the curr
ent fragmentainer. |
390 void setPageBreak(LayoutUnit offset, LayoutUnit spaceShortage); | 396 void setPageBreak(LayoutUnit offset, LayoutUnit spaceShortage); |
391 | 397 |
392 // Update minimum page height required to avoid fragmentation where it shoul
dn't occur (inside | 398 // Update minimum page height required to avoid fragmentation where it shoul
dn't occur (inside |
393 // unbreakable content, between orphans and widows, etc.). This will be used
as a hint to the | 399 // unbreakable content, between orphans and widows, etc.). This will be used
as a hint to the |
394 // column balancer to help set a good minimum column height. | 400 // column balancer to help set a good minimum column height. |
395 void updateMinimumPageHeight(LayoutUnit offset, LayoutUnit minHeight); | 401 void updateMinimumPageHeight(LayoutUnit offset, LayoutUnit minHeight); |
396 | 402 |
397 // Adjust from painting offsets to the local coords of this layoutObject | 403 // Adjust from painting offsets to the local coords of this layoutObject |
398 void offsetForContents(LayoutPoint&) const; | 404 void offsetForContents(LayoutPoint&) const; |
(...skipping 22 matching lines...) Expand all Loading... |
421 // FIXME: This is temporary as we move code that accesses block flow | 427 // FIXME: This is temporary as we move code that accesses block flow |
422 // member variables out of LayoutBlock and into LayoutBlockFlow. | 428 // member variables out of LayoutBlock and into LayoutBlockFlow. |
423 friend class LayoutBlockFlow; | 429 friend class LayoutBlockFlow; |
424 }; | 430 }; |
425 | 431 |
426 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutBlock, isLayoutBlock()); | 432 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutBlock, isLayoutBlock()); |
427 | 433 |
428 } // namespace blink | 434 } // namespace blink |
429 | 435 |
430 #endif // LayoutBlock_h | 436 #endif // LayoutBlock_h |
OLD | NEW |