diff -r 000000000000 -r e686773b3f54 logsui/AppSrc/CPhoneNumberFormat.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/logsui/AppSrc/CPhoneNumberFormat.h Tue Feb 02 10:12:17 2010 +0200 @@ -0,0 +1,153 @@ +/* +* Copyright (c) 2002 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: +* Utility class for phone number formatting. +* +*/ + + +#ifndef __CPhoneNumberFormat_H__ +#define __CPhoneNumberFormat_H__ + +// INCLUDES +#include +#include +#include + +// CONSTANTS + +// MACROS + +// DATA TYPES +enum TFormatResult + { + EResultOK, // No loss of precision on formatting. + EResultTruncated, // result descriptor truncated from the start. + EResultClipped, // result descriptor truncated and extra dots added to start + }; + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS +class CFont; +class CEikFormattedCellListBox; +class CEikColumnListBox; + +// CLASS DECLARATION + +/** +* Class for phone number formatting +*/ +class CPhoneNumberFormat :public CBase + { + public: // Constructors and destructor + + /** + * Symbian OS constructor + * @return new object + */ + static CPhoneNumberFormat* NewL(); + + /** + * Destructor. + */ + virtual ~CPhoneNumberFormat(); + + public: + /** + * Strip DTMF post and prefix from phone number + * @param aNumberToFormat, input buffer + * @param aFormattedString, output buffer + * @return KErrNone if number stripped ok or nothing to strip + * @return KErrParameter if invalid number given for formatter. + * In this error situation output buffer = input buffer. + */ + static TInt DTMFStrip( TPtrC aNumberToFormat, TDes& aFormattedString ); + + /** + * Identify DTMF character(w,W,p,P). + */ + static TInt IsDtmf( TChar aChar ); + + /** + * Identify SS character(*,#). + */ + static TInt IsSS( TChar aChar ); + + + /** + * Phone number formatting + * @param aNumberToFormat phone number in string to format + * @param aFormattedString formatted number + * @return EResultOK + * EResultTruncated + * EResultClipped + */ + TFormatResult PhoneNumberFormat + ( TPtrC aNumberToFormat + , TDes& aFormattedString + ); + + /** + * Phone number formatting + * @param aNumberToFormat phone number in string to format + * @param aFormattedString formatted number + * @param aFont + * @param aPixelWidth width in pixels, long numbers are clipped from the beginging + * of descriptor. + * @return EResultOK + * EResultTruncated + * EResultClipped + */ + TFormatResult PhoneNumberFormat + ( TPtrC aNumberToFormat + , TDes& aFormattedString + , const CFont* aFont + , TInt aPixelWidth + ); + + TFormatResult PhoneNumberFormat + ( TPtrC aNumberToFormat + , TDes& aFormattedString + , AknTextUtils::TClipDirection aClipDirection + , CEikFormattedCellListBox *aListBox + , TInt aItemIndex + , TInt aSubCellNumber + ); + + TFormatResult PhoneNumberFormat + ( TPtrC aNumberToFormat + , TDes& aFormattedString + , AknTextUtils::TClipDirection aClipDirection + , CEikColumnListBox *aListBox + , TInt aItemIndex + , TInt aColumnNumber + ); + + private: + + //Constructors are private by default + CPhoneNumberFormat(); + void ConstructL(); + + TFormatResult DescriptorCopy( const TDesC& aSource, TDes& aDestination ); + + private: // Data + /// Own: grouping number grouping + CPNGNumberGrouping* iNumberGrouping; + }; + +#endif // __CPhoneNumberFormat_H__ + +// End of File