diff -r 000000000000 -r 8466d47a6819 emailuis/emailui/inc/ncsemailaddressobject.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailuis/emailui/inc/ncsemailaddressobject.h Thu Dec 17 08:39:21 2009 +0200 @@ -0,0 +1,91 @@ +/* +* Copyright (c) 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: Implementation of the MNcsEmailAddressObject +* +*/ + + +#ifndef C_NCSEMAILADDRESSOBJECT_H +#define C_NCSEMAILADDRESSOBJECT_H + + +#include +#include + +/** +* The CNcsEmailAddressObject class +*/ +NONSHARABLE_CLASS( CNcsEmailAddressObject ) : public CBase + { + public: // Constructors and destructor + + static CNcsEmailAddressObject* NewL( TBool aUserAdded ); + static CNcsEmailAddressObject* NewL( const CNcsEmailAddressObject& aAddress ); + static CNcsEmailAddressObject* NewL( + const TDesC& aDisplayName, + const TDesC& aEmailAddress ); + + ~CNcsEmailAddressObject(); + + private: // Constructors + + CNcsEmailAddressObject( TBool aUserAdded ); + CNcsEmailAddressObject( const CNcsEmailAddressObject& aAddress ); + void ConstructL(); + void ConstructL( const CNcsEmailAddressObject& aAddress ); + void ConstructL( + const TDesC& aDisplayName, + const TDesC& aEmailAddress ); + +public: // new functions + + // inlines + inline TBool IsUserAdded() const; + inline const TDesC& EmailAddress() const; + inline const TDesC& DisplayName() const; + + /** + * Display full means that both name and email address must be shown. + * + * This is the case for example when contact has multiple email + * addresses. + */ + inline void SetDisplayFull( TBool aDisplayFull ); + inline TBool DisplayFull() const; + + void SetEmailAddressL( const TDesC& aEmailAddress ); + void SetDisplayNameL ( const TDesC& aGivenName, const TDesC& aFamilyName); + void SetDisplayNameL( const TDesC& aName ); + const TDesC& FormattedAddressL(); + + private: // new functions + + void GenerateFormattedAddressL(); + + private: // Data + + //Own: + HBufC* iEmailAddress; + HBufC* iDisplayName; + HBufC* iFormattedAddress; + TBool iDirtyFlag; + TBool iUserAdded; + TBool iDisplayFull; + }; + +#include "ncsemailaddressobject.inl" + +#endif // C_NCSEMAILADDRESSOBJECT_H + +// End of file