diff -r 1fc85118c3ae -r 870918037e16 basiclocationinfodisplay/blid/ui/inc/CHtkTripMeterControl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/basiclocationinfodisplay/blid/ui/inc/CHtkTripMeterControl.h Wed Sep 01 12:31:27 2010 +0100 @@ -0,0 +1,436 @@ +/* +* Copyright (c) 2007-2008 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: Blid application Tripmeter view's control class definition. +* +*/ + + + +#ifndef __CHTKTRIPMETERCONTROL_H__ +#define __CHTKTRIPMETERCONTROL_H__ + +// SYSTEM INCLUDES +#include + +// USER INCLUDE + +//FORWARD DCLERATION +class MBlidLocation; +class MBlidRouter; +class MBlidSettings; +class MKeyProcessor; +class CAlfEnv; +class CBlidEng; +class CAknNavigationDecorator; +class CAknTabGroup; +class CEikStatusPane; +class CBlidBaseView; +class CAlfImageVisual; +class CAlfTextVisual; +class CAlfAnchorLayout; +class CAlfDeckLayout; +class CAlfCurvePathLayout; +class CRepository; +class CAlfTextStyle; +class CAlfFrameBrush; +class CAlfImageLoaderUtil; +class CAlfTexture; + +/*! + @class CHtkTripMeterControl + + @discussion HUITK-based control that displays the text "Hello World". + */ +class CHtkTripMeterControl : public CAlfControl + { + public: + /*! + @function NewL + + @discussion Create a CHtkTripMeterControl object, which will draw itself to aRect + @param aRect the rectangle this view will be drawn to + @result a pointer to the created instance of CHtkTripMeterControl + */ + static CHtkTripMeterControl* NewL(CAlfEnv& aEnv, + MKeyProcessor& aKeyProcessor, + MObjectProvider* aParent, + const TRect& aRect, + MBlidLocation* aLocation, + MBlidRouter* aRouter, + CBlidEng& aEngine, + CBlidBaseView& aView); + + /*! + @function ~CHtkTripMeterControl + + @discussion Destroy the object and release all memory objects + */ + ~CHtkTripMeterControl(); + + + private: + /*! + @function CHtkTripMeterControl + + @discussion Perform the first phase of two phase construction + */ + CHtkTripMeterControl(CAlfEnv& aEnv, + MKeyProcessor& aKeyProcessor, + MBlidRouter& aRouter, + CBlidBaseView& aView, + CBlidEng& aEngine ); + + /*! + @function ConstructL + + @discussion Perform the second phase construction of a CHtkTripMeterControl object + */ + void ConstructL(CAlfEnv& aEnv, + const TRect& aRect, + MBlidLocation* aLocation, + CBlidEng& aEngine ); + + + public: //from CAlfControl + /** + * Handle key event + */ + TBool OfferEventL( const TAlfEvent& aEvent ); + /** + * Process command + */ + void ProcessCommandL(TInt aCommand); + + public: // New functions + /** + * Update the display, called whenever a position update is received + */ + void UpdateL(); + + public: + /** + * Retruns ETrue if trip is started + */ + TBool HasTripStarted(); + /** + * Checks if GPS Data was lost + */ + TBool WasGPSDataLost(); + /** + * Sets GPS Data availability + */ + void SetGPSDataAvailability(TBool aAvailability); + + /** + * Make title + * @param aResourceText resource to create title + */ + void MakeTitleL( TInt aResourceText ); + + /** + * Returns Navigation decorator + */ + CAknNavigationDecorator* GetNiviDecorator( ); + + /** + * Create CAknNavigationDecorator, ownership passed to caller. + * @param aDefaultNaviPane, ETrue if default, EFalse if tabgroup + */ + void CreateNaviPaneL( TBool aDefaultNaviPane ); + + /** + * Activate navigation decorator. + * Method can called if tab needs to be refreshed. + * @param aNaviDecorator navigation decorator + * @param aTabId activated tabulator id + */ + void ActivateTabL( CAknNavigationDecorator& aNaviDecorator, + TInt aTabId ); + /** + * Saves the odometer value + */ + void SaveOdometerValue(); + /** + * Reset Odometer Distance + */ + void ResetOdometerDistanceL( ); + /** + * Change trip focus + */ + void ChangeTripFocus( TBool aSTripDimmed ); + /** + * Rechange trip focus + */ + void ReChangeTripFocus( ); + /** + * Update layout + */ + void UpdateLayoutL( ); + /** + * Displays info popup + */ + void DisplayInfoPopUpMsgL(); + + private: + /** + * Add new tabs to tabgroup + * @param aTabGroup + */ + void AddTabsL(CAknTabGroup& aTabGroup); + + /** + * Appui's status pane getter + * @return Statuspane pointer + */ + CEikStatusPane* StatusPane(); + /** + * Creates the trip visuals + */ + void CreateTripVisualsL( ); + /** + * Returns tripmeter value as descriptor + */ + void TripmeterFormatL( TDes& aTripmeterString ); + /** + * Returns total trip time as descriptor + */ + void TotalTimeFormat( TDes& aTotalTimeString ); + /** + * Returns odometer value as descriptor + */ + void OdometerFormat( TDes& aOdometerString ); + /** + * Returns current trip time as descriptor + */ + void TripTimeFormat( TDes& aTripTimeString ); + /** + * Set the value of tripmeter + */ + void SetTRipMeterValueL( ); + /** + * Set the value of odometer + */ + void SetOdoMeterValueL( ); + /** + * Set the trip time + */ + void SetTripTimeL( ); + /** + * Set the trip speed + */ + void SetTripSpeed( ); + /** + * Create speed visuals + */ + void CreateSpeedVisualsL(); + /** + * Rotates the speed dial + */ + void RotateSpeedDialL( int aThetaPrevious, int aThetaFinal ); + /** + * Ceates the speeed format + */ + void CreateSpeedFormatsL(); + /** + * Change the speedmeter scale + */ + void ChangeSpeedometerScaleL(); + /** + * Formats the odometer distance + */ + void FormatOdometerDistance( TReal aLastodometerValue ); + /** + * Launches device not available note + */ + void LaunchDeviceNotAvlNoteL(); + /** + * Displays the current signal strength + */ + void DisplaySatelliteSignalStrength( TInt aSatCount ); + /** + * Launches info query dialog + */ + void LaunchInfoQueryDlgL(); + /** + * Update visual image + */ + void UpdateVisualImage(); + /** + * Create Popup visuals + */ + void CreatePopUpVisualL(); + /** + * Create all signal textures + */ + void CreateSignalTexturesL(); + /** + * Create popup image tesxture + */ + void CreatePopupImgTextureL(); + /** + * Called when timer is expired + */ + static TInt Tick(TAny* aObject); // functions for TCallBack protocol + /** + * Calculate the Layout Rects + */ + void CalculateRects(); + /** + * Set Anchors for Visuals + */ + void SetAnchors(); + private: + /// Ref: aRouter + MBlidRouter& iRouter; + + MBlidLocation* iLocation; + + /// Own: Decorator class for navigation pane controls. + CAknNavigationDecorator* iDecoratedTabGroup; + + /// Reference to the view to handle resource change + CBlidBaseView& iView; + + /// Reference to the engine + CBlidEng& iEngine; + + //Own: Layout for all the visuals. + CAlfAnchorLayout* iTripLayout; + + CAlfEnv& iEnv; + + CAlfImageVisual* iTripDeckVisual; + CAlfImageVisual* iOdoDeckVisual; + CAlfImageVisual* iBigTripVisual; + CAlfDeckLayout* iTripDistLayout; + CAlfDeckLayout* iOdoLayout; + CAlfImageVisual* iTripDialVisual; + CAlfImageVisual* iTripTimeVisual; + //CAlfDeckLayout* iTripTimeLayout; + CAlfDeckLayout* iBigTripDecLayout; + /// Ref: A pointer to MBlidSettings model + MBlidSettings* iSettingsModel; + + HBufC* iDurationFormatLong; + + HBufC* iSpeedFormatKmph; + + HBufC* iSpeedFormatMph; + + HBufC* iDataBlank; + + HBufC* iTripDistance; + + HBufC* iOdometerDistance; + + //CAlfCurvePathLayout* iSpeedCurve; + //CAlfDeckLayout* iMileLayout; + CAlfTextVisual* iMileVisual[9]; + TInt iSpeedCount; + TReal32 iPrevSpeed; + TInt iMaxScale; + TInt iPrevAngle; + TInt iNextAngle; + + CAlfAnchorLayout* iPointerLayout; + + CAlfTextVisual* iTripMeter; + + CAlfTextVisual* iOdoMeter; + + CAlfTextVisual* iTriptime; + + CAlfTextVisual* iSpeedFormatVisual; + + TReal32 iCurrSpeed; + + TBool iIsLessThanInitial; + + CRepository* iRepository; + + TReal iLastodometerValue; + + TReal iOdoValueToStore; + + CAlfTextStyle* iStyle1; + + CAlfAnchorLayout* iPopUpLayout; + + CAlfTextVisual* iPopUpMsg; + + CAlfImageVisual* iPopImage; + + TBool isSatelliteInfoLaunch; + + CAlfDeckLayout* iPopupDeck; + + CAlfFrameBrush* iFrameBrush; + + CAlfImageVisual* iImageVisual; + + CPeriodic* iPeriodic; // periodic timer active object + TInt iDisplayIcon; // Current svg animation icon + RPointerArray iPopupTextures; + RPointerArray iSignalTextures; + CAlfTexture* iPopupImgTexture; + + HBufC* iImagePath; + + TBool iSTripDimmed; + + CAlfAnchorLayout* iPopUpAnchor; + + TRect iBigTripRect; + + TRect iTripDialRect; + + TRect iTripDeckRect; + + TRect iTripMeterRect; + + TRect iOdoDeckRect; + + TRect iOdoMeterRect; + + TRect iSpeedFormatRect; + + TRect iTripTimeRect; + + TRect iClockImageRect; + + TRect iValueRect1; + + TRect iValueRect2; + + TRect iValueRect3; + + TRect iValueRect4; + + TRect iValueRect5; + + TRect iValueRect6; + + TRect iValueRect7; + + TRect iValueRect8; + + TRect iValueRect9; + + TRect iSignalStrengthRect; + + TBool isDeviceUnavailableDisplayed; + TBool iIsDownPressed; ; + }; + +#endif // __CHTKTRIPMETERCONTROL_H__