diff -r 000000000000 -r dd21522fd290 webengine/wrtharvester/inc/wrtharvesterregistryaccess.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webengine/wrtharvester/inc/wrtharvesterregistryaccess.h Mon Mar 30 12:54:55 2009 +0300 @@ -0,0 +1,131 @@ +/* +* Copyright (c) 2007, 2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* +*/ + + +#ifndef WRHARVESTERREGISTRYACCESS_H +#define WRHARVESTERREGISTRYACCESS_H + +// INCLUDES +#include +#include + +// FORWARD DECLARATIONS +class CWidgetInfo; + +// CONSTANTS +template < class T > class RWrtArray : public RPointerArray< T > + { + public: + inline RWrtArray() : RPointerArray< T >() + { + }; + inline void PushL() + { + TCleanupItem item( DoCleanup, this ); + CleanupStack::PushL( item ); + } + + inline void ResetAll() + { + for ( TInt i( this->Count() - 1 ); i >= 0; --i ) + { + delete (*this)[ i ]; + } + this->Close(); + } + + private: + static void DoCleanup( TAny* aPtr ) + { + __ASSERT_DEBUG( aPtr, User::Invariant() ); + RWrtArray< T >* ptr( reinterpret_cast< RWrtArray< T >* >( aPtr ) ); + for ( TInt i( ptr->Count() - 1 ); i >= 0; --i ) + { + delete ( *ptr )[ i ]; + } + ptr->Close(); + } + }; + +// CLASS DECLARATION + +/** + * Widget Register accessor. + * + * Handles communication & widget bookkeeping of miniview-capable widgets. + * + * @lib wrtharvester.dll + * @since S60 S60 v5.0 + */ +class WrtHarvesterRegistryAccess + { + public: + /** + * Default constructor. + */ + WrtHarvesterRegistryAccess(); + + /** + * Destructor. + */ + ~WrtHarvesterRegistryAccess(); + + /** + * Get widget bundle names for widgets supporting miniviews. + * + * NOTE: Ownership of pointers in the array is not transferred! + * Caller must not delete them. + * + * @param aArray Array where the descriptor pointers are to be stored. + */ + void WidgetBundleNamesL( RPointerArray< HBufC >& aArray ); + + /** + * Get widget uid. + * + * @param aBundleName Name of the widget + * @return TUid of the widget. + */ + TUid WidgetUid( TPtrC aBundleName ); + + private: + /** + * Check if the widget support miniview. + * + * @param aSession Widget registry session + * @param aUid UID of widget. + * @return Yes or no. + */ + TBool SupportsMiniviewL( RWidgetRegistryClientSession& aSession, const TUid& aUid ); + + /** + * Returns the Bundle identifier for the given widget. Ownership transfered. + * + * @param aSession Widget registry session + * @param aUid UID of widget. + * @return Identifier in a descriptor. + */ + HBufC* ConstructWidgetNameL( RWidgetRegistryClientSession& aSession, CWidgetInfo& aInfo ); + + private: // data + /** + * + */ + RWrtArray< CWidgetInfo > iWidgetInfoArray; + }; + +#endif // WRHARVESTERREGISTRYACCESS_H