| 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_localemgr.h" | 7 #include "xfa/fxfa/parser/xfa_localemgr.h" |
| 8 | 8 |
| 9 #include "core/include/fxcodec/fx_codec.h" | 9 #include "core/include/fxcodec/fx_codec.h" |
| 10 #include "core/include/fxcrt/fx_xml.h" | 10 #include "core/include/fxcrt/fx_xml.h" |
| (...skipping 1042 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1053 0, 0, 0, 0, pOut, dwSize); | 1053 0, 0, 0, 0, pOut, dwSize); |
| 1054 if (pOut) { | 1054 if (pOut) { |
| 1055 pLocale = CXML_Element::Parse(pOut, dwSize); | 1055 pLocale = CXML_Element::Parse(pOut, dwSize); |
| 1056 FX_Free(pOut); | 1056 FX_Free(pOut); |
| 1057 } | 1057 } |
| 1058 if (pLocale) { | 1058 if (pLocale) { |
| 1059 return new CXFA_XMLLocale(pLocale); | 1059 return new CXFA_XMLLocale(pLocale); |
| 1060 } | 1060 } |
| 1061 return NULL; | 1061 return NULL; |
| 1062 } | 1062 } |
| 1063 static FX_WORD XFA_GetLanguage(CFX_WideString wsLanguage) { | 1063 static uint16_t XFA_GetLanguage(CFX_WideString wsLanguage) { |
| 1064 FX_WORD dwLangueID = XFA_LANGID_en_US; | 1064 uint16_t dwLangueID = XFA_LANGID_en_US; |
| 1065 if (wsLanguage.GetLength() < 2) { | 1065 if (wsLanguage.GetLength() < 2) { |
| 1066 return dwLangueID; | 1066 return dwLangueID; |
| 1067 } | 1067 } |
| 1068 wsLanguage.MakeLower(); | 1068 wsLanguage.MakeLower(); |
| 1069 FX_DWORD dwIDFirst = wsLanguage.GetAt(0) << 8 | wsLanguage.GetAt(1); | 1069 FX_DWORD dwIDFirst = wsLanguage.GetAt(0) << 8 | wsLanguage.GetAt(1); |
| 1070 FX_DWORD dwIDSecond = wsLanguage.GetLength() >= 5 | 1070 FX_DWORD dwIDSecond = wsLanguage.GetLength() >= 5 |
| 1071 ? wsLanguage.GetAt(3) << 8 | wsLanguage.GetAt(4) | 1071 ? wsLanguage.GetAt(3) << 8 | wsLanguage.GetAt(4) |
| 1072 : 0; | 1072 : 0; |
| 1073 switch (dwIDFirst) { | 1073 switch (dwIDFirst) { |
| 1074 case FXBSTR_ID(0, 0, 'z', 'h'): { | 1074 case FXBSTR_ID(0, 0, 'z', 'h'): { |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1140 ((IFX_Locale*)m_LocaleArray[i])->Release(); | 1140 ((IFX_Locale*)m_LocaleArray[i])->Release(); |
| 1141 } | 1141 } |
| 1142 int32_t iXmls = m_XMLLocaleArray.GetSize(); | 1142 int32_t iXmls = m_XMLLocaleArray.GetSize(); |
| 1143 for (int32_t j = 0; j < iXmls; j++) { | 1143 for (int32_t j = 0; j < iXmls; j++) { |
| 1144 ((IFX_Locale*)m_XMLLocaleArray[j])->Release(); | 1144 ((IFX_Locale*)m_XMLLocaleArray[j])->Release(); |
| 1145 } | 1145 } |
| 1146 } | 1146 } |
| 1147 void CXFA_LocaleMgr::Release() { | 1147 void CXFA_LocaleMgr::Release() { |
| 1148 delete this; | 1148 delete this; |
| 1149 } | 1149 } |
| 1150 FX_WORD CXFA_LocaleMgr::GetDefLocaleID() { | 1150 uint16_t CXFA_LocaleMgr::GetDefLocaleID() { |
| 1151 return m_dwDeflcid; | 1151 return m_dwDeflcid; |
| 1152 } | 1152 } |
| 1153 IFX_Locale* CXFA_LocaleMgr::GetDefLocale() { | 1153 IFX_Locale* CXFA_LocaleMgr::GetDefLocale() { |
| 1154 if (m_pDefLocale) { | 1154 if (m_pDefLocale) { |
| 1155 return m_pDefLocale; | 1155 return m_pDefLocale; |
| 1156 } else if (m_LocaleArray.GetSize()) { | 1156 } else if (m_LocaleArray.GetSize()) { |
| 1157 return (IFX_Locale*)m_LocaleArray[0]; | 1157 return (IFX_Locale*)m_LocaleArray[0]; |
| 1158 } else if (m_XMLLocaleArray.GetSize()) { | 1158 } else if (m_XMLLocaleArray.GetSize()) { |
| 1159 return (IFX_Locale*)m_XMLLocaleArray[0]; | 1159 return (IFX_Locale*)m_XMLLocaleArray[0]; |
| 1160 } | 1160 } |
| 1161 m_pDefLocale = GetLocale(m_dwDeflcid); | 1161 m_pDefLocale = GetLocale(m_dwDeflcid); |
| 1162 if (m_pDefLocale) | 1162 if (m_pDefLocale) |
| 1163 m_XMLLocaleArray.Add(m_pDefLocale); | 1163 m_XMLLocaleArray.Add(m_pDefLocale); |
| 1164 return m_pDefLocale; | 1164 return m_pDefLocale; |
| 1165 } | 1165 } |
| 1166 IFX_Locale* CXFA_LocaleMgr::GetLocale(FX_WORD lcid) { | 1166 IFX_Locale* CXFA_LocaleMgr::GetLocale(uint16_t lcid) { |
| 1167 IFX_Locale* pLocal = NULL; | 1167 IFX_Locale* pLocal = NULL; |
| 1168 switch (lcid) { | 1168 switch (lcid) { |
| 1169 case XFA_LANGID_zh_CN: | 1169 case XFA_LANGID_zh_CN: |
| 1170 pLocal = XFA_GetLocaleFromBuffer(g_zhCN_Locale, sizeof(g_zhCN_Locale)); | 1170 pLocal = XFA_GetLocaleFromBuffer(g_zhCN_Locale, sizeof(g_zhCN_Locale)); |
| 1171 break; | 1171 break; |
| 1172 case XFA_LANGID_zh_TW: | 1172 case XFA_LANGID_zh_TW: |
| 1173 pLocal = XFA_GetLocaleFromBuffer(g_zhTW_Locale, sizeof(g_zhTW_Locale)); | 1173 pLocal = XFA_GetLocaleFromBuffer(g_zhTW_Locale, sizeof(g_zhTW_Locale)); |
| 1174 break; | 1174 break; |
| 1175 case XFA_LANGID_zh_HK: | 1175 case XFA_LANGID_zh_HK: |
| 1176 pLocal = XFA_GetLocaleFromBuffer(g_zhHK_Locale, sizeof(g_zhHK_Locale)); | 1176 pLocal = XFA_GetLocaleFromBuffer(g_zhHK_Locale, sizeof(g_zhHK_Locale)); |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1229 if (iLen < 2) { | 1229 if (iLen < 2) { |
| 1230 return NULL; | 1230 return NULL; |
| 1231 } | 1231 } |
| 1232 iCount = m_XMLLocaleArray.GetSize(); | 1232 iCount = m_XMLLocaleArray.GetSize(); |
| 1233 for (i = 0; i < iCount; i++) { | 1233 for (i = 0; i < iCount; i++) { |
| 1234 IFX_Locale* pLocale = ((IFX_Locale*)m_XMLLocaleArray[i]); | 1234 IFX_Locale* pLocale = ((IFX_Locale*)m_XMLLocaleArray[i]); |
| 1235 if (pLocale->GetName() == wsLocaleName) { | 1235 if (pLocale->GetName() == wsLocaleName) { |
| 1236 return pLocale; | 1236 return pLocale; |
| 1237 } | 1237 } |
| 1238 } | 1238 } |
| 1239 FX_WORD dwLangueID = XFA_GetLanguage(wsLocaleName); | 1239 uint16_t dwLangueID = XFA_GetLanguage(wsLocaleName); |
| 1240 IFX_Locale* pLocale = GetLocale(dwLangueID); | 1240 IFX_Locale* pLocale = GetLocale(dwLangueID); |
| 1241 if (pLocale) | 1241 if (pLocale) |
| 1242 m_XMLLocaleArray.Add(pLocale); | 1242 m_XMLLocaleArray.Add(pLocale); |
| 1243 return pLocale; | 1243 return pLocale; |
| 1244 } | 1244 } |
| 1245 void CXFA_LocaleMgr::SetDefLocale(IFX_Locale* pLocale) { | 1245 void CXFA_LocaleMgr::SetDefLocale(IFX_Locale* pLocale) { |
| 1246 m_pDefLocale = pLocale; | 1246 m_pDefLocale = pLocale; |
| 1247 } | 1247 } |
| 1248 CFX_WideStringC CXFA_LocaleMgr::GetConfigLocaleName(CXFA_Node* pConfig) { | 1248 CFX_WideStringC CXFA_LocaleMgr::GetConfigLocaleName(CXFA_Node* pConfig) { |
| 1249 if (!(m_dwLocaleFlags & 0x01)) { | 1249 if (!(m_dwLocaleFlags & 0x01)) { |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1296 m_tz.tzMinute = (int8_t)((FXSYS_abs((int)timezone) % 3600) / 60); | 1296 m_tz.tzMinute = (int8_t)((FXSYS_abs((int)timezone) % 3600) / 60); |
| 1297 #endif | 1297 #endif |
| 1298 } | 1298 } |
| 1299 CXFA_TimeZoneProvider::~CXFA_TimeZoneProvider() {} | 1299 CXFA_TimeZoneProvider::~CXFA_TimeZoneProvider() {} |
| 1300 void CXFA_TimeZoneProvider::SetTimeZone(FX_TIMEZONE& tz) { | 1300 void CXFA_TimeZoneProvider::SetTimeZone(FX_TIMEZONE& tz) { |
| 1301 m_tz = tz; | 1301 m_tz = tz; |
| 1302 } | 1302 } |
| 1303 void CXFA_TimeZoneProvider::GetTimeZone(FX_TIMEZONE& tz) { | 1303 void CXFA_TimeZoneProvider::GetTimeZone(FX_TIMEZONE& tz) { |
| 1304 tz = m_tz; | 1304 tz = m_tz; |
| 1305 } | 1305 } |
| OLD | NEW |