diff -r 1fc85118c3ae -r 870918037e16 basiclocationinfodisplay/blid/ui/inc/CBlidBaseView.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/basiclocationinfodisplay/blid/ui/inc/CBlidBaseView.h Wed Sep 01 12:31:27 2010 +0100 @@ -0,0 +1,286 @@ +/* +* Copyright (c) 2005 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: Declares main view for blid application. +* +*/ + + +#ifndef CBLIDBASEVIEW_H +#define CBLIDBASEVIEW_H + +// INCLUDES +#include +#include +#include + +#ifdef RD_SCALABLE_UI_V2 +#include +#endif // RD_SCALABLE_UI_V2 + +#include "MKeyProcessor.h" +#include "MBlidEngObserver.h" +#include "CLmkLandmarkSelectorDlg.h" +#include "blidcommonconsts.h" + +// FORWARD DECLARATIONS +class CEikonEnv; +class CBlidBaseContainer; +class CEikMenuPane; +class MBlidRouter; +class MBlidLocation; +class CBlidEng; +class CBlidCurrentPositionDlg; +class CBlidDocument; +class CAlfImageLoaderUtil; + +// CLASS DECLARATION +/** +* Base view class. +* +*/ +class CBlidBaseView : public CAknView, public MKeyProcessor, + public MBlidEngObserver + #ifdef RD_SCALABLE_UI_V2 + ,public MEikListBoxObserver + #endif // RD_SCALABLE_UI_V2 + { + public: // Constructors and destructor + /** + * C++ constructor + * @param aKeyProcessor A pointer to MKeyProcessor + */ + CBlidBaseView( MKeyProcessor& aKeyProcessor ); + + /** + * By default Symbian 2nd phase constructor is private. + * @param aResId Resource id + */ + void BaseConstructL( TInt aResId ); + + /** + * Destructor. + */ + ~CBlidBaseView(); + + public: // From MKeyProcessor + TBool ProcessKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType ); + MAknTabObserver* TabObserver(); + + public: // From MEikMenuObserver + void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ); + + public: //From MBlidEngObserver + void NotifyL( const TBool aOnlineMode ); + void NotifyErrorL( TInt aErrorCode ); + void Update(CBlidBaseContainer* aContainer); + CEikButtonGroupContainer* CBAPtr() const; + + protected: // New methods + /** + * Handle help requests + * + * @param aMenuPane A pointer to CEikMenuPane + */ + void HandleHelpFeatureL( CEikMenuPane* aMenuPane ) const; + + /** + * Insert waypoint to MBlidRouter's array + * @return ETrue if waypoint inserted, + * EFalse if waypoint not inserted + */ + TBool InsertWaypointL(); + + /** + * Select waypoint from the list + * + * @return index of list + */ + TInt SelectWaypointL(); + + /** + * Check if waypoint name exist + * @param aName + * @return TBool + */ + TBool CheckIfExistL( const TDes& aName, TInt& aErrorCode, TInt& aRemovedIndex ); + + /** + * Launches the Landmark Dialog + * + */ + TInt LaunchLandmarksDialogL(); + + /** + * Launches confirmation dialog + * + */ + TInt NotifyUserErrorL(TInt resourceId); + + void SaveCurrentPositionAsLandmarkL(); + + TInt LaunchManualWaypointDialogL(); + + /** + * Make visible Middle Soft Key Label/Icon. + * + */ + void SetMSKVisible(); + + #ifdef RD_SCALABLE_UI_V2 + /** + * From MEikListBoxObserver. + * Handles listbox events. + * @param aListBox Listbox where the event occurred. + * @param aEventType Event type. + */ + void HandleListBoxEventL( CEikListBox* aListBox, + TListBoxEvent aEventType ); + + /** + * Called by HandleListBoxEventL to handles list box selections. + * This is Pure virtual function so every derived view class + * need defination for this function + */ + virtual void HandleListBoxSelectionL() = 0; + #endif // RD_SCALABLE_UI_V2 + + void ShowCurrentPositionInfoL(); + + public: //New Method + /** + * Changes the MSK visibility option depending upon some condition. + * + */ + void SetMSKNotVisible(); + + /** + * Update Middle Soft Key label/Icon depending upon GPS data Availability + * + */ + void UpdateMskStateL(); + + void SaveCurrentPositionL(); + + CBlidDocument* BlidDocument(); + + void ActivateSatelliteViewL( ); + + TBool IsSatViewActive( ); + + TBool IsForeGroundApp( ); + + void ExitMainApplicationL( TInt aButtonId ); + + void LaunchTripContextMenuL(); + + void LaunchNavigationContextMenuL(); + + void LaunchSatelliteInfoDlgL(); + + /** + * Sets the Middle Soft Key label after reding from the resource ID. + * @param aResourceId + * @param aCommandId + */ + void SetMiddleSoftKeyLabelL(const TInt aResourceId, const TInt aCommandId ); + + void RemoveMiddleSoftKeyLabel( const TInt aCommandId ); + + void ActivateNavigationViewL( ); + + void ChangeViewSoftKeyL( ); + + TRect ApplicationRect() const; + + CAlfImageLoaderUtil* ImageLoaderUtils( ) const; + + TFileName ImagePathName( ) const; + + + #ifdef RD_SCALABLE_UI_V2 + public: + /** + * Depends upon the Lm feature availability + * return ETrue or EFalse + * @return Tbool + */ + TBool IsLmFeatureAvailable(); + + /** + * Depends upon the Lm availability in DB + * return ETrue or EFalse + * @return Tbool + */ + TBool IsLmAvailableL(); + + /** + * Depends upon saved Waypoint availability + * return ETrue or EFalse + * @return Tbool + */ + TBool IsWpAvailable(); + + #endif // RD_SCALABLE_UI_V2 + + public://new function added for HTK + void ActivateCorrectViewL( TInt aIndex ); + + TBool IsSettingsViewActive(); + + CCoeEnv* CoeEnv(); + + + protected: // Data + /// Not owned: reference to key processor + MKeyProcessor& iKeyProcessor; + + // Not owned: A pointer to location model + MBlidLocation* iLocation; + + // Not owned: A pointer to router model + MBlidRouter* iRouter; + + // Not owned: A pointer to blid's engine + CBlidEng* iEngine; + + /// Own: Landmark Dialog + CLmkLandmarkSelectorDlg* iLandmarkInfo; + + ///Own: count for 30 sec PSY unavailaility + static TInt iPSYTimeoutCount; + + ///Own: Manual waypoint default name + TBuf iManualWaypointName; + + static TBool iOnline; + + TInt iGPSTimeoutCount; + + //Own: Boolean value holds whether the MSK is visible or not. + TBool iMSKVisible; + + TBool iIsSettingsViewActive; + + private: + CBlidCurrentPositionDlg* iPopupDialog; + + TFileName iConFileName; + + CAlfImageLoaderUtil* iImageLoaderUtil; + + }; + +#endif //CBLIDBASEVIEW_H + +// End of File