diff -r 112a725ff2c2 -r 8970fbd719ec videoplayback/inc/mpxvideoplaybackmediadetailsviewer.h --- a/videoplayback/inc/mpxvideoplaybackmediadetailsviewer.h Wed Mar 31 21:34:36 2010 +0300 +++ b/videoplayback/inc/mpxvideoplaybackmediadetailsviewer.h Wed Apr 14 15:59:50 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: e003sa33#5 % +// Version : %version: e003sa33#6 % #ifndef MPXVIDEOPLAYBACKMEDIADETAILSVIEWER_H_ #define MPXVIDEOPLAYBACKMEDIADETAILSVIEWER_H_ @@ -123,19 +123,19 @@ void UpdateBackgroundBitmapL() const; /** - * Timer callback for scroll filename timer + * Timer callback for scroll timer * @since 9.2 * @param aPtr Pointer to timers callback * @return KErrNone */ - static TInt ScrollFilenameTimer( TAny* aPtr ); + static TInt ScrollTimer( TAny* aPtr ); /** - * Handle Scroll Filename Timer + * Handle Scroll Timer * @since 9.2 * @return void */ - void HandleScrollFilenameTimerL(); + void HandleScrollTimerL(); /** * Determine the number of items to be shown in the viewer @@ -150,9 +150,60 @@ * @return the viewer rect */ TRect CalculateViewerRectL(); + + /** + * Update the text of filename label + */ + void UpdateFilenameL(); + + /** + * Update the text of title label + */ + void UpdateTitleL(); + + private: + + /** + * Scroll the too long text for some label + */ + class TTextScroller + { + public: + + /** + * Constructor + */ + TTextScroller(); + + /** + * Check if the source text needs scrolling. + */ + TBool IsScrollNeeded(); + + /** + * Check if the text of a label needs to be updated + */ + TBool IsUpdateNeeded(); + + /** + * Scroll the source text, and append it to the destination text + * + * @param aSrcText the source text to be scrolled. + * @param aDesText to which the scrolled text to be appended + */ + void ScrollText( const TDesC& aSrcText, TDes& aDesText ); + + private: + TUint32 iDelayBeginningTick; + TInt iTextScrollPos; + TBool iDelay; + TBool iScroll; + TInt iSrcTextLen; + }; private: // Data + CMPXVideoPlaybackControlsController* iController; CEikLabel* iClipnameLabel; @@ -168,11 +219,12 @@ CFbsBitmap* iBackgroundBitmap; CPeriodic* iScrollingTextTimer; - TInt iScrollPosition; - TBool iShouldPauseScrolling; TRect iViewerRect; HBufC* iAdditionalString; - TUint32 iScrollTimerDelayBeginningTick; + TTextScroller iFilenameScroller; + TTextScroller iTitleScroller; + // after every scrolling label has updated, draw them + TBool iScrolledTextUpdated; };