RenderMathMLRoot.h [plain text]
#ifndef RenderMathMLRoot_h
#define RenderMathMLRoot_h
#if ENABLE(MATHML)
#include "RenderMathMLBlock.h"
#include "RenderMathMLRow.h"
namespace WebCore {
class RenderMathMLRadicalOperator;
class RenderMathMLRootWrapper;
class RenderMathMLRoot : public RenderMathMLBlock {
friend class RenderMathMLRootWrapper;
public:
RenderMathMLRoot(Element&, PassRef<RenderStyle>);
RenderMathMLRoot(Document&, PassRef<RenderStyle>);
virtual void addChild(RenderObject* newChild, RenderObject* beforeChild = 0) override;
virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle) override;
virtual void updateFromElement() override;
RenderMathMLRootWrapper* baseWrapper() const;
RenderMathMLRootWrapper* indexWrapper() const;
protected:
virtual void layout() override;
virtual void paint(PaintInfo&, const LayoutPoint&) override;
private:
virtual bool isRenderMathMLRoot() const override final { return true; }
virtual const char* renderName() const override { return "RenderMathMLRoot"; }
virtual int firstLineBaseline() const override;
void updateStyle();
void restructureWrappers();
RenderMathMLBlock* radicalWrapper() const;
RenderMathMLRadicalOperator* radicalOperator() const;
LayoutUnit m_verticalGap;
LayoutUnit m_ruleThickness;
LayoutUnit m_extraAscender;
float m_degreeBottomRaisePercent;
};
RENDER_OBJECT_TYPE_CASTS(RenderMathMLRoot, isRenderMathMLRoot())
class RenderMathMLRootWrapper : public RenderMathMLRow {
friend class RenderMathMLRoot;
public:
RenderMathMLRootWrapper(Document& document, PassRef<RenderStyle> style)
: RenderMathMLRow(document, WTF::move(style)) { }
private:
RenderObject* removeChildWithoutRestructuring(RenderObject&);
RenderObject* removeChild(RenderObject&) override;
static RenderPtr<RenderMathMLRootWrapper> createAnonymousWrapper(RenderMathMLRoot* renderObject);
virtual bool isRenderMathMLRootWrapper() const override final { return true; }
virtual const char* renderName() const override { return "RenderMathMLRootWrapper"; }
};
RENDER_OBJECT_TYPE_CASTS(RenderMathMLRootWrapper, isRenderMathMLRootWrapper())
}
#endif // ENABLE(MATHML)
#endif // RenderMathMLRoot_h