diff -r b7fa36b488f8 -r cd54903d48da profilesapplication/Profiles/ProfileApp/UIsrc/CProfileMainView.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/profilesapplication/Profiles/ProfileApp/UIsrc/CProfileMainView.h Wed Sep 01 12:30:29 2010 +0100 @@ -0,0 +1,213 @@ +/* +* Copyright (c) 2002 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: Main view class. +* +*/ + + + +#ifndef CPROFILEMAINVIEW_H +#define CPROFILEMAINVIEW_H + +// INCLUDES +#include +#include "MProfileChangeObserver.h" +#include "MProfileViewHandler.h" + +// CONSTANTS +const TUid KProfileAppMainViewId = { 1 }; // UID of view + +// FORWARD DECLARATIONS +class CProfileEngineHandler; +class CProfileIndexHandler; +class CProfileMainContainer; +class CProfileChangeNotifyHandler; +class CProfileNaviPaneContainer; +class MProfilesLocalFeatures; + +// CLASS DECLARATION +/** +* Main view class. +* Derived from MProfileChangeObserver to get an event when active profile is +* changed (needed for updating the navi pane). +* +* @lib ProfileApp.app +* @since 1.2 +*/ +NONSHARABLE_CLASS( CProfileMainView ) : public CAknView, + public MProfileChangeObserver, + public MProfileViewHandler + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + * @param aEngineHandler Engine Handler. + * @param aIndexHandler Index Handler. + * @return Returns an instance of CProfileMainView. + */ + static CProfileMainView* NewLC( + CProfileEngineHandler& aEngineHandler, + CProfileIndexHandler& aIndexHandler ); + + /** + * Destructor. + */ + ~CProfileMainView(); + + public: // Functions from base classes + + /** + * From CAknView + */ + TUid Id() const; + + /** + * From CAknView + */ + void HandleCommandL( TInt aCommand ); + + /** + * From MProfileViewHandler + */ + void UpdateClientRect(); + + /** + * From MProfileViewHandler + */ + CAknView& View(); + + private: // New functions + + /** + * Launches a CAknQueryDialog. + * @param aResourceId Resource id to DIALOG resource. + * @return Returns ETrue if user accepted the query. + */ + TBool DisplayConfirmationQueryL( TInt aResourceId ) const; + + /** + * HandleCommandL switch separated to own method. + */ + void DoCmdActivateL(); + + /** + * HandleCommandL switch separated to own method. + */ + void DoCmdCreateNewL(); + + /** + * HandleCommandL switch separated to own method. + */ + void DoCmdDeleteL(); + + /** + * HandleCommandL switch separated to own method. + */ + void DoCmdContextSpecificOptionsMenuL(); + + /** + * HandleCommandL switch separated to own method. + */ + void DoCmdTimedL(); + + /** + * Displays information note containing time left + * until the profile expires + */ + void DisplayTimedInfoNoteL( TInt aMinutes, TInt aHours ) const; + /** + * Displays confirmation note containing time left + * until the profile expires + */ + void DisplayTimedQueryNoteL( TInt aMinutes, TInt aHours ) const; + + /** + * Update cba. + */ + void UpdateCbaL(TInt aResourceId); + + + private: // Functions from base classes. + + /** + * From CAknView + */ + void DoActivateL( + const TVwsViewId& aPrevViewId, + TUid aCustomMessageId, + const TDesC8& aCustomMessage ); + + /** + * From CAknView + */ + void DoDeactivate(); + + /** + * From CAknView + */ + void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ); + + /** + * From MProfileChangeObserver + */ + void HandleActiveProfileEventL( + TProfileEvent aProfileEvent, TInt aProfileId ); + + private: + + /** + * C++ constructor. + * @param aEngineHandler Engine Handler. + * @param aIndexHandler Index Handler. + */ + CProfileMainView( + CProfileEngineHandler& aEngineHandler, + CProfileIndexHandler& aIndexHandler ); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + private: // Data + + // Engine handler + CProfileEngineHandler& iEngineHandler; + + // Index handler + CProfileIndexHandler& iIndexHandler; + + // Top item index of the listbox. + TInt iTopItemIndex; + + // Own: Main Container. + CProfileMainContainer* iContainer; + + // Own: Profile change notify handler. + CProfileChangeNotifyHandler* iNotifier; + + // Own: Navi pane container. + CProfileNaviPaneContainer* iNaviPaneContainer; + + // Not own: locally variated features of Profiles: + MProfilesLocalFeatures* iLocalFeatures; + + }; + + +#endif // CPROFILEMAINVIEW_H + + +// End of File