/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. * * The origin of this IDL file is * http://www.whatwg.org/specs/web-apps/current-work/#the-input-element * http://www.whatwg.org/specs/web-apps/current-work/#other-elements,-attributes-and-apis * * © Copyright 2004-2011 Apple Computer, Inc., Mozilla Foundation, and * Opera Software ASA. You are granted a license to use, reproduce * and create derivative works of this document. */ enum SelectionMode { "select", "start", "end", "preserve", }; /*TODO interface XULControllers; */ [HTMLConstructor] interface HTMLInputElement : HTMLElement { [CEReactions, Pure, SetterThrows] attribute DOMString accept; [CEReactions, Pure, SetterThrows] attribute DOMString alt; [CEReactions, Pure, SetterThrows] attribute DOMString autocomplete; [CEReactions, Pure, SetterThrows] attribute boolean autofocus; [CEReactions, Pure, SetterThrows] attribute boolean defaultChecked; [Pure] attribute boolean checked; // Bug 850337 - attribute DOMString dirName; [CEReactions, Pure, SetterThrows] attribute boolean disabled; readonly attribute HTMLFormElement? form; [Pure] attribute FileList? files; [CEReactions, Pure, SetterThrows] attribute DOMString formAction; [CEReactions, Pure, SetterThrows] attribute DOMString formEnctype; [CEReactions, Pure, SetterThrows] attribute DOMString formMethod; [CEReactions, Pure, SetterThrows] attribute boolean formNoValidate; [CEReactions, Pure, SetterThrows] attribute DOMString formTarget; [CEReactions, Pure, SetterThrows] attribute unsigned long height; [Pure] attribute boolean indeterminate; [CEReactions, Pure, SetterThrows, Pref="dom.forms.inputmode"] attribute DOMString inputMode; [Pure] readonly attribute HTMLElement? list; [CEReactions, Pure, SetterThrows] attribute DOMString max; [CEReactions, Pure, SetterThrows] attribute long maxLength; [CEReactions, Pure, SetterThrows] attribute DOMString min; [CEReactions, Pure, SetterThrows] attribute long minLength; [CEReactions, Pure, SetterThrows] attribute boolean multiple; [CEReactions, Pure, SetterThrows] attribute DOMString name; [CEReactions, Pure, SetterThrows] attribute DOMString pattern; [CEReactions, Pure, SetterThrows] attribute DOMString placeholder; [CEReactions, Pure, SetterThrows] attribute boolean readOnly; [CEReactions, Pure, SetterThrows] attribute boolean required; [CEReactions, Pure, SetterThrows] attribute unsigned long size; [CEReactions, Pure, SetterNeedsSubjectPrincipal=NonSystem, SetterThrows] attribute DOMString src; [CEReactions, Pure, SetterThrows] attribute DOMString step; [CEReactions, Pure, SetterThrows] attribute DOMString type; [CEReactions, Pure, SetterThrows] attribute DOMString defaultValue; [CEReactions, Pure, TreatNullAs=EmptyString, SetterThrows, NeedsCallerType] attribute DOMString value; [Throws, Func="HTMLInputElement::ValueAsDateEnabled"] attribute Date? valueAsDate; [Pure, SetterThrows] attribute unrestricted double valueAsNumber; [CEReactions, SetterThrows] attribute unsigned long width; /* TODO [Throws] undefined stepUp(optional long n = 1); [Throws] undefined stepDown(optional long n = 1); */ [Pure] readonly attribute boolean willValidate; [Pure] readonly attribute ValidityState validity; [Throws] readonly attribute DOMString validationMessage; boolean checkValidity(); boolean reportValidity(); undefined setCustomValidity(DOMString error); readonly attribute NodeList? labels; undefined select(); [Throws] attribute unsigned long? selectionStart; [Throws] attribute unsigned long? selectionEnd; [Throws] attribute DOMString? selectionDirection; [Throws] undefined setRangeText(DOMString replacement); [Throws] undefined setRangeText(DOMString replacement, unsigned long start, unsigned long end, optional SelectionMode selectionMode = "preserve"); [Throws] undefined setSelectionRange(unsigned long start, unsigned long end, optional DOMString direction); [Throws] undefined showPicker(); // also has obsolete members }; partial interface HTMLInputElement { [CEReactions, Pure, SetterThrows] attribute DOMString align; [CEReactions, Pure, SetterThrows] attribute DOMString useMap; }; /*Non standard partial interface HTMLInputElement { [Pref="dom.input.dirpicker", SetterThrows] attribute boolean allowdirs; [Pref="dom.input.dirpicker"] readonly attribute boolean isFilesAndDirectoriesSupported; [Throws, Pref="dom.input.dirpicker"] Promise> getFilesAndDirectories(); [Throws, Pref="dom.input.dirpicker"] Promise> getFiles(optional boolean recursiveFlag = false); [Throws, Pref="dom.input.dirpicker"] undefined chooseDirectory(); }; */ // Webkit/Blink partial interface HTMLInputElement { [Pref="dom.webkitBlink.filesystem.enabled", Frozen, Cached, Pure] readonly attribute sequence webkitEntries; [Pref="dom.webkitBlink.dirPicker.enabled", BinaryName="WebkitDirectoryAttr", SetterThrows] attribute boolean webkitdirectory; }; dictionary DateTimeValue { long hour; long minute; long year; long month; long day; }; partial interface HTMLInputElement { [Pref="dom.forms.datetime", ChromeOnly] DateTimeValue getDateTimeInputBoxValue(); [Pref="dom.forms.datetime", ChromeOnly] undefined updateDateTimeInputBox(optional DateTimeValue value); [Pref="dom.forms.datetime", ChromeOnly] undefined setDateTimePickerState(boolean open); [Pref="dom.forms.datetime", ChromeOnly, BinaryName="getMinimumAsDouble"] double getMinimum(); [Pref="dom.forms.datetime", ChromeOnly, BinaryName="getMaximumAsDouble"] double getMaximum(); }; partial interface HTMLInputElement { [ChromeOnly] attribute DOMString previewValue; };