diff -r 000000000000 -r 88edb906c587 svgtopt/SVG/SVGEngine/inc/SVGEvent.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/svgtopt/SVG/SVGEngine/inc/SVGEvent.h Wed Nov 03 18:56:10 2010 +0200 @@ -0,0 +1,681 @@ +/* +* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: SVG Engine header file + * +*/ + + +#ifndef __INC_SVGEVENT_H__ +#define __INC_SVGEVENT_H__ + +#if !defined(__E32BASE_H__) +#include +#endif + +#include "GfxFloatFixPt.h" + + + + +//******************************************************* +// constants +const TUint8 KSvgEventMaskNone = 0x0; +const TUint8 KSvgEventMaskExternalUI = 0x1; +const TUint8 KSvgEventMaskTimer = 0x2; +const TUint8 KSvgEventMaskInternal = 0x4; +const TUint8 KSvgEventMaskExternalSystem = 0x8; + +enum TSvgEngineEventType + { + ESvgEngineEventTimerPrep, + ESvgEngineEventTimer, + ESvgEngineInternalEvent, + + ESvgEngineEventMouseDown, + ESvgEngineEventMouseUp, + ESvgEngineEventMouseMove, + ESvgEngineEventKeyPress, + ESvgEngineEventScreenUpdate + }; + +enum TSvgEvent + { + // 26 events defined in SVG spec + ESvgEventFocusin = 0, + ESvgEventFocusout = 1, + ESvgEventActivate = 2, + ESvgEventClick = 3, + ESvgEventMousedown = 4, + ESvgEventMouseup = 5, + ESvgEventMouseover = 6, + ESvgEventMousemove = 7, + ESvgEventMouseout = 8, + ESvgEventDOMSubtreeModified = 9, + ESvgEventDOMNodeInserted = 10, + ESvgEventDOMNodeRemoved = 11, + ESvgEventDOMNodeRemovedFromDocument = 12, + ESvgEventDOMNodeInsertedIntoDocument = 13, + ESvgEventDOMAttrModified = 14, + ESvgEventDOMCharacterDataModified = 15, + ESvgEventSVGLoad = 16, + ESvgEventSVGUnload = 17, + ESvgEventSVGAbort = 18, + ESvgEventSVGError = 19, + ESvgEventSVGResize = 20, + ESvgEventSVGScroll = 21, + ESvgEventSVGZoom = 22, + ESvgEventBeginEvent = 23, + ESvgEventEndEvent = 24, + ESvgEventRepeatEvent = 25, + + // Extension for implementation + ESvgEventKey = 100, + ESvgEventWallClock = 101, + ESvgEventNone = -1 + }; + +class CSvgElementImpl; + +class MSvgEvent + { + public: + /** + * Accessor that returns the event mask + * + * @since 1.0 + * @param None + * @return An integer that is the event mask + */ + virtual TUint8 EventMask() = 0; + + /** + * Accessor for the event type + * + * @since 1.0 + * @param None + * @return A TSvgEngineEventType that is the event type + */ + virtual TSvgEngineEventType EventType() = 0; + }; + + +/** + * Class description goes here. + * + * @lib SVGEngine.lib + * @since 1.0 + */ +class MSvgTimerEvent : public MSvgEvent + { + public: + + /** + * Accessor that returns the time of the event + * + * @since 1.0 + * @param None + * @return An integer that is the time of the event + */ + virtual TUint32 Time() = 0; + + /** + * Accessor that returns the begin time of the event + * + * @since 1.0 + * @param None + * @return An integer that is the begin time of the event + */ + virtual TInt32 BeginTime() = 0; + + /** + * Accessor that sets time of the event + * + * @since 1.0 + * @param TInt32 An integer that is the begin time of the event + * @return none + */ + virtual void SetTime(TInt32 aTime) = 0; + + /** + * Accessor that sets the begin time of the event + * + * @since 1.0 + * @param aTime - An integer that is the begin time + * @return None + */ + virtual void SetBeginTime( TInt32 aTime ) = 0; + + }; + +// An internal event specialization +class MSvgInternalEvent : public MSvgEvent + { + public: + +virtual TBool UserSeek() = 0; + /** + * Return a pointer the element that is the target for the event + * + * @since 1.0 + * @param None + * @return A pointer to the target element + */ + virtual CSvgElementImpl* ObjectAddress() = 0; + + /** + * Return the event description + * + * @since 1.0 + * @param None + * @return A TSvgEvent type + */ + virtual TSvgEvent SvgEvent() = 0; + + /** + * Accessor that returns the time of the event + * + * @since 1.0 + * @param None + * @return An integer that is the time of the event + */ + virtual TInt32 Time() = 0; + + /** + * Accessor that sets the time of the event + * + * @since 1.0 + * @param aTime - An integer that is the time of the event + * @return + */ + virtual void SetTime( TInt32 aTime ) = 0; + + /** + * Accessor that returns the begin time of the event + * + * @since 1.0 + * @param None + * @return An integer that is the begin time of the event + */ + virtual TInt32 BeginTime() = 0; + + /** + * Accessor that sets the begin time of the event + * + * @since 1.0 + * @param aTime - An integer that is the begin time + * @return None + */ + virtual void SetBeginTime( TInt32 aTime ) = 0; + + }; + +// A UI Mouse event specialization +class MSvgUiMouseEvent : public MSvgEvent + { + public: + + /** + * Accessor for the x coordinate of the mouse event + * + * @since 1.0 + * @param None + * @return A fixed point that is the x coordinate of the event + */ + virtual TFloatFixPt X() = 0; + + /** + * Accessor for the y coordinate of the mouse event + * + * @since 1.0 + * @param None + * @return A fixed point that is the y coordinate of the event + */ + virtual TFloatFixPt Y() = 0; + }; + +// A UI Key event specialization +class MSvgUiKeyEvent : public MSvgEvent + { + public: + + /** + * Accessor that returns the key code of the event + * + * @since 1.0 + * @param + * @return + */ + virtual TUint32 KeyCode() = 0; + + /** + * Accessor that returns the time of the event + * + * @since 1.0 + * @param None + * @return An integer that is the time of the event + */ + virtual TInt32 Time() = 0; + + /** + * Accessor that sets the time of the event + * + * @since 1.0 + * @param aTime - An integer that is the time of the event + * @return + */ + virtual void SetTime( TInt32 aTime ) = 0; + + /** + * Accessor that returns the begin time of the event + * + * @since 1.0 + * @param None + * @return An integer that is the begin time of the event + */ + virtual TInt32 BeginTime() = 0; + + /** + * Accessor that sets the begin time of the event + * + * @since 1.0 + * @param aTime - An integer that is the begin time + * @return None + */ + virtual void SetBeginTime( TInt32 aTime ) = 0; + + }; + + +//******************************************************* + +class TSvgUiMouseEvent : public MSvgUiMouseEvent + { + public: + + /** + * Constructor + * + * @since 1.0 + * @param aEtype - A TSvgEngineEventType representing the event type + * @param aX - x coordinate of the event + * @param aY - y coordinate of the event + * @return + */ + TSvgUiMouseEvent( TSvgEngineEventType aEtype, TFloatFixPt aX, TFloatFixPt aY ); + + /** + * Accessor that returns the event mask + * + * @since 1.0 + * @param None + * @return An integer that is the event mask + */ + TUint8 EventMask(); + + /** + * Accessor for the event type + * + * @since 1.0 + * @param None + * @return A TSvgEngineEventType that is the event type + */ + TSvgEngineEventType EventType(); + + /** + * Accessor for the x coordinate of the mouse event + * + * @since 1.0 + * @param None + * @return A fixed point that is the x coordinate of he event + */ + TFloatFixPt X(); + + /** + * Accessor for the y coordinate of the mouse event + * + * @since 1.0 + * @param None + * @return A fixed point that is the y coordinate of the event + */ + TFloatFixPt Y(); + + public: + TSvgEngineEventType iEtype; + TFloatFixPt iX; + TFloatFixPt iY; + }; + +class TSvgUiKeyEvent : public MSvgUiKeyEvent + { + public: + + /** + * Accessor that returns the key code of the event + * + * @since 1.0 + * @param + * @return + */ + TSvgUiKeyEvent( TUint32 aKeyCode ); + + /** + * Accessor that returns the event mask + * + * @since 1.0 + * @param None + * @return An integer that is the event mask + */ + TUint8 EventMask(); + + /** + * Accessor for the event type + * + * @since 1.0 + * @param None + * @return A TSvgEngineEventType that is the event type + */ + TSvgEngineEventType EventType(); + + /** + * Accessor that returns the key code of the event + * + * @since 1.0 + * @param + * @return + */ + TUint32 KeyCode(); + + /** + * Accessor that returns the time of the event + * + * @since 1.0 + * @param None + * @return An integer that is the time of the event + */ + TInt32 Time(); + + /** + * Accessor that sets the time of the event + * + * @since 1.0 + * @param aTime - An integer that is the time of the event + * @return None + */ + void SetTime( TInt32 aTime ); + + /** + * Accessor that returns the begin time of the event + * + * @since 1.0 + * @param None + * @return An integer that is the begin time of the event + */ + TInt32 BeginTime(); + + /** + * Accessor that sets the begin time of the event + * + * @since 1.0 + * @param aTime - An integer that is the begin time + * @return None + */ + void SetBeginTime( TInt32 aTime ); + + private: + TUint32 iKeyCode; + TInt32 iTime; + TInt32 iBeginTime; + }; + + +// +class TSvgTimerEventPrep : public MSvgTimerEvent + { + public: + + /** + * Constructor + * + * @since 1.0 + * @param aTime - An integer that is the event time + * @return None + */ + TSvgTimerEventPrep( TUint32 aTime ); + + /** + * Accessor that returns the event mask + * + * @since 1.0 + * @param None + * @return An integer that is the event mask + */ + TUint8 EventMask(); + + /** + * Accessor for the event type + * + * @since 1.0 + * @param None + * @return A TSvgEngineEventType that is the event type + */ + TSvgEngineEventType EventType(); + + /** + * Accessor that returns the time of the event + * + * @since 1.0 + * @param None + * @return An integer that is the time of the event + */ + TUint32 Time(); + + private: + TInt32 iTime; + }; + +class TSvgTimerEvent : public MSvgTimerEvent + { + public: + + /** + * Constructor + * + * @since 1.0 + * @param aTime - An integer that is the time of the event + * @return None + */ + TSvgTimerEvent( TUint32 aTime ); + + /** + * Accessor that returns the event mask + * + * @since 1.0 + * @param None + * @return An integer that is the event mask + */ + TUint8 EventMask(); + + /** + * Accessor for the event type + * + * @since 1.0 + * @param None + * @return A TSvgEngineEventType that is the event type + */ + TSvgEngineEventType EventType(); + + /** + * Accessor that returns the time of the event + * + * @since 1.0 + * @param None + * @return An integer that is the time of the event + */ + TUint32 Time(); + + /** + * Accessor that sets time of the event + * + * @since 1.0 + * @param TInt32 An integer that is the begin time of the event + * @return none + */ + void SetTime(TInt32 aTime); + + + /** + * Accessor that returns the begin time of the event + * + * @since 1.0 + * @param None + * @return An integer that is the begin time of the event + */ + TInt32 BeginTime(); + + /** + * Accessor that sets the begin time of the event + * + * @since 1.0 + * @param aTime - An integer that is the begin time + * @return None + */ + void SetBeginTime( TInt32 aTime ); + + private: + TInt32 iTime; + TInt32 iBeginTime; + }; + +class TSvgInternalEvent : public MSvgInternalEvent + { + public: + + /** + * Constructor + * + * @since 1.0 + * @param aEvent - A TSvgEvent type + * @param aElement - A pointer to the target element + * @return None + */ + TSvgInternalEvent( TSvgEvent aEvent, CSvgElementImpl* aElement ); + + TSvgInternalEvent( TSvgEvent aEvent, CSvgElementImpl* aElement, TInt32 aTime ); + + TBool UserSeek(); + /** + * Accessor that returns the event mask + * + * @since 1.0 + * @param None + * @return An integer that is the event mask + */ + TUint8 EventMask(); + + /** + * Accessor for the event type + * + * @since 1.0 + * @param None + * @return A TSvgEngineEventType that is the event type + */ + TSvgEngineEventType EventType(); + + /** + * Return a pointer the element that is the target for the event + * + * @since 1.0 + * @param None + * @return A pointer to the target element + */ + CSvgElementImpl* ObjectAddress(); + + /** + * Return the event description + * + * @since 1.0 + * @param None + * @return A TSvgEvent type + */ + TSvgEvent SvgEvent(); + + /** + * Accessor that returns the time of the event + * + * @since 1.0 + * @param None + * @return An integer that is the time of the event + */ + TInt32 Time(); + + /** + * Accessor that sets the time of the event + * + * @since 1.0 + * @param aTime - An integer that is the time of the event + * @return + */ + void SetTime( TInt32 aTime ); + + /** + * Accessor that returns the begin time of the event + * + * @since 1.0 + * @param None + * @return An integer that is the begin time of the event + */ + TInt32 BeginTime(); + + /** + * Accessor that sets the begin time of the event + * + * @since 1.0 + * @param aTime - An integer that is the begin time + * @return None + */ + void SetBeginTime( TInt32 aTime ); + + private: + TSvgEvent iEvent; + TBool iRepeatOnBegin; + CSvgElementImpl*iElement; + TInt32 iTime; + TInt32 iBeginTime; + TBool IsUserSeek; + }; + +class TSvgScreenUpdateEvent : public MSvgEvent + { + public: + /** + * Accessor that returns the event mask + * + * @since 1.0 + * @param None + * @return An integer that is the event mask + */ + TUint8 EventMask(); + + /** + * Accessor for the event type + * + * @since 1.0 + * @param None + * @return A TSvgEngineEventType that is the event type + */ + TSvgEngineEventType EventType(); + }; + + +#endif /* __INC_SvgEvent_H__ */