RenderTextControlMultiLine.h [plain text]
#pragma once
#include "HTMLTextAreaElement.h"
#include "RenderTextControl.h"
namespace WebCore {
class RenderTextControlMultiLine final : public RenderTextControl {
public:
RenderTextControlMultiLine(HTMLTextAreaElement&, RenderStyle&&);
virtual ~RenderTextControlMultiLine();
HTMLTextAreaElement& textAreaElement() const;
private:
void willBeDestroyed() override;
void element() const = delete;
bool isTextArea() const override { return true; }
bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction) override;
float getAverageCharWidth() override;
LayoutUnit preferredContentLogicalWidth(float charWidth) const override;
LayoutUnit computeControlLogicalHeight(LayoutUnit lineHeight, LayoutUnit nonContentHeight) const override;
int baselinePosition(FontBaseline, bool firstLine, LineDirectionMode, LinePositionMode = PositionOnContainingLine) const override;
void layoutExcludedChildren(bool relayoutChildren) override;
};
inline RenderTextControlMultiLine* HTMLTextAreaElement::renderer() const
{
return downcast<RenderTextControlMultiLine>(HTMLTextFormControlElement::renderer());
}
}
SPECIALIZE_TYPE_TRAITS_RENDER_OBJECT(RenderTextControlMultiLine, isTextArea())