diff -r 89d6a7a84779 -r 25a17d01db0c Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/localeupdate_8cpp-source.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/localeupdate_8cpp-source.html Fri Jan 22 18:26:19 2010 +0000 @@ -0,0 +1,307 @@ + + +TB10.1 Example Applications: examples/Base/Locale/localeupdate/src/localeupdate.cpp Source File + + + + +

examples/Base/Locale/localeupdate/src/localeupdate.cpp

Go to the documentation of this file.
00001 // Copyright (c) 2008-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 // Contains the definition of functions defined in the CLocaleSettings class.
+00015 // It also contains the definition of the DoStartL()function.
+00016 // This function displays a number of locale settings for a variety of locale DLLs.
+00017 //
+00018 
+00019 
+00020 
+00024 #include "localeupdate.h"
+00025 
+00026 LOCAL_D CConsoleBase* console;
+00027 
+00028 LOCAL_C void DoStartL();
+00029 
+00030 LOCAL_C void CallExampleL();
+00031 
+00038 CLocaleSettings* CLocaleSettings::NewL(TDesC16& aLocaleDLLName, CConsoleBase* aConsole)
+00039         {
+00040         CLocaleSettings* self = new (ELeave) CLocaleSettings;
+00041         CleanupStack::PushL(self);
+00042         self->ConstructL(aLocaleDLLName, aConsole);
+00043         CleanupStack::Pop(self);
+00044         return self;
+00045         }
+00046 
+00053 void CLocaleSettings::ConstructL(TDesC16& aLocaleDLLName, CConsoleBase* aConsole)
+00054         {
+00055         // Store the name of the locale DLL.
+00056         iLocaleDLLName.Copy(aLocaleDLLName);
+00057         iConsole = aConsole;
+00058 
+00059         // Load the locale DLL.
+00060         User::LeaveIfError(iExtendedLocale.LoadLocale(iLocaleDLLName));
+00061 
+00062         // Get the TLocale object from TExtendedLocale.
+00063         iLocale = iExtendedLocale.GetLocale();
+00064 
+00065         // Get the first day of the week.
+00066         // Monday is enumerated to 0, Tuesday to 1 and so on.
+00067         iStartOfWeek = iLocale->StartOfWeek();
+00068 
+00069         // Get the working days mask.
+00070         // Least significant bit corresponds to Monday.
+00071         // A bit is set if it is a working day.
+00072         iWorkingDaysMask = iLocale->WorkDays();
+00073 
+00074         // Get the collation method for the locale.
+00075         iCollationMethod = iExtendedLocale.GetPreferredCollationMethod();
+00076 
+00077         // Get the country code.
+00078         iCountryCode = iLocale->CountryCode();
+00079 
+00080         // Get the date format.
+00081         iDateFormat = iLocale->DateFormat();
+00082 
+00083         // Get the time format.
+00084         iTimeFormat = iLocale->TimeFormat();
+00085 
+00086         // Get numeric value settings.
+00087         iThousandsSeparator = iLocale->ThousandsSeparator();
+00088         iDecimalSeparator = iLocale->DecimalSeparator();
+00089 
+00090         // Get the units of measurement.
+00091         iUnitsFormat = iLocale->UnitsGeneral();
+00092 
+00093         // Get the time zone information.
+00094         // A locale's time zone is defined as an offset from UTC.
+00095         iUTCOffset = User::UTCOffset();
+00096         }
+00097 
+00101 CLocaleSettings::CLocaleSettings()
+00102         {
+00103         }
+00104 
+00108 void CLocaleSettings::DisplayLocaleSettings()
+00109         {
+00110         // Print the name of the locale DLL.
+00111         _LIT(KTextDLLName, "\r\nLocale Settings for the DLL:");
+00112         console->Printf(KTextDLLName);
+00113         console->Printf(iLocaleDLLName);
+00114         console->Printf(KTextNewLine);
+00115 
+00116         // Print the calendar settings.
+00117         _LIT(KTextCalenderSettings, "Calendar Settings:\r\n1. First day of the week: %d\r\n");
+00118         iConsole->Printf(KTextCalenderSettings, iStartOfWeek);
+00119 
+00120         // Print the mask.
+00121         _LIT(KTextWorkingDays, "2. Working days of the week [LSB - Monday]: %07b\r\n");
+00122         iConsole->Printf(KTextWorkingDays, iWorkingDaysMask);
+00123 
+00124         // Print the collation method.
+00125         _LIT(KTextCollationMethod, "Collation method:");
+00126         iConsole->Printf(KTextCollationMethod);
+00127         if(iCollationMethod.iFlags & TCollationMethod::EIgnoreNone)
+00128                 {
+00129                 _LIT(KTextIgnoreNone, "IgnoreNone\r\n");
+00130                 iConsole->Printf(KTextIgnoreNone);
+00131                 }
+00132         else if(iCollationMethod.iFlags & TCollationMethod::ESwapCase)
+00133                 {
+00134                 _LIT(KTextSwapCase, "SwapCase\r\n");
+00135                 iConsole->Printf(KTextSwapCase);
+00136                 }
+00137         else if(iCollationMethod.iFlags & TCollationMethod::EAccentsBackwards)
+00138                 {
+00139                 _LIT(KTextAccents, "AccentsBackwards\r\n");
+00140                 iConsole->Printf(KTextAccents);
+00141                 }
+00142         else if(iCollationMethod.iFlags & TCollationMethod::ESwapKana)
+00143                 {
+00144                 _LIT(KTextSwapKana, "SwapKana\r\n");
+00145                 iConsole->Printf(KTextSwapKana);
+00146                 }
+00147         else if(iCollationMethod.iFlags & TCollationMethod::EFoldCase)
+00148                 {
+00149                 _LIT(KTextFoldCase, "FoldCase\r\n");
+00150                 iConsole->Printf(KTextFoldCase);
+00151                 }
+00152         else
+00153                 {
+00154                 _LIT(KTextStandard, "Standard\r\n");
+00155                 iConsole->Printf(KTextStandard);
+00156                 }
+00157 
+00158         // Print the country code.
+00159         _LIT(KTextCountryCode, "Country code: %d\r\n");
+00160         iConsole->Printf(KTextCountryCode, iCountryCode);
+00161 
+00162         // Get the currency format.
+00163         TBuf<50> currency;
+00164         // A value for the currency.
+00165         TInt currencyValue = 10241024;
+00166         iLocale->FormatCurrency(currency, currencyValue);
+00167         // Print the currency format.
+00168         _LIT(KTextCurrencyFormat, "Currency format of %d:");
+00169         iConsole->Printf(KTextCurrencyFormat, currencyValue);
+00170         iConsole->Printf(currency);
+00171         iConsole->Printf(KTextNewLine);
+00172 
+00173         // Print the date format.
+00174         _LIT(KTextDateFormat, "Date Format: ");
+00175         iConsole->Printf(KTextDateFormat);
+00176         switch(iDateFormat)
+00177                 {
+00178                 case EDateAmerican:
+00179                         _LIT(KTextUSFormat, "US Format (mm/dd/yy)\r\n");
+00180                         iConsole->Printf(KTextUSFormat);
+00181                         break;
+00182                 case EDateEuropean:
+00183                         _LIT(KTextEuropeanFormat, "European format (dd/mm/yyyy)\r\n");
+00184                         iConsole->Printf(KTextEuropeanFormat);
+00185                         break;
+00186                 case EDateJapanese:
+00187                         _LIT(KTextJapFormat, "Japanese format (yyyy/mm/dd)\r\n");
+00188                         iConsole->Printf(KTextJapFormat);
+00189                         break;
+00190                 }
+00191 
+00192         // Print the time format.
+00193         _LIT(KTextTimeFormat, "Time Format: ");
+00194         iConsole->Printf(KTextTimeFormat);
+00195         if(iTimeFormat == ETime12)
+00196                 {
+00197                 _LIT(KText12Hour, "12 hour format\r\n");
+00198                 iConsole->Printf(KText12Hour);
+00199                 }
+00200         else
+00201                 {
+00202                 _LIT(KText24Hour, "24 hour format\r\n");
+00203                 iConsole->Printf(KText24Hour);
+00204                 }
+00205 
+00206         // Print the numeric value settings.
+00207         _LIT(KTextNumericValues, "Numeric Values: \r\n");
+00208         iConsole->Printf(KTextNumericValues);
+00209         _LIT(KTextThousandsSeparator, "\tThousands separator: %c\r\n");
+00210         iConsole->Printf(KTextThousandsSeparator, TUint(iThousandsSeparator));
+00211         _LIT(KTextDecimalSeparator, "\tDecimal separator: %c\r\n");
+00212         iConsole->Printf(KTextDecimalSeparator, TUint(iDecimalSeparator));
+00213 
+00214         // Print the time zone information.
+00215         _LIT(KTextTimeZone, "UTC Offset in seconds (Time Zone Information): %d\r\n");
+00216         iConsole->Printf(KTextTimeZone, iUTCOffset.Int());
+00217 
+00218         // Print the units of measurement.
+00219         _LIT(KTextUnitsOfMeasure, "Units of measurement: ");
+00220         iConsole->Printf(KTextUnitsOfMeasure);
+00221         if(iUnitsFormat == EUnitsImperial)
+00222                 {
+00223                 _LIT(KTextImperial, "Imperial\r\n");
+00224                 iConsole->Printf(KTextImperial);
+00225                 }
+00226         else
+00227                 {
+00228                 _LIT(KTextMetric, "Metric\r\n");
+00229                 iConsole->Printf(KTextMetric);
+00230                 }
+00231         }
+00232 
+00236 CLocaleSettings::~CLocaleSettings()
+00237         {
+00238         }
+00239 
+00240 LOCAL_C void DoStartL()
+00241         {
+00242         // UK English locale DLL.
+00243         _LIT(KLocaleName1, "elocl.01");
+00244         TBufC<KLength> localeName1(KLocaleName1);
+00245         // Create a CLocaleSettings object for the locale DLL eloc1.01.
+00246         CLocaleSettings* obj = CLocaleSettings::NewL(localeName1, console);
+00247         CleanupStack::PushL(obj);
+00248         // Display the locale settings for the locale DLL eloc1.01.
+00249         obj->DisplayLocaleSettings();
+00250         // Delete the CLocaleSettings object.
+00251         CleanupStack::PopAndDestroy(obj);
+00252         // Wait for a key press.
+00253         console->Printf(KTextPressAnyKey);
+00254         console->Getch();
+00255 
+00256         // American locale DLL.
+00257         _LIT(KLocaleName2, "elocl.10");
+00258         TBufC<KLength> localeName2(KLocaleName2);
+00259         // Create a CLocaleSettings object for the locale DLL eloc1.10.
+00260         obj = CLocaleSettings::NewL(localeName2, console);
+00261         CleanupStack::PushL(obj);
+00262         // Display the locale settings for the locale DLL eloc1.10.
+00263         obj->DisplayLocaleSettings();
+00264         // Delete the CLocaleSettings object.
+00265         CleanupStack::PopAndDestroy(obj);
+00266         // Wait for a key press.
+00267         console->Printf(KTextPressAnyKey);
+00268         console->Getch();
+00269 
+00270         // Taiwanese Chinese locale DLL.
+00271         _LIT(KLocaleName3, "elocl.29");
+00272         TBufC<KLength> localeName3(KLocaleName3);
+00273         // Create a CLocaleSettings object for the locale DLL eloc1.29.
+00274         obj = CLocaleSettings::NewL(localeName3, console);
+00275         CleanupStack::PushL(obj);
+00276         // Display the locale settings for the locale DLL eloc1.29.
+00277         obj->DisplayLocaleSettings();
+00278         // Delete the CLocaleSettings object.
+00279         CleanupStack::PopAndDestroy(obj);
+00280         // Wait for a key press.
+00281         console->Printf(KTextPressAnyKey);
+00282         console->Getch();
+00283 
+00284         // Japanese locale DLL.
+00285         _LIT(KLocaleName4, "elocl.32");
+00286         TBufC<KLength> localeName4(KLocaleName4);
+00287         // Create a CLocaleSettings object for the locale DLL eloc1.32.
+00288         obj = CLocaleSettings::NewL(localeName4, console);
+00289         CleanupStack::PushL(obj);
+00290         // Display the locale settings for the locale DLL eloc1.32.
+00291         obj->DisplayLocaleSettings();
+00292         // Delete the CLocaleSettings object.
+00293         CleanupStack::PopAndDestroy(obj);
+00294         }
+00295 
+00296 GLDEF_C TInt E32Main() // main function called by E32
+00297     {
+00298         __UHEAP_MARK;
+00299         CTrapCleanup* cleanup=CTrapCleanup::New(); // get clean-up stack
+00300         TRAPD(error, CallExampleL()); // more initialization, then do example
+00301         delete cleanup; // destroy clean-up stack
+00302         __ASSERT_ALWAYS(!error, User::Panic(KTxtEPOC32EX, error));
+00303         __UHEAP_MARKEND;
+00304         return 0; // and return
+00305     }
+00306 
+00307 LOCAL_C void CallExampleL() // initialize and call example code under cleanup stack
+00308     {
+00309         console=Console::NewL(KTxtExampleCode, TSize(KConsFullScreen, KConsFullScreen));
+00310         CleanupStack::PushL(console);
+00311         TRAPD(error, DoStartL()); // perform example function
+00312         if (error)
+00313                 console->Printf(KFormatFailed, error);
+00314         else
+00315                 console->Printf(KTxtOK);
+00316         console->Printf(KTextPressAnyKey);
+00317         console->Getch(); // get and ignore character
+00318         CleanupStack::PopAndDestroy(); // close console
+00319     }
+

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