svgtopt/SVG/SVGEngine/inc/SVGEvent.h
changeset 0 d46562c3d99d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/svgtopt/SVG/SVGEngine/inc/SVGEvent.h	Thu Jan 07 16:19:02 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 <e32base.h>
+#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__ */