| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * Copyright (C) 2012 Apple Inc.  All rights reserved. | 2  * Copyright (C) 2012 Apple Inc.  All rights reserved. | 
| 3  * | 3  * | 
| 4  * Redistribution and use in source and binary forms, with or without | 4  * Redistribution and use in source and binary forms, with or without | 
| 5  * modification, are permitted provided that the following conditions | 5  * modification, are permitted provided that the following conditions | 
| 6  * are met: | 6  * are met: | 
| 7  * 1. Redistributions of source code must retain the above copyright | 7  * 1. Redistributions of source code must retain the above copyright | 
| 8  *    notice, this list of conditions and the following disclaimer. | 8  *    notice, this list of conditions and the following disclaimer. | 
| 9  * 2. Redistributions in binary form must reproduce the above copyright | 9  * 2. Redistributions in binary form must reproduce the above copyright | 
| 10  *    notice, this list of conditions and the following disclaimer in the | 10  *    notice, this list of conditions and the following disclaimer in the | 
| (...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 246   // layout (during column set layout), in which case we need another layout | 246   // layout (during column set layout), in which case we need another layout | 
| 247   // pass. Column heights may change after flow thread layout because of | 247   // pass. Column heights may change after flow thread layout because of | 
| 248   // balancing. We may have to do multiple layout passes, depending on how the | 248   // balancing. We may have to do multiple layout passes, depending on how the | 
| 249   // contents is fitted to the changed column heights. In most cases, laying out | 249   // contents is fitted to the changed column heights. In most cases, laying out | 
| 250   // again twice or even just once will suffice. Sometimes we need more passes | 250   // again twice or even just once will suffice. Sometimes we need more passes | 
| 251   // than that, though, but the number of retries should not exceed the number | 251   // than that, though, but the number of retries should not exceed the number | 
| 252   // of columns, unless we have a bug. | 252   // of columns, unless we have a bug. | 
| 253   bool ColumnHeightsChanged() const { return column_heights_changed_; } | 253   bool ColumnHeightsChanged() const { return column_heights_changed_; } | 
| 254   void SetColumnHeightsChanged() { column_heights_changed_ = true; } | 254   void SetColumnHeightsChanged() { column_heights_changed_ = true; } | 
| 255 | 255 | 
|  | 256   // Finish multicol layout. Returns true if we're really done, or false if we | 
|  | 257   // need another layout pass (typically because columns got new heights in the | 
|  | 258   // previous pass, so that we need to refragment). | 
|  | 259   bool FinishLayout(); | 
|  | 260 | 
| 256   void ColumnRuleStyleDidChange(); | 261   void ColumnRuleStyleDidChange(); | 
| 257 | 262 | 
| 258   // Remove the spanner placeholder and return true if the specified object is | 263   // Remove the spanner placeholder and return true if the specified object is | 
| 259   // no longer a valid spanner. | 264   // no longer a valid spanner. | 
| 260   bool RemoveSpannerPlaceholderIfNoLongerValid( | 265   bool RemoveSpannerPlaceholderIfNoLongerValid( | 
| 261       LayoutBox* spanner_object_in_flow_thread); | 266       LayoutBox* spanner_object_in_flow_thread); | 
| 262 | 267 | 
| 263   LayoutMultiColumnFlowThread* EnclosingFlowThread( | 268   LayoutMultiColumnFlowThread* EnclosingFlowThread( | 
| 264       AncestorSearchConstraint = kIsolateUnbreakableContainers) const; | 269       AncestorSearchConstraint = kIsolateUnbreakableContainers) const; | 
| 265   FragmentationContext* EnclosingFragmentationContext( | 270   FragmentationContext* EnclosingFragmentationContext( | 
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 345   LayoutUnit column_height_available_; | 350   LayoutUnit column_height_available_; | 
| 346 | 351 | 
| 347   // Cached block offset from this flow thread to the enclosing fragmentation | 352   // Cached block offset from this flow thread to the enclosing fragmentation | 
| 348   // context, if any. In | 353   // context, if any. In | 
| 349   // the coordinate space of the enclosing fragmentation context. | 354   // the coordinate space of the enclosing fragmentation context. | 
| 350   LayoutUnit block_offset_in_enclosing_fragmentation_context_; | 355   LayoutUnit block_offset_in_enclosing_fragmentation_context_; | 
| 351 | 356 | 
| 352   // Set when column heights are out of sync with actual layout. | 357   // Set when column heights are out of sync with actual layout. | 
| 353   bool column_heights_changed_; | 358   bool column_heights_changed_; | 
| 354 | 359 | 
|  | 360   bool all_columns_have_known_height_ = false; | 
|  | 361 | 
| 355   // Always true for regular multicol. False for paged-y overflow. | 362   // Always true for regular multicol. False for paged-y overflow. | 
| 356   bool progression_is_inline_; | 363   bool progression_is_inline_; | 
| 357 | 364 | 
| 358   bool is_being_evacuated_; | 365   bool is_being_evacuated_; | 
| 359 | 366 | 
| 360   // Specifies whether the the descendant whose style is about to change could | 367   // Specifies whether the the descendant whose style is about to change could | 
| 361   // contain spanners or not. The flag is set in | 368   // contain spanners or not. The flag is set in | 
| 362   // flowThreadDescendantStyleWillChange(), and then checked in | 369   // flowThreadDescendantStyleWillChange(), and then checked in | 
| 363   // flowThreadDescendantStyleDidChange(). | 370   // flowThreadDescendantStyleDidChange(). | 
| 364   static bool could_contain_spanners_; | 371   static bool could_contain_spanners_; | 
| 365 | 372 | 
| 366   static bool toggle_spanners_if_needed_; | 373   static bool toggle_spanners_if_needed_; | 
| 367 }; | 374 }; | 
| 368 | 375 | 
| 369 // Cannot use DEFINE_LAYOUT_OBJECT_TYPE_CASTS here, because | 376 // Cannot use DEFINE_LAYOUT_OBJECT_TYPE_CASTS here, because | 
| 370 // isMultiColumnFlowThread() is defined in LayoutFlowThread, not in | 377 // isMultiColumnFlowThread() is defined in LayoutFlowThread, not in | 
| 371 // LayoutObject. | 378 // LayoutObject. | 
| 372 DEFINE_TYPE_CASTS(LayoutMultiColumnFlowThread, | 379 DEFINE_TYPE_CASTS(LayoutMultiColumnFlowThread, | 
| 373                   LayoutFlowThread, | 380                   LayoutFlowThread, | 
| 374                   object, | 381                   object, | 
| 375                   object->IsLayoutMultiColumnFlowThread(), | 382                   object->IsLayoutMultiColumnFlowThread(), | 
| 376                   object.IsLayoutMultiColumnFlowThread()); | 383                   object.IsLayoutMultiColumnFlowThread()); | 
| 377 | 384 | 
| 378 }  // namespace blink | 385 }  // namespace blink | 
| 379 | 386 | 
| 380 #endif  // LayoutMultiColumnFlowThread_h | 387 #endif  // LayoutMultiColumnFlowThread_h | 
| OLD | NEW | 
|---|