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

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

Issue 1231363003: Fix virtual/override/final usage in Source/core/layout/. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/layout/LayoutBlockFlow.h ('k') | Source/core/layout/LayoutBoxModelObject.h » ('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 * 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 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 LayoutRect m_previousContentBoxRect; 75 LayoutRect m_previousContentBoxRect;
76 LayoutRect m_previousLayoutOverflowRect; 76 LayoutRect m_previousLayoutOverflowRect;
77 77
78 LayoutUnit m_pageLogicalOffset; 78 LayoutUnit m_pageLogicalOffset;
79 }; 79 };
80 80
81 class CORE_EXPORT LayoutBox : public LayoutBoxModelObject { 81 class CORE_EXPORT LayoutBox : public LayoutBoxModelObject {
82 public: 82 public:
83 explicit LayoutBox(ContainerNode*); 83 explicit LayoutBox(ContainerNode*);
84 84
85 virtual DeprecatedPaintLayerType layerTypeRequired() const override; 85 DeprecatedPaintLayerType layerTypeRequired() const override;
86 86
87 virtual bool backgroundIsKnownToBeOpaqueInRect(const LayoutRect& localRect) const override; 87 bool backgroundIsKnownToBeOpaqueInRect(const LayoutRect& localRect) const ov erride;
88 88
89 virtual bool backgroundShouldAlwaysBeClipped() const { return false; } 89 virtual bool backgroundShouldAlwaysBeClipped() const { return false; }
90 90
91 // Use this with caution! No type checking is done! 91 // Use this with caution! No type checking is done!
92 LayoutBox* firstChildBox() const; 92 LayoutBox* firstChildBox() const;
93 LayoutBox* lastChildBox() const; 93 LayoutBox* lastChildBox() const;
94 94
95 int pixelSnappedWidth() const { return m_frameRect.pixelSnappedWidth(); } 95 int pixelSnappedWidth() const { return m_frameRect.pixelSnappedWidth(); }
96 int pixelSnappedHeight() const { return m_frameRect.pixelSnappedHeight(); } 96 int pixelSnappedHeight() const { return m_frameRect.pixelSnappedHeight(); }
97 97
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 { 219 {
220 if (rect == m_frameRect) 220 if (rect == m_frameRect)
221 return; 221 return;
222 m_frameRect = rect; 222 m_frameRect = rect;
223 frameRectChanged(); 223 frameRectChanged();
224 } 224 }
225 225
226 LayoutRect borderBoxRect() const { return LayoutRect(LayoutPoint(), size()); } 226 LayoutRect borderBoxRect() const { return LayoutRect(LayoutPoint(), size()); }
227 LayoutRect paddingBoxRect() const { return LayoutRect(borderLeft(), borderTo p(), clientWidth(), clientHeight()); } 227 LayoutRect paddingBoxRect() const { return LayoutRect(borderLeft(), borderTo p(), clientWidth(), clientHeight()); }
228 IntRect pixelSnappedBorderBoxRect() const { return IntRect(IntPoint(), m_fra meRect.pixelSnappedSize()); } 228 IntRect pixelSnappedBorderBoxRect() const { return IntRect(IntPoint(), m_fra meRect.pixelSnappedSize()); }
229 virtual IntRect borderBoundingBox() const override final { return pixelSnapp edBorderBoxRect(); } 229 IntRect borderBoundingBox() const final { return pixelSnappedBorderBoxRect() ; }
230 230
231 // The content area of the box (excludes padding - and intrinsic padding for table cells, etc... - and border). 231 // The content area of the box (excludes padding - and intrinsic padding for table cells, etc... - and border).
232 LayoutRect contentBoxRect() const { return LayoutRect(borderLeft() + padding Left(), borderTop() + paddingTop(), contentWidth(), contentHeight()); } 232 LayoutRect contentBoxRect() const { return LayoutRect(borderLeft() + padding Left(), borderTop() + paddingTop(), contentWidth(), contentHeight()); }
233 LayoutSize contentBoxOffset() const { return LayoutSize(borderLeft() + paddi ngLeft(), borderTop() + paddingTop()); } 233 LayoutSize contentBoxOffset() const { return LayoutSize(borderLeft() + paddi ngLeft(), borderTop() + paddingTop()); }
234 // The content box in absolute coords. Ignores transforms. 234 // The content box in absolute coords. Ignores transforms.
235 IntRect absoluteContentBox() const; 235 IntRect absoluteContentBox() const;
236 // The offset of the content box in absolute coords, ignoring transforms. 236 // The offset of the content box in absolute coords, ignoring transforms.
237 IntSize absoluteContentBoxOffset() const; 237 IntSize absoluteContentBoxOffset() const;
238 // The content box converted to absolute coords (taking transforms into acco unt). 238 // The content box converted to absolute coords (taking transforms into acco unt).
239 FloatQuad absoluteContentQuad() const; 239 FloatQuad absoluteContentQuad() const;
240 240
241 // This returns the content area of the box (excluding padding and border). The only difference with contentBoxRect is that computedCSSContentBoxRect 241 // This returns the content area of the box (excluding padding and border). The only difference with contentBoxRect is that computedCSSContentBoxRect
242 // does include the intrinsic padding in the content box as this is what som e callers expect (like getComputedStyle). 242 // does include the intrinsic padding in the content box as this is what som e callers expect (like getComputedStyle).
243 LayoutRect computedCSSContentBoxRect() const { return LayoutRect(borderLeft( ) + computedCSSPaddingLeft(), borderTop() + computedCSSPaddingTop(), clientWidth () - computedCSSPaddingLeft() - computedCSSPaddingRight(), clientHeight() - comp utedCSSPaddingTop() - computedCSSPaddingBottom()); } 243 LayoutRect computedCSSContentBoxRect() const { return LayoutRect(borderLeft( ) + computedCSSPaddingLeft(), borderTop() + computedCSSPaddingTop(), clientWidth () - computedCSSPaddingLeft() - computedCSSPaddingRight(), clientHeight() - comp utedCSSPaddingTop() - computedCSSPaddingBottom()); }
244 244
245 virtual void addFocusRingRects(Vector<LayoutRect>&, const LayoutPoint& addit ionalOffset) const override; 245 void addFocusRingRects(Vector<LayoutRect>&, const LayoutPoint& additionalOff set) const override;
246 246
247 // Use this with caution! No type checking is done! 247 // Use this with caution! No type checking is done!
248 LayoutBox* previousSiblingBox() const; 248 LayoutBox* previousSiblingBox() const;
249 LayoutBox* previousInFlowSiblingBox() const; 249 LayoutBox* previousInFlowSiblingBox() const;
250 LayoutBox* nextSiblingBox() const; 250 LayoutBox* nextSiblingBox() const;
251 LayoutBox* nextInFlowSiblingBox() const; 251 LayoutBox* nextInFlowSiblingBox() const;
252 LayoutBox* parentBox() const; 252 LayoutBox* parentBox() const;
253 253
254 // Return the previous sibling column set or spanner placeholder. Only to be used on multicol container children. 254 // Return the previous sibling column set or spanner placeholder. Only to be used on multicol container children.
255 LayoutBox* previousSiblingMultiColumnBox() const; 255 LayoutBox* previousSiblingMultiColumnBox() const;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 void updateLayerTransformAfterLayout(); 291 void updateLayerTransformAfterLayout();
292 292
293 LayoutUnit contentWidth() const { return clientWidth() - paddingLeft() - pad dingRight(); } 293 LayoutUnit contentWidth() const { return clientWidth() - paddingLeft() - pad dingRight(); }
294 LayoutUnit contentHeight() const { return clientHeight() - paddingTop() - pa ddingBottom(); } 294 LayoutUnit contentHeight() const { return clientHeight() - paddingTop() - pa ddingBottom(); }
295 LayoutSize contentSize() const { return LayoutSize(contentWidth(), contentHe ight()); } 295 LayoutSize contentSize() const { return LayoutSize(contentWidth(), contentHe ight()); }
296 LayoutUnit contentLogicalWidth() const { return style()->isHorizontalWriting Mode() ? contentWidth() : contentHeight(); } 296 LayoutUnit contentLogicalWidth() const { return style()->isHorizontalWriting Mode() ? contentWidth() : contentHeight(); }
297 LayoutUnit contentLogicalHeight() const { return style()->isHorizontalWritin gMode() ? contentHeight() : contentWidth(); } 297 LayoutUnit contentLogicalHeight() const { return style()->isHorizontalWritin gMode() ? contentHeight() : contentWidth(); }
298 298
299 // IE extensions. Used to calculate offsetWidth/Height. Overridden by inlin es (LayoutFlow) 299 // IE extensions. Used to calculate offsetWidth/Height. Overridden by inlin es (LayoutFlow)
300 // to return the remaining width on a given line (and the height of a single line). 300 // to return the remaining width on a given line (and the height of a single line).
301 virtual LayoutUnit offsetWidth() const override { return m_frameRect.width() ; } 301 LayoutUnit offsetWidth() const override { return m_frameRect.width(); }
302 virtual LayoutUnit offsetHeight() const override { return m_frameRect.height (); } 302 LayoutUnit offsetHeight() const override { return m_frameRect.height(); }
303 303
304 virtual int pixelSnappedOffsetWidth() const override final; 304 int pixelSnappedOffsetWidth() const final;
305 virtual int pixelSnappedOffsetHeight() const override final; 305 int pixelSnappedOffsetHeight() const final;
306 306
307 // More IE extensions. clientWidth and clientHeight represent the interior of an object 307 // More IE extensions. clientWidth and clientHeight represent the interior of an object
308 // excluding border and scrollbar. clientLeft/Top are just the borderLeftWi dth and borderTopWidth. 308 // excluding border and scrollbar. clientLeft/Top are just the borderLeftWi dth and borderTopWidth.
309 LayoutUnit clientLeft() const { return borderLeft() + (style()->shouldPlaceB lockDirectionScrollbarOnLogicalLeft() ? verticalScrollbarWidth() : 0); } 309 LayoutUnit clientLeft() const { return borderLeft() + (style()->shouldPlaceB lockDirectionScrollbarOnLogicalLeft() ? verticalScrollbarWidth() : 0); }
310 LayoutUnit clientTop() const { return borderTop(); } 310 LayoutUnit clientTop() const { return borderTop(); }
311 LayoutUnit clientWidth() const; 311 LayoutUnit clientWidth() const;
312 LayoutUnit clientHeight() const; 312 LayoutUnit clientHeight() const;
313 LayoutUnit clientLogicalWidth() const { return style()->isHorizontalWritingM ode() ? clientWidth() : clientHeight(); } 313 LayoutUnit clientLogicalWidth() const { return style()->isHorizontalWritingM ode() ? clientWidth() : clientHeight(); }
314 LayoutUnit clientLogicalHeight() const { return style()->isHorizontalWriting Mode() ? clientHeight() : clientWidth(); } 314 LayoutUnit clientLogicalHeight() const { return style()->isHorizontalWriting Mode() ? clientHeight() : clientWidth(); }
315 LayoutUnit clientLogicalBottom() const { return borderBefore() + clientLogic alHeight(); } 315 LayoutUnit clientLogicalBottom() const { return borderBefore() + clientLogic alHeight(); }
(...skipping 13 matching lines...) Expand all
329 virtual LayoutUnit scrollHeight() const; 329 virtual LayoutUnit scrollHeight() const;
330 int pixelSnappedScrollWidth() const; 330 int pixelSnappedScrollWidth() const;
331 int pixelSnappedScrollHeight() const; 331 int pixelSnappedScrollHeight() const;
332 virtual void setScrollLeft(LayoutUnit); 332 virtual void setScrollLeft(LayoutUnit);
333 virtual void setScrollTop(LayoutUnit); 333 virtual void setScrollTop(LayoutUnit);
334 334
335 void scrollToOffset(const DoubleSize&, ScrollBehavior = ScrollBehaviorInstan t); 335 void scrollToOffset(const DoubleSize&, ScrollBehavior = ScrollBehaviorInstan t);
336 void scrollByRecursively(const DoubleSize& delta, ScrollOffsetClamping = Scr ollOffsetUnclamped); 336 void scrollByRecursively(const DoubleSize& delta, ScrollOffsetClamping = Scr ollOffsetUnclamped);
337 void scrollRectToVisible(const LayoutRect&, const ScrollAlignment& alignX, c onst ScrollAlignment& alignY); 337 void scrollRectToVisible(const LayoutRect&, const ScrollAlignment& alignX, c onst ScrollAlignment& alignY);
338 338
339 virtual LayoutRectOutsets marginBoxOutsets() const override { return m_margi nBoxOutsets; } 339 LayoutRectOutsets marginBoxOutsets() const override { return m_marginBoxOuts ets; }
340 virtual LayoutUnit marginTop() const override { return m_marginBoxOutsets.to p(); } 340 LayoutUnit marginTop() const override { return m_marginBoxOutsets.top(); }
341 virtual LayoutUnit marginBottom() const override { return m_marginBoxOutsets .bottom(); } 341 LayoutUnit marginBottom() const override { return m_marginBoxOutsets.bottom( ); }
342 virtual LayoutUnit marginLeft() const override { return m_marginBoxOutsets.l eft(); } 342 LayoutUnit marginLeft() const override { return m_marginBoxOutsets.left(); }
343 virtual LayoutUnit marginRight() const override { return m_marginBoxOutsets. right(); } 343 LayoutUnit marginRight() const override { return m_marginBoxOutsets.right(); }
344 void setMarginTop(LayoutUnit margin) { m_marginBoxOutsets.setTop(margin); } 344 void setMarginTop(LayoutUnit margin) { m_marginBoxOutsets.setTop(margin); }
345 void setMarginBottom(LayoutUnit margin) { m_marginBoxOutsets.setBottom(margi n); } 345 void setMarginBottom(LayoutUnit margin) { m_marginBoxOutsets.setBottom(margi n); }
346 void setMarginLeft(LayoutUnit margin) { m_marginBoxOutsets.setLeft(margin); } 346 void setMarginLeft(LayoutUnit margin) { m_marginBoxOutsets.setLeft(margin); }
347 void setMarginRight(LayoutUnit margin) { m_marginBoxOutsets.setRight(margin) ; } 347 void setMarginRight(LayoutUnit margin) { m_marginBoxOutsets.setRight(margin) ; }
348 348
349 LayoutUnit marginLogicalLeft() const { return m_marginBoxOutsets.logicalLeft (style()->writingMode()); } 349 LayoutUnit marginLogicalLeft() const { return m_marginBoxOutsets.logicalLeft (style()->writingMode()); }
350 LayoutUnit marginLogicalRight() const { return m_marginBoxOutsets.logicalRig ht(style()->writingMode()); } 350 LayoutUnit marginLogicalRight() const { return m_marginBoxOutsets.logicalRig ht(style()->writingMode()); }
351 351
352 virtual LayoutUnit marginBefore(const ComputedStyle* overrideStyle = nullptr ) const override final { return m_marginBoxOutsets.before((overrideStyle ? overr ideStyle : style())->writingMode()); } 352 LayoutUnit marginBefore(const ComputedStyle* overrideStyle = nullptr) const final { return m_marginBoxOutsets.before((overrideStyle ? overrideStyle : style( ))->writingMode()); }
353 virtual LayoutUnit marginAfter(const ComputedStyle* overrideStyle = nullptr) const override final { return m_marginBoxOutsets.after((overrideStyle ? overrid eStyle : style())->writingMode()); } 353 LayoutUnit marginAfter(const ComputedStyle* overrideStyle = nullptr) const f inal { return m_marginBoxOutsets.after((overrideStyle ? overrideStyle : style()) ->writingMode()); }
354 virtual LayoutUnit marginStart(const ComputedStyle* overrideStyle = nullptr) const override final 354 LayoutUnit marginStart(const ComputedStyle* overrideStyle = nullptr) const f inal
355 { 355 {
356 const ComputedStyle* styleToUse = overrideStyle ? overrideStyle : style( ); 356 const ComputedStyle* styleToUse = overrideStyle ? overrideStyle : style( );
357 return m_marginBoxOutsets.start(styleToUse->writingMode(), styleToUse->d irection()); 357 return m_marginBoxOutsets.start(styleToUse->writingMode(), styleToUse->d irection());
358 } 358 }
359 virtual LayoutUnit marginEnd(const ComputedStyle* overrideStyle = nullptr) c onst override final 359 LayoutUnit marginEnd(const ComputedStyle* overrideStyle = nullptr) const fin al
360 { 360 {
361 const ComputedStyle* styleToUse = overrideStyle ? overrideStyle : style( ); 361 const ComputedStyle* styleToUse = overrideStyle ? overrideStyle : style( );
362 return m_marginBoxOutsets.end(styleToUse->writingMode(), styleToUse->dir ection()); 362 return m_marginBoxOutsets.end(styleToUse->writingMode(), styleToUse->dir ection());
363 } 363 }
364 void setMarginBefore(LayoutUnit value, const ComputedStyle* overrideStyle = nullptr) { m_marginBoxOutsets.setBefore((overrideStyle ? overrideStyle : style() )->writingMode(), value); } 364 void setMarginBefore(LayoutUnit value, const ComputedStyle* overrideStyle = nullptr) { m_marginBoxOutsets.setBefore((overrideStyle ? overrideStyle : style() )->writingMode(), value); }
365 void setMarginAfter(LayoutUnit value, const ComputedStyle* overrideStyle = n ullptr) { m_marginBoxOutsets.setAfter((overrideStyle ? overrideStyle : style())- >writingMode(), value); } 365 void setMarginAfter(LayoutUnit value, const ComputedStyle* overrideStyle = n ullptr) { m_marginBoxOutsets.setAfter((overrideStyle ? overrideStyle : style())- >writingMode(), value); }
366 void setMarginStart(LayoutUnit value, const ComputedStyle* overrideStyle = n ullptr) 366 void setMarginStart(LayoutUnit value, const ComputedStyle* overrideStyle = n ullptr)
367 { 367 {
368 const ComputedStyle* styleToUse = overrideStyle ? overrideStyle : style( ); 368 const ComputedStyle* styleToUse = overrideStyle ? overrideStyle : style( );
369 m_marginBoxOutsets.setStart(styleToUse->writingMode(), styleToUse->direc tion(), value); 369 m_marginBoxOutsets.setStart(styleToUse->writingMode(), styleToUse->direc tion(), value);
370 } 370 }
371 void setMarginEnd(LayoutUnit value, const ComputedStyle* overrideStyle = nul lptr) 371 void setMarginEnd(LayoutUnit value, const ComputedStyle* overrideStyle = nul lptr)
372 { 372 {
373 const ComputedStyle* styleToUse = overrideStyle ? overrideStyle : style( ); 373 const ComputedStyle* styleToUse = overrideStyle ? overrideStyle : style( );
374 m_marginBoxOutsets.setEnd(styleToUse->writingMode(), styleToUse->directi on(), value); 374 m_marginBoxOutsets.setEnd(styleToUse->writingMode(), styleToUse->directi on(), value);
375 } 375 }
376 376
377 // The following functions are used to implement collapsing margins. 377 // The following functions are used to implement collapsing margins.
378 // All objects know their maximal positive and negative margins. The 378 // All objects know their maximal positive and negative margins. The
379 // formula for computing a collapsed margin is |maxPosMargin| - |maxNegmargi n|. 379 // formula for computing a collapsed margin is |maxPosMargin| - |maxNegmargi n|.
380 // For a non-collapsing box, such as a leaf element, this formula will simpl y return 380 // For a non-collapsing box, such as a leaf element, this formula will simpl y return
381 // the margin of the element. Blocks override the maxMarginBefore and maxMa rginAfter 381 // the margin of the element. Blocks override the maxMarginBefore and maxMa rginAfter
382 // methods. 382 // methods.
383 virtual bool isSelfCollapsingBlock() const { return false; } 383 virtual bool isSelfCollapsingBlock() const { return false; }
384 virtual LayoutUnit collapsedMarginBefore() const { return marginBefore(); } 384 virtual LayoutUnit collapsedMarginBefore() const { return marginBefore(); }
385 virtual LayoutUnit collapsedMarginAfter() const { return marginAfter(); } 385 virtual LayoutUnit collapsedMarginAfter() const { return marginAfter(); }
386 LayoutRectOutsets collapsedMarginBoxLogicalOutsets() const { return LayoutRe ctOutsets(collapsedMarginBefore(), 0, collapsedMarginAfter(), 0); } 386 LayoutRectOutsets collapsedMarginBoxLogicalOutsets() const { return LayoutRe ctOutsets(collapsedMarginBefore(), 0, collapsedMarginAfter(), 0); }
387 387
388 virtual void absoluteRects(Vector<IntRect>&, const LayoutPoint& accumulatedO ffset) const override; 388 void absoluteRects(Vector<IntRect>&, const LayoutPoint& accumulatedOffset) c onst override;
389 virtual void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const overrid e; 389 void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const override;
390 390
391 int reflectionOffset() const; 391 int reflectionOffset() const;
392 // Given a rect in the object's coordinate space, returns the corresponding rect in the reflection. 392 // Given a rect in the object's coordinate space, returns the corresponding rect in the reflection.
393 LayoutRect reflectedRect(const LayoutRect&) const; 393 LayoutRect reflectedRect(const LayoutRect&) const;
394 394
395 virtual void layout() override; 395 void layout() override;
396 virtual void paint(const PaintInfo&, const LayoutPoint&) override; 396 void paint(const PaintInfo&, const LayoutPoint&) override;
397 virtual bool nodeAtPoint(HitTestResult&, const HitTestLocation& locationInCo ntainer, const LayoutPoint& accumulatedOffset, HitTestAction) override; 397 bool nodeAtPoint(HitTestResult&, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction) override;
398 398
399 virtual LayoutUnit minPreferredLogicalWidth() const override; 399 LayoutUnit minPreferredLogicalWidth() const override;
400 virtual LayoutUnit maxPreferredLogicalWidth() const override; 400 LayoutUnit maxPreferredLogicalWidth() const override;
401 401
402 // FIXME: We should rename these back to overrideLogicalHeight/Width and hav e them store 402 // FIXME: We should rename these back to overrideLogicalHeight/Width and hav e them store
403 // the border-box height/width like the regular height/width accessors on La youtBox. 403 // the border-box height/width like the regular height/width accessors on La youtBox.
404 // Right now, these are different than contentHeight/contentWidth because th ey still 404 // Right now, these are different than contentHeight/contentWidth because th ey still
405 // include the scrollbar height/width. 405 // include the scrollbar height/width.
406 LayoutUnit overrideLogicalContentWidth() const; 406 LayoutUnit overrideLogicalContentWidth() const;
407 LayoutUnit overrideLogicalContentHeight() const; 407 LayoutUnit overrideLogicalContentHeight() const;
408 bool hasOverrideLogicalContentHeight() const; 408 bool hasOverrideLogicalContentHeight() const;
409 bool hasOverrideLogicalContentWidth() const; 409 bool hasOverrideLogicalContentWidth() const;
410 void setOverrideLogicalContentHeight(LayoutUnit); 410 void setOverrideLogicalContentHeight(LayoutUnit);
(...skipping 10 matching lines...) Expand all
421 void setOverrideContainingBlockContentLogicalHeight(LayoutUnit); 421 void setOverrideContainingBlockContentLogicalHeight(LayoutUnit);
422 void clearContainingBlockOverrideSize(); 422 void clearContainingBlockOverrideSize();
423 void clearOverrideContainingBlockContentLogicalHeight(); 423 void clearOverrideContainingBlockContentLogicalHeight();
424 424
425 LayoutUnit extraInlineOffset() const; 425 LayoutUnit extraInlineOffset() const;
426 LayoutUnit extraBlockOffset() const; 426 LayoutUnit extraBlockOffset() const;
427 void setExtraInlineOffset(LayoutUnit inlineOffest); 427 void setExtraInlineOffset(LayoutUnit inlineOffest);
428 void setExtraBlockOffset(LayoutUnit blockOffest); 428 void setExtraBlockOffset(LayoutUnit blockOffest);
429 void clearExtraInlineAndBlockOffests(); 429 void clearExtraInlineAndBlockOffests();
430 430
431 virtual LayoutSize offsetFromContainer(const LayoutObject*, const LayoutPoin t&, bool* offsetDependsOnPoint = nullptr) const override; 431 LayoutSize offsetFromContainer(const LayoutObject*, const LayoutPoint&, bool * offsetDependsOnPoint = nullptr) const override;
432 432
433 LayoutUnit adjustBorderBoxLogicalWidthForBoxSizing(LayoutUnit width) const; 433 LayoutUnit adjustBorderBoxLogicalWidthForBoxSizing(LayoutUnit width) const;
434 LayoutUnit adjustBorderBoxLogicalHeightForBoxSizing(LayoutUnit height) const ; 434 LayoutUnit adjustBorderBoxLogicalHeightForBoxSizing(LayoutUnit height) const ;
435 LayoutUnit adjustContentBoxLogicalWidthForBoxSizing(LayoutUnit width) const; 435 LayoutUnit adjustContentBoxLogicalWidthForBoxSizing(LayoutUnit width) const;
436 LayoutUnit adjustContentBoxLogicalHeightForBoxSizing(LayoutUnit height) cons t; 436 LayoutUnit adjustContentBoxLogicalHeightForBoxSizing(LayoutUnit height) cons t;
437 437
438 struct ComputedMarginValues { 438 struct ComputedMarginValues {
439 ComputedMarginValues() { } 439 ComputedMarginValues() { }
440 440
441 LayoutUnit m_before; 441 LayoutUnit m_before;
(...skipping 30 matching lines...) Expand all
472 472
473 // For inline replaced elements, this function returns the inline box that o wns us. Enables 473 // For inline replaced elements, this function returns the inline box that o wns us. Enables
474 // the replaced LayoutObject to quickly determine what line it is contained on and to easily 474 // the replaced LayoutObject to quickly determine what line it is contained on and to easily
475 // iterate over structures on the line. 475 // iterate over structures on the line.
476 InlineBox* inlineBoxWrapper() const { return m_rareData ? m_rareData->m_inli neBoxWrapper : 0; } 476 InlineBox* inlineBoxWrapper() const { return m_rareData ? m_rareData->m_inli neBoxWrapper : 0; }
477 void setInlineBoxWrapper(InlineBox*); 477 void setInlineBoxWrapper(InlineBox*);
478 void deleteLineBoxWrapper(); 478 void deleteLineBoxWrapper();
479 479
480 void setSpannerPlaceholder(LayoutMultiColumnSpannerPlaceholder&); 480 void setSpannerPlaceholder(LayoutMultiColumnSpannerPlaceholder&);
481 void clearSpannerPlaceholder(); 481 void clearSpannerPlaceholder();
482 virtual LayoutMultiColumnSpannerPlaceholder* spannerPlaceholder() const fina l { return m_rareData ? m_rareData->m_spannerPlaceholder : 0; } 482 LayoutMultiColumnSpannerPlaceholder* spannerPlaceholder() const final { retu rn m_rareData ? m_rareData->m_spannerPlaceholder : 0; }
483 483
484 virtual LayoutRect clippedOverflowRectForPaintInvalidation(const LayoutBoxMo delObject* paintInvalidationContainer, const PaintInvalidationState* = nullptr) const override; 484 LayoutRect clippedOverflowRectForPaintInvalidation(const LayoutBoxModelObjec t* paintInvalidationContainer, const PaintInvalidationState* = nullptr) const ov erride;
485 virtual void mapRectToPaintInvalidationBacking(const LayoutBoxModelObject* p aintInvalidationContainer, LayoutRect&, const PaintInvalidationState*) const ove rride; 485 void mapRectToPaintInvalidationBacking(const LayoutBoxModelObject* paintInva lidationContainer, LayoutRect&, const PaintInvalidationState*) const override;
486 virtual void invalidatePaintForOverhangingFloats(bool paintAllDescendants); 486 virtual void invalidatePaintForOverhangingFloats(bool paintAllDescendants);
487 487
488 LayoutUnit containingBlockLogicalHeightForGetComputedStyle() const; 488 LayoutUnit containingBlockLogicalHeightForGetComputedStyle() const;
489 489
490 virtual LayoutUnit containingBlockLogicalWidthForContent() const override; 490 LayoutUnit containingBlockLogicalWidthForContent() const override;
491 LayoutUnit containingBlockLogicalHeightForContent(AvailableLogicalHeightType ) const; 491 LayoutUnit containingBlockLogicalHeightForContent(AvailableLogicalHeightType ) const;
492 492
493 LayoutUnit containingBlockAvailableLineWidth() const; 493 LayoutUnit containingBlockAvailableLineWidth() const;
494 LayoutUnit perpendicularContainingBlockLogicalHeight() const; 494 LayoutUnit perpendicularContainingBlockLogicalHeight() const;
495 495
496 virtual void updateLogicalWidth(); 496 virtual void updateLogicalWidth();
497 void updateLogicalHeight(); 497 void updateLogicalHeight();
498 virtual void computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logic alTop, LogicalExtentComputedValues&) const; 498 virtual void computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logic alTop, LogicalExtentComputedValues&) const;
499 // This function will compute the logical border-box height, without laying out the box. This means that the result 499 // This function will compute the logical border-box height, without laying out the box. This means that the result
500 // is only "correct" when the height is explicitly specified. This function exists so that intrinsic width calculations 500 // is only "correct" when the height is explicitly specified. This function exists so that intrinsic width calculations
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
572 virtual bool scrollsOverflowY() const { return hasOverflowClip() && (style() ->overflowY() == OSCROLL || hasAutoVerticalScrollbar()); } 572 virtual bool scrollsOverflowY() const { return hasOverflowClip() && (style() ->overflowY() == OSCROLL || hasAutoVerticalScrollbar()); }
573 bool usesCompositedScrolling() const; 573 bool usesCompositedScrolling() const;
574 574
575 // Elements such as the <input> field override this to specify that they are scrollable 575 // Elements such as the <input> field override this to specify that they are scrollable
576 // outside the context of the CSS overflow style 576 // outside the context of the CSS overflow style
577 virtual bool isIntrinsicallyScrollable(ScrollbarOrientation orientation) con st { return false; } 577 virtual bool isIntrinsicallyScrollable(ScrollbarOrientation orientation) con st { return false; }
578 578
579 bool hasUnsplittableScrollingOverflow() const; 579 bool hasUnsplittableScrollingOverflow() const;
580 bool isUnsplittableForPagination() const; 580 bool isUnsplittableForPagination() const;
581 581
582 virtual LayoutRect localCaretRect(InlineBox*, int caretOffset, LayoutUnit* e xtraWidthToEndOfLine = nullptr) override; 582 LayoutRect localCaretRect(InlineBox*, int caretOffset, LayoutUnit* extraWidt hToEndOfLine = nullptr) override;
583 583
584 virtual LayoutRect overflowClipRect(const LayoutPoint& location, OverlayScro llbarSizeRelevancy = IgnoreOverlayScrollbarSize) const; 584 virtual LayoutRect overflowClipRect(const LayoutPoint& location, OverlayScro llbarSizeRelevancy = IgnoreOverlayScrollbarSize) const;
585 LayoutRect clipRect(const LayoutPoint& location); 585 LayoutRect clipRect(const LayoutPoint& location);
586 virtual bool hasControlClip() const { return false; } 586 virtual bool hasControlClip() const { return false; }
587 virtual LayoutRect controlClipRect(const LayoutPoint&) const { return Layout Rect(); } 587 virtual LayoutRect controlClipRect(const LayoutPoint&) const { return Layout Rect(); }
588 588
589 virtual void paintBoxDecorationBackground(const PaintInfo&, const LayoutPoin t&); 589 virtual void paintBoxDecorationBackground(const PaintInfo&, const LayoutPoin t&);
590 virtual void paintMask(const PaintInfo&, const LayoutPoint&); 590 virtual void paintMask(const PaintInfo&, const LayoutPoint&);
591 virtual void imageChanged(WrappedImagePtr, const IntRect* = nullptr) overrid e; 591 void imageChanged(WrappedImagePtr, const IntRect* = nullptr) override;
592 592
593 void logicalExtentAfterUpdatingLogicalWidth(const LayoutUnit& logicalTop, Lo gicalExtentComputedValues&); 593 void logicalExtentAfterUpdatingLogicalWidth(const LayoutUnit& logicalTop, Lo gicalExtentComputedValues&);
594 594
595 virtual PositionWithAffinity positionForPoint(const LayoutPoint&) override; 595 PositionWithAffinity positionForPoint(const LayoutPoint&) override;
596 596
597 void removeFloatingOrPositionedChildFromBlockLists(); 597 void removeFloatingOrPositionedChildFromBlockLists();
598 598
599 DeprecatedPaintLayer* enclosingFloatPaintingLayer() const; 599 DeprecatedPaintLayer* enclosingFloatPaintingLayer() const;
600 600
601 virtual int firstLineBoxBaseline() const { return -1; } 601 virtual int firstLineBoxBaseline() const { return -1; }
602 virtual int inlineBlockBaseline(LineDirectionMode) const { return -1; } // R eturns -1 if we should skip this box when computing the baseline of an inline-bl ock. 602 virtual int inlineBlockBaseline(LineDirectionMode) const { return -1; } // R eturns -1 if we should skip this box when computing the baseline of an inline-bl ock.
603 603
604 bool shrinkToAvoidFloats() const; 604 bool shrinkToAvoidFloats() const;
605 virtual bool avoidsFloats() const; 605 virtual bool avoidsFloats() const;
606 606
607 virtual void markForPaginationRelayoutIfNeeded(SubtreeLayoutScope&); 607 virtual void markForPaginationRelayoutIfNeeded(SubtreeLayoutScope&);
608 608
609 bool isWritingModeRoot() const { return !parent() || parent()->style()->writ ingMode() != style()->writingMode(); } 609 bool isWritingModeRoot() const { return !parent() || parent()->style()->writ ingMode() != style()->writingMode(); }
610 610
611 bool isDeprecatedFlexItem() const { return !isInline() && !isFloatingOrOutOf FlowPositioned() && parent() && parent()->isDeprecatedFlexibleBox(); } 611 bool isDeprecatedFlexItem() const { return !isInline() && !isFloatingOrOutOf FlowPositioned() && parent() && parent()->isDeprecatedFlexibleBox(); }
612 bool isFlexItemIncludingDeprecated() const { return !isInline() && !isFloati ngOrOutOfFlowPositioned() && parent() && parent()->isFlexibleBoxIncludingDepreca ted(); } 612 bool isFlexItemIncludingDeprecated() const { return !isInline() && !isFloati ngOrOutOfFlowPositioned() && parent() && parent()->isFlexibleBoxIncludingDepreca ted(); }
613 613
614 bool isGridItem() const { return parent() && parent()->isLayoutGrid(); } 614 bool isGridItem() const { return parent() && parent()->isLayoutGrid(); }
615 615
616 virtual LayoutUnit lineHeight(bool firstLine, LineDirectionMode, LinePositio nMode = PositionOnContainingLine) const override; 616 LayoutUnit lineHeight(bool firstLine, LineDirectionMode, LinePositionMode = PositionOnContainingLine) const override;
617 virtual int baselinePosition(FontBaseline, bool firstLine, LineDirectionMode , LinePositionMode = PositionOnContainingLine) const override; 617 int baselinePosition(FontBaseline, bool firstLine, LineDirectionMode, LinePo sitionMode = PositionOnContainingLine) const override;
618 618
619 virtual LayoutUnit offsetLeft() const override; 619 LayoutUnit offsetLeft() const override;
620 virtual LayoutUnit offsetTop() const override; 620 LayoutUnit offsetTop() const override;
621 621
622 LayoutPoint flipForWritingModeForChild(const LayoutBox* child, const LayoutP oint&) const; 622 LayoutPoint flipForWritingModeForChild(const LayoutBox* child, const LayoutP oint&) const;
623 LayoutUnit flipForWritingMode(LayoutUnit position) const WARN_UNUSED_RETURN { 623 LayoutUnit flipForWritingMode(LayoutUnit position) const WARN_UNUSED_RETURN {
624 // The offset is in the block direction (y for horizontal writing modes, x for vertical writing modes). 624 // The offset is in the block direction (y for horizontal writing modes, x for vertical writing modes).
625 if (!UNLIKELY(hasFlippedBlocksWritingMode())) 625 if (!UNLIKELY(hasFlippedBlocksWritingMode()))
626 return position; 626 return position;
627 return logicalHeight() - position; 627 return logicalHeight() - position;
628 } 628 }
629 LayoutPoint flipForWritingMode(const LayoutPoint& position) const WARN_UNUSE D_RETURN { 629 LayoutPoint flipForWritingMode(const LayoutPoint& position) const WARN_UNUSE D_RETURN {
630 if (!UNLIKELY(hasFlippedBlocksWritingMode())) 630 if (!UNLIKELY(hasFlippedBlocksWritingMode()))
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
715 { 715 {
716 if (isFloating()) 716 if (isFloating())
717 removeFloatingOrPositionedChildFromBlockLists(); 717 removeFloatingOrPositionedChildFromBlockLists();
718 } 718 }
719 719
720 void setIntrinsicContentLogicalHeight(LayoutUnit intrinsicContentLogicalHeig ht) const { m_intrinsicContentLogicalHeight = intrinsicContentLogicalHeight; } 720 void setIntrinsicContentLogicalHeight(LayoutUnit intrinsicContentLogicalHeig ht) const { m_intrinsicContentLogicalHeight = intrinsicContentLogicalHeight; }
721 721
722 bool canRenderBorderImage() const; 722 bool canRenderBorderImage() const;
723 723
724 protected: 724 protected:
725 virtual void willBeDestroyed() override; 725 void willBeDestroyed() override;
726 726
727 virtual void styleWillChange(StyleDifference, const ComputedStyle& newStyle) override; 727 void styleWillChange(StyleDifference, const ComputedStyle& newStyle) overrid e;
728 virtual void styleDidChange(StyleDifference, const ComputedStyle* oldStyle) override; 728 void styleDidChange(StyleDifference, const ComputedStyle* oldStyle) override ;
729 virtual void updateFromStyle() override; 729 void updateFromStyle() override;
730 730
731 // Returns false if it could not cheaply compute the extent (e.g. fixed back ground), in which case the returned rect may be incorrect. 731 // Returns false if it could not cheaply compute the extent (e.g. fixed back ground), in which case the returned rect may be incorrect.
732 // FIXME: make this a const method once the LayoutBox reference in BoxPainte r is const. 732 // FIXME: make this a const method once the LayoutBox reference in BoxPainte r is const.
733 bool getBackgroundPaintedExtent(LayoutRect&); 733 bool getBackgroundPaintedExtent(LayoutRect&);
734 virtual bool foregroundIsKnownToBeOpaqueInRect(const LayoutRect& localRect, unsigned maxDepthToTest) const; 734 virtual bool foregroundIsKnownToBeOpaqueInRect(const LayoutRect& localRect, unsigned maxDepthToTest) const;
735 virtual bool computeBackgroundIsKnownToBeObscured() override; 735 bool computeBackgroundIsKnownToBeObscured() override;
736 736
737 void computePositionedLogicalWidth(LogicalExtentComputedValues&) const; 737 void computePositionedLogicalWidth(LogicalExtentComputedValues&) const;
738 738
739 LayoutUnit computeIntrinsicLogicalWidthUsing(const Length& logicalWidthLengt h, LayoutUnit availableLogicalWidth, LayoutUnit borderAndPadding) const; 739 LayoutUnit computeIntrinsicLogicalWidthUsing(const Length& logicalWidthLengt h, LayoutUnit availableLogicalWidth, LayoutUnit borderAndPadding) const;
740 LayoutUnit computeIntrinsicLogicalContentHeightUsing(const Length& logicalHe ightLength, LayoutUnit intrinsicContentHeight, LayoutUnit borderAndPadding) cons t; 740 LayoutUnit computeIntrinsicLogicalContentHeightUsing(const Length& logicalHe ightLength, LayoutUnit intrinsicContentHeight, LayoutUnit borderAndPadding) cons t;
741 741
742 virtual bool shouldComputeSizeAsReplaced() const { return isReplaced() && !i sInlineBlockOrInlineTable(); } 742 virtual bool shouldComputeSizeAsReplaced() const { return isReplaced() && !i sInlineBlockOrInlineTable(); }
743 743
744 virtual void mapLocalToContainer(const LayoutBoxModelObject* paintInvalidati onContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wa sFixed = nullptr, const PaintInvalidationState* = nullptr) const override; 744 void mapLocalToContainer(const LayoutBoxModelObject* paintInvalidationContai ner, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = nullptr, const PaintInvalidationState* = nullptr) const override;
745 virtual void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) c onst override; 745 void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) const ove rride;
746 746
747 LayoutObject* splitAnonymousBoxesAroundChild(LayoutObject* beforeChild); 747 LayoutObject* splitAnonymousBoxesAroundChild(LayoutObject* beforeChild);
748 748
749 virtual void addLayerHitTestRects(LayerHitTestRects&, const DeprecatedPaintL ayer* currentCompositedLayer, const LayoutPoint& layerOffset, const LayoutRect& containerRect) const override; 749 void addLayerHitTestRects(LayerHitTestRects&, const DeprecatedPaintLayer* cu rrentCompositedLayer, const LayoutPoint& layerOffset, const LayoutRect& containe rRect) const override;
750 virtual void computeSelfHitTestRects(Vector<LayoutRect>&, const LayoutPoint& layerOffset) const override; 750 void computeSelfHitTestRects(Vector<LayoutRect>&, const LayoutPoint& layerOf fset) const override;
751 751
752 virtual PaintInvalidationReason paintInvalidationReason(const LayoutBoxModel Object& paintInvalidationContainer, 752 PaintInvalidationReason paintInvalidationReason(const LayoutBoxModelObject& paintInvalidationContainer,
753 const LayoutRect& oldBounds, const LayoutPoint& oldPositionFromPaintInva lidationContainer, 753 const LayoutRect& oldBounds, const LayoutPoint& oldPositionFromPaintInva lidationContainer,
754 const LayoutRect& newBounds, const LayoutPoint& newPositionFromPaintInva lidationContainer) const override; 754 const LayoutRect& newBounds, const LayoutPoint& newPositionFromPaintInva lidationContainer) const override;
755 virtual void incrementallyInvalidatePaint(const LayoutBoxModelObject& paintI nvalidationContainer, const LayoutRect& oldBounds, const LayoutRect& newBounds, const LayoutPoint& positionFromPaintInvalidationContainer) override; 755 void incrementallyInvalidatePaint(const LayoutBoxModelObject& paintInvalidat ionContainer, const LayoutRect& oldBounds, const LayoutRect& newBounds, const La youtPoint& positionFromPaintInvalidationContainer) override;
756 756
757 virtual void clearPaintInvalidationState(const PaintInvalidationState&) over ride; 757 void clearPaintInvalidationState(const PaintInvalidationState&) override;
758 #if ENABLE(ASSERT) 758 #if ENABLE(ASSERT)
759 virtual bool paintInvalidationStateIsDirty() const override; 759 bool paintInvalidationStateIsDirty() const override;
760 #endif 760 #endif
761 761
762 virtual PaintInvalidationReason invalidatePaintIfNeeded(PaintInvalidationSta te&, const LayoutBoxModelObject& newPaintInvalidationContainer) override; 762 PaintInvalidationReason invalidatePaintIfNeeded(PaintInvalidationState&, con st LayoutBoxModelObject& newPaintInvalidationContainer) override;
763 763
764 virtual bool hasNonCompositedScrollbars() const override final; 764 bool hasNonCompositedScrollbars() const final;
765 765
766 private: 766 private:
767 bool mustInvalidateBackgroundOrBorderPaintOnHeightChange() const; 767 bool mustInvalidateBackgroundOrBorderPaintOnHeightChange() const;
768 bool mustInvalidateBackgroundOrBorderPaintOnWidthChange() const; 768 bool mustInvalidateBackgroundOrBorderPaintOnWidthChange() const;
769 inline bool mustInvalidateFillLayersPaintOnWidthChange(const FillLayer&) con st; 769 inline bool mustInvalidateFillLayersPaintOnWidthChange(const FillLayer&) con st;
770 770
771 void invalidatePaintRectClippedByOldAndNewBounds(const LayoutBoxModelObject& paintInvalidationContainer, const LayoutRect&, const LayoutRect& oldBounds, con st LayoutRect& newBounds); 771 void invalidatePaintRectClippedByOldAndNewBounds(const LayoutBoxModelObject& paintInvalidationContainer, const LayoutRect&, const LayoutRect& oldBounds, con st LayoutRect& newBounds);
772 772
773 void updateShapeOutsideInfoAfterStyleChange(const ComputedStyle&, const Comp utedStyle* oldStyle); 773 void updateShapeOutsideInfoAfterStyleChange(const ComputedStyle&, const Comp utedStyle* oldStyle);
774 void updateGridPositionAfterStyleChange(const ComputedStyle*); 774 void updateGridPositionAfterStyleChange(const ComputedStyle*);
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
928 if (UNLIKELY(inlineBoxWrapper() != nullptr)) 928 if (UNLIKELY(inlineBoxWrapper() != nullptr))
929 deleteLineBoxWrapper(); 929 deleteLineBoxWrapper();
930 } 930 }
931 931
932 ensureRareData().m_inlineBoxWrapper = boxWrapper; 932 ensureRareData().m_inlineBoxWrapper = boxWrapper;
933 } 933 }
934 934
935 } // namespace blink 935 } // namespace blink
936 936
937 #endif // LayoutBox_h 937 #endif // LayoutBox_h
OLDNEW
« no previous file with comments | « Source/core/layout/LayoutBlockFlow.h ('k') | Source/core/layout/LayoutBoxModelObject.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698