diff -r 000000000000 -r f979ecb2b13e searchui/searchapp/inc/srchuimanager.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/searchui/searchapp/inc/srchuimanager.h Tue Feb 02 10:12:19 2010 +0200 @@ -0,0 +1,341 @@ +/* +* Copyright (c) 2006-2007 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: Manager communicates with the client and srchuigenui +* +*/ + + + + + + + +#ifndef C_SEARCH_UI_MANAGER_H +#define C_SEARCH_UI_MANAGER_H + +#include +#include "searchrequirement.h" +#include +#include + +#include "srchuiresulthandler.h" +#include "srchuiserviceplugin.h" +#include "srchuiresultviewerplugin.h" + +class CFbsBitmap; +class CAknView; +class CSrchUiResFolder; +class MSrchUiFolder; +class CSrchUiResultViewerPlugin; + + +/** +* This structure contains the information that is needed by the +* SearchMainView to be displayed. +*/ +struct TServiceInfo + { + +public: + + /** + * Service Id + */ + TUid iServiceId; + + /** + * Caption for service + */ + HBufC* iPrimaryCaption; + + /** + * Secondary Caption for service + */ + HBufC* iSecondaryCaption; + + /** + * Icon + */ + CFbsBitmap* iServiceIcon; + + /** + * Icon mask + */ + CFbsBitmap* iServiceIconMask; + + /** + * Visiblity + */ + TBool iVisible; + }; + + +/** + * Class is an interface for communication between srchgenui and + * search client. + * + * And also constructs the result folder. + */ +NONSHARABLE_CLASS( CSrchUiManager ) : public CBase + { + +public: + /** + * Symbian OS 2 phased constructor. + * + * @return A pointer to the created instance of CSrchUiManager. + */ + static CSrchUiManager* NewL(); + + /** + * Symbian OS 2 phased constructor. + * + * @return A pointer to the created instance of CSrchUiManager. + */ + static CSrchUiManager* NewLC(); + + /** + * Destructor + */ + virtual ~CSrchUiManager(); + + + /** + * Loads the services that are implemented as the SearchUiCustomPlugIns + * + * @param aServiceInfoArray Service info array + */ + void LoadUiServicesL( RPointerArray& aServiceInfoArray ); + + /** + * Handles the selection of the a particular service id from the Search + * Main View.If the Service plug in uses light customization, then InDevice + * /ServiceMainView is constructed and launched using GeneralSearch Ui + * Else, if the Service plug in uses heavy customization, then + * of the plug in is called... If the query string is not NULL, + * then the search is launched for the selected service, without launching + * the Service/InDeviceMainView + * + * Called when the service has been selected by the user. + * + * @param aQueryString The query string entered by the user. + * @param aServiceId The ServiceId of the service. + * @param aSelectedContentTypes All the selected content types + *@param aObserver Observer + */ + void HandleSelectionL ( TDesC8& aQueryString, TUid aServiceId, + RArray aSelectedContentTypes, MSearchQueryObserver* aObserver ); + + /** + * Gets the supported content classes by the SearchFW + * Used by the Service Main view of General Search Ui to display + * the content classes + * + * @param aSupportedContentClasses supported content classes will be + placed in this variable + * @param aServiceId Service Id of which to be + */ + void GetSupportedContentClassesL ( RPointerArray& + aSupportedContentClasses, const TUid& aServiceId ); + + /** + * + * Sets the threshold + * @param aThreshold + */ + void SetThreshold( TSearchThreshold aThreshold ); + + + /** + * Gets the results + * + * @param aObserver Obsrever through which results are retrieved + */ + void GetResultL( RPointerArray& aResultIdArray, + MSearchResultRetrieveObserver* aObserver ); + + + /** + * Getter for iAllContentClassesSelected flag + */ + TBool AllContentClassesSelected() const; + + /** + * Setter for iAllContentClassesSelected flag + */ + void SetAllContentClassesSelected( TBool aSelected ); + + /** + * Get the selected content types + * + * @return Boolean values if the selected in same order as the content + * types + */ + RArray& SelectedContentTypes(); + + /** + * Set the selected content types + * + * @param aSelected + */ + void SetSelectedContentTypesL( RArray& aSelected ); + + /** + * Updates the supported content classes to the passed parameter + * + * @param aContentClass content classes to be updated + */ + void UpdateContentClassesL( RPointerArray< CSearchContent> aContentClass ); + + /** + * returns max results allowed + * + */ + TInt MaxResults(); + + /** + * Getter for light result count + * + * @return The number of light result count + */ + TInt LightResultCount(); + + /** + * Sets the last visited view id + * + * @param aViewId : the view id of the previous view + */ + void SetLastLaunchViewId(const TUid aViewId); + + + /** + * Get the Query string + * + * @since S60 v3.2 + * @return : reference to the query string + */ + TDesC8& GetQueryString(); + + /** + * From MSrchUiResultHandler + * + * Launches the application for given document id + * + * @param aResultId Document Id for which is to be launched + */ + void LaunchApplicationL( const CSearchDocumentId& aResultId ); + + /** + * Cancels the search operation + */ + TInt CancelSearch(); + /** + * Get the launch infor + */ + HBufC8* GetLaunchInfoL( const CSearchDocumentId& aDocumentID ); + +private: + // C++ constructor - not exported; + // implicitly called from NewLC() + /** + * Constructor + * + */ + CSrchUiManager( ); + + /** + * second-phase constructor + * + */ + void ConstructL( ); + + /** + * Initializes the Ui Plugins + * + * @param aImpUid Implementation Uid + */ + CSrchUiServicePlugin* InitializeUiPlugInsL(TUid aImpUid ); + + /** + * Loads the Plugin information + * + * @param aServiceInfoArray service info array + */ + void LoadPluginInfoL( RPointerArray& aServiceInfoArray ); + + /** + * fires a search + * + * @param aQueryString query string to be searched + * @param aServiceId service id + * @param aObserver observer + */ + void FireSeacrhL( TDesC8& aQueryString,TUid aServiceId, + MSearchQueryObserver* aObserver ); + +private: //data + + /** + * Service Id + */ + TUid iServiceId; + + /** + * search requirement + * includes query string, where to search, what to search etc., + * + * Own + */ + CSearchRequirement* iSearchRequirement; + + /** + * Array of Services available + */ + RPointerArray iServices; + + /** + * session with the search client + * + * Own + */ + CSearchClientSession* iClientSession; + + /** + * Supported content classes + */ + RPointerArray iSupportedContentClasses; + + /** + * Number of requests made for e.g, 3rd search request to client + */ + TInt iRequest; + + /** + * Array of selected content type + */ + RArray iSelectedContentTypes; + + /** + * Boolean if all classes are selected + */ + TBool iAllContentClassesSelected; + + + /** + * Threshold for the search : Max results, max time etc., + */ + TSearchThreshold iThreshold; + }; + +#endif //C_SEARCH_UI_MANAGER_H \ No newline at end of file