diff -r 000000000000 -r ba25891c3a9e ncdengine/provider/client/inc/ncdqueryselectionitemimpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ncdengine/provider/client/inc/ncdqueryselectionitemimpl.h Thu Dec 17 08:51:10 2009 +0200 @@ -0,0 +1,135 @@ +/* +* 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: +* +*/ + + +#ifndef C_NCD_QUERY_SELECTION_ITEM_H +#define C_NCD_QUERY_SELECTION_ITEM_H + +#include +#include + +#include "ncdqueryselectionitem.h" +#include "ncdqueryitemimpl.h" +#include "ncdinterfaceids.h" +#include "ncd_cp_queryelement.h" + +class CDesC16ArrayFlat; +class CNcdQueryOption; + +/** + * Implementation for selection query item. + */ +class CNcdQuerySelectionItem : public CNcdQueryItem, + public MNcdQuerySelectionItem + + { + +public: + + static CNcdQuerySelectionItem* NewL( + RReadStream& aReadStream, CNcdQuery& aParent ); + + static CNcdQuerySelectionItem* NewLC( + RReadStream& aReadStream, CNcdQuery& aParent ); + + static CNcdQuerySelectionItem* NewL( + const MNcdConfigurationProtocolQueryElement& aQueryElement, + CNcdQuery& aParent ); + + static CNcdQuerySelectionItem* NewLC( + const MNcdConfigurationProtocolQueryElement& aQueryElement, + CNcdQuery& aParent ); + + // For payment method query + static CNcdQuerySelectionItem* NewL( const RPointerArray& aPaymentMethodNames, + const MDesC8Array& aPaymentMethodTypes, + CNcdQuery& aParent ); + static CNcdQuerySelectionItem* NewLC( const RPointerArray& aPaymentMethodNames, + const MDesC8Array& aPaymentMethodTypes, + CNcdQuery& aParent ); + + + void InternalizeL( RReadStream& aReadStream ); + + void InternalizeL( const MNcdConfigurationProtocolQueryElement& aQuery ); + + void ExternalizeL( RWriteStream& aWriteStream ) const; + + +public: // From MNcdQuerySelectionItem + + + /** + * @see MNcdQuerySelectionItem + */ + virtual const MDesCArray& SelectionTexts() const; + + /** + * @see MNcdQuerySelectionItem + */ + virtual const MDesC8Array& SelectionData() const; + + /** + * @see MNcdQuerySelectionItem + */ + virtual void SetSelectionL( TInt aIndex ); + + /** + * @see MNcdQuerySelectionItem::Selection() + */ + virtual TInt Selection() const; + +public: // From MNcdQueryItem + + /** + * @see MNcdQueryItem + */ + virtual TNcdInterfaceId Type() const; + +public: // From CNcdQueryItem + + /** + * @see CNcdQueryItem + */ + const TDesC& ValueL(); + +protected: + + virtual ~CNcdQuerySelectionItem(); + +private: + + CNcdQuerySelectionItem( CNcdQuery& aParent ); + + virtual void ConstructL(); + + virtual void ConstructL( const RPointerArray& aPaymentMethodNames, + const MDesC8Array& aPaymentMethodTypes ); + + void CreateSelectionTextsL(); + +private: + + CDesC16ArrayFlat* iSelectionTexts; + CDesC8ArrayFlat* iSelectionData; + RPointerArray< CNcdQueryOption > iOptions; + TInt iSelection; + + }; + + +#endif // M_NCDQUERYSELECTIONITEM_H