| OLD | NEW |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #include "xfa/fxfa/parser/xfa_locale.h" | 7 #include "xfa/fxfa/parser/xfa_locale.h" |
| 8 | 8 |
| 9 #include "core/fxcrt/include/fx_xml.h" | 9 #include "core/fxcrt/include/fx_xml.h" |
| 10 #include "xfa/fxfa/parser/xfa_doclayout.h" | 10 #include "xfa/fxfa/parser/xfa_doclayout.h" |
| (...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 225 delete this; | 225 delete this; |
| 226 } | 226 } |
| 227 CFX_WideString CXFA_NodeLocale::GetName() { | 227 CFX_WideString CXFA_NodeLocale::GetName() { |
| 228 return CFX_WideString(m_pLocale ? m_pLocale->GetCData(XFA_ATTRIBUTE_Name) | 228 return CFX_WideString(m_pLocale ? m_pLocale->GetCData(XFA_ATTRIBUTE_Name) |
| 229 : nullptr); | 229 : nullptr); |
| 230 } | 230 } |
| 231 void CXFA_NodeLocale::GetNumbericSymbol(FX_LOCALENUMSYMBOL eType, | 231 void CXFA_NodeLocale::GetNumbericSymbol(FX_LOCALENUMSYMBOL eType, |
| 232 CFX_WideString& wsNumSymbol) const { | 232 CFX_WideString& wsNumSymbol) const { |
| 233 switch (eType) { | 233 switch (eType) { |
| 234 case FX_LOCALENUMSYMBOL_Decimal: | 234 case FX_LOCALENUMSYMBOL_Decimal: |
| 235 wsNumSymbol = GetSymbol(XFA_ELEMENT_NumberSymbols, FX_WSTRC(L"decimal")); | 235 wsNumSymbol = GetSymbol(XFA_Element::NumberSymbols, FX_WSTRC(L"decimal")); |
| 236 break; | 236 break; |
| 237 case FX_LOCALENUMSYMBOL_Grouping: | 237 case FX_LOCALENUMSYMBOL_Grouping: |
| 238 wsNumSymbol = GetSymbol(XFA_ELEMENT_NumberSymbols, FX_WSTRC(L"grouping")); | 238 wsNumSymbol = |
| 239 GetSymbol(XFA_Element::NumberSymbols, FX_WSTRC(L"grouping")); |
| 239 break; | 240 break; |
| 240 case FX_LOCALENUMSYMBOL_Percent: | 241 case FX_LOCALENUMSYMBOL_Percent: |
| 241 wsNumSymbol = GetSymbol(XFA_ELEMENT_NumberSymbols, FX_WSTRC(L"percent")); | 242 wsNumSymbol = GetSymbol(XFA_Element::NumberSymbols, FX_WSTRC(L"percent")); |
| 242 break; | 243 break; |
| 243 case FX_LOCALENUMSYMBOL_Minus: | 244 case FX_LOCALENUMSYMBOL_Minus: |
| 244 wsNumSymbol = GetSymbol(XFA_ELEMENT_NumberSymbols, FX_WSTRC(L"minus")); | 245 wsNumSymbol = GetSymbol(XFA_Element::NumberSymbols, FX_WSTRC(L"minus")); |
| 245 break; | 246 break; |
| 246 case FX_LOCALENUMSYMBOL_Zero: | 247 case FX_LOCALENUMSYMBOL_Zero: |
| 247 wsNumSymbol = GetSymbol(XFA_ELEMENT_NumberSymbols, FX_WSTRC(L"zero")); | 248 wsNumSymbol = GetSymbol(XFA_Element::NumberSymbols, FX_WSTRC(L"zero")); |
| 248 break; | 249 break; |
| 249 case FX_LOCALENUMSYMBOL_CurrencySymbol: | 250 case FX_LOCALENUMSYMBOL_CurrencySymbol: |
| 250 wsNumSymbol = GetSymbol(XFA_ELEMENT_CurrencySymbols, FX_WSTRC(L"symbol")); | 251 wsNumSymbol = |
| 252 GetSymbol(XFA_Element::CurrencySymbols, FX_WSTRC(L"symbol")); |
| 251 break; | 253 break; |
| 252 case FX_LOCALENUMSYMBOL_CurrencyName: | 254 case FX_LOCALENUMSYMBOL_CurrencyName: |
| 253 wsNumSymbol = | 255 wsNumSymbol = |
| 254 GetSymbol(XFA_ELEMENT_CurrencySymbols, FX_WSTRC(L"isoname")); | 256 GetSymbol(XFA_Element::CurrencySymbols, FX_WSTRC(L"isoname")); |
| 255 break; | 257 break; |
| 256 } | 258 } |
| 257 } | 259 } |
| 258 void CXFA_NodeLocale::GetDateTimeSymbols(CFX_WideString& wsDtSymbol) const { | 260 void CXFA_NodeLocale::GetDateTimeSymbols(CFX_WideString& wsDtSymbol) const { |
| 259 CXFA_Node* pSymbols = | 261 CXFA_Node* pSymbols = |
| 260 m_pLocale ? m_pLocale->GetChild(0, XFA_ELEMENT_DateTimeSymbols) : NULL; | 262 m_pLocale ? m_pLocale->GetChild(0, XFA_Element::DateTimeSymbols) |
| 263 : nullptr; |
| 261 wsDtSymbol = pSymbols ? pSymbols->GetContent() : CFX_WideString(); | 264 wsDtSymbol = pSymbols ? pSymbols->GetContent() : CFX_WideString(); |
| 262 } | 265 } |
| 263 void CXFA_NodeLocale::GetMonthName(int32_t nMonth, | 266 void CXFA_NodeLocale::GetMonthName(int32_t nMonth, |
| 264 CFX_WideString& wsMonthName, | 267 CFX_WideString& wsMonthName, |
| 265 FX_BOOL bAbbr) const { | 268 FX_BOOL bAbbr) const { |
| 266 wsMonthName = GetCalendarSymbol(XFA_ELEMENT_MonthNames, nMonth, bAbbr); | 269 wsMonthName = GetCalendarSymbol(XFA_Element::MonthNames, nMonth, bAbbr); |
| 267 } | 270 } |
| 268 void CXFA_NodeLocale::GetDayName(int32_t nWeek, | 271 void CXFA_NodeLocale::GetDayName(int32_t nWeek, |
| 269 CFX_WideString& wsDayName, | 272 CFX_WideString& wsDayName, |
| 270 FX_BOOL bAbbr) const { | 273 FX_BOOL bAbbr) const { |
| 271 wsDayName = GetCalendarSymbol(XFA_ELEMENT_DayNames, nWeek, bAbbr); | 274 wsDayName = GetCalendarSymbol(XFA_Element::DayNames, nWeek, bAbbr); |
| 272 } | 275 } |
| 273 void CXFA_NodeLocale::GetMeridiemName(CFX_WideString& wsMeridiemName, | 276 void CXFA_NodeLocale::GetMeridiemName(CFX_WideString& wsMeridiemName, |
| 274 FX_BOOL bAM) const { | 277 FX_BOOL bAM) const { |
| 275 wsMeridiemName = | 278 wsMeridiemName = |
| 276 GetCalendarSymbol(XFA_ELEMENT_MeridiemNames, bAM ? 0 : 1, FALSE); | 279 GetCalendarSymbol(XFA_Element::MeridiemNames, bAM ? 0 : 1, FALSE); |
| 277 } | 280 } |
| 278 void CXFA_NodeLocale::GetTimeZone(FX_TIMEZONE& tz) const { | 281 void CXFA_NodeLocale::GetTimeZone(FX_TIMEZONE& tz) const { |
| 279 CXFA_TimeZoneProvider::Get()->GetTimeZone(tz); | 282 CXFA_TimeZoneProvider::Get()->GetTimeZone(tz); |
| 280 } | 283 } |
| 281 void CXFA_NodeLocale::GetEraName(CFX_WideString& wsEraName, FX_BOOL bAD) const { | 284 void CXFA_NodeLocale::GetEraName(CFX_WideString& wsEraName, FX_BOOL bAD) const { |
| 282 wsEraName = GetCalendarSymbol(XFA_ELEMENT_EraNames, bAD ? 1 : 0, FALSE); | 285 wsEraName = GetCalendarSymbol(XFA_Element::EraNames, bAD ? 1 : 0, FALSE); |
| 283 } | 286 } |
| 284 void CXFA_NodeLocale::GetDatePattern(FX_LOCALEDATETIMESUBCATEGORY eType, | 287 void CXFA_NodeLocale::GetDatePattern(FX_LOCALEDATETIMESUBCATEGORY eType, |
| 285 CFX_WideString& wsPattern) const { | 288 CFX_WideString& wsPattern) const { |
| 286 switch (eType) { | 289 switch (eType) { |
| 287 case FX_LOCALEDATETIMESUBCATEGORY_Short: | 290 case FX_LOCALEDATETIMESUBCATEGORY_Short: |
| 288 wsPattern = GetSymbol(XFA_ELEMENT_DatePatterns, FX_WSTRC(L"short")); | 291 wsPattern = GetSymbol(XFA_Element::DatePatterns, FX_WSTRC(L"short")); |
| 289 break; | 292 break; |
| 290 case FX_LOCALEDATETIMESUBCATEGORY_Medium: | 293 case FX_LOCALEDATETIMESUBCATEGORY_Medium: |
| 291 case FX_LOCALEDATETIMESUBCATEGORY_Default: | 294 case FX_LOCALEDATETIMESUBCATEGORY_Default: |
| 292 wsPattern = GetSymbol(XFA_ELEMENT_DatePatterns, FX_WSTRC(L"med")); | 295 wsPattern = GetSymbol(XFA_Element::DatePatterns, FX_WSTRC(L"med")); |
| 293 break; | 296 break; |
| 294 case FX_LOCALEDATETIMESUBCATEGORY_Full: | 297 case FX_LOCALEDATETIMESUBCATEGORY_Full: |
| 295 wsPattern = GetSymbol(XFA_ELEMENT_DatePatterns, FX_WSTRC(L"full")); | 298 wsPattern = GetSymbol(XFA_Element::DatePatterns, FX_WSTRC(L"full")); |
| 296 break; | 299 break; |
| 297 case FX_LOCALEDATETIMESUBCATEGORY_Long: | 300 case FX_LOCALEDATETIMESUBCATEGORY_Long: |
| 298 wsPattern = GetSymbol(XFA_ELEMENT_DatePatterns, FX_WSTRC(L"long")); | 301 wsPattern = GetSymbol(XFA_Element::DatePatterns, FX_WSTRC(L"long")); |
| 299 break; | 302 break; |
| 300 } | 303 } |
| 301 } | 304 } |
| 302 void CXFA_NodeLocale::GetTimePattern(FX_LOCALEDATETIMESUBCATEGORY eType, | 305 void CXFA_NodeLocale::GetTimePattern(FX_LOCALEDATETIMESUBCATEGORY eType, |
| 303 CFX_WideString& wsPattern) const { | 306 CFX_WideString& wsPattern) const { |
| 304 switch (eType) { | 307 switch (eType) { |
| 305 case FX_LOCALEDATETIMESUBCATEGORY_Short: | 308 case FX_LOCALEDATETIMESUBCATEGORY_Short: |
| 306 wsPattern = GetSymbol(XFA_ELEMENT_TimePatterns, FX_WSTRC(L"short")); | 309 wsPattern = GetSymbol(XFA_Element::TimePatterns, FX_WSTRC(L"short")); |
| 307 break; | 310 break; |
| 308 case FX_LOCALEDATETIMESUBCATEGORY_Medium: | 311 case FX_LOCALEDATETIMESUBCATEGORY_Medium: |
| 309 case FX_LOCALEDATETIMESUBCATEGORY_Default: | 312 case FX_LOCALEDATETIMESUBCATEGORY_Default: |
| 310 wsPattern = GetSymbol(XFA_ELEMENT_TimePatterns, FX_WSTRC(L"med")); | 313 wsPattern = GetSymbol(XFA_Element::TimePatterns, FX_WSTRC(L"med")); |
| 311 break; | 314 break; |
| 312 case FX_LOCALEDATETIMESUBCATEGORY_Full: | 315 case FX_LOCALEDATETIMESUBCATEGORY_Full: |
| 313 wsPattern = GetSymbol(XFA_ELEMENT_TimePatterns, FX_WSTRC(L"full")); | 316 wsPattern = GetSymbol(XFA_Element::TimePatterns, FX_WSTRC(L"full")); |
| 314 break; | 317 break; |
| 315 case FX_LOCALEDATETIMESUBCATEGORY_Long: | 318 case FX_LOCALEDATETIMESUBCATEGORY_Long: |
| 316 wsPattern = GetSymbol(XFA_ELEMENT_TimePatterns, FX_WSTRC(L"long")); | 319 wsPattern = GetSymbol(XFA_Element::TimePatterns, FX_WSTRC(L"long")); |
| 317 break; | 320 break; |
| 318 } | 321 } |
| 319 } | 322 } |
| 320 void CXFA_NodeLocale::GetNumPattern(FX_LOCALENUMSUBCATEGORY eType, | 323 void CXFA_NodeLocale::GetNumPattern(FX_LOCALENUMSUBCATEGORY eType, |
| 321 CFX_WideString& wsPattern) const { | 324 CFX_WideString& wsPattern) const { |
| 322 switch (eType) { | 325 switch (eType) { |
| 323 case FX_LOCALENUMPATTERN_Percent: | 326 case FX_LOCALENUMPATTERN_Percent: |
| 324 wsPattern = g_FX_Percent; | 327 wsPattern = g_FX_Percent; |
| 325 break; | 328 break; |
| 326 case FX_LOCALENUMPATTERN_Currency: | 329 case FX_LOCALENUMPATTERN_Currency: |
| (...skipping 16 matching lines...) Expand all Loading... |
| 343 if (pChild->GetAttribute(XFA_ATTRIBUTE_Name, wsChild)) { | 346 if (pChild->GetAttribute(XFA_ATTRIBUTE_Name, wsChild)) { |
| 344 if (wsChild == wsName) { | 347 if (wsChild == wsName) { |
| 345 return pChild; | 348 return pChild; |
| 346 } | 349 } |
| 347 } | 350 } |
| 348 pChild = pChild->GetNodeItem(XFA_NODEITEM_NextSibling); | 351 pChild = pChild->GetNodeItem(XFA_NODEITEM_NextSibling); |
| 349 } | 352 } |
| 350 return NULL; | 353 return NULL; |
| 351 } | 354 } |
| 352 CFX_WideString CXFA_NodeLocale::GetSymbol( | 355 CFX_WideString CXFA_NodeLocale::GetSymbol( |
| 353 XFA_ELEMENT eElement, | 356 XFA_Element eElement, |
| 354 const CFX_WideStringC& symbol_type) const { | 357 const CFX_WideStringC& symbol_type) const { |
| 355 CXFA_Node* pSymbols = m_pLocale ? m_pLocale->GetChild(0, eElement) : NULL; | 358 CXFA_Node* pSymbols = m_pLocale ? m_pLocale->GetChild(0, eElement) : nullptr; |
| 356 CXFA_Node* pSymbol = GetNodeByName(pSymbols, symbol_type); | 359 CXFA_Node* pSymbol = GetNodeByName(pSymbols, symbol_type); |
| 357 return pSymbol ? pSymbol->GetContent() : CFX_WideString(); | 360 return pSymbol ? pSymbol->GetContent() : CFX_WideString(); |
| 358 } | 361 } |
| 359 CFX_WideString CXFA_NodeLocale::GetCalendarSymbol(XFA_ELEMENT eElement, | 362 CFX_WideString CXFA_NodeLocale::GetCalendarSymbol(XFA_Element eElement, |
| 360 int index, | 363 int index, |
| 361 FX_BOOL bAbbr) const { | 364 FX_BOOL bAbbr) const { |
| 362 CXFA_Node* pCalendar = | 365 CXFA_Node* pCalendar = |
| 363 m_pLocale ? m_pLocale->GetChild(0, XFA_ELEMENT_CalendarSymbols) : NULL; | 366 m_pLocale ? m_pLocale->GetChild(0, XFA_Element::CalendarSymbols) |
| 367 : nullptr; |
| 364 if (pCalendar) { | 368 if (pCalendar) { |
| 365 CXFA_Node* pNode = pCalendar->GetFirstChildByClass(eElement); | 369 CXFA_Node* pNode = pCalendar->GetFirstChildByClass(eElement); |
| 366 for (; pNode; pNode = pNode->GetNextSameClassSibling(eElement)) { | 370 for (; pNode; pNode = pNode->GetNextSameClassSibling(eElement)) { |
| 367 if (pNode->GetBoolean(XFA_ATTRIBUTE_Abbr) == bAbbr) { | 371 if (pNode->GetBoolean(XFA_ATTRIBUTE_Abbr) == bAbbr) { |
| 368 CXFA_Node* pSymbol = pNode->GetChild(index, XFA_ELEMENT_UNKNOWN); | 372 CXFA_Node* pSymbol = pNode->GetChild(index, XFA_Element::Unknown); |
| 369 return pSymbol ? pSymbol->GetContent() : CFX_WideString(); | 373 return pSymbol ? pSymbol->GetContent() : CFX_WideString(); |
| 370 } | 374 } |
| 371 } | 375 } |
| 372 } | 376 } |
| 373 return CFX_WideString(); | 377 return CFX_WideString(); |
| 374 } | 378 } |
| OLD | NEW |