/* * Copyright (c) 2000 World Wide Web Consortium, * (Massachusetts Institute of Technology, Institut National de * Recherche en Informatique et en Automatique, Keio University). All * Rights Reserved. This program is distributed under the W3C's Software * Intellectual Property License. This program is distributed in the * hope that it will be useful, but WITHOUT ANY WARRANTY; without even * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more * details. */ // File: smil.idl #ifndef _SMIL_IDL_ #define _SMIL_IDL_ #include "dom.idl" #include "views.idl" #include "events.idl" #pragma prefix "dom.w3c.org" module smil { typedef dom::DOMString DOMString; typedef dom::Element Element; typedef dom::NodeList NodeList; typedef dom::Document Document; interface SMILRegionElement; interface ElementLayout { attribute DOMString title; // raises(dom::DOMException) on setting attribute DOMString backgroundColor; // raises(dom::DOMException) on setting attribute long height; // raises(dom::DOMException) on setting attribute long width; // raises(dom::DOMException) on setting }; interface SMILRegionInterface { attribute SMILRegionElement region; }; interface Time { readonly attribute boolean resolved; readonly attribute double resolvedOffset; // TimeTypes const unsigned short SMIL_TIME_INDEFINITE = 0; const unsigned short SMIL_TIME_OFFSET = 1; const unsigned short SMIL_TIME_SYNC_BASED = 2; const unsigned short SMIL_TIME_EVENT_BASED = 3; const unsigned short SMIL_TIME_WALLCLOCK = 4; const unsigned short SMIL_TIME_MEDIA_MARKER = 5; readonly attribute unsigned short timeType; attribute double offset; // raises(dom::DOMException) on setting attribute Element baseElement; // raises(dom::DOMException) on setting attribute boolean baseBegin; // raises(dom::DOMException) on setting attribute DOMString event; // raises(dom::DOMException) on setting attribute DOMString marker; // raises(dom::DOMException) on setting }; interface TimeList { Time item(in unsigned long index); readonly attribute unsigned long length; }; interface ElementTime { attribute TimeList begin; // raises(dom::DOMException) on setting attribute TimeList end; // raises(dom::DOMException) on setting attribute float dur; // raises(dom::DOMException) on setting // restartTypes const unsigned short RESTART_ALWAYS = 0; const unsigned short RESTART_NEVER = 1; const unsigned short RESTART_WHEN_NOT_ACTIVE = 2; attribute unsigned short restart; // raises(dom::DOMException) on setting // fillTypes const unsigned short FILL_REMOVE = 0; const unsigned short FILL_FREEZE = 1; attribute unsigned short fill; // raises(dom::DOMException) on setting attribute float repeatCount; // raises(dom::DOMException) on setting attribute float repeatDur; // raises(dom::DOMException) on setting boolean beginElement(); boolean endElement(); void pauseElement(); void resumeElement(); void seekElement(inout float seekTo); }; interface ElementTimeManipulation { attribute float speed; // raises(dom::DOMException) on setting attribute float accelerate; // raises(dom::DOMException) on setting attribute float decelerate; // raises(dom::DOMException) on setting attribute boolean autoReverse; // raises(dom::DOMException) on setting }; interface ElementTimeContainer : ElementTime { readonly attribute NodeList timeChildren; NodeList getActiveChildrenAt(in float instant); }; interface ElementSyncBehavior { readonly attribute DOMString syncBehavior; readonly attribute float syncTolerance; readonly attribute DOMString defaultSyncBehavior; readonly attribute float defaultSyncTolerance; readonly attribute boolean syncMaster; }; interface ElementParallelTimeContainer : ElementTimeContainer { attribute DOMString endSync; // raises(dom::DOMException) on setting float getImplicitDuration(); }; interface ElementSequentialTimeContainer : ElementTimeContainer { }; interface ElementExclusiveTimeContainer : ElementTimeContainer { attribute DOMString endSync; // raises(dom::DOMException) on setting NodeList getPausedElements(); }; interface ElementTimeControl { boolean beginElement() raises(dom::DOMException); boolean beginElementAt(in float offset) raises(dom::DOMException); boolean endElement() raises(dom::DOMException); boolean endElementAt(in float offset) raises(dom::DOMException); }; interface ElementTargetAttributes { attribute DOMString attributeName; // attributeTypes const unsigned short ATTRIBUTE_TYPE_AUTO = 0; const unsigned short ATTRIBUTE_TYPE_CSS = 1; const unsigned short ATTRIBUTE_TYPE_XML = 2; attribute unsigned short attributeType; }; interface ElementTest { attribute long systemBitrate; // raises(dom::DOMException) on setting attribute boolean systemCaptions; // raises(dom::DOMException) on setting attribute DOMString systemLanguage; // raises(dom::DOMException) on setting readonly attribute boolean systemRequired; readonly attribute boolean systemScreenSize; readonly attribute boolean systemScreenDepth; attribute DOMString systemOverdubOrSubtitle; // raises(dom::DOMException) on setting attribute boolean systemAudioDesc; // raises(dom::DOMException) on setting }; interface SMILDocument : Document, ElementSequentialTimeContainer { }; interface SMILElement : Element { attribute DOMString id; // raises(dom::DOMException) on setting }; interface SMILLayoutElement : SMILElement { readonly attribute DOMString type; readonly attribute boolean resolved; }; interface SMILTopLayoutElement : SMILElement, ElementLayout { }; interface SMILRootLayoutElement : SMILElement, ElementLayout { }; interface SMILRegionElement : SMILElement, ElementLayout { attribute DOMString fit; // raises(dom::DOMException) on setting attribute DOMString top; // raises(dom::DOMException) on setting attribute long zIndex; // raises(dom::DOMException) on setting }; interface TimeEvent : events::Event { readonly attribute views::AbstractView view; readonly attribute long detail; void initTimeEvent(in DOMString typeArg, in views::AbstractView viewArg, in long detailArg); }; interface SMILMediaElement : ElementTime, SMILElement { attribute DOMString abstractAttr; // raises(dom::DOMException) on setting attribute DOMString alt; // raises(dom::DOMException) on setting attribute DOMString author; // raises(dom::DOMException) on setting attribute DOMString clipBegin; // raises(dom::DOMException) on setting attribute DOMString clipEnd; // raises(dom::DOMException) on setting attribute DOMString copyright; // raises(dom::DOMException) on setting attribute DOMString longdesc; // raises(dom::DOMException) on setting attribute DOMString port; // raises(dom::DOMException) on setting attribute DOMString readIndex; // raises(dom::DOMException) on setting attribute DOMString rtpformat; // raises(dom::DOMException) on setting attribute DOMString src; // raises(dom::DOMException) on setting attribute DOMString stripRepeat; // raises(dom::DOMException) on setting attribute DOMString title; // raises(dom::DOMException) on setting attribute DOMString transport; // raises(dom::DOMException) on setting attribute DOMString type; // raises(dom::DOMException) on setting }; interface SMILRefElement : SMILMediaElement { }; interface SMILAnimation : SMILElement, ElementTargetAttributes, ElementTime, ElementTimeControl { // additiveTypes const unsigned short ADDITIVE_REPLACE = 0; const unsigned short ADDITIVE_SUM = 1; attribute unsigned short additive; // raises(dom::DOMException) on setting // accumulateTypes const unsigned short ACCUMULATE_NONE = 0; const unsigned short ACCUMULATE_SUM = 1; attribute unsigned short accumulate; // raises(dom::DOMException) on setting // calcModeTypes const unsigned short CALCMODE_DISCRETE = 0; const unsigned short CALCMODE_LINEAR = 1; const unsigned short CALCMODE_PACED = 2; const unsigned short CALCMODE_SPLINE = 3; attribute unsigned short calcMode; // raises(dom::DOMException) on setting attribute DOMString keySplines; // raises(dom::DOMException) on setting attribute TimeList keyTimes; // raises(dom::DOMException) on setting attribute DOMString values; // raises(dom::DOMException) on setting attribute DOMString from; // raises(dom::DOMException) on setting attribute DOMString to; // raises(dom::DOMException) on setting attribute DOMString by; // raises(dom::DOMException) on setting }; interface SMILAnimateElement : SMILAnimation { }; interface SMILSetElement : ElementTimeControl, ElementTime, ElementTargetAttributes, SMILElement { attribute DOMString to; }; interface SMILAnimateMotionElement : SMILAnimateElement { attribute DOMString path; // raises(dom::DOMException) on setting attribute DOMString origin; // raises(dom::DOMException) on setting }; interface SMILAnimateColorElement : SMILAnimation { }; interface SMILSwitchElement : SMILElement { Element getSelectedElement(); }; }; #endif // _SMIL_IDL_