diff -r f345bda72bc4 -r 43e37759235e Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/localeupdate_8cpp-source.html --- a/Symbian3/Examples/guid-6013a680-57f9-415b-8851-c4fa63356636/localeupdate_8cpp-source.html Tue Mar 30 11:56:28 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,307 +0,0 @@ - -
-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 } -