HTMLInputElement.h [plain text]
#ifndef HTMLInputElement_h
#define HTMLInputElement_h
#include "HTMLFormControlElement.h"
namespace WebCore {
class FileList;
class HTMLDataListElement;
class HTMLOptionElement;
class InputType;
class KURL;
class HTMLInputElement : public HTMLTextFormControlElement {
public:
static PassRefPtr<HTMLInputElement> create(const QualifiedName&, Document*, HTMLFormElement*, bool createdByParser);
virtual ~HTMLInputElement();
DEFINE_ATTRIBUTE_EVENT_LISTENER(webkitspeechchange);
virtual HTMLInputElement* toInputElement() { return this; }
bool autoComplete() const;
bool typeMismatch() const;
bool valueMissing(const String&) const;
bool patternMismatch(const String&) const;
bool tooLong(const String&, NeedsToCheckDirtyFlag) const;
bool rangeUnderflow(const String&) const;
bool rangeOverflow(const String&) const;
double minimum() const;
double maximum() const;
bool getAllowedValueStep(double*) const;
bool getAllowedValueStepWithDecimalPlaces(double*, unsigned*) const;
bool stepMismatch(const String&) const;
String minimumString() const;
String maximumString() const;
String stepBaseString() const;
String stepString() const;
String typeMismatchText() const;
String valueMissingText() const;
void stepUp(int, ExceptionCode&);
void stepDown(int, ExceptionCode&);
void stepUp(ExceptionCode& ec) { stepUp(1, ec); }
void stepDown(ExceptionCode& ec) { stepDown(1, ec); }
bool isSteppable() const;
void stepUpFromRenderer(int);
bool isTextButton() const;
virtual bool isRadioButton() const;
bool isTextField() const;
bool isSearchField() const;
bool isInputTypeHidden() const;
bool isPasswordField() const;
bool isCheckbox() const;
bool isRangeControl() const;
bool isText() const;
bool isEmailField() const;
bool isFileUpload() const;
bool isImageButton() const;
bool isNumberField() const;
bool isSubmitButton() const;
bool isTelephoneField() const;
bool isURLField() const;
#if ENABLE(INPUT_SPEECH)
bool isSpeechEnabled() const;
#endif
bool checked() const { return m_isChecked; }
void setChecked(bool, bool sendChangeEvent = false);
bool indeterminate() const { return m_isIndeterminate; }
void setIndeterminate(bool);
virtual bool isChecked() const;
virtual bool isIndeterminate() const { return indeterminate(); }
int size() const;
void setType(const String&);
String value() const;
void setValue(const String&, bool sendChangeEvent = false);
void setValueForUser(const String&);
bool isValidValue(const String&) const;
String sanitizeValue(const String&) const;
String visibleValue() const;
String convertFromVisibleValue(const String&) const;
bool isAcceptableValue(const String&) const;
const String& suggestedValue() const;
void setSuggestedValue(const String&);
double valueAsDate() const;
void setValueAsDate(double, ExceptionCode&);
double valueAsNumber() const;
void setValueAsNumber(double, ExceptionCode&);
virtual String placeholder() const;
virtual void setPlaceholder(const String&);
String valueWithDefault() const;
void setValueFromRenderer(const String&);
void setFileListFromRenderer(const Vector<String>&);
bool canHaveSelection() const;
virtual bool rendererIsNeeded(RenderStyle*);
virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
virtual void detach();
virtual bool isActivatedSubmit() const;
virtual void setActivatedSubmit(bool flag);
String altText() const;
int maxResults() const { return m_maxResults; }
String defaultValue() const;
void setDefaultValue(const String&);
void setDefaultName(const AtomicString&);
String accept() const;
String alt() const;
void setSize(unsigned);
KURL src() const;
virtual int maxLength() const;
void setMaxLength(int, ExceptionCode&);
bool multiple() const;
bool isAutofilled() const { return m_isAutofilled; }
void setAutofilled(bool = true);
FileList* files();
void addSearchResult();
void onSearch();
bool searchEventsShouldBeDispatched() const;
#if ENABLE(DATALIST)
HTMLElement* list() const;
HTMLOptionElement* selectedOption() const;
#endif
#if ENABLE(WCSS)
void setWapInputFormat(String& mask);
#endif
CheckedRadioButtons& checkedRadioButtons() const;
void updateCheckedRadioButtons();
#if ENABLE(WCSS)
bool isConformToInputMask(const String&) const;
#endif
bool lastChangeWasUserEdit() const;
void cacheSelection(int start, int end);
static const int maximumLength;
protected:
HTMLInputElement(const QualifiedName&, Document*, HTMLFormElement*, bool createdByParser);
virtual void defaultEventHandler(Event*);
private:
enum AutoCompleteSetting { Uninitialized, On, Off };
virtual void willMoveToNewOwnerDocument();
virtual void didMoveToNewOwnerDocument();
virtual bool isKeyboardFocusable(KeyboardEvent*) const;
virtual bool isMouseFocusable() const;
virtual bool isEnumeratable() const;
virtual void updateFocusAppearance(bool restorePreviousSelection);
virtual void aboutToUnload();
virtual bool shouldUseInputMethod() const;
virtual const AtomicString& formControlName() const;
virtual bool isTextFormControl() const { return isTextField(); }
virtual bool canTriggerImplicitSubmission() const { return isTextField(); }
virtual const AtomicString& formControlType() const;
virtual bool saveFormControlState(String& value) const;
virtual void restoreFormControlState(const String&);
virtual bool canStartSelection() const;
virtual void accessKeyAction(bool sendToAnyElement);
virtual bool mapToEntry(const QualifiedName& attrName, MappedAttributeEntry& result) const;
virtual void parseMappedAttribute(Attribute*);
virtual void finishParsingChildren();
virtual void copyNonAttributeProperties(const Element* source);
virtual void attach();
virtual bool appendFormData(FormDataList&, bool);
virtual bool isSuccessfulSubmitButton() const;
virtual void reset();
virtual void* preDispatchEventHandler(Event*);
virtual void postDispatchEventHandler(Event*, void* dataFromPreDispatch);
virtual bool isURLAttribute(Attribute*) const;
virtual bool hasUnacceptableValue() const;
virtual bool isInRange() const;
virtual bool isOutOfRange() const;
virtual void documentDidBecomeActive();
virtual void addSubresourceAttributeURLs(ListHashSet<KURL>&) const;
bool needsActivationCallback();
void registerForActivationCallbackIfNeeded();
void unregisterForActivationCallbackIfNeeded();
bool supportsMaxLength() const { return isTextType(); }
bool isTextType() const;
virtual bool supportsPlaceholder() const;
virtual bool isEmptyValue() const { return value().isEmpty(); }
virtual bool isEmptySuggestedValue() const { return suggestedValue().isEmpty(); }
virtual void handleFocusEvent();
virtual void handleBlurEvent();
virtual int cachedSelectionStart() const { return m_cachedSelectionStart; }
virtual int cachedSelectionEnd() const { return m_cachedSelectionEnd; }
virtual bool isOptionalFormControl() const { return !isRequiredFormControl(); }
virtual bool isRequiredFormControl() const;
virtual bool recalcWillValidate() const;
void updateType();
void applyStep(double count, ExceptionCode&);
#if ENABLE(DATALIST)
HTMLDataListElement* dataList() const;
#endif
void notifyFormStateChanged();
void parseMaxLengthAttribute(Attribute*);
void updateValueIfNeeded();
#if ENABLE(WCSS)
bool isConformToInputMask(UChar, unsigned) const;
String validateInputMask(String&);
#endif
AtomicString m_name;
String m_value;
String m_suggestedValue;
int m_size;
int m_maxLength;
int m_cachedSelectionStart;
int m_cachedSelectionEnd;
#if ENABLE(WCSS)
String m_inputFormatMask;
unsigned m_maxInputCharsAllowed;
#endif
short m_maxResults;
bool m_isChecked : 1;
bool m_reflectsCheckedAttribute : 1;
bool m_isIndeterminate : 1;
bool m_hasType : 1;
bool m_isActivatedSubmit : 1;
unsigned m_autocomplete : 2; bool m_isAutofilled : 1;
#if ENABLE(DATALIST)
bool m_hasNonEmptyList : 1;
#endif
bool m_stateRestored : 1;
bool m_parsingInProgress : 1;
OwnPtr<InputType> m_inputType;
};
}
#endif