31 |
31 |
32 #include "CalenLunarLocalizer.h" |
32 #include "CalenLunarLocalizer.h" |
33 #include "CalenLunarInfo.h" |
33 #include "CalenLunarInfo.h" |
34 #include "CalenLunarLocalizedInfo.h" |
34 #include "CalenLunarLocalizedInfo.h" |
35 #include "CalenExtraRowFormatter.h" |
35 #include "CalenExtraRowFormatter.h" |
|
36 #include "OstTraceDefinitions.h" |
|
37 #ifdef OST_TRACE_COMPILER_IN_USE |
|
38 #include "calenlunarlocalizerTraces.h" |
|
39 #endif |
|
40 |
36 //CONSTANTS |
41 //CONSTANTS |
37 const TInt KCharMonth = 0x6708; |
42 const TInt KCharMonth = 0x6708; |
38 const TInt KCharFirstMonth = 0x6b63; |
43 const TInt KCharFirstMonth = 0x6b63; |
39 const TInt KCharChu = 0x521d; |
44 const TInt KCharChu = 0x521d; |
40 const TInt KCharTen = 0x5341; |
45 const TInt KCharTen = 0x5341; |
48 // CCalenLunarLocalizer::NewL |
53 // CCalenLunarLocalizer::NewL |
49 // ----------------------------------------------------------------------------- |
54 // ----------------------------------------------------------------------------- |
50 // |
55 // |
51 EXPORT_C CCalenLunarLocalizer* CCalenLunarLocalizer::NewL() |
56 EXPORT_C CCalenLunarLocalizer* CCalenLunarLocalizer::NewL() |
52 { |
57 { |
53 TRACE_ENTRY_POINT; |
58 OstTraceFunctionEntry0( CCALENLUNARLOCALIZER_NEWL_ENTRY ); |
54 |
|
55 CCalenLunarLocalizer* self = new (ELeave) CCalenLunarLocalizer; |
59 CCalenLunarLocalizer* self = new (ELeave) CCalenLunarLocalizer; |
56 CleanupStack::PushL(self); |
60 CleanupStack::PushL(self); |
57 self->ConstructL(); |
61 self->ConstructL(); |
58 CleanupStack::Pop(self); |
62 CleanupStack::Pop(self); |
59 |
63 |
60 TRACE_EXIT_POINT; |
64 OstTraceFunctionExit0( CCALENLUNARLOCALIZER_NEWL_EXIT ); |
61 return self; |
65 return self; |
62 } |
66 } |
63 |
67 |
64 // ----------------------------------------------------------------------------- |
68 // ----------------------------------------------------------------------------- |
65 // CCalenLunarLocalizer::~CCalenLunarLocalizer |
69 // CCalenLunarLocalizer::~CCalenLunarLocalizer |
66 // ----------------------------------------------------------------------------- |
70 // ----------------------------------------------------------------------------- |
67 // |
71 // |
68 EXPORT_C CCalenLunarLocalizer::~CCalenLunarLocalizer() |
72 EXPORT_C CCalenLunarLocalizer::~CCalenLunarLocalizer() |
69 { |
73 { |
70 TRACE_ENTRY_POINT; |
74 OstTraceFunctionEntry0( CCALENLUNARLOCALIZER_CCALENLUNARLOCALIZER_ENTRY ); |
71 |
|
72 delete iRowFormatter; |
75 delete iRowFormatter; |
73 TRACE_EXIT_POINT; |
76 OstTraceFunctionExit0( CCALENLUNARLOCALIZER_CCALENLUNARLOCALIZER_EXIT ); |
74 } |
77 } |
75 |
78 |
76 // ----------------------------------------------------------------------------- |
79 // ----------------------------------------------------------------------------- |
77 // CCalenLunarLocalizer::CCalenLunarLocalizer |
80 // CCalenLunarLocalizer::CCalenLunarLocalizer |
78 // ----------------------------------------------------------------------------- |
81 // ----------------------------------------------------------------------------- |
79 // |
82 // |
80 EXPORT_C CCalenLunarLocalizer::CCalenLunarLocalizer() : iEikEnv( CEikonEnv::Static() ) |
83 EXPORT_C CCalenLunarLocalizer::CCalenLunarLocalizer() : iEikEnv( CEikonEnv::Static() ) |
81 { |
84 { |
82 TRACE_ENTRY_POINT; |
85 OstTraceFunctionEntry0( DUP1_CCALENLUNARLOCALIZER_CCALENLUNARLOCALIZER_ENTRY ); |
83 TRACE_EXIT_POINT; |
86 OstTraceFunctionExit0( DUP1_CCALENLUNARLOCALIZER_CCALENLUNARLOCALIZER_EXIT ); |
84 } |
87 } |
85 |
88 |
86 // ----------------------------------------------------------------------------- |
89 // ----------------------------------------------------------------------------- |
87 // CCalenLunarLocalizer::ConstructL |
90 // CCalenLunarLocalizer::ConstructL |
88 // ----------------------------------------------------------------------------- |
91 // ----------------------------------------------------------------------------- |
89 // |
92 // |
90 EXPORT_C void CCalenLunarLocalizer::ConstructL() |
93 EXPORT_C void CCalenLunarLocalizer::ConstructL() |
91 { |
94 { |
|
95 OstTraceFunctionEntry0( CCALENLUNARLOCALIZER_CONSTRUCTL_ENTRY ); |
92 iRowFormatter = CCalenExtraRowFormatter::NewL(); |
96 iRowFormatter = CCalenExtraRowFormatter::NewL(); |
93 |
97 |
94 iFestivalNames.append(hbTrId("txt_calendar_preview_title_spring_fest")); |
98 iFestivalNames.append(hbTrId("txt_calendar_preview_title_spring_fest")); |
95 iFestivalNames.append(hbTrId("txt_calendar_preview_title_lantern_fest")); |
99 iFestivalNames.append(hbTrId("txt_calendar_preview_title_lantern_fest")); |
96 iFestivalNames.append(hbTrId("txt_calendar_preview_title_dragon_fest")); |
100 iFestivalNames.append(hbTrId("txt_calendar_preview_title_dragon_fest")); |
161 iAnimalYearNames.append(hbTrId("txt_calendar_preview_title_year_of_the_monkey")); |
165 iAnimalYearNames.append(hbTrId("txt_calendar_preview_title_year_of_the_monkey")); |
162 iAnimalYearNames.append(hbTrId("txt_calendar_preview_title_year_of_the_rooster")); |
166 iAnimalYearNames.append(hbTrId("txt_calendar_preview_title_year_of_the_rooster")); |
163 iAnimalYearNames.append(hbTrId("txt_calendar_preview_title_year_of_the_dog")); |
167 iAnimalYearNames.append(hbTrId("txt_calendar_preview_title_year_of_the_dog")); |
164 iAnimalYearNames.append(hbTrId("txt_calendar_preview_title_year_of_the_pig")); |
168 iAnimalYearNames.append(hbTrId("txt_calendar_preview_title_year_of_the_pig")); |
165 |
169 |
|
170 OstTraceFunctionExit0( CCALENLUNARLOCALIZER_CONSTRUCTL_EXIT ); |
166 } |
171 } |
167 |
172 |
168 // ----------------------------------------------------------------------------- |
173 // ----------------------------------------------------------------------------- |
169 // CCalenLunarLocalizer::LocalizeL |
174 // CCalenLunarLocalizer::LocalizeL |
170 // ----------------------------------------------------------------------------- |
175 // ----------------------------------------------------------------------------- |
171 // |
176 // |
172 EXPORT_C CCalenLunarLocalizedInfo* CCalenLunarLocalizer::LocalizeL( TCalenLunarInfo& aInfo ) |
177 EXPORT_C CCalenLunarLocalizedInfo* CCalenLunarLocalizer::LocalizeL( TCalenLunarInfo& aInfo ) |
173 { |
178 { |
|
179 OstTraceFunctionEntry0( CCALENLUNARLOCALIZER_LOCALIZEL_ENTRY ); |
174 CCalenLunarLocalizedInfo* localized = CCalenLunarLocalizedInfo::NewL(); |
180 CCalenLunarLocalizedInfo* localized = CCalenLunarLocalizedInfo::NewL(); |
175 CleanupStack::PushL( localized ); |
181 CleanupStack::PushL( localized ); |
176 |
182 |
177 |
183 |
178 if ( aInfo.HasFestival() ) |
184 if ( aInfo.HasFestival() ) |
222 // ----------------------------------------------------------------------------- |
229 // ----------------------------------------------------------------------------- |
223 // |
230 // |
224 EXPORT_C TPtrC CCalenLunarLocalizer::GetExtraRowTextL( |
231 EXPORT_C TPtrC CCalenLunarLocalizer::GetExtraRowTextL( |
225 CCalenLunarLocalizedInfo& aLocInfo ) |
232 CCalenLunarLocalizedInfo& aLocInfo ) |
226 { |
233 { |
227 TRACE_ENTRY_POINT; |
234 OstTraceFunctionEntry0( CCALENLUNARLOCALIZER_GETEXTRAROWTEXTL_ENTRY ); |
228 |
|
229 RArray<CCalenLunarLocalizedInfo::TField> fields; |
235 RArray<CCalenLunarLocalizedInfo::TField> fields; |
230 CleanupClosePushL( fields ); |
236 CleanupClosePushL( fields ); |
231 fields.AppendL( CCalenLunarLocalizedInfo::EFestival ); |
237 fields.AppendL( CCalenLunarLocalizedInfo::EFestival ); |
232 fields.AppendL( CCalenLunarLocalizedInfo::ESolarTerm ); |
238 fields.AppendL( CCalenLunarLocalizedInfo::ESolarTerm ); |
233 fields.AppendL( CCalenLunarLocalizedInfo::ELunarMonthAndDay ); |
239 fields.AppendL( CCalenLunarLocalizedInfo::ELunarMonthAndDay ); |
234 fields.AppendL( CCalenLunarLocalizedInfo::EAnimalYear ); |
240 fields.AppendL( CCalenLunarLocalizedInfo::EAnimalYear ); |
235 fields.AppendL( CCalenLunarLocalizedInfo::ELunarYear ); |
241 fields.AppendL( CCalenLunarLocalizedInfo::ELunarYear ); |
236 |
242 |
237 TPtrC text = iRowFormatter->FormatExtraRowInformationL( aLocInfo, fields ); |
243 TPtrC text = iRowFormatter->FormatExtraRowInformationL( aLocInfo, fields ); |
238 CleanupStack::PopAndDestroy( &fields ); |
244 CleanupStack::PopAndDestroy( &fields ); |
239 |
245 |
240 |
246 OstTraceFunctionExit0( CCALENLUNARLOCALIZER_GETEXTRAROWTEXTL_EXIT ); |
241 TRACE_EXIT_POINT; |
|
242 return text; |
247 return text; |
243 } |
248 } |
244 |
249 |
245 // ----------------------------------------------------------------------------- |
250 // ----------------------------------------------------------------------------- |
246 // CCalenLunarLocalizer::LocalizeMonthAndDayL |
251 // CCalenLunarLocalizer::LocalizeMonthAndDayL |
247 // ----------------------------------------------------------------------------- |
252 // ----------------------------------------------------------------------------- |
248 // |
253 // |
249 void CCalenLunarLocalizer::LocalizeMonthAndDayL(CCalenLunarLocalizedInfo* aLocInfo, |
254 void CCalenLunarLocalizer::LocalizeMonthAndDayL(CCalenLunarLocalizedInfo* aLocInfo, |
250 TCalenLunarInfo& aInfo) |
255 TCalenLunarInfo& aInfo) |
251 { |
256 { |
|
257 OstTraceFunctionEntry0( CCALENLUNARLOCALIZER_LOCALIZEMONTHANDDAYL_ENTRY ); |
252 TBuf<10> month; |
258 TBuf<10> month; |
253 TBuf<10> day; |
259 TBuf<10> day; |
254 GetChineseMonth(aInfo.iLunarDate, month); |
260 GetChineseMonth(aInfo.iLunarDate, month); |
255 GetChineseDay(aInfo.iLunarDate, day); |
261 GetChineseDay(aInfo.iLunarDate, day); |
256 |
262 |
266 QString((QChar*)month.Ptr(),month.Length())).arg( |
272 QString((QChar*)month.Ptr(),month.Length())).arg( |
267 QString((QChar*)day.Ptr(),day.Length())); |
273 QString((QChar*)day.Ptr(),day.Length())); |
268 } |
274 } |
269 aLocInfo->iLunarMonthAndDay = static_cast<const TUint16*> ( |
275 aLocInfo->iLunarMonthAndDay = static_cast<const TUint16*> ( |
270 formattedString.utf16()), formattedString.length(); |
276 formattedString.utf16()), formattedString.length(); |
|
277 OstTraceFunctionExit0( CCALENLUNARLOCALIZER_LOCALIZEMONTHANDDAYL_EXIT ); |
271 } |
278 } |
272 |
279 |
273 // ----------------------------------------------------------------------------- |
280 // ----------------------------------------------------------------------------- |
274 // CCalenLunarLocalizer::GetChineseMonth |
281 // CCalenLunarLocalizer::GetChineseMonth |
275 // ----------------------------------------------------------------------------- |
282 // ----------------------------------------------------------------------------- |
276 // |
283 // |
277 void CCalenLunarLocalizer::GetChineseMonth(const TChineseDate& aChineseDate, |
284 void CCalenLunarLocalizer::GetChineseMonth(const TChineseDate& aChineseDate, |
278 TDes& aDes) |
285 TDes& aDes) |
279 { |
286 { |
280 TRACE_ENTRY_POINT; |
287 OstTraceFunctionEntry0( CCALENLUNARLOCALIZER_GETCHINESEMONTH_ENTRY ); |
281 |
|
282 if (aChineseDate.iMonth == 1) |
288 if (aChineseDate.iMonth == 1) |
283 { |
289 { |
284 aDes.Append(KCharFirstMonth); // Special character for first month |
290 aDes.Append(KCharFirstMonth); // Special character for first month |
285 } |
291 } |
286 else |
292 else |
287 { |
293 { |
288 GetChineseDigits(aChineseDate.iMonth, aDes); |
294 GetChineseDigits(aChineseDate.iMonth, aDes); |
289 } |
295 } |
290 |
296 |
291 aDes.Append(KCharMonth); |
297 aDes.Append(KCharMonth); |
292 |
298 OstTraceFunctionExit0( CCALENLUNARLOCALIZER_GETCHINESEMONTH_EXIT ); |
293 TRACE_EXIT_POINT; |
|
294 } |
299 } |
295 |
300 |
296 // ----------------------------------------------------------------------------- |
301 // ----------------------------------------------------------------------------- |
297 // CCalenLunarLocalizer::GetChineseDay |
302 // CCalenLunarLocalizer::GetChineseDay |
298 // ----------------------------------------------------------------------------- |
303 // ----------------------------------------------------------------------------- |
299 // |
304 // |
300 void CCalenLunarLocalizer::GetChineseDay(const TChineseDate& aChineseDate, |
305 void CCalenLunarLocalizer::GetChineseDay(const TChineseDate& aChineseDate, |
301 TDes& aDes) |
306 TDes& aDes) |
302 { |
307 { |
303 TRACE_ENTRY_POINT; |
308 OstTraceFunctionEntry0( CCALENLUNARLOCALIZER_GETCHINESEDAY_ENTRY ); |
304 |
|
305 if (aChineseDate.iDay <= 10) // day |
309 if (aChineseDate.iDay <= 10) // day |
306 { |
310 { |
307 aDes.Append(KCharChu); |
311 aDes.Append(KCharChu); |
308 } |
312 } |
309 |
313 |
310 GetChineseDigits(aChineseDate.iDay, aDes); |
314 GetChineseDigits(aChineseDate.iDay, aDes); |
311 |
315 OstTraceFunctionExit0( CCALENLUNARLOCALIZER_GETCHINESEDAY_EXIT ); |
312 TRACE_EXIT_POINT; |
|
313 } |
316 } |
314 |
317 |
315 // ----------------------------------------------------------------------------- |
318 // ----------------------------------------------------------------------------- |
316 // CCalenLunarLocalizer::GetChineseDigits |
319 // CCalenLunarLocalizer::GetChineseDigits |
317 // ----------------------------------------------------------------------------- |
320 // ----------------------------------------------------------------------------- |
318 // |
321 // |
319 void CCalenLunarLocalizer::GetChineseDigits(TInt aNum, TDes& aDes) |
322 void CCalenLunarLocalizer::GetChineseDigits(TInt aNum, TDes& aDes) |
320 { |
323 { |
321 TRACE_ENTRY_POINT; |
324 OstTraceFunctionEntry0( CCALENLUNARLOCALIZER_GETCHINESEDIGITS_ENTRY ); |
322 |
|
323 ASSERT( 0 < aNum && aNum <= 30 ); |
325 ASSERT( 0 < aNum && aNum <= 30 ); |
324 TInt tens = aNum / 10; |
326 TInt tens = aNum / 10; |
325 TInt ones = aNum % 10; |
327 TInt ones = aNum % 10; |
326 if (aNum < 10) |
328 if (aNum < 10) |
327 { |
329 { |