1 /*-*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 * This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
4 * You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #include "nsDisplayListInvalidation.h"
7 #include "nsDisplayList.h"
10 nsDisplayItemGeometry::nsDisplayItemGeometry(nsDisplayItem
* aItem
, nsDisplayListBuilder
* aBuilder
)
12 MOZ_COUNT_CTOR(nsDisplayItemGeometry
);
14 mBounds
= aItem
->GetBounds(aBuilder
, &snap
);
17 nsDisplayItemGeometry::~nsDisplayItemGeometry()
19 MOZ_COUNT_DTOR(nsDisplayItemGeometry
);
22 nsDisplayItemGenericGeometry::nsDisplayItemGenericGeometry(nsDisplayItem
* aItem
, nsDisplayListBuilder
* aBuilder
)
23 : nsDisplayItemGeometry(aItem
, aBuilder
)
24 , mBorderRect(aItem
->GetBorderRect())
28 nsDisplayItemGenericGeometry::MoveBy(const nsPoint
& aOffset
)
30 nsDisplayItemGeometry::MoveBy(aOffset
);
31 mBorderRect
.MoveBy(aOffset
);
34 nsDisplayItemBoundsGeometry::nsDisplayItemBoundsGeometry(nsDisplayItem
* aItem
, nsDisplayListBuilder
* aBuilder
)
35 : nsDisplayItemGeometry(aItem
, aBuilder
)
38 mHasRoundedCorners
= aItem
->Frame()->GetBorderRadii(radii
);
41 nsDisplayBorderGeometry::nsDisplayBorderGeometry(nsDisplayItem
* aItem
, nsDisplayListBuilder
* aBuilder
)
42 : nsDisplayItemGeometry(aItem
, aBuilder
)
43 , mContentRect(aItem
->GetContentRect())
47 nsDisplayBorderGeometry::MoveBy(const nsPoint
& aOffset
)
49 nsDisplayItemGeometry::MoveBy(aOffset
);
50 mContentRect
.MoveBy(aOffset
);
53 nsDisplayBackgroundGeometry::nsDisplayBackgroundGeometry(nsDisplayBackgroundImage
* aItem
,
54 nsDisplayListBuilder
* aBuilder
)
55 : nsDisplayItemGeometry(aItem
, aBuilder
)
56 , mPositioningArea(aItem
->GetPositioningArea())
60 nsDisplayBackgroundGeometry::MoveBy(const nsPoint
& aOffset
)
62 nsDisplayItemGeometry::MoveBy(aOffset
);
63 mPositioningArea
.MoveBy(aOffset
);
66 nsDisplayThemedBackgroundGeometry::nsDisplayThemedBackgroundGeometry(nsDisplayThemedBackground
* aItem
,
67 nsDisplayListBuilder
* aBuilder
)
68 : nsDisplayItemGeometry(aItem
, aBuilder
)
69 , mPositioningArea(aItem
->GetPositioningArea())
70 , mWindowIsActive(aItem
->IsWindowActive())
74 nsDisplayThemedBackgroundGeometry::MoveBy(const nsPoint
& aOffset
)
76 nsDisplayItemGeometry::MoveBy(aOffset
);
77 mPositioningArea
.MoveBy(aOffset
);
80 nsDisplayBoxShadowInnerGeometry::nsDisplayBoxShadowInnerGeometry(nsDisplayItem
* aItem
, nsDisplayListBuilder
* aBuilder
)
81 : nsDisplayItemGeometry(aItem
, aBuilder
)
82 , mPaddingRect(aItem
->GetPaddingRect())
86 nsDisplayBoxShadowInnerGeometry::MoveBy(const nsPoint
& aOffset
)
88 nsDisplayItemGeometry::MoveBy(aOffset
);
89 mPaddingRect
.MoveBy(aOffset
);
92 nsDisplayBoxShadowOuterGeometry::nsDisplayBoxShadowOuterGeometry(nsDisplayItem
* aItem
,
93 nsDisplayListBuilder
* aBuilder
, float aOpacity
)
94 : nsDisplayItemGenericGeometry(aItem
, aBuilder
)
98 nsDisplaySVGEffectsGeometry::nsDisplaySVGEffectsGeometry(nsDisplaySVGEffects
* aItem
, nsDisplayListBuilder
* aBuilder
)
99 : nsDisplayItemGeometry(aItem
, aBuilder
)
100 , mBBox(aItem
->BBoxInUserSpace())
101 , mUserSpaceOffset(aItem
->UserSpaceOffset())
102 , mFrameOffsetToReferenceFrame(aItem
->ToReferenceFrame())
106 nsDisplaySVGEffectsGeometry::MoveBy(const nsPoint
& aOffset
)
108 mBounds
.MoveBy(aOffset
);
109 mFrameOffsetToReferenceFrame
+= aOffset
;