diff -r f345bda72bc4 -r 43e37759235e Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/_currency_8cpp-source.html --- a/Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/_currency_8cpp-source.html Tue Mar 30 11:56:28 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,254 +0,0 @@ - - -TB10.1 Example Applications: examples/Base/Locale/Currency/Currency.cpp Source File - - - - -

examples/Base/Locale/Currency/Currency.cpp

00001 // Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
-00002 // All rights reserved.
-00003 // This component and the accompanying materials are made available
-00004 // under the terms of "Eclipse Public License v1.0"
-00005 // which accompanies this distribution, and is available
-00006 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
-00007 //
-00008 // Initial Contributors:
-00009 // Nokia Corporation - initial contribution.
-00010 //
-00011 // Contributors:
-00012 //
-00013 // Description:
-00014 //
-00015 
-00016 #include "CommonFramework.h" // standard example framework
-00017 
-00018 // advance declarations
-00019 void printCurrency();
-00020 void formatCurrency(TDes &aBuffer, TReal currencyAmount);
-00021 
-00022 
-00023 LOCAL_C void doExampleL()
-00024     {
-00025                 // construct and initialize application data
-00026                 // Locale information includes whether there is a space between 
-00027                 // currency symbol and amount, whether negative currency amounts 
-00028                 // are enclosed in brackets, and whether digits to left of decimal 
-00029                 // separator are grouped in threes ("Triads"). 
-00030         TLocale locale; // locale information
-00031         TCurrencySymbol currencySymbol;
-00032         currencySymbol.Set();   // Get system wide currency symbol setting
-00033         locale.SetCurrencySymbolPosition(ELocaleBefore); 
-00034         locale.SetCurrencySpaceBetween(EFalse); 
-00035         locale.SetNegativeCurrencyFormat(TLocale::ELeadingMinusSign);
-00036         locale.SetCurrencyDecimalPlaces(2);     
-00037         locale.SetCurrencyTriadsAllowed(ETrue); 
-00038         locale.SetThousandsSeparator(',');
-00039         locale.SetDecimalSeparator('.');
-00040         locale.Set();                   // set system default settings
-00041         printCurrency();
-00042         }
-00043 
-00044 void printCurrency()
-00045         {
-00046         TBuf<30> aBuffer; // receives formatted currency string
-00047         aBuffer.Zero(); // empty buffer
-00048         TReal currencyAmount=-12345678.119;
-00049         formatCurrency(aBuffer, currencyAmount);
-00050         _LIT(KFormat1,"Currency value is: %S\n");
-00051         console->Printf(KFormat1,&aBuffer);
-00052         }
-00053                 
-00054 void formatCurrency(TDes &aBuffer, TReal currencyAmount)
-00055         {
-00056                 //
-00057                 // Format the currency starting with the currency symbol 
-00058                 //
-00059         TLocale locale;                 // System locale settings
-00060         TRealFormat realFormat; 
-00061                 //
-00062                 // Set up a TRealFormat object from locale information.
-00063                 // This involves setting decimal and thousands separators, 
-00064                 // whether triads are allowed or not and number of decimal places.
-00065                 //
-00066         realFormat.iType=KRealFormatFixed; // converts number to the form
-00067                                            //"nnn.ddd" (n=integer, d=decimal) 
-00068         realFormat.iWidth=30;              // Max. number of characters allowed
-00069                                                                            // to  represent the number
-00070         realFormat.iPlaces=locale.CurrencyDecimalPlaces(); 
-00071         realFormat.iPoint=locale.DecimalSeparator(); 
-00072         realFormat.iTriad=locale.ThousandsSeparator();
-00073         realFormat.iTriLen=(locale.CurrencyTriadsAllowed() ? 1 : 0); 
-00074         TCurrencySymbol symbol;                   // get currency symbol from
-00075                                                                           // system setting
-00076                         
-00077         _LIT(KTxtOpenBra,"(");
-00078         _LIT(KTxtSpace," ");
-00079         _LIT(KTxtCloseBra,")");
-00080         _LIT(KTxtMinusSign,"-");
-00081                                                                           // Negative currency amounts may
-00082                                                                           // be enclosed in brackets.
-00083                                                                           // Currency symbol can appear before or
-00084                                           // after the value.
-00085                                           // We can have spaces between the currency
-00086                                           // symbol and the value.
-00087                                          
-00088                                       
-00089     TUint currencySymbolAtFront;
-00090     TUint spaceBetweenSymbolAndValue;
-00091 
-00092                                       //
-00093                                       // setup some useful values.    
-00094                                       //
-00095     currencySymbolAtFront      = ((locale.CurrencySymbolPosition()==ELocaleBefore) ? 0x01 : 0x00);
-00096     spaceBetweenSymbolAndValue = (locale.CurrencySpaceBetween() ? 0x01 : 0x00);
-00097                                       
-00098                                       //
-00099                                       // Deal with negative values
-00100                                       //
-00101     if (currencyAmount<0)
-00102         {
-00103                                       // Check if position of currency symbol needs to swap for 
-00104                                       // for negavtive values
-00105         currencySymbolAtFront ^= (locale.NegativeCurrencySymbolOpposite() ? 0x01 : 0x00);
-00106         
-00107                                       // Check if we need a space between currency symbol
-00108                                       // and value.
-00109         if (spaceBetweenSymbolAndValue && locale.NegativeLoseSpace())
-00110             {
-00111             spaceBetweenSymbolAndValue = 0x00;
-00112             }
-00113         
-00114                                       // Now lay out the negative value as instructed. 
-00115         switch (locale.NegativeCurrencyFormat())
-00116             {
-00117             case TLocale::ELeadingMinusSign :
-00118                 {
-00119                 aBuffer.Append(KTxtMinusSign);
-00120                     if (currencySymbolAtFront)
-00121                         {
-00122                         aBuffer.Append(symbol);
-00123                         if (spaceBetweenSymbolAndValue)
-00124                             {
-00125                             aBuffer.Append(KTxtSpace);
-00126                             }
-00127                         aBuffer.AppendNum(-currencyAmount,realFormat);
-00128                         }
-00129                     else
-00130                         {
-00131                         aBuffer.AppendNum(-currencyAmount,realFormat);
-00132                         if (spaceBetweenSymbolAndValue)
-00133                             {
-00134                             aBuffer.Append(KTxtSpace);
-00135                             }
-00136                         aBuffer.Append(symbol);
-00137                         }
-00138                 break;
-00139                 }
-00140                
-00141             case TLocale::ETrailingMinusSign :
-00142                 {
-00143                 if (currencySymbolAtFront)
-00144                     {
-00145                     aBuffer.Append(symbol);
-00146                     if (spaceBetweenSymbolAndValue)
-00147                             {
-00148                             aBuffer.Append(KTxtSpace);
-00149                             }
-00150                         aBuffer.AppendNum(-currencyAmount,realFormat);
-00151                         aBuffer.Append(KTxtMinusSign);
-00152                     }
-00153                 else
-00154                     {
-00155                     aBuffer.AppendNum(-currencyAmount,realFormat);
-00156                         aBuffer.Append(KTxtMinusSign);
-00157                         if (spaceBetweenSymbolAndValue)
-00158                             {
-00159                             aBuffer.Append(KTxtSpace);
-00160                             }
-00161                         aBuffer.Append(symbol);
-00162                     }
-00163                 break;
-00164                 }
-00165             
-00166             case TLocale::EInterveningMinusSign :
-00167                 {
-00168                 if (currencySymbolAtFront)
-00169                     {
-00170                     aBuffer.Append(symbol);
-00171                     if (spaceBetweenSymbolAndValue)
-00172                             {
-00173                             aBuffer.Append(KTxtSpace);
-00174                             }
-00175                         aBuffer.AppendNum(currencyAmount,realFormat);        
-00176                     }
-00177                 else
-00178                     {
-00179                     aBuffer.AppendNum(currencyAmount,realFormat);        
-00180                     if (spaceBetweenSymbolAndValue)
-00181                             {
-00182                             aBuffer.Append(KTxtSpace);
-00183                             }
-00184                         aBuffer.Append(symbol);
-00185                     }
-00186                 break;
-00187                 }
-00188                 
-00189             default : // EInBrackets is the only remaining option
-00190                 {
-00191                 aBuffer.Append(KTxtOpenBra);
-00192                 if (currencySymbolAtFront)
-00193                     {
-00194                     aBuffer.Append(symbol);
-00195                     if (spaceBetweenSymbolAndValue)
-00196                             {
-00197                             aBuffer.Append(KTxtSpace);
-00198                             }
-00199                     aBuffer.AppendNum(-currencyAmount,realFormat);
-00200                     }
-00201                 else
-00202                     {
-00203                     aBuffer.AppendNum(-currencyAmount,realFormat);
-00204                     if (spaceBetweenSymbolAndValue)
-00205                             {
-00206                             aBuffer.Append(KTxtSpace);
-00207                             }
-00208                     aBuffer.Append(symbol);
-00209                     }
-00210                         aBuffer.Append(KTxtCloseBra);
-00211                         break;
-00212                 }
-00213             
-00214             }
-00215         }
-00216         
-00217                                       //
-00218                                       // Deal with zero or postive values
-00219                                       //
-00220     else
-00221         {
-00222         if (currencySymbolAtFront)
-00223             {
-00224             aBuffer.Append(symbol);
-00225             if (spaceBetweenSymbolAndValue)
-00226                     {
-00227                     aBuffer.Append(KTxtSpace);
-00228                     }
-00229             aBuffer.AppendNum(currencyAmount,realFormat);
-00230             }
-00231         else
-00232             {
-00233             aBuffer.AppendNum(currencyAmount,realFormat);
-00234             if (spaceBetweenSymbolAndValue)
-00235                     {
-00236                     aBuffer.Append(KTxtSpace);
-00237                     }
-00238             aBuffer.Append(symbol);
-00239             }
-00240         }
-00241                 
-00242         }       
-

Generated on Thu Jan 21 10:32:57 2010 for TB10.1 Example Applications by  - -doxygen 1.5.3
- -