diff -r 5253a20d2a1e -r a4d6f1ea0416 emailuis/uicomponents/inc/fstreevisualizerbase.h --- a/emailuis/uicomponents/inc/fstreevisualizerbase.h Mon Jan 18 20:08:26 2010 +0200 +++ b/emailuis/uicomponents/inc/fstreevisualizerbase.h Tue Jan 26 11:45:42 2010 +0200 @@ -73,6 +73,13 @@ * Contains the visual structure of the list. * */ + +enum TUpdatedByPhysic{ + ENotUpdatedByPhisic = 0, + EUpdatedByPhisic, + EUpdatedByPhisicEnd + }; + NONSHARABLE_CLASS( TWorld ) { @@ -333,7 +340,7 @@ /** * This method is called when the viewport changes. */ - virtual void ViewPortUpdatedL( TViewPort& aViewPort ) = 0; + virtual void ViewPortUpdatedL( TViewPort& aViewPort, TUpdatedByPhysic aUpdateByPhysic = ENotUpdatedByPhisic ) = 0; }; @@ -354,7 +361,7 @@ * Center viewport around position aPosition. If aInformUpdate is set to ETrue, observer * will be signalled. */ - void SetCenterPositionL( const TPoint& aPosition, TBool aInformUpdate = ETrue ); + void SetCenterPositionL( const TPoint& aPosition, TBool aInformUpdate = ETrue, TUpdatedByPhysic aUpdateByPhysic = ENotUpdatedByPhisic ); /** * Returns viewport position (i.e. topleft corner). @@ -382,6 +389,11 @@ void GetVisibleItemsL( RArray& aItemsToBeRemoved, RArray& aItemsToBeAdded, TInt& aOffset, TBool& aFullUpdate ); /** + * Get items visible in viewport's area. + */ + void GetVisibleItemsL(RArray& aVisible, TInt& aOffset); + + /** * Returns ETrue if the world is higher than viewport. */ TBool IsScrollBarNeeded() const; @@ -455,7 +467,9 @@ /** * Called when viewport is updated. */ - void UpdatedL(); + void UpdatedL(TUpdatedByPhysic aUpdateByPhysic = ENotUpdatedByPhisic); + + private: // from TWorld::MObserver @@ -1905,7 +1919,7 @@ private: // from TViewPort::MObserver - virtual void ViewPortUpdatedL( TViewPort& aViewPort ); + virtual void ViewPortUpdatedL( TViewPort& aViewPort, TUpdatedByPhysic aUpdateByPhysic = ENotUpdatedByPhisic); // TREE OPTIMIZATIONS