summaryrefslogtreecommitdiffstats
path: root/dom/interfaces/xul
diff options
context:
space:
mode:
Diffstat (limited to 'dom/interfaces/xul')
-rw-r--r--dom/interfaces/xul/moz.build31
-rw-r--r--dom/interfaces/xul/nsIDOMXULButtonElement.idl28
-rw-r--r--dom/interfaces/xul/nsIDOMXULCheckboxElement.idl18
-rw-r--r--dom/interfaces/xul/nsIDOMXULCommandDispatcher.idl34
-rw-r--r--dom/interfaces/xul/nsIDOMXULCommandEvent.idl46
-rw-r--r--dom/interfaces/xul/nsIDOMXULContainerElement.idl68
-rw-r--r--dom/interfaces/xul/nsIDOMXULControlElement.idl23
-rw-r--r--dom/interfaces/xul/nsIDOMXULDescriptionElement.idl15
-rw-r--r--dom/interfaces/xul/nsIDOMXULDocument.idl71
-rw-r--r--dom/interfaces/xul/nsIDOMXULElement.idl83
-rw-r--r--dom/interfaces/xul/nsIDOMXULImageElement.idl12
-rw-r--r--dom/interfaces/xul/nsIDOMXULLabelElement.idl13
-rw-r--r--dom/interfaces/xul/nsIDOMXULLabeledControlEl.idl19
-rw-r--r--dom/interfaces/xul/nsIDOMXULMenuListElement.idl23
-rw-r--r--dom/interfaces/xul/nsIDOMXULMultSelectCntrlEl.idl34
-rw-r--r--dom/interfaces/xul/nsIDOMXULPopupElement.idl30
-rw-r--r--dom/interfaces/xul/nsIDOMXULRelatedElement.idl18
-rw-r--r--dom/interfaces/xul/nsIDOMXULSelectCntrlEl.idl24
-rw-r--r--dom/interfaces/xul/nsIDOMXULSelectCntrlItemEl.idl28
-rw-r--r--dom/interfaces/xul/nsIDOMXULTextboxElement.idl29
-rw-r--r--dom/interfaces/xul/nsIDOMXULTreeElement.idl32
21 files changed, 679 insertions, 0 deletions
diff --git a/dom/interfaces/xul/moz.build b/dom/interfaces/xul/moz.build
new file mode 100644
index 000000000..50bd1d511
--- /dev/null
+++ b/dom/interfaces/xul/moz.build
@@ -0,0 +1,31 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# 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/.
+
+XPIDL_SOURCES += [
+ 'nsIDOMXULButtonElement.idl',
+ 'nsIDOMXULCheckboxElement.idl',
+ 'nsIDOMXULCommandDispatcher.idl',
+ 'nsIDOMXULCommandEvent.idl',
+ 'nsIDOMXULContainerElement.idl',
+ 'nsIDOMXULControlElement.idl',
+ 'nsIDOMXULDescriptionElement.idl',
+ 'nsIDOMXULDocument.idl',
+ 'nsIDOMXULElement.idl',
+ 'nsIDOMXULImageElement.idl',
+ 'nsIDOMXULLabeledControlEl.idl',
+ 'nsIDOMXULLabelElement.idl',
+ 'nsIDOMXULMenuListElement.idl',
+ 'nsIDOMXULMultSelectCntrlEl.idl',
+ 'nsIDOMXULPopupElement.idl',
+ 'nsIDOMXULRelatedElement.idl',
+ 'nsIDOMXULSelectCntrlEl.idl',
+ 'nsIDOMXULSelectCntrlItemEl.idl',
+ 'nsIDOMXULTextboxElement.idl',
+ 'nsIDOMXULTreeElement.idl',
+]
+
+XPIDL_MODULE = 'dom_xul'
+
diff --git a/dom/interfaces/xul/nsIDOMXULButtonElement.idl b/dom/interfaces/xul/nsIDOMXULButtonElement.idl
new file mode 100644
index 000000000..6549f0034
--- /dev/null
+++ b/dom/interfaces/xul/nsIDOMXULButtonElement.idl
@@ -0,0 +1,28 @@
+/* -*- 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 "nsIDOMXULLabeledControlEl.idl"
+
+[scriptable, uuid(d56f1f8f-fc4e-4650-9a85-25108bbd1980)]
+interface nsIDOMXULButtonElement : nsIDOMXULLabeledControlElement {
+ const short CHECKSTATE_UNCHECKED = 0;
+ const short CHECKSTATE_CHECKED = 1;
+ const short CHECKSTATE_MIXED = 2;
+
+ attribute DOMString type;
+ attribute DOMString dlgType;
+
+ // For buttons of type="menu" only.
+ attribute boolean open;
+
+ // For buttons of type="checkbox" only.
+ attribute boolean checked;
+ attribute long checkState;
+ attribute boolean autoCheck;
+
+ // For buttons of type="radio" only.
+ attribute DOMString group;
+};
+
diff --git a/dom/interfaces/xul/nsIDOMXULCheckboxElement.idl b/dom/interfaces/xul/nsIDOMXULCheckboxElement.idl
new file mode 100644
index 000000000..81c0ece92
--- /dev/null
+++ b/dom/interfaces/xul/nsIDOMXULCheckboxElement.idl
@@ -0,0 +1,18 @@
+/* -*- 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 "nsIDOMElement.idl"
+#include "nsIDOMXULLabeledControlEl.idl"
+
+[scriptable, uuid(745518ad-3163-41f0-b358-c81fb5a587bc)]
+interface nsIDOMXULCheckboxElement : nsIDOMXULLabeledControlElement {
+ const short CHECKSTATE_UNCHECKED = 0;
+ const short CHECKSTATE_CHECKED = 1;
+ const short CHECKSTATE_MIXED = 2;
+
+ attribute boolean checked;
+ attribute long checkState;
+ attribute boolean autoCheck;
+};
diff --git a/dom/interfaces/xul/nsIDOMXULCommandDispatcher.idl b/dom/interfaces/xul/nsIDOMXULCommandDispatcher.idl
new file mode 100644
index 000000000..995feaf22
--- /dev/null
+++ b/dom/interfaces/xul/nsIDOMXULCommandDispatcher.idl
@@ -0,0 +1,34 @@
+/* -*- 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 "nsISupports.idl"
+
+interface nsIDOMElement;
+interface nsIController;
+interface nsIControllers;
+interface mozIDOMWindowProxy;
+
+
+[scriptable, uuid(a9fa9fd3-8d62-4f94-9ed8-3ea9c3cf0773)]
+interface nsIDOMXULCommandDispatcher : nsISupports
+{
+ attribute nsIDOMElement focusedElement;
+ attribute mozIDOMWindowProxy focusedWindow;
+
+ void addCommandUpdater(in nsIDOMElement updater,
+ in DOMString events,
+ in DOMString targets);
+ void removeCommandUpdater(in nsIDOMElement updater);
+
+ void updateCommands(in DOMString eventName);
+
+ nsIController getControllerForCommand(in string command);
+ nsIControllers getControllers();
+
+ void advanceFocus();
+ void rewindFocus();
+ void advanceFocusIntoSubtree(in nsIDOMElement elt);
+ attribute boolean suppressFocusScroll;
+};
diff --git a/dom/interfaces/xul/nsIDOMXULCommandEvent.idl b/dom/interfaces/xul/nsIDOMXULCommandEvent.idl
new file mode 100644
index 000000000..c32a9e47d
--- /dev/null
+++ b/dom/interfaces/xul/nsIDOMXULCommandEvent.idl
@@ -0,0 +1,46 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim:set ts=2 sw=2 sts=2 et cindent: */
+/* 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/. */
+
+/**
+ * This interface is supported by command events, which are dispatched to
+ * XUL elements as a result of mouse or keyboard activation.
+ */
+
+#include "nsIDOMUIEvent.idl"
+
+[builtinclass, uuid(564496b4-1174-48ec-927d-edeb66b86757)]
+interface nsIDOMXULCommandEvent : nsIDOMUIEvent
+{
+ /**
+ * Command events support the same set of modifier keys as mouse and key
+ * events.
+ */
+ readonly attribute boolean ctrlKey;
+ readonly attribute boolean shiftKey;
+ readonly attribute boolean altKey;
+ readonly attribute boolean metaKey;
+
+ /**
+ * If the command event was redispatched because of a command= attribute
+ * on the original target, sourceEvent will be set to the original DOM Event.
+ * Otherwise, sourceEvent is null.
+ */
+ readonly attribute nsIDOMEvent sourceEvent;
+
+ /**
+ * Creates a new command event with the given attributes.
+ */
+ void initCommandEvent(in DOMString typeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg,
+ in mozIDOMWindow viewArg,
+ in long detailArg,
+ in boolean ctrlKeyArg,
+ in boolean altKeyArg,
+ in boolean shiftKeyArg,
+ in boolean metaKeyArg,
+ in nsIDOMEvent sourceEvent);
+};
diff --git a/dom/interfaces/xul/nsIDOMXULContainerElement.idl b/dom/interfaces/xul/nsIDOMXULContainerElement.idl
new file mode 100644
index 000000000..a60e6967e
--- /dev/null
+++ b/dom/interfaces/xul/nsIDOMXULContainerElement.idl
@@ -0,0 +1,68 @@
+/* -*- 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 "nsIDOMXULElement.idl"
+interface nsIDOMXULContainerElement;
+
+[scriptable, uuid(800a68c7-b854-4597-a436-3055ce5c5c96)]
+interface nsIDOMXULContainerItemElement : nsISupports
+{
+ /**
+ * Returns the parent container if any.
+ */
+ readonly attribute nsIDOMXULContainerElement parentContainer;
+};
+
+[scriptable, uuid(b2bc96b8-31fc-42f4-937a-bd27291af40b)]
+interface nsIDOMXULContainerElement : nsIDOMXULContainerItemElement
+{
+ /**
+ * Creates an item for the given label and value and appends it to the
+ * container.
+ *
+ * @param aLabel - the label for the new item
+ * @param aValue - the value of the new item
+ */
+ nsIDOMXULElement appendItem(in DOMString aLabel, in DOMString aValue);
+
+ /**
+ * Creates an item for the given label and value and inserts it into the
+ * container at the specified position.
+ *
+ * @param aIndex - the index where the new item will be inserted
+ * @param aLabel - the label for the new item
+ * @param aValue - the value of the new item
+ */
+ nsIDOMXULElement insertItemAt(in long aIndex, in DOMString aLabel,
+ in DOMString aValue);
+
+ /**
+ * Removes an item from the container.
+ *
+ * @param aIndex - index of the item to remove
+ */
+ nsIDOMXULElement removeItemAt(in long aIndex);
+
+ /**
+ * Returns a count of items in the container.
+ */
+ readonly attribute unsigned long itemCount;
+
+ /**
+ * Returns the index of an item or -1 if the item is not in the container.
+ *
+ * @param aItem - the item to determine the index of
+ */
+ long getIndexOfItem(in nsIDOMXULElement aItem);
+
+ /**
+ * Returns the item at a given index or null if the item is not is the
+ * container.
+ *
+ * @param aIndex - the index of the item to return
+ */
+ nsIDOMXULElement getItemAtIndex(in long aIndex);
+};
+
diff --git a/dom/interfaces/xul/nsIDOMXULControlElement.idl b/dom/interfaces/xul/nsIDOMXULControlElement.idl
new file mode 100644
index 000000000..2c88ce9a2
--- /dev/null
+++ b/dom/interfaces/xul/nsIDOMXULControlElement.idl
@@ -0,0 +1,23 @@
+/* -*- 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 "nsIDOMElement.idl"
+#include "nsIDOMXULElement.idl"
+
+interface nsIControllers;
+
+[scriptable, uuid(ea7f92d0-b379-4107-91b4-1e69bdd771e3)]
+interface nsIDOMXULControlElement : nsISupports {
+ attribute boolean disabled;
+ attribute long tabIndex;
+
+// XXX defined in XULElement, but should be defined here
+// readonly attribute nsIControllers controllers;
+
+// void focus();
+// void blur();
+};
+
+
diff --git a/dom/interfaces/xul/nsIDOMXULDescriptionElement.idl b/dom/interfaces/xul/nsIDOMXULDescriptionElement.idl
new file mode 100644
index 000000000..5e772568c
--- /dev/null
+++ b/dom/interfaces/xul/nsIDOMXULDescriptionElement.idl
@@ -0,0 +1,15 @@
+
+/* -*- 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 "nsIDOMXULElement.idl"
+
+[scriptable, uuid(64c3500e-e258-4d49-b7ca-c93ab0931ce4)]
+interface nsIDOMXULDescriptionElement : nsISupports {
+ attribute boolean disabled;
+ attribute boolean crop;
+ attribute DOMString value;
+};
+
diff --git a/dom/interfaces/xul/nsIDOMXULDocument.idl b/dom/interfaces/xul/nsIDOMXULDocument.idl
new file mode 100644
index 000000000..42473226f
--- /dev/null
+++ b/dom/interfaces/xul/nsIDOMXULDocument.idl
@@ -0,0 +1,71 @@
+/* -*- 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 "domstubs.idl"
+#include "nsIDOMDocument.idl"
+
+interface nsIDOMXULCommandDispatcher;
+interface nsIObserver;
+interface nsIBoxObject;
+
+[uuid(7790d4c3-e8f0-4e29-9887-d683ed2b2a44)]
+interface nsIDOMXULDocument : nsIDOMDocument
+{
+ attribute nsIDOMNode popupNode;
+
+ /**
+ * These attributes correspond to trustedGetPopupNode().rangeOffset and
+ * rangeParent. They will help you find where in the DOM the popup is
+ * happening. Can be accessed from chrome only, and only during a popup
+ * event. Accessing any other time will be an error.
+ */
+ readonly attribute nsIDOMNode popupRangeParent;
+ readonly attribute long popupRangeOffset;
+
+ attribute nsIDOMNode tooltipNode;
+
+ readonly attribute nsIDOMXULCommandDispatcher commandDispatcher;
+
+ readonly attribute long width;
+ readonly attribute long height;
+
+ nsIDOMNodeList getElementsByAttribute(in DOMString name,
+ in DOMString value);
+
+ nsIDOMNodeList getElementsByAttributeNS(in DOMString namespaceURI,
+ in DOMString name,
+ in DOMString value);
+
+ void addBroadcastListenerFor(in nsIDOMElement broadcaster,
+ in nsIDOMElement observer,
+ in DOMString attr);
+
+ void removeBroadcastListenerFor(in nsIDOMElement broadcaster,
+ in nsIDOMElement observer,
+ in DOMString attr);
+
+ void persist(in DOMString id, in DOMString attr);
+
+ nsIBoxObject getBoxObjectFor(in nsIDOMElement elt);
+
+ /**
+ * Loads a XUL overlay and merges it with the current document, notifying an
+ * observer when the merge is complete.
+ * @param url
+ * The URL of the overlay to load and merge
+ * @param observer
+ * An object implementing nsIObserver that will be notified with a
+ * message of topic "xul-overlay-merged" when the merge is complete.
+ * The subject parameter of |observe| will QI to a nsIURI - the URI
+ * of the merged overlay. This parameter is optional and may be null.
+ *
+ * NOTICE: In the 2.0 timeframe this API will change such that the
+ * implementation will fire a DOMXULOverlayMerged event upon merge
+ * completion rather than notifying an observer. Do not rely on this
+ * API's behavior _not_ to change because it will!
+ * - Ben Goodger (8/23/2005)
+ */
+ void loadOverlay(in DOMString url, in nsIObserver aObserver);
+};
diff --git a/dom/interfaces/xul/nsIDOMXULElement.idl b/dom/interfaces/xul/nsIDOMXULElement.idl
new file mode 100644
index 000000000..c28a3974a
--- /dev/null
+++ b/dom/interfaces/xul/nsIDOMXULElement.idl
@@ -0,0 +1,83 @@
+/* -*- 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 "nsIDOMElement.idl"
+
+interface nsIRDFCompositeDataSource;
+interface nsIXULTemplateBuilder;
+interface nsIRDFResource;
+interface nsIControllers;
+interface nsIBoxObject;
+
+
+[uuid(75435ab3-6863-42a1-ade3-025393d9e80e)]
+interface nsIDOMXULElement : nsIDOMElement
+{
+ // Layout properties
+ attribute DOMString align;
+ attribute DOMString dir;
+ attribute DOMString flex;
+ attribute DOMString flexGroup;
+ attribute DOMString ordinal;
+ attribute DOMString orient;
+ attribute DOMString pack;
+
+ // Properties for hiding elements.
+ attribute boolean hidden;
+ attribute boolean collapsed;
+
+ // Property for hooking up to broadcasters
+ attribute DOMString observes;
+
+ // Properties for hooking up to popups
+ attribute DOMString menu;
+ attribute DOMString contextMenu;
+ attribute DOMString tooltip;
+
+ // Width/height properties
+ attribute DOMString width;
+ attribute DOMString height;
+ attribute DOMString minWidth;
+ attribute DOMString minHeight;
+ attribute DOMString maxWidth;
+ attribute DOMString maxHeight;
+
+ // Persistence
+ attribute DOMString persist;
+
+ // Position properties for
+ // * popups - these are screen coordinates
+ // * other elements - these are client coordinates relative to parent stack.
+ attribute DOMString left;
+ attribute DOMString top;
+
+ // XUL Template Builder
+ attribute DOMString datasources;
+ attribute DOMString ref;
+
+ // Tooltip and status info
+ attribute DOMString tooltipText;
+ attribute DOMString statusText;
+
+ attribute boolean allowEvents;
+
+ readonly attribute nsIRDFCompositeDataSource database;
+ readonly attribute nsIXULTemplateBuilder builder;
+ readonly attribute nsIRDFResource resource;
+ readonly attribute nsIControllers controllers;
+ readonly attribute nsIBoxObject boxObject;
+
+ void focus();
+ void blur();
+ void click();
+ void doCommand();
+
+ nsIDOMNodeList getElementsByAttribute(in DOMString name,
+ in DOMString value);
+
+ nsIDOMNodeList getElementsByAttributeNS(in DOMString namespaceURI,
+ in DOMString name,
+ in DOMString value);
+};
diff --git a/dom/interfaces/xul/nsIDOMXULImageElement.idl b/dom/interfaces/xul/nsIDOMXULImageElement.idl
new file mode 100644
index 000000000..307d6b8af
--- /dev/null
+++ b/dom/interfaces/xul/nsIDOMXULImageElement.idl
@@ -0,0 +1,12 @@
+/* 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 "nsIDOMElement.idl"
+#include "nsIDOMXULElement.idl"
+
+[scriptable, uuid(0a391077-c509-49d2-af73-72e2114edd65)]
+interface nsIDOMXULImageElement : nsISupports {
+ attribute DOMString src;
+};
+
diff --git a/dom/interfaces/xul/nsIDOMXULLabelElement.idl b/dom/interfaces/xul/nsIDOMXULLabelElement.idl
new file mode 100644
index 000000000..8418386a7
--- /dev/null
+++ b/dom/interfaces/xul/nsIDOMXULLabelElement.idl
@@ -0,0 +1,13 @@
+/* -*- 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 "nsIDOMXULDescriptionElement.idl"
+
+[scriptable, uuid(8b67286b-bf86-4808-8a68-ecdbc7d9877b)]
+interface nsIDOMXULLabelElement : nsIDOMXULDescriptionElement {
+ attribute DOMString accessKey;
+ attribute DOMString control;
+};
+
diff --git a/dom/interfaces/xul/nsIDOMXULLabeledControlEl.idl b/dom/interfaces/xul/nsIDOMXULLabeledControlEl.idl
new file mode 100644
index 000000000..619bca88e
--- /dev/null
+++ b/dom/interfaces/xul/nsIDOMXULLabeledControlEl.idl
@@ -0,0 +1,19 @@
+/* -*- 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 "nsIDOMElement.idl"
+#include "nsIDOMXULControlElement.idl"
+
+[scriptable, uuid(c58a159f-e27d-40c8-865a-d4dcfd928f62)]
+interface nsIDOMXULLabeledControlElement : nsIDOMXULControlElement {
+ attribute DOMString crop;
+ attribute DOMString image;
+ attribute DOMString label;
+ attribute DOMString accessKey;
+ attribute DOMString command;
+
+// void doCommand();
+};
+
diff --git a/dom/interfaces/xul/nsIDOMXULMenuListElement.idl b/dom/interfaces/xul/nsIDOMXULMenuListElement.idl
new file mode 100644
index 000000000..8e87bc6ab
--- /dev/null
+++ b/dom/interfaces/xul/nsIDOMXULMenuListElement.idl
@@ -0,0 +1,23 @@
+/* -*- 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 "nsIDOMXULSelectCntrlEl.idl"
+interface nsIDOMXULTextBoxElement;
+
+[scriptable, uuid(36c16a17-c0e9-4b35-951b-81a147314ef1)]
+interface nsIDOMXULMenuListElement : nsIDOMXULSelectControlElement {
+ attribute boolean editable;
+ attribute boolean open;
+
+ // label of selected option or value of textfield for editable menu lists
+ readonly attribute DOMString label;
+
+ attribute DOMString crop;
+ attribute DOMString image;
+
+ // For editable menu lists only.
+ readonly attribute nsIDOMNode inputField;
+};
+
diff --git a/dom/interfaces/xul/nsIDOMXULMultSelectCntrlEl.idl b/dom/interfaces/xul/nsIDOMXULMultSelectCntrlEl.idl
new file mode 100644
index 000000000..26a45df28
--- /dev/null
+++ b/dom/interfaces/xul/nsIDOMXULMultSelectCntrlEl.idl
@@ -0,0 +1,34 @@
+/* -*- 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 "nsIDOMXULSelectCntrlEl.idl"
+
+[scriptable, uuid(40654a10-8204-4f06-9f21-7baa31c7b1dd)]
+interface nsIDOMXULMultiSelectControlElement : nsIDOMXULSelectControlElement
+{
+ attribute DOMString selType;
+
+ attribute nsIDOMXULSelectControlItemElement currentItem;
+ attribute long currentIndex;
+
+ readonly attribute nsIDOMNodeList selectedItems;
+
+ void addItemToSelection(in nsIDOMXULSelectControlItemElement item);
+ void removeItemFromSelection(in nsIDOMXULSelectControlItemElement item);
+ void toggleItemSelection(in nsIDOMXULSelectControlItemElement item);
+
+ void selectItem(in nsIDOMXULSelectControlItemElement item);
+ void selectItemRange(in nsIDOMXULSelectControlItemElement startItem, in nsIDOMXULSelectControlItemElement item);
+
+ void selectAll();
+ void invertSelection();
+ void clearSelection();
+
+ // XXX - temporary, pending implementation of scriptable,
+ // mutable nsIDOMNodeList for selectedItems
+ readonly attribute long selectedCount;
+ [binaryname(MultiGetSelectedItem)]
+ nsIDOMXULSelectControlItemElement getSelectedItem(in long index);
+};
diff --git a/dom/interfaces/xul/nsIDOMXULPopupElement.idl b/dom/interfaces/xul/nsIDOMXULPopupElement.idl
new file mode 100644
index 000000000..59775174f
--- /dev/null
+++ b/dom/interfaces/xul/nsIDOMXULPopupElement.idl
@@ -0,0 +1,30 @@
+/* -*- 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 "nsIDOMElement.idl"
+#include "nsIDOMXULElement.idl"
+
+[scriptable, uuid(cb7eaa79-45d5-4ea3-ae17-b65fdcfe5e30)]
+interface nsIDOMXULPopupElement : nsISupports {
+ const unsigned short BEFORE_START = 1;
+ const unsigned short BEFORE_END = 2;
+ const unsigned short AFTER_START = 3;
+ const unsigned short AFTER_END = 4;
+ const unsigned short START_BEFORE = 5;
+ const unsigned short START_AFTER = 6;
+ const unsigned short END_BEFORE = 7;
+ const unsigned short END_AFTER = 8;
+ const unsigned short OVERLAP = 9;
+ const unsigned short AT_POINTER = 10;
+ const unsigned short AFTER_POINTER = 11;
+
+ attribute DOMString position;
+
+ void showPopup(in unsigned short alignment,
+ in nsIDOMElement target,
+ in nsIDOMElement anchor);
+ void hidePopup();
+};
+
diff --git a/dom/interfaces/xul/nsIDOMXULRelatedElement.idl b/dom/interfaces/xul/nsIDOMXULRelatedElement.idl
new file mode 100644
index 000000000..33bc3d3c7
--- /dev/null
+++ b/dom/interfaces/xul/nsIDOMXULRelatedElement.idl
@@ -0,0 +1,18 @@
+/* -*- 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 "domstubs.idl"
+
+[scriptable, uuid(9fbac05a-fb27-470d-8e5f-028b2dc54ad0)]
+interface nsIDOMXULRelatedElement : nsISupports
+{
+ /**
+ * Retrun an element associated with the given element. It's implemented
+ * by container elements having relation between their items. For example,
+ * this interface is implemented by XUL tabs and XUL tabpanels elements
+ * and used to get XUL tab element by linked tab panel and vice versa.
+ */
+ nsIDOMNode getRelatedElement(in nsIDOMNode aElement);
+};
diff --git a/dom/interfaces/xul/nsIDOMXULSelectCntrlEl.idl b/dom/interfaces/xul/nsIDOMXULSelectCntrlEl.idl
new file mode 100644
index 000000000..412638272
--- /dev/null
+++ b/dom/interfaces/xul/nsIDOMXULSelectCntrlEl.idl
@@ -0,0 +1,24 @@
+/* -*- 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 "nsIDOMXULControlElement.idl"
+interface nsIDOMXULSelectControlItemElement;
+
+[scriptable, uuid(9bf188a7-d6f9-431b-b5c7-118013998e8b)]
+interface nsIDOMXULSelectControlElement : nsIDOMXULControlElement {
+ attribute nsIDOMXULSelectControlItemElement selectedItem;
+ attribute long selectedIndex;
+
+ attribute DOMString value;
+
+ nsIDOMXULSelectControlItemElement appendItem(in DOMString label, in DOMString value);
+ nsIDOMXULSelectControlItemElement insertItemAt(in long index, in DOMString label, in DOMString value);
+ nsIDOMXULSelectControlItemElement removeItemAt(in long index);
+
+ readonly attribute unsigned long itemCount;
+ long getIndexOfItem(in nsIDOMXULSelectControlItemElement item);
+ nsIDOMXULSelectControlItemElement getItemAtIndex(in long index);
+};
+
diff --git a/dom/interfaces/xul/nsIDOMXULSelectCntrlItemEl.idl b/dom/interfaces/xul/nsIDOMXULSelectCntrlItemEl.idl
new file mode 100644
index 000000000..590f8cab8
--- /dev/null
+++ b/dom/interfaces/xul/nsIDOMXULSelectCntrlItemEl.idl
@@ -0,0 +1,28 @@
+/* -*- 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 "nsIDOMXULElement.idl"
+interface nsIDOMXULSelectControlElement;
+
+[scriptable, uuid(5c6be58f-17df-4750-88a5-4a59ac28adc9)]
+interface nsIDOMXULSelectControlItemElement : nsISupports {
+ attribute boolean disabled;
+ attribute DOMString crop;
+ attribute DOMString image;
+ attribute DOMString label;
+ attribute DOMString accessKey;
+ attribute DOMString command;
+
+ attribute DOMString value;
+
+ readonly attribute boolean selected;
+
+ readonly attribute nsIDOMXULSelectControlElement control;
+
+ // XXX defined in XULElement, but should be defined here
+ // void doCommand();
+};
+
+
diff --git a/dom/interfaces/xul/nsIDOMXULTextboxElement.idl b/dom/interfaces/xul/nsIDOMXULTextboxElement.idl
new file mode 100644
index 000000000..8a2aab1e8
--- /dev/null
+++ b/dom/interfaces/xul/nsIDOMXULTextboxElement.idl
@@ -0,0 +1,29 @@
+/* -*- Mode: C++; 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 "nsIDOMXULLabeledControlEl.idl"
+interface nsIDOMHTMLInputElement;
+
+[scriptable, uuid(7edd8215-5155-4845-a02f-dc2c08645cb9)]
+interface nsIDOMXULTextBoxElement : nsIDOMXULControlElement
+{
+ // inputField may be any type of editable field, such as an
+ // HTML <input type="text"> or <textarea>
+ readonly attribute nsIDOMNode inputField;
+
+ readonly attribute long textLength;
+ attribute long maxLength;
+ attribute long size;
+ attribute long selectionStart;
+ attribute long selectionEnd;
+
+ attribute DOMString value;
+ attribute DOMString type;
+
+ void select();
+ void setSelectionRange(in long selectionStart,
+ in long selectionEnd);
+};
+
diff --git a/dom/interfaces/xul/nsIDOMXULTreeElement.idl b/dom/interfaces/xul/nsIDOMXULTreeElement.idl
new file mode 100644
index 000000000..a45bafdcf
--- /dev/null
+++ b/dom/interfaces/xul/nsIDOMXULTreeElement.idl
@@ -0,0 +1,32 @@
+/* -*- Mode: C++; 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 "nsIDOMXULElement.idl"
+#include "nsIDOMElement.idl"
+
+interface nsITreeColumns;
+interface nsITreeView;
+interface nsIDOMXULTextBoxElement;
+
+/**
+ * @status UNDER_DEVELOPMENT
+ */
+
+[scriptable, uuid(013b62af-1e2f-4b07-9091-d7c0fc4687e2)]
+interface nsIDOMXULTreeElement : nsISupports
+{
+
+ readonly attribute nsITreeColumns columns;
+
+ attribute nsITreeView view;
+
+ readonly attribute nsIDOMElement body;
+
+ attribute boolean editable;
+
+ // For editable trees only.
+ readonly attribute nsIDOMXULTextBoxElement inputField;
+
+};