diff -r 3104fc151679 -r 9a48e301e94b uiservicetab/vimpstdetailsviewplugin/inc/cvimpstfieldproperty.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uiservicetab/vimpstdetailsviewplugin/inc/cvimpstfieldproperty.h Wed Sep 01 12:33:36 2010 +0100 @@ -0,0 +1,148 @@ +/* +* 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: a single field with property + * +*/ + + +#ifndef CVIMPSTFIELDPROPERTY_H +#define CVIMPSTFIELDPROPERTY_H + +// INCLUDE FILES +#include + +// FORWARD DECLARATIONS +class TResourceReader; +class MVPbkFieldTypeList; +class CVIMPSTFieldPropertyArray; +class MVPbkStoreContactField; +class MVPbkFieldType; +class MVPbkBaseContactField; + +//class MVPbkContactFieldData; +/** + * details view field property. + * Field property for a im details field type. + * Field property contains data for contact field presentation + * in the UI. + * @since s60 v5.0 + */ +class CVIMPSTFieldProperty : public CBase + { + friend class CVIMPSTFieldPropertyArray; + + public: // Construction and destruction + + /** + * Creates a new instance of this class. + * + * @param aFieldId field id + * @param aIconId icon id + * @param aMaxLength max lable length + * @param aDefaultLabel default label + * @return A new instance of this class. + * @since s60 v5.0 + */ + static CVIMPSTFieldProperty* NewLC(TInt aFieldId, TInt aIconId, TInt aMaxLength, const TDesC& aDefaultLabel ); + + /** + * Destructor. + * @since s60 v5.0 + */ + ~CVIMPSTFieldProperty(); + + public: // Interface + + + /** + * set the MVPbkStoreContactField + * @param aField, to set + * @since s60 v5.0 + */ + void SetStoredFieldL(MVPbkStoreContactField& aField ) ; + + public: // From MPbk2FieldProperty + + + /** + * @return icon id + * @since s60 v5.0 + */ + TInt IconId() ; + + /** + * @return default label if exist other wise field label + * @since s60 v5.0 + */ + const TDesC& DefaultLabelL() ; + + /** + * @return field id + * @since s60 v5.0 + */ + TInt FieldId() ; + + /** + * @return field data + * @since s60 v5.0 + */ + const TDesC& FieldDataL(); + + /** + * Set the field data + * @param aText, to set + * @since s60 v5.0 + */ + void SetFieldTextL(const TDesC& aText ); + + private: // Implementation + /** + * default constructor + * @param aFieldId field id + * @param aIconId icon id + * @param aMaxLength max lable length + * @param aDefaultLabel default label + * @since s60 v5.0 + */ + CVIMPSTFieldProperty(TInt aFieldId, TInt aIconId, TInt aMaxLength ); + + /** + * provide two phase contructions + * @param aReader Resource reader pointed to a + * VIMPST_FIELD_PROPERTY + * structure. + * @param aSupportedFieldTypeList List of supported field types. + * @since s60 v5.0 + */ + void ConstructL(const TDesC& aDefaultLabel); + + private: // Data + // owns : field id + TInt iFieldId; + /// Own: Index of an icon + TInt iIconId; // STRUCT iconId + // owns : max lable length + TInt iMaxLength; + // Own: Default label for the field + HBufC* iDefaultLabel; // LTEXT defaultLabel + // owns : virtual pbk field + MVPbkStoreContactField* iField; + /// Own: field data + HBufC* iFieldData; + + }; + +#endif // CVIMPSTFIELDPROPERTY_H + +// End of File