diff -r d189ee25cf9d -r 3533d4323edc meetingrequest/mrgui/inc/cmrlistpanephysics.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/meetingrequest/mrgui/inc/cmrlistpanephysics.h Wed Sep 01 12:28:57 2010 +0100 @@ -0,0 +1,145 @@ +/* +* Copyright (c) 2009 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: ESMR Custom list component physics impl +* +*/ + +#ifndef CMRLISTPANEPHYSICS_H +#define CMRLISTPANEPHYSICS_H + +// INCLUDES +#include +#include +#include + +// FORWARD DECLARATIONS +class CAknPhysics; +class CMRFieldContainer; +class CCoeControl; +class MMRPhysicsObserver; + +// CLASS DECLARATIONS +NONSHARABLE_CLASS( CMRListPanePhysics ): + public CBase, + public MAknPhysicsObserver + { + public: // C'tor and d'tor + static CMRListPanePhysics* NewL( + CCoeControl& aParent, + CMRFieldContainer& aViewControl, + MMRPhysicsObserver& aPhysicsObserver ); + + ~CMRListPanePhysics(); + + public: // Interface + /** + * Handles the pointer event + * + * @param aPointerEvent Pointer event to handle. + * @param aEventsBlocked ETrue if events are blocked. + * Set by this function. + * @return ETrue if the physics has been started, EFalse otherwise. + */ + TBool HandlePointerEventL( + const TPointerEvent& aPointerEvent, TBool& aEventsBlocked ); + + /** + * Initializes physics. + */ + void InitPhysics(); + + /** + * Sets world height. + * + * @param aWorldHeight New world height. + */ + void SetWorldHeight( TInt aWorldHeight ); + + /** + * Sets the vertical scroll index, which is directly the position + * of the list pane on the Y-axis + * + * @param aVerScrollIndex New vertical scroll index. + */ + void UpdateVerticalScrollIndex( TInt aVerScrollIndex ); + + /** + * Returns the current vertical scroll index. + * + * @return Current vertical scroll index + */ + TInt VerticalScrollIndex(); + + + public: // from base class MAknPhysicsObserver + void ViewPositionChanged( const TPoint& aNewPosition, + TBool aDrawNow, + TUint aFlags ); + void PhysicEmulationEnded(); + TPoint ViewPosition() const; + + private: // Implementation + CMRListPanePhysics( CCoeControl& aParent, + CMRFieldContainer& aViewControl, + MMRPhysicsObserver& aPhysicsObserver ); + void ConstructL(); + + private: + /// Own: Physics engine handle + CAknPhysics* iPhysics; + /// Ref: Parent control + CCoeControl& iParent; + /// Ref: Reference to field container that should be kinetic + CMRFieldContainer& iViewControl; + /// Feature enabled + TBool iFeatureEnabled; + /// Ref: Physics observer + MMRPhysicsObserver& iPhysicsObserver; + /// Own: Records previous pointer event + TPointerEvent iPreviousPointerEvent; + + /** + * Physics world size. + */ + TSize iWorldSize; + + /** + * Physics view size. + */ + TSize iViewSize; + + /** + * Vertical scroll index. + */ + TInt iVerScrollIndex; + + /** + * Pointer event start time. + */ + TTime iStartTime; + + /** + * Pointer event start position. + */ + TPoint iStartPoint; + + /** + * Pointer event drag position. + */ + TPoint iDragPoint; + }; + +#endif // CMRLISTPANEPHYSICS_H +// End of file +