diff -r 000000000000 -r bf1d17376201 voiceui/vcommand/inc/vcappui.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/voiceui/vcommand/inc/vcappui.h Thu Dec 17 08:46:30 2009 +0200 @@ -0,0 +1,221 @@ +/* +* Copyright (c) 2006 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: Application UI class for vcommand app +* +*/ + + +#ifndef CVCAPPUI_H +#define CVCAPPUI_H + +// INCLUDES +#include +#include +#include +#include +#include +#include +#include +#include "vcmodelappuiinterface.h" + +class CVCModel; +class CAppCloser; +class CVCGenericView; + +// CLASS DECLARATION + +/** +* Application UI class. +* Provides support for the following features: +* - EIKON control architecture +* - view architecture +* - status pane +*/ +class CVCAppUi : public CAknViewAppUi, public MVcModelAppUiInterface + { + public: // Constructors and destructor + + /** + * Symbian C++ default constructor. + */ + void ConstructL(); + + /** + * Destructor. + */ + virtual ~CVCAppUi(); + + public: // Functions from base classes + + /** + * From MVcModelAppUiInterface + * Notifies the the command set has changed and the view may need to be + * updated + */ + virtual void CommandSetChanged(); + + /** + * Called before starting VCommandHandler operations that should be + * executed fully before application can be exited. Leave safe operation. + * A subsequent call to CleanupStack::PopAndDestroy should be done + * after such operations have completed + */ + virtual void StartAtomicOperationLC(); + + /** + * From CAknViewAppUi + */ + TBool IsDisplayingMenuOrDialog(); + + public: // New Functions + + /** + * Sets titlepane text + * @param aResourceId id for resource + * @return void + */ + void SetTitleL( TInt aResourceId ); + + /** + * Displays command too short note + * @return void + */ + void ShowErrorNoteL( TInt aResourceId ); + + /** + * Displays name already in use note + * @return void + */ + void NameAlreadyInUseNoteL( const TDesC& aName ); + + /** + * Displays wait note + * @param aText text to be displayed + * @return void + */ + void ShowWaitNoteL( const TDesC& aText ); + + /** + * Deletes wait note + * @return void + */ + void DeleteWaitNoteL(); + + /** + * Checks if there's call in progress. + * @return TInt ESACallNone if there's no active call + */ + TInt CheckCallStateL(); + + /** + * Displays call in progress note + * @return void + */ + void CallInProgressNoteL(); + + /** + * + * @return TBool ETrue if there is a video call + */ + TBool IsVideoCallL(); + + /** + * Exits the application correctly, taking into account whether a call + * has been made to NotifyStartOfAtomicOperation + * @return void + */ + void ExitProgram(); + + /** + * Exits the application + */ + void DoExitProgram(); + + /** + * Calls CAppCloser::Call. CAppCloser::RunL will eventually exit the + * application. + */ + void ExitProgramDeferred(); + + + private: // Functions from base classes + + /** + * From MEikMenuObserver + * @see MEikMenuObserver for more information + */ + void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ); + + /** + * From CEikAppUi + * @see CEikAppUi for more information + */ + void HandleCommandL( TInt aCommand ); + + /** + * From CEikAppUi + * Handle skin change event. + */ + void HandleResourceChangeL( TInt aType ); + + private: // New functions + + /** + * Runs the EndAtomicOperation when calling CleanupStack::PopAndDestroy after + * a call to StartAtomicOperationLC + */ + static void CleanupEndAtomicOperation( TAny* aService ); + + /** + * Creates and pushes to cleanup stack a TCleanupItem that calls + * EndAtomicOperation when CleanupStack::PopAndDestroy is called + */ + void CreateAndPushEndAtomicCleanupItemL(); + + /** + * Called after VCommandHandler operations that need to be operated + * fully before application can be exited have been completed. + */ + void EndAtomicOperation(); + + + private: // data + + // Wait dialog for command editing + CAknWaitDialog* iWaitNote; + + // Indicates that an operation has to be finished before the + // application can be exited + TBool iOperationInProgress; + + // Indicates that an request for exiting the application has been made + TBool iExitRequested; + + // Active object used to close the application + CAppCloser* iCloser; + + friend class CAppCloser; + + CVCGenericView* iMainView; + + CVCGenericView* iFolderView; + + CVCModel* iModel; + }; + +#endif // CVCAPPUI_H + +// End of File + +