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 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
// Copyright 2015 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 LineLayoutInline_h
#define LineLayoutInline_h
#include "core/layout/LayoutInline.h"
#include "core/layout/api/LineLayoutBoxModel.h"
#include "platform/LayoutUnit.h"
namespace blink {
class LayoutInline;
class LineLayoutInline : public LineLayoutBoxModel {
public:
explicit LineLayoutInline(LayoutInline* layoutInline)
: LineLayoutBoxModel(layoutInline) {}
explicit LineLayoutInline(const LineLayoutItem& item)
: LineLayoutBoxModel(item) {
SECURITY_DCHECK(!item || item.isLayoutInline());
}
explicit LineLayoutInline(std::nullptr_t) : LineLayoutBoxModel(nullptr) {}
LineLayoutInline() {}
LineLayoutItem firstChild() const {
return LineLayoutItem(toInline()->firstChild());
}
LineLayoutItem lastChild() const {
return LineLayoutItem(toInline()->lastChild());
}
LayoutUnit marginStart() const { return toInline()->marginStart(); }
LayoutUnit marginEnd() const { return toInline()->marginEnd(); }
int borderStart() const { return toInline()->borderStart(); }
int borderEnd() const { return toInline()->borderEnd(); }
LayoutUnit paddingStart() const { return toInline()->paddingStart(); }
LayoutUnit paddingEnd() const { return toInline()->paddingEnd(); }
bool hasInlineDirectionBordersPaddingOrMargin() const {
return toInline()->hasInlineDirectionBordersPaddingOrMargin();
}
bool alwaysCreateLineBoxes() const {
return toInline()->alwaysCreateLineBoxes();
}
InlineBox* firstLineBoxIncludingCulling() const {
return toInline()->firstLineBoxIncludingCulling();
}
InlineBox* lastLineBoxIncludingCulling() const {
return toInline()->lastLineBoxIncludingCulling();
}
LineBoxList* lineBoxes() { return toInline()->lineBoxes(); }
bool hitTestCulledInline(HitTestResult& result,
const HitTestLocation& locationInContainer,
const LayoutPoint& accumulatedOffset) {
return toInline()->hitTestCulledInline(result, locationInContainer,
accumulatedOffset);
}
LayoutBoxModelObject* continuation() const {
return toInline()->continuation();
}
InlineBox* createAndAppendInlineFlowBox() {
return toInline()->createAndAppendInlineFlowBox();
}
InlineFlowBox* lastLineBox() { return toInline()->lastLineBox(); }
protected:
LayoutInline* toInline() { return toLayoutInline(layoutObject()); }
const LayoutInline* toInline() const {
return toLayoutInline(layoutObject());
}
};
} // namespace blink
#endif // LineLayoutInline_h
|