/* -*- 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/. */ #include "nsIDOMHTMLElement.idl" #include "nsIDOMHTMLCollection.idl" interface nsIDOMHTMLOptionElement; interface nsIDOMHTMLSelectElement; /** * The nsIDOMHTMLOptionsCollection interface is the interface to a * collection of [X]HTML option elements. * * This interface is trying to follow the DOM Level 2 HTML specification: * http://www.w3.org/TR/DOM-Level-2-HTML/ * * with changes from the work-in-progress WHATWG HTML specification: * http://www.whatwg.org/specs/web-apps/current-work/ */ // Introduced in DOM Level 2: [scriptable, uuid(429b041b-06df-486c-9a3a-a1d901cc76a2)] interface nsIDOMHTMLOptionsCollection : nsISupports { attribute unsigned long length; // raises(DOMException) on setting // FIXME item should just be inherited from nsIDOMHTMLCollection nsIDOMNode item(in unsigned long index); // FIXME namedItem (and getNamedItem) should return a NodeList if there are // multiple matching items [getter,forward(getNamedItem)] nsIDOMNode namedItem(in DOMString name); /** * Get the node for the name. Returns null if no node exists for the name. */ [noscript,notxpcom,nostdcall] nsISupports getNamedItem(in DOMString name, out nsWrapperCachePtr cache); attribute long selectedIndex; [setter,noscript] void setOption(in unsigned long index, in nsIDOMHTMLOptionElement option); [noscript] readonly attribute nsIDOMHTMLSelectElement select; // This add method implementation means the following // since IDL doesn't support overloading. // void add(in nsIDOMHTMLOptionElement, // [optional] in nsIDOMHTMLOptionElement) // void add(in nsIDOMHTMLOptionElement, in long) void add(in nsIDOMHTMLOptionElement option, [optional] in nsIVariant before); void remove(in long index); };