uiaccelerator_plat/alf_visual_api/inc/alf/alfscrollerevent.h
changeset 0 15bf7259bb7c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uiaccelerator_plat/alf_visual_api/inc/alf/alfscrollerevent.h	Tue Feb 02 07:56:43 2010 +0200
@@ -0,0 +1,148 @@
+/*
+* Copyright (c) 2007 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:   Events generated by scrollers.
+*
+*/
+
+
+
+#ifndef T_ALFSCROLLEREVENT_H
+#define T_ALFSCROLLEREVENT_H
+
+#include <e32std.h>
+/**
+ * ScrollerEvent class.
+ * Usage:
+ * @code
+ * 
+ * TBool CMyControl::OfferEventL(const TAlfEvent& aEvent)
+ *   {
+ *   TBool consumed(EFalse);
+ *   if ( aEvent.IsPointerEvent() )
+ *       {
+ *       CAlfVisual* visual = aEvent.Visual();
+ *       //Orientation for scroller
+ *       TAlfScrollerEvent::TOrientation orientation = TAlfScrollerEvent::EVertical;
+ *       
+ *       if ( aEvent.PointerDown() )
+ *           {
+ *           //if ( some condition to start scroller event handling )
+ *               {
+ *               //Create event instance
+ *               TAlfScrollerEvent scrollEvent(TAlfScrollerEvent::EMoveByItem, orientation, -1);
+ *               TAlfEvent event( *(visual->Display()), scrollEvent );
+ *               //Pass it to handler
+ *               scrollerInputHandler->OfferEventL( event ); 
+ *               consumed = ETrue;
+ *               }
+ *           }
+ *        }
+ *    return consumed;
+ *    }
+ * @endcode
+ * @lib alfclient.lib
+ * @since S60 xxx
+ */
+NONSHARABLE_CLASS( TAlfScrollerEvent )
+    {
+    
+public:
+    /**
+     * Indicates what type of scroller the event originated in
+     */
+    enum TOrientation
+        {
+        EVertical,
+        EHorizontal
+        };
+
+    /** 
+     *Scroller event code
+     */
+    enum TCode
+        {
+        EMoveByItem, // Moves the view by a single logical unit. i.e. a text line or a list item
+        EMoveByView, // Moves the view by an amount similar to a view height/width
+        EMoveToPosition // Moves the view top to the requested position
+        };
+
+public: 
+    /* Constructors. */
+   
+    /**
+     * Constructor.
+     */
+    IMPORT_C TAlfScrollerEvent( TCode aCode, TOrientation aOrientation, TInt aMagnitude );
+
+    /**
+     * Constructor.
+     *
+     * Supplied only for default construction within TAlfEvent
+     */
+    TAlfScrollerEvent();
+    
+public: // Access methods
+
+    /**
+     * @return the event code for the scroller event
+     */
+    IMPORT_C TCode Code() const;
+    
+    /**
+     * Orientation of the scroller
+     *
+     * @return orientation of the scroller generating this event
+     */
+    IMPORT_C TOrientation Orientation() const;
+    
+    /**
+     * Access to the size of the scroller event.
+     *
+     * This magnitude represents the number of items, views, or other event code-dependent quantity
+     *
+     * For EMoveByItem, this number is the number of items to move forward. If negative, then it represents 
+     * moving the view backward by this number of items.
+     *
+     * For EMoveByView, this number is the number of views forward to move.
+     *
+     * For EMoveToPosition, this number is in the arbitrary units of the associated scroller model. (i.e,.in order to
+     * generate this type of event you must be observing the corresponding @c MAlfScrollerModelReader )
+     *
+     *  @return the magnitude of the event
+     */
+    IMPORT_C TInt Magnitude() const;
+    
+private: 
+    
+    /** 
+     * The scroller event code. 
+     */
+    TCode iCode;
+
+    /**
+     * Orientation of this scroller
+     */
+    TOrientation iOrientation;    
+
+    /**
+     * A magnitude representing the number of items, views, or other code-dependent quantity
+     * @see Magnitude()
+     */
+    TInt iMagnitude;
+    
+    TInt iSpare;    
+    };
+
+
+#endif // T_ALFSCROLLEREVENT_H