gecko/dom/interfaces/html/nsIDOMHTMLOptionsCollection.idl
2012-05-21 12:12:37 +01:00

59 lines
2.3 KiB
Plaintext

/* -*- 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);
};