diff -r aaeeca1f15af -r e8d784ac1a4b inc/screensaverctrlmovingtext.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inc/screensaverctrlmovingtext.h Wed Sep 01 12:30:40 2010 +0100 @@ -0,0 +1,261 @@ +/* +* 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: Definitions screensaver moving text display class. +* +*/ + +#ifdef USE_DATE_AND_TEXT + +#ifndef C_SCREENSAVERCTRLMOVINGTEXT_H +#define C_SCREENSAVERCTRLMOVINGTEXT_H + +#include + +#include "screensaverbase.h" + +const TInt KScreensaverDataReconnectingDelay = 50000; +const TInt KScreensaverBarHeight = 24; + +// +// class CScreensaverCtrlMovingText +// +class CScreensaverCtrlMovingText : public CScreensaverBase + { +public: + /** + * Two-phased constructor + * + * @param aType the type of display object + * @return CScreensaverCtrlMovingText the pointer of CScreensaverCtrlMovingText + * object + */ + static CScreensaverCtrlMovingText* NewL( TDisplayObjectType aType ); + + /** + * Destructor. + */ + ~CScreensaverCtrlMovingText(); + +public: + // From CCoeControl + + /** + * Resource change handling + */ + virtual void HandleResourceChange( TInt aType ); + + + /** + * Responds to changes to the size and position of the contents + * of this control. + */ + virtual void SizeChanged(); + + /** + * Drawing (override this to draw) + */ + virtual void Draw( const TRect& aRect ) const; + +public: + // Implemented here instead of shareddatainterface + + /** + * Set moving bar on / off + * + * @param aMove a bool type to decide if it can move or not + */ + void SetMoving( TBool aMove = ETrue ); + + /** + * Start the control needed timer + */ + void StartTimer(); + + /** + * Cancels the timer + */ + void CancelTimer(); + + /** + * Clear the screen + */ + void ClearScreen(); + + /* + * Refresh the display + */ + void Refresh(); + +protected: + + /** + * Constructor + * + * @param aType the type of the display object. + */ + CScreensaverCtrlMovingText( TDisplayObjectType aType ); + + /** + * Two-phased constructor + */ + void ConstructL(); + + /** + * Draw the object on the screen of this type + * + * @param aGc the CWindowGc object + * @param aRect + */ + virtual void DrawNew( CWindowGc& aGc, const TRect& aRect ) const; + + /** + * Draw the date on the bar + */ + virtual void DrawText( CWindowGc& aGc ) const; + + /** + * Draws text with pictographs + */ + void DrawPictoText( CWindowGc &aGc ) const; + + /** + * Get the current time + */ + void UpdateCurrentTimeL(); + + /** + * Generate the screensaver bar + */ + void GenerateDisplayAttributesForScreensaverBar(); + +private: + /** + * Get the random top value + * + * @return TInt the random value + */ + void GetRandomTopValue( TInt aBarHight ); + + /** + * Get the random seed + */ + TInt RandomSeed(); + + /** + * Get the text and background color + */ + void GetTextAndBgColor(); + + /** + * Format the display text + */ + void FormatTextL( TDes& aText, const TDesC& aFormat ); + + /** + * Set AmPm text payload to indicator + */ + void SetAmPmIndicatorPayloadL(); + + /** + * Format the data and time text + */ + void FormatTextFromResourceL( TDes &aDes, TInt aResourceId ); + + /** + * Get the clock area and text layout + */ + void GetClockLayout( const TRect& aRect ); + + /** + * Get the date area and text layout + */ + void GetDateLayout( const TRect& aRect ); + + /** + * Get the indicator area and text layout + */ + void GetIndicatorAreaLayout( const TRect& aRect ); + + /** + * Start the indicator bar refresh timer + */ + void StartBarRefreshTimer(); + + +protected://data + + /** + * The layout date and text + */ + TAknLayoutText iLayoutDateText; +private://data + /** + * The top position of the bar + */ + TInt iTop; + + /** + * The random seed to get the random value + */ + TInt64 iRandSeed; + + // For new layout + /** + * The time string that will be displayed on the bar + */ + TBuf<15> iTextTime; + + /** + * The date string that will be displayed on the bar + * or he text will be display the on the bar + */ + TBuf<25> iText; + + /** + * The type of the display text + */ + TDisplayObjectType iType; + + //Lay out + TAknLayoutRect iLayoutBar; + TAknLayoutRect iLayoutClock; + TAknLayoutRect iLayoutDate; // missing + TAknLayoutText iLayoutClockText; + TAknLayoutText iLayoutAmPmText; + + // Moving bar on / off + TBool iMoveBar; + + /** + * The color for background and text + */ + TInt iBgColor; + TInt iTextColor; + TInt iTextBgColor; + + /** + * The indicator bar refresh timer + */ + CPeriodic* iBarRefreshTimer; + + /** + * Pictograph drawing interface + */ + CAknPictographInterface* iPictoI; + }; + +#endif // C_SCREENSAVERCTRLMOVINGTEXT_H + +#endif // USE_DATE_AND_TEXT +// End of file.