michael@0: /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this file, michael@0: * You can obtain one at http://mozilla.org/MPL/2.0/. michael@0: */ michael@0: michael@0: interface MozBoxObject; michael@0: interface MozControllers; michael@0: interface MozFrameLoader; michael@0: interface MozRDFCompositeDataSource; michael@0: interface MozRDFResource; michael@0: interface MozXULTemplateBuilder; michael@0: michael@0: [Func="IsChromeOrXBL"] michael@0: interface XULElement : Element { michael@0: [SetterThrows] michael@0: attribute DOMString className; michael@0: michael@0: // Layout properties michael@0: [SetterThrows] michael@0: attribute DOMString align; michael@0: [SetterThrows] michael@0: attribute DOMString dir; michael@0: [SetterThrows] michael@0: attribute DOMString flex; michael@0: [SetterThrows] michael@0: attribute DOMString flexGroup; michael@0: [SetterThrows] michael@0: attribute DOMString ordinal; michael@0: [SetterThrows] michael@0: attribute DOMString orient; michael@0: [SetterThrows] michael@0: attribute DOMString pack; michael@0: michael@0: // Properties for hiding elements. michael@0: attribute boolean hidden; michael@0: attribute boolean collapsed; michael@0: michael@0: // Property for hooking up to broadcasters michael@0: [SetterThrows] michael@0: attribute DOMString observes; michael@0: michael@0: // Properties for hooking up to popups michael@0: [SetterThrows] michael@0: attribute DOMString menu; michael@0: [SetterThrows] michael@0: attribute DOMString contextMenu; michael@0: [SetterThrows] michael@0: attribute DOMString tooltip; michael@0: michael@0: // Width/height properties michael@0: [SetterThrows] michael@0: attribute DOMString width; michael@0: [SetterThrows] michael@0: attribute DOMString height; michael@0: [SetterThrows] michael@0: attribute DOMString minWidth; michael@0: [SetterThrows] michael@0: attribute DOMString minHeight; michael@0: [SetterThrows] michael@0: attribute DOMString maxWidth; michael@0: [SetterThrows] michael@0: attribute DOMString maxHeight; michael@0: michael@0: // Persistence michael@0: [SetterThrows] michael@0: attribute DOMString persist; michael@0: michael@0: // Position properties for michael@0: // * popups - these are screen coordinates michael@0: // * other elements - these are client coordinates relative to parent stack. michael@0: [SetterThrows] michael@0: attribute DOMString left; michael@0: [SetterThrows] michael@0: attribute DOMString top; michael@0: michael@0: // XUL Template Builder michael@0: [SetterThrows] michael@0: attribute DOMString datasources; michael@0: [SetterThrows] michael@0: attribute DOMString ref; michael@0: michael@0: // Tooltip and status info michael@0: [SetterThrows] michael@0: attribute DOMString tooltipText; michael@0: [SetterThrows] michael@0: attribute DOMString statusText; michael@0: michael@0: attribute boolean allowEvents; michael@0: michael@0: readonly attribute MozRDFCompositeDataSource? database; michael@0: readonly attribute MozXULTemplateBuilder? builder; michael@0: [Throws] michael@0: readonly attribute MozRDFResource? resource; michael@0: [Throws] michael@0: readonly attribute MozControllers controllers; michael@0: [Throws] michael@0: readonly attribute MozBoxObject? boxObject; michael@0: michael@0: [Throws] michael@0: void focus(); michael@0: [Throws] michael@0: void blur(); michael@0: [Throws] michael@0: void click(); michael@0: void doCommand(); michael@0: michael@0: // XXXbz this isn't really a nodelist! See bug 818548 michael@0: NodeList getElementsByAttribute(DOMString name, michael@0: DOMString value); michael@0: // XXXbz this isn't really a nodelist! See bug 818548 michael@0: [Throws] michael@0: NodeList getElementsByAttributeNS(DOMString namespaceURI, michael@0: DOMString name, michael@0: DOMString value); michael@0: [Constant] michael@0: readonly attribute CSSStyleDeclaration style; michael@0: }; michael@0: michael@0: // And the things from nsIFrameLoaderOwner michael@0: [NoInterfaceObject] michael@0: interface MozFrameLoaderOwner { michael@0: [ChromeOnly] michael@0: readonly attribute MozFrameLoader? frameLoader; michael@0: michael@0: [ChromeOnly, Throws] michael@0: void swapFrameLoaders(XULElement aOtherOwner); michael@0: }; michael@0: michael@0: XULElement implements GlobalEventHandlers; michael@0: XULElement implements TouchEventHandlers; michael@0: XULElement implements MozFrameLoaderOwner; michael@0: XULElement implements OnErrorEventHandlerForNodes;