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

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

Issue 346603007: Remove position: sticky (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/rendering/RenderBox.cpp ('k') | Source/core/rendering/RenderBoxModelObject.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 * Copyright (C) 2003, 2006, 2007, 2009 Apple Inc. All rights reserved. 4 * Copyright (C) 2003, 2006, 2007, 2009 Apple Inc. All rights reserved.
5 * Copyright (C) 2010 Google Inc. All rights reserved. 5 * Copyright (C) 2010 Google Inc. All rights 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 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 BackgroundBleedBackgroundOverBorder 42 BackgroundBleedBackgroundOverBorder
43 }; 43 };
44 44
45 enum ContentChangeType { 45 enum ContentChangeType {
46 ImageChanged, 46 ImageChanged,
47 CanvasChanged, 47 CanvasChanged,
48 CanvasContextChanged 48 CanvasContextChanged
49 }; 49 };
50 50
51 class RenderTextFragment; 51 class RenderTextFragment;
52 class StickyPositionViewportConstraints;
53 52
54 // This class is the base for all objects that adhere to the CSS box model as de scribed 53 // This class is the base for all objects that adhere to the CSS box model as de scribed
55 // at http://www.w3.org/TR/CSS21/box.html 54 // at http://www.w3.org/TR/CSS21/box.html
56 55
57 class RenderBoxModelObject : public RenderLayerModelObject { 56 class RenderBoxModelObject : public RenderLayerModelObject {
58 public: 57 public:
59 RenderBoxModelObject(ContainerNode*); 58 RenderBoxModelObject(ContainerNode*);
60 virtual ~RenderBoxModelObject(); 59 virtual ~RenderBoxModelObject();
61 60
62 LayoutSize relativePositionOffset() const; 61 LayoutSize relativePositionOffset() const;
63 LayoutSize relativePositionLogicalOffset() const { return style()->isHorizon talWritingMode() ? relativePositionOffset() : relativePositionOffset().transpose dSize(); } 62 LayoutSize relativePositionLogicalOffset() const { return style()->isHorizon talWritingMode() ? relativePositionOffset() : relativePositionOffset().transpose dSize(); }
64 63
65 void computeStickyPositionConstraints(StickyPositionViewportConstraints&, co nst FloatRect& constrainingRect) const;
66 LayoutSize stickyPositionOffset() const;
67 LayoutSize stickyPositionLogicalOffset() const { return style()->isHorizonta lWritingMode() ? stickyPositionOffset() : stickyPositionOffset().transposedSize( ); }
68
69 LayoutSize offsetForInFlowPosition() const; 64 LayoutSize offsetForInFlowPosition() const;
70 65
71 // IE extensions. Used to calculate offsetWidth/Height. Overridden by inlin es (RenderFlow) 66 // IE extensions. Used to calculate offsetWidth/Height. Overridden by inlin es (RenderFlow)
72 // to return the remaining width on a given line (and the height of a single line). 67 // to return the remaining width on a given line (and the height of a single line).
73 virtual LayoutUnit offsetLeft() const; 68 virtual LayoutUnit offsetLeft() const;
74 virtual LayoutUnit offsetTop() const; 69 virtual LayoutUnit offsetTop() const;
75 virtual LayoutUnit offsetWidth() const = 0; 70 virtual LayoutUnit offsetWidth() const = 0;
76 virtual LayoutUnit offsetHeight() const = 0; 71 virtual LayoutUnit offsetHeight() const = 0;
77 72
78 int pixelSnappedOffsetLeft() const { return roundToInt(offsetLeft()); } 73 int pixelSnappedOffsetLeft() const { return roundToInt(offsetLeft()); }
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 } 293 }
299 void moveChildrenTo(RenderBoxModelObject* toBoxModelObject, RenderObject* st artChild, RenderObject* endChild, RenderObject* beforeChild, bool fullRemoveInse rt = false); 294 void moveChildrenTo(RenderBoxModelObject* toBoxModelObject, RenderObject* st artChild, RenderObject* endChild, RenderObject* beforeChild, bool fullRemoveInse rt = false);
300 295
301 enum ScaleByEffectiveZoomOrNot { ScaleByEffectiveZoom, DoNotScaleByEffective Zoom }; 296 enum ScaleByEffectiveZoomOrNot { ScaleByEffectiveZoom, DoNotScaleByEffective Zoom };
302 IntSize calculateImageIntrinsicDimensions(StyleImage*, const IntSize& scaled PositioningAreaSize, ScaleByEffectiveZoomOrNot) const; 297 IntSize calculateImageIntrinsicDimensions(StyleImage*, const IntSize& scaled PositioningAreaSize, ScaleByEffectiveZoomOrNot) const;
303 298
304 private: 299 private:
305 LayoutUnit computedCSSPadding(const Length&) const; 300 LayoutUnit computedCSSPadding(const Length&) const;
306 virtual bool isBoxModelObject() const OVERRIDE FINAL { return true; } 301 virtual bool isBoxModelObject() const OVERRIDE FINAL { return true; }
307 302
308 virtual LayoutRect frameRectForStickyPositioning() const = 0;
309
310 IntSize calculateFillTileSize(const FillLayer*, const IntSize& scaledPositio ningAreaSize) const; 303 IntSize calculateFillTileSize(const FillLayer*, const IntSize& scaledPositio ningAreaSize) const;
311 304
312 RoundedRect getBackgroundRoundedRect(const LayoutRect&, InlineFlowBox*, Layo utUnit inlineBoxWidth, LayoutUnit inlineBoxHeight, 305 RoundedRect getBackgroundRoundedRect(const LayoutRect&, InlineFlowBox*, Layo utUnit inlineBoxWidth, LayoutUnit inlineBoxHeight,
313 bool includeLogicalLeftEdge, bool includeLogicalRightEdge) const; 306 bool includeLogicalLeftEdge, bool includeLogicalRightEdge) const;
314 307
315 bool fixedBackgroundPaintsInLocalCoordinates() const; 308 bool fixedBackgroundPaintsInLocalCoordinates() const;
316 309
317 void clipBorderSidePolygon(GraphicsContext*, const RoundedRect& outerBorder, const RoundedRect& innerBorder, 310 void clipBorderSidePolygon(GraphicsContext*, const RoundedRect& outerBorder, const RoundedRect& innerBorder,
318 BoxSide, bool firstEdgeMatches, bool secondEdgeMa tches); 311 BoxSide, bool firstEdgeMatches, bool secondEdgeMa tches);
319 void clipBorderSideForComplexInnerPath(GraphicsContext*, const RoundedRect&, const RoundedRect&, BoxSide, const class BorderEdge[]); 312 void clipBorderSideForComplexInnerPath(GraphicsContext*, const RoundedRect&, const RoundedRect&, BoxSide, const class BorderEdge[]);
320 void paintOneBorderSide(GraphicsContext*, const RenderStyle*, const RoundedR ect& outerBorder, const RoundedRect& innerBorder, 313 void paintOneBorderSide(GraphicsContext*, const RenderStyle*, const RoundedR ect& outerBorder, const RoundedRect& innerBorder,
321 const IntRect& sideRect, BoxSide, BoxSide adjace ntSide1, BoxSide adjacentSide2, const class BorderEdge[], 314 const IntRect& sideRect, BoxSide, BoxSide adjace ntSide1, BoxSide adjacentSide2, const class BorderEdge[],
322 const Path*, BackgroundBleedAvoidance, bool incl udeLogicalLeftEdge, bool includeLogicalRightEdge, bool antialias, const Color* o verrideColor = 0); 315 const Path*, BackgroundBleedAvoidance, bool incl udeLogicalLeftEdge, bool includeLogicalRightEdge, bool antialias, const Color* o verrideColor = 0);
323 void paintTranslucentBorderSides(GraphicsContext*, const RenderStyle*, const RoundedRect& outerBorder, const RoundedRect& innerBorder, const IntPoint& inner BorderAdjustment, 316 void paintTranslucentBorderSides(GraphicsContext*, const RenderStyle*, const RoundedRect& outerBorder, const RoundedRect& innerBorder, const IntPoint& inner BorderAdjustment,
324 const class BorderEdge[], BorderEdgeFlags, BackgroundBleedAvoidance, boo l includeLogicalLeftEdge, bool includeLogicalRightEdge, bool antialias = false); 317 const class BorderEdge[], BorderEdgeFlags, BackgroundBleedAvoidance, boo l includeLogicalLeftEdge, bool includeLogicalRightEdge, bool antialias = false);
325 void paintBorderSides(GraphicsContext*, const RenderStyle*, const RoundedRec t& outerBorder, const RoundedRect& innerBorder, 318 void paintBorderSides(GraphicsContext*, const RenderStyle*, const RoundedRec t& outerBorder, const RoundedRect& innerBorder,
326 const IntPoint& innerBorderAdjustment, const class BorderEdge[], BorderE dgeFlags, BackgroundBleedAvoidance, 319 const IntPoint& innerBorderAdjustment, const class BorderEdge[], BorderE dgeFlags, BackgroundBleedAvoidance,
327 bool includeLogicalLeftEdge, bool includeLogicalRightEdge, bool antialia s = false, const Color* overrideColor = 0); 320 bool includeLogicalLeftEdge, bool includeLogicalRightEdge, bool antialia s = false, const Color* overrideColor = 0);
328 void drawBoxSideFromPath(GraphicsContext*, const LayoutRect&, const Path&, c onst class BorderEdge[], 321 void drawBoxSideFromPath(GraphicsContext*, const LayoutRect&, const Path&, c onst class BorderEdge[],
329 float thickness, float drawThickness, BoxSide, const RenderStyle*, 322 float thickness, float drawThickness, BoxSide, const RenderStyle*,
330 Color, EBorderStyle, BackgroundBleedAvoidance, bool includeLogicalLeftEdge, bool includeLogicalRightEdge); 323 Color, EBorderStyle, BackgroundBleedAvoidance, bool includeLogicalLeftEdge, bool includeLogicalRightEdge);
331 }; 324 };
332 325
333 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderBoxModelObject, isBoxModelObject()); 326 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderBoxModelObject, isBoxModelObject());
334 327
335 } // namespace WebCore 328 } // namespace WebCore
336 329
337 #endif // RenderBoxModelObject_h 330 #endif // RenderBoxModelObject_h
OLDNEW
« no previous file with comments | « Source/core/rendering/RenderBox.cpp ('k') | Source/core/rendering/RenderBoxModelObject.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698