diff -r 3104fc151679 -r 9a48e301e94b uiservicetab/vimpstui/inc/cvimpstuisearchview.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uiservicetab/vimpstui/inc/cvimpstuisearchview.h Wed Sep 01 12:33:36 2010 +0100 @@ -0,0 +1,274 @@ +/* +* Copyright (c) 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: Search view declaration +* +*/ + + + +#ifndef CVIMPSTUISEARCHVIEW_H +#define CVIMPSTUISEARCHVIEW_H + + +// INCLUDES +#include // CBase +#include +#include + +#include "CxSPBaseView.h" +#include "tvimpstenums.h" +#include "mvimpstcmdobserver.h" +#include "mvimpstenginesearchextentioneventobserver.h" + +// FORWARD DECLARATIONS +class CVIMPSTUiSearchViewControl; +class CVIMPSTUIExtensionService; +class MVIMPSTEngine; +class MVIMPSTCmdHandler; +class CAknNavigationDecorator; +class CVIMPSTUtilsWaitNote; +class CAsyncCallBack; + + +// CLASS DECLARATION +/** + * Search view implementation + * @lib vimpstui.lib + * @since S60 v5.0 + */ + // codescanner warnings can be ignored as CxSPBaseView derived from CBsse + +class CVIMPSTUiSearchView :public CxSPBaseView, + public MVIMPSTCmdObserver, + public MVIMPSTEngineSearchExtentionEventObserver + { + public: // Constructors and destructor + + + /** + * Creates a new CVIMPSTUiSearchView. + * + * @param aMapper Reference to view mapper object + * @param aContactManager Reference to contact manager object + * @param aSearchViewId search view id + * @param aServiceId service id + * @param aView Reference to Phonebook2-created view instance + * @param aId native view id + * @param aServiceData Reference to ui extension service + * @param aEngine Reference to engine object + * @param aCommandHandler Reference to commnad handler object + * @return New instance of this class + */ + static CVIMPSTUiSearchView* NewL( MxSPViewMapper& aMapper, + MxSPContactManager& aContactManager, + TUint aSearchViewId, + TUint aServiceId, + CPbk2UIExtensionView& aView, + TUid aId, + CVIMPSTUIExtensionService& aServiceData, + MVIMPSTEngine& aEngine, + MVIMPSTCmdHandler& aCommandHandler ); + + + + public: // From MPbk2UIExtensionView through CxSPBaseView + + /** + * @see MPbk2UIExtensionView + */ + TBool HandleCommandKeyL( + const TKeyEvent& aKeyEvent, + TEventCode aType ); + + /** + * @see MPbk2UIExtensionView + */ + void DoDeactivate(); + + /** + * @see MPbk2UIExtensionView + */ + void HandleCommandL( TInt aCommand ); + + /** + * @see MPbk2UIExtensionView + */ + void DynInitMenuPaneL( TInt aResourceId, + CEikMenuPane* aMenuPane ); + + /** + * @see MPbk2UIExtensionView + */ + void HandleStatusPaneSizeChange(); + + /** + * Function to launch help + */ + void LaunchHelpL( const TDesC& aContext); + + /** + * Search CallBack function + * This is used to call the search functionality when its called form the + * Tabbed view + * + * @param aInstance : Search view pointer is passed in our case + * @return Error to call back function + */ + static TInt SearchCallbackL(TAny* aInstance); + + private: // From CxSPBaseView + + /** + * @see CxSPBaseView + */ + void DoActivateViewL( const TVwsViewId& aPrevViewId, + TUid aCustomMessageId, + const TDesC8& aCustomMessage ); + + + private : //From MImCommandObserver + + /** + * @see MImCommandObserver + */ + void CommandFinishedL( + const MVIMPSTCmd& aCommand ); + + /** + * @see MImCommandObserver + */ + void HandleCommandEventL(TVIMPSTEnums::TVIMPSTRegistrationState aState, TInt aServiceError) ; + + private: + + /** + * Used to search for contacts matched against entered string + */ + void SearchContactsL(); + + + /** + * This function updates text to navi pane + */ + void UpdateNaviPaneTextL( ); + + + private: // Functions from MVIMPSTEngineSearchExtentionEventObserver + + /** + * @see MVIMPSTEngineSearchExtentionEventObserver + */ + void HandleSearchResultL(RArray aSerachData) ; + + /** + * @see MVIMPSTEngineSearchExtentionEventObserver + */ + void HandleSearchFinishedL(TInt aError); + + + /** + * @see MVIMPSTEngineSearchExtentionEventObserver + */ + void HandleSearchKeysEventL( RArray& aEnumKeysArray, RPointerArray& aLebelKeysArray ) ; + + + private: + + /** + * Standard C++ constructor + * @param aMapper Reference to view mapper object + * @param aContactManager Reference to contact manager object + * @param aSearchViewId search view id + * @param aServiceId service id + * @param aView Reference to Phonebook2-created view instance + * @param aId native view id + * @param aServiceData Reference to ui extension service + * @param aEngine Reference to engine object + * @param aCommandHandler Reference to commnad handler object + */ + CVIMPSTUiSearchView( MxSPViewMapper& aMapper, + MxSPContactManager& aContactManager, + TUint aSearchViewId, + TUint aServiceId, + CPbk2UIExtensionView& aView, + TUid aId, + CVIMPSTUIExtensionService& aServiceData, + MVIMPSTEngine& aEngine, + MVIMPSTCmdHandler& aCommandHandler ); + + /** + * Performs the 2nd phase of construction. + */ + void ConstructL(); + + /** + * Standard C++ destructor. + */ + ~CVIMPSTUiSearchView(); + + public: + + /** + * returns ETrue if the contact is already in the contact list + * else returns EFalse + * Based on this option "add to contacts " is shown + * + * @return whether the contact is already in the contact list or not + */ + TBool HideAddToContactsL() const; + + + private: // Data + + // Own: This view's control container + CVIMPSTUiSearchViewControl* iContainer; + + // Stores view id + TUint iSearchViewId; + + //service id + TUint32 iServiceId; + + //Doesnt own - reference to engine for this service + MVIMPSTEngine& iEngine; + + // Own: Used for navigation pane text + CAknNavigationDecorator* iNaviDecorator; + + //doesnt own, refernec to extension service + CVIMPSTUIExtensionService& iExtensionService; + + //Owns command Handler for this view + MVIMPSTCmdHandler& iCommandHandler; + + // owned + CVIMPSTUtilsWaitNote* iWaitNote; + + // this flag is to check whether the search id initiated + // from the search view or not + // At the first time its EFalse since search is always initiated from tabview + TBool iSearchInitiated; + + //flag to check if End Key was pressed + TBool iEndKeyPressed; + /** + * Active object for async calls. + */ + CAsyncCallBack* iCallBack; + + }; + +#endif // CVIMPSTUISEARCHVIEW_H + +// End of File