logsui/AppSrc/CPhoneNumberFormat.h
changeset 0 e686773b3f54
--- /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 <e32base.h>
+#include <AknUtils.h>
+#include <NumberGrouping.h>
+
+// 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