| 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 * Copyright (C) 2003, 2006, 2007 Apple Inc. All rights reserved. | 4 * Copyright (C) 2003, 2006, 2007 Apple Inc. All rights reserved. |
| 5 * | 5 * |
| 6 * This library is free software; you can redistribute it and/or | 6 * This library is free software; you can redistribute it and/or |
| 7 * modify it under the terms of the GNU Library General Public | 7 * modify it under the terms of the GNU Library General Public |
| 8 * License as published by the Free Software Foundation; either | 8 * License as published by the Free Software Foundation; either |
| 9 * version 2 of the License, or (at your option) any later version. | 9 * version 2 of the License, or (at your option) any later version. |
| 10 * | 10 * |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 */ | 21 */ |
| 22 | 22 |
| 23 #ifndef SKY_ENGINE_CORE_RENDERING_RENDERBOX_H_ | 23 #ifndef SKY_ENGINE_CORE_RENDERING_RENDERBOX_H_ |
| 24 #define SKY_ENGINE_CORE_RENDERING_RENDERBOX_H_ | 24 #define SKY_ENGINE_CORE_RENDERING_RENDERBOX_H_ |
| 25 | 25 |
| 26 #include "sky/engine/core/rendering/RenderBoxModelObject.h" | 26 #include "sky/engine/core/rendering/RenderBoxModelObject.h" |
| 27 #include "sky/engine/core/rendering/RenderOverflow.h" | 27 #include "sky/engine/core/rendering/RenderOverflow.h" |
| 28 | 28 |
| 29 namespace blink { | 29 namespace blink { |
| 30 | 30 |
| 31 struct LayerPaintingInfo; |
| 31 struct PaintInfo; | 32 struct PaintInfo; |
| 32 class RenderBlockFlow; | 33 class RenderBlockFlow; |
| 33 | 34 |
| 34 enum SizeType { MainOrPreferredSize, MinSize, MaxSize }; | 35 enum SizeType { MainOrPreferredSize, MinSize, MaxSize }; |
| 35 enum AvailableLogicalHeightType { ExcludeMarginBorderPadding, IncludeMarginBorde
rPadding }; | 36 enum AvailableLogicalHeightType { ExcludeMarginBorderPadding, IncludeMarginBorde
rPadding }; |
| 36 enum MarginDirection { BlockDirection, InlineDirection }; | 37 enum MarginDirection { BlockDirection, InlineDirection }; |
| 37 | 38 |
| 38 enum ShouldComputePreferred { ComputeActual, ComputePreferred }; | 39 enum ShouldComputePreferred { ComputeActual, ComputePreferred }; |
| 39 | 40 |
| 40 enum ContentsClipBehavior { ForceContentsClip, SkipContentsClipIfPossible }; | 41 enum ContentsClipBehavior { ForceContentsClip, SkipContentsClipIfPossible }; |
| (...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 260 m_marginBox.setStart(styleToUse->direction(), value); | 261 m_marginBox.setStart(styleToUse->direction(), value); |
| 261 } | 262 } |
| 262 void setMarginEnd(LayoutUnit value, const RenderStyle* overrideStyle = 0) | 263 void setMarginEnd(LayoutUnit value, const RenderStyle* overrideStyle = 0) |
| 263 { | 264 { |
| 264 const RenderStyle* styleToUse = overrideStyle ? overrideStyle : style(); | 265 const RenderStyle* styleToUse = overrideStyle ? overrideStyle : style(); |
| 265 m_marginBox.setEnd(styleToUse->direction(), value); | 266 m_marginBox.setEnd(styleToUse->direction(), value); |
| 266 } | 267 } |
| 267 | 268 |
| 268 virtual void absoluteQuads(Vector<FloatQuad>&) const override; | 269 virtual void absoluteQuads(Vector<FloatQuad>&) const override; |
| 269 | 270 |
| 271 void paintLayer(GraphicsContext* context, RenderLayer* rootLayer, const IntR
ect& rect); |
| 272 |
| 270 virtual void layout() override; | 273 virtual void layout() override; |
| 271 virtual void paint(PaintInfo&, const LayoutPoint&) override; | 274 virtual void paint(PaintInfo&, const LayoutPoint&, Vector<RenderBox*>& layer
s) override; |
| 272 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes
tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAct
ion) override; | 275 virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTes
tLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAct
ion) override; |
| 273 | 276 |
| 274 virtual LayoutUnit minPreferredLogicalWidth() const override; | 277 virtual LayoutUnit minPreferredLogicalWidth() const override; |
| 275 virtual LayoutUnit maxPreferredLogicalWidth() const override; | 278 virtual LayoutUnit maxPreferredLogicalWidth() const override; |
| 276 | 279 |
| 277 // FIXME: We should rename these back to overrideLogicalHeight/Width and hav
e them store | 280 // FIXME: We should rename these back to overrideLogicalHeight/Width and hav
e them store |
| 278 // the border-box height/width like the regular height/width accessors on Re
nderBox. | 281 // the border-box height/width like the regular height/width accessors on Re
nderBox. |
| 279 // Right now, these are different than contentHeight/contentWidth because th
ey still | 282 // Right now, these are different than contentHeight/contentWidth because th
ey still |
| 280 // include the scrollbar height/width. | 283 // include the scrollbar height/width. |
| 281 LayoutUnit overrideLogicalContentWidth() const; | 284 LayoutUnit overrideLogicalContentWidth() const; |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 372 LayoutUnit availableWidth() const { return availableLogicalWidth(); } | 375 LayoutUnit availableWidth() const { return availableLogicalWidth(); } |
| 373 LayoutUnit availableHeight() const { return availableLogicalHeight(IncludeMa
rginBorderPadding); } | 376 LayoutUnit availableHeight() const { return availableLogicalHeight(IncludeMa
rginBorderPadding); } |
| 374 | 377 |
| 375 virtual LayoutRect localCaretRect(InlineBox*, int caretOffset, LayoutUnit* e
xtraWidthToEndOfLine = 0) override; | 378 virtual LayoutRect localCaretRect(InlineBox*, int caretOffset, LayoutUnit* e
xtraWidthToEndOfLine = 0) override; |
| 376 | 379 |
| 377 virtual LayoutRect overflowClipRect(const LayoutPoint& location); | 380 virtual LayoutRect overflowClipRect(const LayoutPoint& location); |
| 378 LayoutRect clipRect(const LayoutPoint& location); | 381 LayoutRect clipRect(const LayoutPoint& location); |
| 379 bool pushContentsClip(PaintInfo&, const LayoutPoint& accumulatedOffset, Cont
entsClipBehavior); | 382 bool pushContentsClip(PaintInfo&, const LayoutPoint& accumulatedOffset, Cont
entsClipBehavior); |
| 380 void popContentsClip(PaintInfo&, const LayoutPoint& accumulatedOffset); | 383 void popContentsClip(PaintInfo&, const LayoutPoint& accumulatedOffset); |
| 381 | 384 |
| 382 virtual void paintObject(PaintInfo&, const LayoutPoint&) { ASSERT_NOT_REACHE
D(); } | |
| 383 virtual void paintBoxDecorationBackground(PaintInfo&, const LayoutPoint&); | 385 virtual void paintBoxDecorationBackground(PaintInfo&, const LayoutPoint&); |
| 384 | 386 |
| 385 // Called when a positioned object moves but doesn't necessarily change size
. A simplified layout is attempted | 387 // Called when a positioned object moves but doesn't necessarily change size
. A simplified layout is attempted |
| 386 // that just updates the object's position. If the size does change, the obj
ect remains dirty. | 388 // that just updates the object's position. If the size does change, the obj
ect remains dirty. |
| 387 bool tryLayoutDoingPositionedMovementOnly() | 389 bool tryLayoutDoingPositionedMovementOnly() |
| 388 { | 390 { |
| 389 LayoutUnit oldWidth = width(); | 391 LayoutUnit oldWidth = width(); |
| 390 updateLogicalWidth(); | 392 updateLogicalWidth(); |
| 391 // If we shrink to fit our width may have changed, so we still need full
layout. | 393 // If we shrink to fit our width may have changed, so we still need full
layout. |
| 392 if (oldWidth != width()) | 394 if (oldWidth != width()) |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 458 | 460 |
| 459 virtual void mapLocalToContainer(const RenderLayerModelObject* paintInvalida
tionContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip) const
override; | 461 virtual void mapLocalToContainer(const RenderLayerModelObject* paintInvalida
tionContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip) const
override; |
| 460 | 462 |
| 461 void paintRootBoxFillLayers(const PaintInfo&); | 463 void paintRootBoxFillLayers(const PaintInfo&); |
| 462 | 464 |
| 463 RenderObject* splitAnonymousBoxesAroundChild(RenderObject* beforeChild); | 465 RenderObject* splitAnonymousBoxesAroundChild(RenderObject* beforeChild); |
| 464 | 466 |
| 465 void updateIntrinsicContentLogicalHeight(LayoutUnit intrinsicContentLogicalH
eight) const { m_intrinsicContentLogicalHeight = intrinsicContentLogicalHeight;
} | 467 void updateIntrinsicContentLogicalHeight(LayoutUnit intrinsicContentLogicalH
eight) const { m_intrinsicContentLogicalHeight = intrinsicContentLogicalHeight;
} |
| 466 | 468 |
| 467 private: | 469 private: |
| 470 void paintLayerContents(GraphicsContext* context, const LayerPaintingInfo& p
aintingInfo, const IntRect& rect); |
| 471 |
| 468 void shrinkToFitWidth(const LayoutUnit availableSpace, const LayoutUnit logi
calLeftValue, const LayoutUnit bordersPlusPadding, LogicalExtentComputedValues&)
const; | 472 void shrinkToFitWidth(const LayoutUnit availableSpace, const LayoutUnit logi
calLeftValue, const LayoutUnit bordersPlusPadding, LogicalExtentComputedValues&)
const; |
| 469 | 473 |
| 470 bool skipContainingBlockForPercentHeightCalculation(const RenderBox* contain
ingBlock) const; | 474 bool skipContainingBlockForPercentHeightCalculation(const RenderBox* contain
ingBlock) const; |
| 471 | 475 |
| 472 LayoutUnit containingBlockLogicalWidthForPositioned(const RenderBoxModelObje
ct* containingBlock) const; | 476 LayoutUnit containingBlockLogicalWidthForPositioned(const RenderBoxModelObje
ct* containingBlock) const; |
| 473 LayoutUnit containingBlockLogicalHeightForPositioned(const RenderBoxModelObj
ect* containingBlock) const; | 477 LayoutUnit containingBlockLogicalHeightForPositioned(const RenderBoxModelObj
ect* containingBlock) const; |
| 474 | 478 |
| 475 void computePositionedLogicalHeight(LogicalExtentComputedValues&) const; | 479 void computePositionedLogicalHeight(LogicalExtentComputedValues&) const; |
| 476 void computePositionedLogicalWidthUsing(Length logicalWidth, const RenderBox
ModelObject* containerBlock, TextDirection containerDirection, | 480 void computePositionedLogicalWidthUsing(Length logicalWidth, const RenderBox
ModelObject* containerBlock, TextDirection containerDirection, |
| 477 LayoutUnit containerLogicalWidth, La
youtUnit bordersPlusPadding, | 481 LayoutUnit containerLogicalWidth, La
youtUnit bordersPlusPadding, |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 567 if (UNLIKELY(inlineBoxWrapper() != 0)) | 571 if (UNLIKELY(inlineBoxWrapper() != 0)) |
| 568 deleteLineBoxWrapper(); | 572 deleteLineBoxWrapper(); |
| 569 } | 573 } |
| 570 | 574 |
| 571 ensureRareData().m_inlineBoxWrapper = boxWrapper; | 575 ensureRareData().m_inlineBoxWrapper = boxWrapper; |
| 572 } | 576 } |
| 573 | 577 |
| 574 } // namespace blink | 578 } // namespace blink |
| 575 | 579 |
| 576 #endif // SKY_ENGINE_CORE_RENDERING_RENDERBOX_H_ | 580 #endif // SKY_ENGINE_CORE_RENDERING_RENDERBOX_H_ |
| OLD | NEW |