1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef LayoutBoxItem_h
#define LayoutBoxItem_h
#include "core/layout/LayoutBox.h"
#include "core/layout/api/LayoutBoxModel.h"
#include "platform/scroll/ScrollTypes.h"
namespace blink {
class LayoutPoint;
class LayoutSize;
class LayoutUnit;
class LayoutBoxItem : public LayoutBoxModel {
public:
explicit LayoutBoxItem(LayoutBox* layoutBox) : LayoutBoxModel(layoutBox) {}
explicit LayoutBoxItem(const LayoutItem& item) : LayoutBoxModel(item) {
SECURITY_DCHECK(!item || item.isBox());
}
explicit LayoutBoxItem(std::nullptr_t) : LayoutBoxModel(nullptr) {}
LayoutBoxItem() {}
LayoutBoxItem enclosingBox() const {
return LayoutBoxItem(toBox()->enclosingBox());
}
ScrollResult scroll(ScrollGranularity granularity, const FloatSize& delta) {
return toBox()->scroll(granularity, delta);
}
LayoutSize size() const { return toBox()->size(); }
LayoutPoint location() const { return toBox()->location(); }
LayoutUnit logicalWidth() const { return toBox()->logicalWidth(); }
LayoutUnit logicalHeight() const { return toBox()->logicalHeight(); }
LayoutUnit minPreferredLogicalWidth() const {
return toBox()->minPreferredLogicalWidth();
}
LayoutRect overflowClipRect(const LayoutPoint& location,
OverlayScrollbarClipBehavior behavior =
IgnoreOverlayScrollbarSize) const {
return toBox()->overflowClipRect(location, behavior);
}
LayoutSize contentBoxOffset() const { return toBox()->contentBoxOffset(); }
void mapLocalToAncestor(
const LayoutBoxModelObject* ancestor,
TransformState& state,
MapCoordinatesFlags flags = ApplyContainerFlip) const {
toBox()->mapLocalToAncestor(ancestor, state, flags);
}
FloatQuad absoluteContentQuad() const {
return toBox()->absoluteContentQuad();
}
private:
LayoutBox* toBox() { return toLayoutBox(layoutObject()); }
const LayoutBox* toBox() const { return toLayoutBox(layoutObject()); }
};
} // namespace blink
#endif // LayoutBoxItem_h
|