diff -r 000000000000 -r f979ecb2b13e searchui/searchapp/inc/srchuiresultviewerplugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/searchui/searchapp/inc/srchuiresultviewerplugin.h Tue Feb 02 10:12:19 2010 +0200 @@ -0,0 +1,200 @@ +/* +* Copyright (c) 2006-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: Interface class for Srch Ui Result Viewer plugin. All Result Viewer plugins will implement this class. +* +*/ + + + + + +#ifndef C_SRCHUI_RESULT_VIEWER_H +#define C_SRCHUI_RESULT_VIEWER_H + +// System includes +#include +#include + +// User Includes +#include "srchuiresulthandler.h" + + +// Constant for plugin interface: +//const TUid KSrchUiResultViewerPluginInterfaceUid = { 0x10207236 }; +//const TUid KSrchUiResultViewerPluginInterfaceUid = { 0x10282407 }; + +class CSearchResult; +class CSrchUiManager; +class CSrchUiResFolder; +class MSrchUiFolder; + +/** +* Used by SupportedFormat(). These literals define the desired appearance +* of the result in the Result Listbox. +*/ +_LIT(KSrchUiResultViewerSupportsText, "MIME/TEXT"); +_LIT(KSrchUiResultViewerSupportsPlain, "MIME/PLAIN"); +_LIT(KSrchUiResultViewerSupportsImage, "MIME/IMAGE"); + + +/** +* Interface class for Srch Ui Result Viewer plugin. All Result Viewer +* plugins will implement this class. +* +* Id() function must return the value of the plugin implementation UID. This +* means that the main view of the plugin will have the same UID as the plugin +* implementation. This will prevent multiple plugins from having same view +* UIDs as their main view. If plugin has more views, it is plugin's +* responsibility to ensure that the UIDs of the other views are unique. This +* can be done for example reserving a unique UID from Symbian. +* +* +*/ + +class CSrchUiResultViewerPlugin: public CAknView + { + + + public: // Constructors & destructors + + /** + * Ecom interface static factory method implementation. + * + * @param aImpUid Ecom's implementation uid + * @param aManager The Search Ui Manager instance, which is used to talk + * to the Frame work and show the results + * @param aAppUi The instance of the Appui. + * @return A pointer to the created instance of CSrchUiResultViewerPlugin + */ + static inline CSrchUiResultViewerPlugin* NewL( TUid aImpUid ); + + /** + * Ecom interface static factory method implementation. + * + * @param aImpUid Ecom's implementation uid + * @param aManager The Search Ui Manager instance, which is used to talk + * to the Frame work and show the results + * @param aAppUi The instance of the Appui. + * @return A pointer to the created instance of CSrchUiResultViewerPlugin + */ + static inline CSrchUiResultViewerPlugin* NewLC( TUid aImpUid ); + + /** + * Destructor + */ + virtual ~CSrchUiResultViewerPlugin() + { + REComSession::DestroyedImplementation( iDtor_ID_Key ); + // REComSession::Close(); + } + +public: // New functions + + /** + * Lists all implementations which satisfy this ecom interface. + * + * @param aImplInfoArray On return, contains the list of available implementations + */ + static inline void ListAllImplementationsL( RImplInfoPtrArray& aImplInfoArray ); + + /** + * Gets the plugin id. + * + * @since S60 v3.2 + * @return Id of the plugin. + */ + inline TUid PluginId() const; + + /** + * Gets the appui. + * + * @return Appui. + */ + inline CAknViewAppUi* AppUi(); + + /** + * Gets the supported format. + * + * @return the supported fromat. + */ + virtual const TDesC& SupportedFormat() = 0; + + /** + * This function is called to get the opened folder + * + * @return the opened folder + */ + virtual MSrchUiFolder* OpenFolder() = 0; + + /** + * This function is called to launch the single result view + * + @param iSrchUiResRootFolder : The root folder + @param aSelectedFolderIdx : The index of the selected folder + @param aSearchFinished : Indicates if searching is complete/not + */ + virtual void LaunchViewL(CSrchUiResFolder* iSrchUiResRootFolder, + TInt aSelectedFolderIdx, const TDesC8& aQueryString, TBool aSearchFinished) = 0; + + /** + * Updates the Result View with the recently received heavy results + @param iSrchUiResRootFolder : The root folder + @param aSearchFinished : Indicates if searching is complete/not + */ + virtual void UpdateViewL(CSrchUiResFolder* iSrchUiResRootFolder, TBool aSearchFinished, TBool aResultRetrieve ) = 0; + + + /** + * This function is called to initialize the observer + * + @param aResHandler : The observer + */ + virtual void CreateManagerObserver(MSrchUiResultHandler* aResHandler) = 0; + + + /** + * Returns the extension for this interface. If no extension is available, + * return NULL. + * + * @param aExtensionUid Uid of the extension. + */ + virtual TAny* ViewerPluginExtensionL( TUid /*aExtension*/ ) { return NULL; } + + + + private: // Data + + TUid iDtor_ID_Key; + + // Result viewer plugin id + TUid iPluginId; + + // Pointer to application UI + CAknViewAppUi* iAppUi; + + // Pointer to srch ui manager + CSrchUiManager* iManager; + + // Array of pointers to heavy results + RPointerArray iResults; + + + TInt32 iExtension1; + TInt32 iExtension2; + }; + +#include "srchuiresultviewerplugin.inl" + +#endif // GSPLUGININTERFACE_H +//End of file