From: ishmal Date: Thu, 24 Apr 2008 21:12:18 +0000 (+0000) Subject: More documentation. Clean up SMIL a bit. SMIL needs more work, too. X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=41ee6c8aa5dac9bcaa8114cf7c27feddf5d0a252;p=inkscape.git More documentation. Clean up SMIL a bit. SMIL needs more work, too. --- diff --git a/src/dom/smil.h b/src/dom/smil.h index a226dc65b..fdeb0994d 100644 --- a/src/dom/smil.h +++ b/src/dom/smil.h @@ -27,6 +27,11 @@ * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + * =========================================================================== + * NOTES + * + * http://www.w3.org/TR/smil-boston-dom */ @@ -66,24 +71,40 @@ class ElementTime; class ElementTimeContainer; class ElementTimeControl; class ElementTimeManipulation; +class Time; +class TimeEvent; +class TimeList; + class SMILAnimateColorElement; +typedef Ptr SMILAnimateColorElementPtr; class SMILAnimateElement; +typedef Ptr SMILAnimateElementPtr; class SMILAnimateMotionElement; +typedef Ptr SMILAnimateMotionElementPtr; class SMILAnimation; +typedef Ptr SMILAnimationPtr; class SMILDocument; +typedef Ptr SMILDocumentPtr; class SMILElement; +typedef Ptr SMILElementPtr; class SMILLayoutElement; +typedef Ptr SMILLayoutElementPtr; class SMILMediaElement; +typedef Ptr SMILMediaElementPtr; class SMILRefElement; +typedef Ptr SMILRefElementPtr; class SMILRegionElement; +typedef Ptr SMILRegionElementPtr; class SMILRegionInterface; +typedef Ptr SMILRegionInterfacePtr; class SMILRootLayoutElement; +typedef Ptr SMILRootLayoutElementPtr; class SMILSetElement; +typedef Ptr SMILSetElementPtr; class SMILSwitchElement; +typedef Ptr SMILSwitchElementPtr; class SMILTopLayoutElement; -class Time; -class TimeEvent; -class TimeList; +typedef Ptr SMILTopLayoutElementPtr; @@ -100,7 +121,7 @@ class TimeList; #########################################################################*/ /** - * + * This interface is used by SMIL elements root-layout, top-layout and region. */ class ElementLayout { @@ -108,49 +129,49 @@ public: /** - * + * Return the title of an item implementing this interface */ virtual DOMString getTitle() { return title; } /** - * + * Set the title of an item implementing this interface */ virtual void setTitle(const DOMString &val) throw(dom::DOMException) { title = val; } /** - * + * Return the background color of an item implementing this interface */ virtual DOMString getBackgroundColor() { return backgroundColor; } /** - * + * Set the background color of an item implementing this interface */ virtual void setBackgroundColor(const DOMString &val) throw(dom::DOMException) { backgroundColor = val; } /** - * + * Return the height of an item implementing this interface */ virtual long getHeight() { return height; } /** - * + * Set the height of an item implementing this interface */ virtual void setHeight(long val) throw(dom::DOMException) { height = val; } /** - * + * Return the width of an item implementing this interface */ virtual long getWidth() { return width; } /** - * + * Set the width of an item implementing this interface */ virtual void setWidth(long val) throw(dom::DOMException) { width = val; } @@ -197,22 +218,23 @@ protected: #########################################################################*/ /** - * + * Declares rendering surface for an element. See the region attribute definition. */ class SMILRegionInterface { public: /** - * + * Gets an associated region element */ - virtual SMILRegionElement *getRegion() + virtual SMILRegionElementPtr getRegion() { return regionElement; } + /** - * + * Sets an associated region element */ - virtual void setRegion(const SMILRegionElement *val) - { regionElement = (SMILRegionElement *)val; } + virtual void setRegion(const SMILRegionElementPtr val) + { regionElement = val; } //################## //# Non-API methods @@ -222,7 +244,7 @@ public: * */ SMILRegionInterface() - { regionElement = NULL; } + { } /** * @@ -230,6 +252,15 @@ public: SMILRegionInterface(const SMILRegionInterface &other) { regionElement = other.regionElement; } + /** + * + */ + SMILRegionInterface& operator=(const SMILRegionInterface &other) + { + regionElement = other.regionElement; + return *this; + } + /** * */ @@ -237,7 +268,7 @@ public: protected: - SMILRegionElement *regionElement; + SMILRegionElementPtr regionElement; }; @@ -247,7 +278,9 @@ protected: #########################################################################*/ /** - * + * The Time interface is a datatype that represents times within the timegraph. + * A Time has a type, key values to describe the time, and a boolean to + * indicate whether the values are currently unresolved. */ class Time { @@ -255,17 +288,31 @@ public: /** - * + * A boolean indicating whether the current Time has been fully resolved to the + * document schedule. Note that for this to be true, the current Time must be + * defined (not indefinite), the syncbase and all Time's that the syncbase + * depends on must be defined (not indefinite), and the begin Time of all + * ascendent time containers of this element and all Time elements that this + * depends upon must be defined (not indefinite). If this Time is based upon an + * event, this Time will only be resolved once the specified event has happened, + * subject to the constraints of the time container. Note that this may change + * from true to false when the parent time container ends its simple duration + * (including when it repeats or restarts). */ virtual bool getResolved() { return resolved; } /** - * + * The clock value in seconds relative to the parent time container begin. This + * indicates the resolved time relationship to the parent time container. This is + * only valid if resolved is true. */ virtual double getResolvedOffset() { return resolvedOffset; } + /** + * An integer indicating the type of this time value. + */ typedef enum { SMIL_TIME_INDEFINITE = 0, @@ -274,73 +321,78 @@ public: SMIL_TIME_EVENT_BASED = 3, SMIL_TIME_WALLCLOCK = 4, SMIL_TIME_MEDIA_MARKER = 5 - } TimeTypes; + } TimeType; /** - * + * A code representing the type of the underlying object, as defined above. */ virtual unsigned short getTimeType() { return timeType; } /** - * + * The clock value in seconds relative to the syncbase or eventbase. + * Default value is 0. */ virtual double getOffset() { return offset; } /** - * + * Set the value above */ virtual void setOffset(double val) throw (dom::DOMException) { offset = val; } /** - * + * Get the base element for a sync-based or event-based time. */ - virtual Element *getBaseElement() + virtual ElementPtr getBaseElement() { return baseElement; } /** - * + * Set the base element for a sync-based or event-based time. */ - virtual void setBaseElement(const Element *val) throw (dom::DOMException) - { baseElement = (Element *)val; } + virtual void setBaseElement(const ElementPtr val) throw (dom::DOMException) + { baseElement = val; } /** - * + * If true, indicates that a sync-based time is relative to the begin of the + * baseElement. If false, indicates that a sync-based time is relative to the + * active end of the baseElement. */ virtual bool getBaseBegin() { return baseBegin; } /** - * + * Set the value above. */ virtual void setBaseBegin(bool val) throw (dom::DOMException) { baseBegin = val; } /** - * + * Get the name of the event for an event-based time. Default value is null. */ virtual DOMString getEvent() { return eventStr; } /** - * + * Set the name of the event for an event-based time. Default value is null. */ virtual void setEvent(const DOMString &val) throw (dom::DOMException) { eventStr = val; } /** - * + * Get the name of the marker from the media element, for media marker + * times. Default value is null. */ virtual DOMString getMarker() { return marker; } /** - * + * Set the name of the marker from the media element, for media marker + * times. Default value is null. */ virtual void setMarker(const DOMString &val) throw (dom::DOMException) { marker = val; } @@ -360,7 +412,7 @@ public: resolvedOffset = 0.0; timeType = SMIL_TIME_INDEFINITE; offset = 0.0; - baseElement = NULL; + //baseElement = NULL; //not necessary baseBegin = false; eventStr = ""; marker = ""; @@ -370,7 +422,21 @@ public: * */ Time(const Time &other) - { + { + assign(other); + } + + /** + * + */ + Time &operator=(const Time &other) + { + assign(other); + return *this; + } + + void assign(const Time &other) + { resolved = other.resolved; resolvedOffset = other.resolvedOffset; timeType = other.timeType; @@ -379,7 +445,7 @@ public: baseBegin = other.baseBegin; eventStr = other.eventStr; marker = other.marker; - } + } /** * @@ -392,7 +458,7 @@ protected: double resolvedOffset; unsigned short timeType; double offset; - Element * baseElement; + ElementPtr baseElement; bool baseBegin; DOMString eventStr; DOMString marker; @@ -405,15 +471,18 @@ protected: #########################################################################*/ /** - * + * The TimeList interface provides the abstraction of an ordered collection of + * times, without defining or constraining how this collection is implemented. + * + * The items in the TimeList are accessible via an integral index, starting from 0. */ class TimeList { public: - /** - * + * Returns the indexth item in the collection. If index is greater than or equal + * to the number of times in the list, this returns null. */ virtual Time item(unsigned long index) { @@ -426,13 +495,16 @@ public: } /** - * + * The number of times in the list. The range of valid child time + * indices is 0 to length-1 inclusive. */ virtual unsigned long getLength() { return items.size(); } + + //################## //# Non-API methods //################## @@ -450,6 +522,15 @@ public: items = other.items; } + /** + * + */ + TimeList &operator=(const TimeList &other) + { + items = other.items; + return *this; + } + /** * */ @@ -468,7 +549,8 @@ protected: #########################################################################*/ /** - * + * This interface defines the set of timing attributes that are common to + * all timed elements. */ class ElementTime { @@ -476,106 +558,120 @@ public: /** - * + * Get the desired value (as a list of times) of the begin instant of this node. */ - virtual TimeList getBegin() + virtual TimeList &getBegin() { return beginTime; } /** - * + * Set the desired value (as a list of times) of the begin instant of this node. */ virtual void setBegin(const TimeList &val) throw(dom::DOMException) { beginTime = val; } + /** - * + * Set the list of active ends for this node. */ - virtual TimeList getEnd() + virtual TimeList &getEnd() { return endTime; } /** - * + * Set the list of active ends for this node. */ virtual void setEnd(const TimeList &val) throw(dom::DOMException) { endTime = val; } /** - * + * Get the desired simple duration value of this node in seconds. + * Negative value means "indefinite". */ virtual double getDur() { return dur; } /** - * + * Set the desired simple duration value of this node in seconds. + * Negative value means "indefinite". */ virtual void setDur(double val) throw(dom::DOMException) { dur = val; } + /** + * An integer indicating the value of the restart attribute. + */ typedef enum { RESTART_ALWAYS = 0, RESTART_NEVER = 1, RESTART_WHEN_NOT_ACTIVE = 2 - } RestartTypes; + } RestartType; /** - * + * Get code representing the value of the restart attribute, + * as defined above. Default value is RESTART_ALWAYS. */ virtual unsigned short getRestart() { return restart; } /** - * + * Set code representing the value of the restart attribute, + * as defined above. Default value is RESTART_ALWAYS. */ virtual void setRestart(unsigned short val) throw (dom::DOMException) { restart = val; } - // fillTypes + /** + * An integer indicating the value of the fill attribute. + */ typedef enum { FILL_REMOVE = 0, FILL_FREEZE = 1 - } FillTypes; + } FillType; /** - * + * Get code representing the value of the fill attribute, as defined above. + * Default value is FILL_REMOVE. */ virtual unsigned short getFill() { return fill; } /** - * + * Set code representing the value of the fill attribute, as defined above. */ virtual void setFill(unsigned short val) throw (dom::DOMException) { fill = val; } /** - * + * The repeatCount attribute causes the element to play repeatedly (loop) for the + * specified number of times. A negative value repeat the element indefinitely. + * Default value is 0 (unspecified). */ virtual double getRepeatCount() { return repeatCount; } /** - * + * Set the value above. */ virtual void setRepeatCount(double val) throw (dom::DOMException) { repeatCount = val; } /** - * + * The repeatDur causes the element to play repeatedly (loop) for the specified + * duration in milliseconds. Negative means "indefinite". */ virtual double getRepeatDur() { return repeatDur; } /** - * + * Set the value above. */ virtual void setRepeatDur(double val) throw (dom::DOMException) { repeatDur = val; } /** - * + * Causes this element to begin the local timeline (subject to sync constraints). */ virtual bool beginElement() { @@ -583,7 +679,7 @@ public: } /** - * + * Causes this element to end the local timeline (subject to sync constraints). */ virtual bool endElement() { @@ -591,21 +687,23 @@ public: } /** - * + * Causes this element to pause the local timeline (subject to sync constraints). */ virtual void pauseElement() { } /** - * + * Causes this element to resume a paused local timeline. */ virtual void resumeElement() { } /** - * + * Seeks this element to the specified point on the local timeline (subject to + * sync constraints). If this is a timeline, this must seek the entire timeline + * (i.e. propagate to all timeChildren). */ virtual void seekElement(double &/*seekTo*/) { @@ -632,6 +730,23 @@ public: * */ ElementTime(const ElementTime &other) + { + assign(other); + } + + /** + * + */ + ElementTime &operator=(const ElementTime &other) + { + assign(other); + return *this; + } + + /** + * + */ + void assign(const ElementTime &other) { beginTime = other.beginTime; endTime = other.endTime; @@ -641,7 +756,7 @@ public: repeatCount = other.repeatCount; repeatDur = other.repeatDur; } - + /** * */ @@ -667,54 +782,66 @@ protected: #########################################################################*/ /** - * + * This interface support use-cases commonly associated with animation. */ class ElementTimeManipulation { public: /** - * + * Defines the playback speed of element time. The value is specified as a + * multiple of normal (parent time container) play speed. Legal values are signed + * floating point values. Zero values are not allowed. The default is 1.0 (no + * modification of speed). */ virtual double getSpeed() { return speed; } + /** - * + * Sets the value above. */ virtual void setSpeed(double val) throw (dom::DOMException) { speed = val; } + /** - * + * The percentage value of the simple acceleration of time for the element. + * Allowed values are from 0 to 100. Default value is 0 (no acceleration). The + * sum of the values for accelerate and decelerate must not exceed 100. If it + * does, the deceleration value will be reduced to make the sum legal. */ virtual double getAccelerate() { return accelerate; } /** - * + * Sets the value above. */ virtual void setAccelerate(double val) throw (dom::DOMException) { accelerate = val; } /** - * + * The percentage value of the simple decelerate of time for the element. Allowed + * values are from 0 to 100. Default value is 0 (no deceleration). The sum of the + * values for accelerate and decelerate must not exceed 100. If it does, the + * deceleration value will be reduced to make the sum legal. */ virtual double getDecelerate() { return decelerate; } /** - * + * Sets the value above. */ virtual void setDecelerate(double val) throw (dom::DOMException) { decelerate = val; } /** - * + * The autoReverse attribute controls the "play forwards then backwards" + * functionality. Default value is false. */ virtual bool getAutoReverse() { return autoReverse; } /** - * + * Sets the value above. */ virtual void setAutoReverse(bool val) throw (dom::DOMException) { autoReverse = val; } @@ -739,6 +866,23 @@ public: * */ ElementTimeManipulation(const ElementTimeManipulation &other) + { + assign(other); + } + + /** + * + */ + ElementTimeManipulation &operator=(const ElementTimeManipulation &other) + { + assign(other); + return *this; + } + + /** + * + */ + void assign(const ElementTimeManipulation &other) { speed = other.speed; accelerate = other.accelerate; @@ -757,7 +901,7 @@ protected: double speed; double accelerate; double decelerate; - bool autoReverse; + bool autoReverse; }; @@ -767,7 +911,7 @@ protected: #########################################################################*/ /** - * + * This is a placeholder - subject to change. This represents generic timelines. */ class ElementTimeContainer : public ElementTime { @@ -775,7 +919,8 @@ public: /** - * + * A NodeList that contains all timed childrens of this node. If there + * are no timed children, the Nodelist is empty. */ virtual NodeList getTimeChildren() { @@ -784,9 +929,9 @@ public: } /** - * + * Returns a list of child elements active at the specified invocation. */ - virtual NodeList getActiveChildrenAt(double /*instant*/) + virtual NodeList getActiveChildrenAt(double /*instant_in_millis*/) { NodeList list; return list; @@ -824,42 +969,46 @@ protected: #########################################################################*/ /** - * + * The synchronization behavior extension. */ class ElementSyncBehavior { public: /** - * + * The runtime synchronization behavior for an element. */ virtual DOMString getSyncBehavior() { return syncBehavior; } /** - * + * The sync tolerance for the associated element. It has an effect only + * if the element has syncBehavior="locked". */ virtual double getSyncTolerance() { return syncTolerance; } /** - * + * Defines the default value for the runtime synchronization behavior + * for an element, and all descendents. */ virtual DOMString getDefaultSyncBehavior() { return defaultSyncBehavior; } /** - * + * Defines the default value for the sync tolerance for an element, + * and all descendents. */ virtual double getDefaultSyncTolerance() { return defaultSyncTolerance; } /** - * + * If set to true, forces the time container playback to sync to this element. */ virtual bool getSyncMaster() { return syncMaster; } + //################## //# Non-API methods //################## @@ -880,6 +1029,23 @@ public: * */ ElementSyncBehavior(const ElementSyncBehavior &other) + { + assign(other); + } + + /** + * + */ + ElementSyncBehavior &operator=(const ElementSyncBehavior &other) + { + assign(other); + return *this; + } + + /** + * + */ + void assign(const ElementSyncBehavior &other) { syncBehavior = other.syncBehavior; syncTolerance = other.syncTolerance; @@ -909,26 +1075,27 @@ protected: #########################################################################*/ /** - * + * A parallel container defines a simple parallel time grouping in which multiple + * elements can play back at the same time. */ class ElementParallelTimeContainer : public ElementTimeContainer { public: /** - * + * Controls the end of the container. */ virtual DOMString getEndSync() { return endSync; } /** - * + * Controls the end of the container. */ virtual void setEndSync(const DOMString &val) throw (dom::DOMException) { endSync = val; } /** - * + * This method returns the implicit duration in seconds. */ virtual double getImplicitDuration() { return implicitDuration; } @@ -952,6 +1119,23 @@ public: ElementParallelTimeContainer(const ElementParallelTimeContainer &other) : ElementTimeContainer(other) { + assign(other); + } + + /** + * + */ + ElementParallelTimeContainer &operator=(const ElementParallelTimeContainer &other) + { + assign(other); + return *this; + } + + /** + * + */ + void assign(const ElementParallelTimeContainer &other) + { endSync = other.endSync; implicitDuration = other.implicitDuration; } @@ -974,7 +1158,8 @@ protected: #########################################################################*/ /** - * + * A seq container defines a sequence of elements in which elements play + * one after the other. */ class ElementSequentialTimeContainer : public ElementTimeContainer { @@ -1012,26 +1197,28 @@ public: #########################################################################*/ /** - * + * This interface defines a time container with semantics based upon par, but + * with the additional constraint that only one child element may play at a time. */ class ElementExclusiveTimeContainer : public ElementTimeContainer { public: /** - * + * Controls the end of the container. */ virtual DOMString getEndSync() { return endSync; } /** - * + * Controls the end of the container. */ virtual void setEndSync(const DOMString &val) throw (dom::DOMException) { endSync = val; } /** - * + * This should support another method to get the ordered collection of paused + * elements (the paused stack) at a given point in time. */ virtual NodeList getPausedElements() { return pausedElements; } @@ -1051,6 +1238,23 @@ public: ElementExclusiveTimeContainer(const ElementExclusiveTimeContainer &other) : ElementTimeContainer(other) { + assign(other); + } + + /** + * + */ + ElementExclusiveTimeContainer &operator=(const ElementExclusiveTimeContainer &other) + { + assign(other); + return *this; + } + + /** + * + */ + void assign(const ElementExclusiveTimeContainer &other) + { endSync = other.endSync; pausedElements = other.pausedElements; } @@ -1074,14 +1278,14 @@ protected: #########################################################################*/ /** - * + * NOTE: need more info */ class ElementTimeControl { public: /** - * + * Causes this element to begin the local timeline (subject to sync constraints). */ virtual bool beginElement() throw(dom::DOMException) { @@ -1089,7 +1293,13 @@ public: } /** - * + * Causes this element to begin the local timeline (subject to sync constraints), + * at the passed offset from the current time when the method is called. If the + * offset is >= 0, the semantics are equivalent to an event-base begin with the + * specified offset. If the offset is < 0, the semantics are equivalent to + * beginElement(), but the element active duration is evaluated as though the + * element had begun at the passed (negative) offset from the current time when + * the method is called. */ virtual bool beginElementAt(double /*offset*/) throw(dom::DOMException) { @@ -1097,7 +1307,7 @@ public: } /** - * + * Causes this element to end the local timeline (subject to sync constraints). */ virtual bool endElement() throw(dom::DOMException) { @@ -1105,7 +1315,8 @@ public: } /** - * + * Causes this element to end the local timeline (subject to sync constraints) at + * the specified offset from the current time when the method is called. */ virtual bool endElementAt(double /*offset*/) throw(dom::DOMException) { @@ -1142,7 +1353,7 @@ public: #########################################################################*/ /** - * + * This interface define the set of animation target extensions. */ class ElementTargetAttributes { @@ -1150,36 +1361,40 @@ public: /** - * + * Get the name of the target attribute. */ virtual DOMString getAttributeName() { return attributeName; } /** - * + * Set the name of the target attribute. */ virtual void setAttributeName(const DOMString &val) { attributeName = val; } + /** + * A code representing the value of the attributeType attribute + */ typedef enum { ATTRIBUTE_TYPE_AUTO = 0, ATTRIBUTE_TYPE_CSS = 1, ATTRIBUTE_TYPE_XML = 2 - } AttributeTypes; + } AttributeType; /** - * + * Get the attribute type, as defined above. */ virtual unsigned short getAttributeType() { return attributeType; } /** - * + * Set the attribute type, as defined above. */ virtual void setAttributeType(unsigned short val) { attributeType = val; } + //################## //# Non-API methods //################## @@ -1197,6 +1412,23 @@ public: * */ ElementTargetAttributes(const ElementTargetAttributes &other) + { + assign(other); + } + + /** + * + */ + ElementTargetAttributes &operator=(const ElementTargetAttributes &other) + { + assign(other); + return *this; + } + + /** + * + */ + void assign(const ElementTargetAttributes &other) { attributeName = other.attributeName; attributeType = other.attributeType; @@ -1220,7 +1452,7 @@ protected: #########################################################################*/ /** - * + * Defines the test attributes interface. See the Test attributes definition. */ class ElementTest { @@ -1228,79 +1460,79 @@ public: /** - * + * Get the systemBitrate value. */ virtual long getSystemBitrate() { return systemBitrate; } /** - * + * Set the systemBitrate value. */ virtual void setSystemBitrate(long val) throw (dom::DOMException) { systemBitrate = val; } /** - * + * Get the systemCaptions value. */ virtual bool getSystemCaptions() { return systemCaptions; } /** - * + * Set the systemCaptions value. */ virtual void setSystemCaptions(bool val) throw (dom::DOMException) { systemCaptions = val; } /** - * + * Get the systemLanguage value. */ virtual DOMString getSystemLanguage() { return systemLanguage; } /** - * + * Set the systemLanguage value. */ virtual void setSystemLanguage(const DOMString &val) throw (dom::DOMException) { systemLanguage = val; } /** - * + * Get the systemRequired value. */ virtual bool getSystemRequired() { return systemRequired; } /** - * + * Get the systemScreenSize value. */ virtual bool getSystemScreenSize() { return systemScreenSize; } /** - * + * Get the systemScreenDepth value. */ virtual bool getSystemScreenDepth() { return systemScreenDepth; } /** - * + * Get the systemOverdubOrSubtitle value. */ virtual DOMString getSystemOverdubOrSubtitle() { return systemOverdubOrSubtitle; } /** - * + * Set the systemOverdubOrSubtitle value. */ virtual void setSystemOverdubOrSubtitle(const DOMString &val) throw (dom::DOMException) { systemOverdubOrSubtitle = val; } /** - * + * Get the systemAudioDesc value. */ virtual bool getSystemAudioDesc() - { return systemBitrate; } + { return systemAudioDesc; } /** - * + * Set the systemOverdubOrSubtitle value. */ virtual void setSystemAudioDesc(bool val) throw (dom::DOMException) { systemAudioDesc = val; } @@ -1315,21 +1547,30 @@ public: */ ElementTest() { - systemBitrate = 0; - systemCaptions = false; - systemLanguage = ""; - systemRequired = false; - systemScreenSize = false; - systemScreenDepth = false; - systemOverdubOrSubtitle = ""; - systemAudioDesc = false; } /** * */ ElementTest(const ElementTest &other) - { + { + assign(other); + } + + /** + * + */ + ElementTest &operator=(const ElementTest &other) + { + assign(other); + return *this; + } + + /** + * + */ + void assign(const ElementTest &other) + { systemBitrate = other.systemBitrate; systemCaptions = other.systemCaptions; systemLanguage = other.systemLanguage; @@ -1338,7 +1579,7 @@ public: systemScreenDepth = other.systemScreenDepth; systemOverdubOrSubtitle = other.systemOverdubOrSubtitle; systemAudioDesc = other.systemAudioDesc; - } + } /** * @@ -1365,26 +1606,33 @@ protected: #########################################################################*/ /** - * + * The TimeEvent interface provides specific contextual information associated + * with Time events. */ class TimeEvent : public events::Event { public: /** - * + * The view attribute identifies the AbstractView from which the event + * was generated. */ - virtual views::AbstractView getView() + virtual views::AbstractView &getView() { return view; } /** - * + * Specifies some detail information about the Event, depending on + * the type of event. */ virtual long getDetail() { return detail; } /** - * + * The initTimeEvent method is used to initialize the value of a TimeEvent + * created through the DocumentEvent interface. This method may only be called + * before the TimeEvent has been dispatched via the dispatchEvent method, though + * it may be called multiple times during that phase if necessary. If called + * multiple times, the final invocation takes precedence. */ virtual void initTimeEvent(const DOMString &/*typeArg*/, const views::AbstractView */*viewArg*/, @@ -1408,6 +1656,23 @@ public: * */ TimeEvent(const TimeEvent &other) : events::Event(other) + { + assign(other); + } + + /** + * + */ + TimeEvent &operator=(const TimeEvent &other) + { + assign(other); + return *this; + } + + /** + * + */ + void assign(const TimeEvent &other) { view = other.view; detail = other.detail; @@ -1444,7 +1709,9 @@ protected: #########################################################################*/ /** - * + * A SMIL document is the root of the SMIL Hierarchy and holds the entire + * content. Beside providing access to the hierarchy, it also provides some + * convenience methods for accessing certain sets of information from the document. */ class SMILDocument : virtual public Document, public ElementSequentialTimeContainer @@ -1470,19 +1737,21 @@ public: #########################################################################*/ /** - * + * The SMILElement interface is the base for all SMIL element types. It follows + * the model of the HTMLElement in the HTML DOM, extending the base Element class + * to denote SMIL-specific elements. */ class SMILElement : virtual public Element { public: /** - * + * Get the unique ID */ virtual DOMString getId() =0; /** - * + * Set the unique ID */ virtual void setId(const DOMString &val) throw (dom::DOMException) =0; @@ -1505,19 +1774,21 @@ public: #########################################################################*/ /** - * + * Declares layout type for the document. See: + * http://www.w3.org/TR/2000/WD-smil-boston-20000225/layout.html#LayoutModuleNS-TheLayoutElement */ class SMILLayoutElement : virtual public SMILElement { public: /** - * + * The mime type of the layout langage used in this layout element.The default + * value of the type attribute is "text/smil-basic-layout". */ virtual DOMString getType() =0; /** - * + * true if the player can understand the mime type, false otherwise. */ virtual bool getResolved() =0; @@ -1539,7 +1810,8 @@ public: #########################################################################*/ /** - * + * Declares layout properties for the top-layout element. See: + * http://www.w3.org/TR/2000/WD-smil-boston-20000225/layout.html#LayoutModuleNS-TheTopLayoutElement */ class SMILTopLayoutElement : virtual public SMILElement, virtual public ElementLayout @@ -1565,7 +1837,8 @@ public: #########################################################################*/ /** - * + * Declares layout properties for the root-layout element. See: + * http://www.w3.org/TR/2000/WD-smil-boston-20000225/layout.html#LayoutModuleNS-TheRootLayoutElement */ class SMILRootLayoutElement : virtual public SMILElement, virtual public ElementLayout @@ -1591,7 +1864,8 @@ public: #########################################################################*/ /** - * + * Controls the position, size and scaling of media object elements. See: + * http://www.w3.org/TR/2000/WD-smil-boston-20000225/layout.html#LayoutModuleNS-TheRegionElement */ class SMILRegionElement : virtual public SMILElement, virtual public ElementLayout @@ -1600,32 +1874,32 @@ public: /** - * + * Get the fit value */ virtual DOMString getFit() =0; /** - * + * Set the fit value */ virtual void setFit(const DOMString &val) throw (dom::DOMException) =0; /** - * + * Get the top value */ virtual DOMString getTop() =0; /** - * + * Set the top value */ virtual void setTop(const DOMString &val) throw (dom::DOMException) =0; /** - * + * Get the ZIndex value */ virtual long getZIndex() =0; /** - * + * Set the ZIndex value */ virtual void setZIndex(long val) throw (dom::DOMException) =0; @@ -1649,7 +1923,7 @@ public: #########################################################################*/ /** - * + * Declares media content. */ class SMILMediaElement : virtual public ElementTime, virtual public SMILElement @@ -1658,152 +1932,152 @@ public: /** - * + * Get the "abstractAttr" value */ virtual DOMString getAbstractAttr() =0; /** - * + * Set the "abstractAttr" value */ virtual void setAbstractAttr(const DOMString &val) throw (dom::DOMException) =0; /** - * + * Get the "alt" value */ virtual DOMString getAlt() =0; /** - * + * Set the "alt" value */ virtual void setAlt(const DOMString &val) throw (dom::DOMException) =0; /** - * + * Get the "author" value */ virtual DOMString getAuthor() =0; /** - * + * Set the "author" value */ virtual void setAuthor(const DOMString &val) throw (dom::DOMException) =0; /** - * + * Get the "clipBegin" value */ virtual DOMString getClipBegin() =0; /** - * + * Set the "clipBegin" value */ virtual void setClipBegin(const DOMString &val) throw (dom::DOMException) =0; /** - * + * Get the "clipEnd" value */ virtual DOMString getClipEnd() =0; /** - * + * Set the "clipEnd" value */ virtual void setClipEnd(const DOMString &val) throw (dom::DOMException) =0; /** - * + * Get the "copyright" value */ virtual DOMString getCopyright() =0; /** - * + * Set the "copyright" value */ virtual void setCopyright(const DOMString &val) throw (dom::DOMException) =0; /** - * + * Get the "longdesc" value */ virtual DOMString getLongdesc() =0; /** - * + * Set the "longdesc" value */ virtual void setLongdesc(const DOMString &val) throw (dom::DOMException) =0; /** - * + * Get the "port" value */ virtual DOMString getPort() =0; /** - * + * Set the "port" value */ virtual void setPort(const DOMString &val) throw (dom::DOMException) =0; /** - * + * Get the "readIndex" value */ virtual DOMString getReadIndex() =0; /** - * + * Set the "readIndex" value */ virtual void setReadIndex(const DOMString &val) throw (dom::DOMException) =0; /** - * + * Get the "rtpFormat" value */ virtual DOMString getRtpformat() =0; /** - * + * Set the "readIndex" value */ virtual void setRtpformat(const DOMString &val) throw (dom::DOMException) =0; /** - * + * Get the "src" value */ virtual DOMString getSrc() =0; /** - * + * Set the "src" value */ virtual void setSrc(const DOMString &val) throw (dom::DOMException) =0; /** - * + * Get the "stripRepeat" value */ virtual DOMString getStripRepeat() =0; /** - * + * Set the "stripRepeat" value */ virtual void setStripRepeat(const DOMString &val) throw (dom::DOMException) =0; /** - * + * Get the "title" value */ virtual DOMString getTitle() =0; /** - * + * Set the "title" value */ virtual void setTitle(const DOMString &val) throw (dom::DOMException) =0; /** - * + * Get the "transport" value */ virtual DOMString getTransport() =0; /** - * + * Set the "transport" value */ virtual void setTransport(const DOMString &val) throw (dom::DOMException) =0; /** - * + * Get the "type" value */ virtual DOMString getType() =0; /** - * + * Set the "type" value */ virtual void setType(const DOMString &val) throw (dom::DOMException) =0; @@ -1827,7 +2101,8 @@ public: #########################################################################*/ /** - * + * Audio, video, etc + * NOTE: need more info */ class SMILRefElement : virtual public SMILMediaElement { @@ -1852,7 +2127,7 @@ public: #########################################################################*/ /** - * + * This interface defines the set of animation extensions for SMIL. */ class SMILAnimation : virtual public SMILElement, virtual public ElementTargetAttributes, @@ -1861,116 +2136,127 @@ class SMILAnimation : virtual public SMILElement, { public: + /** + * Codes for the "additive" attribute + */ typedef enum { ADDITIVE_REPLACE = 0, ADDITIVE_SUM = 1 - } AdditiveTypes; + } AdditiveType; /** - * + * A code representing the value of the additive attribute, as defined above. + * Default value is ADDITIVE_REPLACE. */ virtual unsigned short getAdditive() =0; /** - * + * Set the value above. */ virtual void setAdditive(unsigned short val) throw (dom::DOMException)=0; + /** + * Codes for the 'accumulate' attribute + */ typedef enum { ACCUMULATE_NONE = 0, ACCUMULATE_SUM = 1 - } AccumulateTypes; + } AccumulateType; /** - * + * A code representing the value of the accumulate attribute, as defined above. + * Default value is ACCUMULATE_NONE. */ virtual unsigned short getAccumulate() =0; /** - * + * Set the value above */ virtual void setAccumulate(unsigned short val) throw (dom::DOMException)=0; + /** + * Codes for the "calcmode" attribute + */ typedef enum { CALCMODE_DISCRETE = 0, CALCMODE_LINEAR = 1, CALCMODE_PACED = 2, CALCMODE_SPLINE = 3 - } CalcModeTypes; + } CalcModeType; /** - * + * A code representing the value of the calcMode attribute, as defined above. */ virtual unsigned short getCalcMode() =0; /** - * + * Set the value above. */ virtual void setCalcMode(unsigned short val) throw (dom::DOMException)=0; /** - * + * A DOMString representing the value of the keySplines attribute. */ virtual DOMString getKeySplines() =0; /** - * + * Set the value above. */ virtual void setKeySplines(const DOMString &val) throw (dom::DOMException)=0; /** - * + * Get a list of the time values of the keyTimes attribute. */ virtual TimeList getKeyTimes() =0; /** - * + * Set the list of the time value of the keyTimes attribute. */ virtual void setKeyTimes(const TimeList &val) throw (dom::DOMException)=0; /** - * + * Get a DOMString representing the value of the values attribute. */ virtual DOMString getValues() =0; /** - * + * Set the DOMString representing the value of the values attribute. */ virtual void setValues(const DOMString &val) throw (dom::DOMException)=0; /** - * + * Get a DOMString representing the value of the from attribute. */ virtual DOMString getFrom() =0; /** - * + * Set the DOMString representing the value of the from attribute. */ virtual void setFrom(const DOMString &val) throw (dom::DOMException)=0; /** - * + * Get a DOMString representing the value of the to attribute. */ virtual DOMString getTo() =0; /** - * + * Set the DOMString representing the value of the to attribute. */ virtual void setTo(const DOMString &val) throw (dom::DOMException)=0; /** - * + * Get a DOMString representing the value of the by attribute. */ virtual DOMString getBy() =0; /** - * + * Set the DOMString representing the value of the by attribute. */ virtual void setBy(const DOMString &val) throw (dom::DOMException)=0; @@ -1992,7 +2278,7 @@ public: #########################################################################*/ /** - * + * This interface represents the SMIL animate element. */ class SMILAnimateElement : virtual public SMILAnimation { @@ -2017,7 +2303,7 @@ public: #########################################################################*/ /** - * + * This interface represents the set element. */ class SMILSetElement : virtual public ElementTimeControl, virtual public ElementTime, @@ -2027,12 +2313,12 @@ class SMILSetElement : virtual public ElementTimeControl, public: /** - * + * Specifies the value for the attribute during the duration of this element. */ virtual DOMString getTo() =0; /** - * + * Set the value above. */ virtual void setTo(const DOMString &val) =0; @@ -2054,29 +2340,29 @@ public: #########################################################################*/ /** - * + * This interface present the animationMotion element in SMIL. */ class SMILAnimateMotionElement : virtual public SMILAnimateElement { public: /** - * + * Specifies the curve that describes the attribute value as a function of time. */ virtual DOMString getPath() =0; /** - * + * Specifies the curve that describes the attribute value as a function of time. */ virtual void setPath(const DOMString &val) throw(dom::DOMException) =0; /** - * + * Specifies the origin of motion for the animation. */ virtual DOMString getOrigin() =0; /** - * + * Specifies the origin of motion for the animation. */ virtual void setOrigin(const DOMString &val) throw(dom::DOMException) =0; @@ -2099,7 +2385,7 @@ public: #########################################################################*/ /** - * + * This interface represents the SMIL animateColor element. */ class SMILAnimateColorElement : virtual public SMILAnimation { @@ -2127,16 +2413,18 @@ public: #########################################################################*/ /** - * + * Defines a block of content control. See: + * http://www.w3.org/TR/2000/WD-smil-boston-20000225/content.html#ContentControlNS-SwitchElement */ class SMILSwitchElement : virtual public SMILElement { public: /** - * + * Returns the slected element at runtime. null if the selected element + * is not yet available. */ - virtual Element *getSelectedElement() =0; + virtual ElementPtr getSelectedElement() =0; //################## //# Non-API methods diff --git a/src/dom/smilimpl.cpp b/src/dom/smilimpl.cpp index d2f8278d6..82bbe9d0e 100644 --- a/src/dom/smilimpl.cpp +++ b/src/dom/smilimpl.cpp @@ -82,7 +82,7 @@ DOMString SMILElementImpl::getId() /** * */ -void SMILElementImpl::setId(const DOMString &val) throw (dom::DOMException) +void SMILElementImpl::setId(const DOMString &/*val*/) throw (dom::DOMException) { } @@ -189,7 +189,7 @@ DOMString SMILRegionElementImpl::getFit() /** * */ -void SMILRegionElementImpl::setFit(const DOMString &val) throw (dom::DOMException) +void SMILRegionElementImpl::setFit(const DOMString &/*val*/) throw (dom::DOMException) { } @@ -204,7 +204,7 @@ DOMString SMILRegionElementImpl::getTop() /** * */ -void SMILRegionElementImpl::setTop(const DOMString &val) throw (dom::DOMException) +void SMILRegionElementImpl::setTop(const DOMString &/*val*/) throw (dom::DOMException) { } @@ -219,7 +219,7 @@ long SMILRegionElementImpl::getZIndex() /** * */ -void SMILRegionElementImpl::setZIndex(long val) throw (dom::DOMException) +void SMILRegionElementImpl::setZIndex(long /*val*/) throw (dom::DOMException) { } @@ -253,7 +253,7 @@ DOMString SMILMediaElementImpl::getAbstractAttr() /** * */ -void SMILMediaElementImpl::setAbstractAttr(const DOMString &val) +void SMILMediaElementImpl::setAbstractAttr(const DOMString &/*val*/) throw (dom::DOMException) { } @@ -269,7 +269,7 @@ DOMString SMILMediaElementImpl::getAlt() /** * */ -void SMILMediaElementImpl::setAlt(const DOMString &val) +void SMILMediaElementImpl::setAlt(const DOMString &/*val*/) throw (dom::DOMException) { } @@ -285,7 +285,7 @@ DOMString SMILMediaElementImpl::getAuthor() /** * */ -void SMILMediaElementImpl::setAuthor(const DOMString &val) +void SMILMediaElementImpl::setAuthor(const DOMString &/*val*/) throw (dom::DOMException) { } @@ -301,7 +301,7 @@ DOMString SMILMediaElementImpl::getClipBegin() /** * */ -void SMILMediaElementImpl::setClipBegin(const DOMString &val) +void SMILMediaElementImpl::setClipBegin(const DOMString &/*val*/) throw (dom::DOMException) { } @@ -317,7 +317,7 @@ DOMString SMILMediaElementImpl::getClipEnd() /** * */ -void SMILMediaElementImpl::setClipEnd(const DOMString &val) +void SMILMediaElementImpl::setClipEnd(const DOMString &/*val*/) throw (dom::DOMException) { } @@ -333,7 +333,7 @@ DOMString SMILMediaElementImpl::getCopyright() /** * */ -void SMILMediaElementImpl::setCopyright(const DOMString &val) +void SMILMediaElementImpl::setCopyright(const DOMString &/*val*/) throw (dom::DOMException) { } @@ -349,7 +349,7 @@ DOMString SMILMediaElementImpl::getLongdesc() /** * */ -void SMILMediaElementImpl::setLongdesc(const DOMString &val) +void SMILMediaElementImpl::setLongdesc(const DOMString &/*val*/) throw (dom::DOMException) { } @@ -365,7 +365,7 @@ DOMString SMILMediaElementImpl::getPort() /** * */ -void SMILMediaElementImpl::setPort(const DOMString &val) +void SMILMediaElementImpl::setPort(const DOMString &/*val*/) throw (dom::DOMException) { } @@ -381,7 +381,7 @@ DOMString SMILMediaElementImpl::getReadIndex() /** * */ -void SMILMediaElementImpl::setReadIndex(const DOMString &val) +void SMILMediaElementImpl::setReadIndex(const DOMString &/*val*/) throw (dom::DOMException) { } @@ -397,7 +397,7 @@ DOMString SMILMediaElementImpl::getRtpformat() /** * */ -void SMILMediaElementImpl::setRtpformat(const DOMString &val) +void SMILMediaElementImpl::setRtpformat(const DOMString &/*val*/) throw (dom::DOMException) { } @@ -413,7 +413,7 @@ DOMString SMILMediaElementImpl::getSrc() /** * */ -void SMILMediaElementImpl::setSrc(const DOMString &val) +void SMILMediaElementImpl::setSrc(const DOMString &/*val*/) throw (dom::DOMException) { } @@ -429,7 +429,7 @@ DOMString SMILMediaElementImpl::getStripRepeat() /** * */ -void SMILMediaElementImpl::setStripRepeat(const DOMString &val) +void SMILMediaElementImpl::setStripRepeat(const DOMString &/*val*/) throw (dom::DOMException) { } @@ -445,7 +445,7 @@ DOMString SMILMediaElementImpl::getTitle() /** * */ -void SMILMediaElementImpl::setTitle(const DOMString &val) +void SMILMediaElementImpl::setTitle(const DOMString &/*val*/) throw (dom::DOMException) { } @@ -461,7 +461,7 @@ DOMString SMILMediaElementImpl::getTransport() /** * */ -void SMILMediaElementImpl::setTransport(const DOMString &val) +void SMILMediaElementImpl::setTransport(const DOMString &/*val*/) throw (dom::DOMException) { } @@ -477,7 +477,7 @@ DOMString SMILMediaElementImpl::getType() /** * */ -void SMILMediaElementImpl::setType(const DOMString &val) +void SMILMediaElementImpl::setType(const DOMString &/*val*/) throw (dom::DOMException) { } @@ -534,7 +534,7 @@ unsigned short SMILAnimationImpl::getAdditive() /** * */ -void SMILAnimationImpl::setAdditive(unsigned short val) +void SMILAnimationImpl::setAdditive(unsigned short /*val*/) throw (dom::DOMException) { } @@ -550,7 +550,7 @@ unsigned short SMILAnimationImpl::getAccumulate() /** * */ -void SMILAnimationImpl::setAccumulate(unsigned short val) +void SMILAnimationImpl::setAccumulate(unsigned short /*val*/) throw (dom::DOMException) { } @@ -566,7 +566,7 @@ unsigned short SMILAnimationImpl::getCalcMode() /** * */ -void SMILAnimationImpl::setCalcMode(unsigned short val) +void SMILAnimationImpl::setCalcMode(unsigned short /*val*/) throw (dom::DOMException) { } @@ -582,7 +582,7 @@ DOMString SMILAnimationImpl::getKeySplines() /** * */ -void SMILAnimationImpl::setKeySplines(const DOMString &val) +void SMILAnimationImpl::setKeySplines(const DOMString &/*val*/) throw (dom::DOMException) { } @@ -615,7 +615,7 @@ DOMString SMILAnimationImpl::getValues() /** * */ -void SMILAnimationImpl::setValues(const DOMString &val) +void SMILAnimationImpl::setValues(const DOMString &/*val*/) throw (dom::DOMException) { } @@ -631,7 +631,7 @@ DOMString SMILAnimationImpl::getFrom() /** * */ -void SMILAnimationImpl::setFrom(const DOMString &val) +void SMILAnimationImpl::setFrom(const DOMString &/*val*/) throw (dom::DOMException) { } @@ -647,7 +647,7 @@ DOMString SMILAnimationImpl::getTo() /** * */ -void SMILAnimationImpl::setTo(const DOMString &val) +void SMILAnimationImpl::setTo(const DOMString &/*val*/) throw (dom::DOMException) { } @@ -663,7 +663,7 @@ DOMString SMILAnimationImpl::getBy() /** * */ -void SMILAnimationImpl::setBy(const DOMString &val) +void SMILAnimationImpl::setBy(const DOMString &/*val*/) throw (dom::DOMException) { } @@ -716,7 +716,7 @@ DOMString SMILSetElementImpl::getTo() /** * */ -void SMILSetElementImpl::setTo(const DOMString &val) +void SMILSetElementImpl::setTo(const DOMString &/*val*/) { } @@ -749,7 +749,7 @@ DOMString SMILAnimateMotionElementImpl::getPath() /** * */ -void SMILAnimateMotionElementImpl::setPath(const DOMString &val) +void SMILAnimateMotionElementImpl::setPath(const DOMString &/*val*/) throw(dom::DOMException) { } @@ -765,7 +765,7 @@ DOMString SMILAnimateMotionElementImpl::getOrigin() /** * */ -void SMILAnimateMotionElementImpl::setOrigin(const DOMString &val) +void SMILAnimateMotionElementImpl::setOrigin(const DOMString &/*val*/) throw(dom::DOMException) { } @@ -815,9 +815,10 @@ SMILAnimateColorElementImpl::~SMILAnimateColorElementImpl() /** * */ -Element *SMILSwitchElementImpl::getSelectedElement() +ElementPtr SMILSwitchElementImpl::getSelectedElement() { - return NULL; + ElementPtr ptr; + return ptr; } //################## diff --git a/src/dom/smilimpl.h b/src/dom/smilimpl.h index 7c1a014dc..cb06eb5f5 100644 --- a/src/dom/smilimpl.h +++ b/src/dom/smilimpl.h @@ -734,7 +734,7 @@ public: /** * */ - virtual Element *getSelectedElement(); + virtual ElementPtr getSelectedElement(); //################## //# Non-API methods diff --git a/src/dom/svgimpl.h b/src/dom/svgimpl.h index 5c2e78f1b..2ea09be3c 100644 --- a/src/dom/svgimpl.h +++ b/src/dom/svgimpl.h @@ -13,7 +13,7 @@ * Authors: * Bob Jamison * - * Copyright (C) 2006 Bob Jamison + * Copyright (C) 2006-2008 Bob Jamison * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public