HTMLTextAreaElement.h [plain text]
#ifndef HTMLTextAreaElement_h
#define HTMLTextAreaElement_h
#include "HTMLTextFormControlElement.h"
namespace WebCore {
class BeforeTextInsertedEvent;
class VisibleSelection;
class HTMLTextAreaElement : public HTMLTextFormControlElement {
public:
static PassRefPtr<HTMLTextAreaElement> create(const QualifiedName&, Document*, HTMLFormElement*);
int cols() const { return m_cols; }
int rows() const { return m_rows; }
bool shouldWrapText() const { return m_wrap != NoWrap; }
virtual String value() const;
void setValue(const String&);
String defaultValue() const;
void setDefaultValue(const String&);
int textLength() const { return value().length(); }
virtual int maxLength() const;
void setMaxLength(int, ExceptionCode&);
bool valueMissing(const String& value) const { return isRequiredFormControl() && !disabled() && !readOnly() && value.isEmpty(); }
bool tooLong(const String&, NeedsToCheckDirtyFlag) const;
bool isValidValue(const String&) const;
virtual HTMLElement* innerTextElement() const;
void rendererWillBeDestroyed();
void setCols(int);
void setRows(int);
virtual bool willRespondToMouseClickEvents() OVERRIDE;
private:
HTMLTextAreaElement(const QualifiedName&, Document*, HTMLFormElement*);
enum WrapMethod { NoWrap, SoftWrap, HardWrap };
void createShadowSubtree();
void handleBeforeTextInsertedEvent(BeforeTextInsertedEvent*) const;
static String sanitizeUserInputValue(const String&, unsigned maxLength);
void updateValue() const;
void setNonDirtyValue(const String&);
void setValueCommon(const String&);
virtual bool supportsPlaceholder() const { return true; }
virtual HTMLElement* placeholderElement() const;
virtual void updatePlaceholderText();
virtual bool isEmptyValue() const { return value().isEmpty(); }
virtual bool isOptionalFormControl() const { return !isRequiredFormControl(); }
virtual bool isRequiredFormControl() const { return required(); }
virtual void defaultEventHandler(Event*);
virtual void subtreeHasChanged();
virtual bool isEnumeratable() const { return true; }
virtual bool supportLabels() const OVERRIDE { return true; }
virtual const AtomicString& formControlType() const;
virtual bool saveFormControlState(String& value) const;
virtual void restoreFormControlState(const String&);
virtual bool isTextFormControl() const { return true; }
virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
virtual void parseAttribute(Attribute*) OVERRIDE;
virtual bool isPresentationAttribute(const QualifiedName&) const OVERRIDE;
virtual void collectStyleForAttribute(Attribute*, StylePropertySet*) OVERRIDE;
virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
virtual bool appendFormData(FormDataList&, bool);
virtual void reset();
virtual bool isMouseFocusable() const;
virtual bool isKeyboardFocusable(KeyboardEvent*) const;
virtual void updateFocusAppearance(bool restorePreviousSelection);
virtual void accessKeyAction(bool sendMouseEvents);
virtual bool shouldUseInputMethod();
int m_rows;
int m_cols;
WrapMethod m_wrap;
RefPtr<HTMLElement> m_placeholder;
mutable String m_value;
mutable bool m_isDirty;
mutable bool m_wasModifiedByUser;
};
}
#endif