Merge XFA to PDFium master at 4dc95e7 on 10/28/2014
[pdfium.git] / xfa / src / fxfa / src / common / xfa_localemgr.h
1 // Copyright 2014 PDFium Authors. All rights reserved.\r
2 // Use of this source code is governed by a BSD-style license that can be\r
3 // found in the LICENSE file.\r
4 \r
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com\r
6 \r
7 #ifndef _FXFA_LOCALEMGR_H\r
8 #define _FXFA_LOCALEMGR_H\r
9 class CXFA_Node;\r
10 class IFX_Locale;\r
11 class IFX_LocaleMgr;\r
12 class CXFA_LocaleMgr;\r
13 #define XFA_LANGID_zh_CN        0x0804\r
14 #define XFA_LANGID_zh_TW        0x0404\r
15 #define XFA_LANGID_zh_HK        0x0c04\r
16 #define XFA_LANGID_ja_JP        0x0411\r
17 #define XFA_LANGID_ko_KR        0x0412\r
18 #define XFA_LANGID_en_US        0x0409\r
19 #define XFA_LANGID_en_GB        0x0809\r
20 #define XFA_LANGID_es_ES        0x0c0a\r
21 #define XFA_LANGID_es_LA        0x080a\r
22 #define XFA_LANGID_de_DE        0x0407\r
23 #define XFA_LANGID_fr_FR        0x040c\r
24 #define XFA_LANGID_it_IT        0x0410\r
25 #define XFA_LANGID_pt_BR        0x0416\r
26 #define XFA_LANGID_nl_NL        0x0413\r
27 #define XFA_LANGID_ru_RU        0x0419\r
28 class CXFA_LocaleMgr : public IFX_LocaleMgr, public CFX_Object\r
29 {\r
30 public:\r
31     CXFA_LocaleMgr(CXFA_Node* pLocaleSet, CFX_WideString wsDeflcid);\r
32     virtual void                        Release();\r
33     virtual FX_WORD                     GetDefLocaleID();\r
34     virtual IFX_Locale*         GetDefLocale();\r
35     virtual IFX_Locale*         GetLocale(FX_WORD lcid);\r
36     virtual IFX_Locale*         GetLocaleByName(FX_WSTR wsLocaleName);\r
37     ~CXFA_LocaleMgr();\r
38     void                                        SetDefLocale(IFX_Locale* pLocale);\r
39     CFX_WideStringC                     GetConfigLocaleName(CXFA_Node* pConfig);\r
40 protected:\r
41     CFX_PtrArray                        m_LocaleArray;\r
42     CFX_PtrArray                        m_XMLLocaleArray;\r
43     IFX_Locale*                         m_pDefLocale;\r
44     CFX_WideString                      m_wsConfigLocale;\r
45     FX_WORD                                     m_dwDeflcid;\r
46     FX_WORD                                     m_dwLocaleFlags;\r
47 };\r
48 class IXFA_TimeZoneProvider\r
49 {\r
50 public:\r
51     static IXFA_TimeZoneProvider* Create();\r
52     static IXFA_TimeZoneProvider* Get();\r
53     static void Destroy();\r
54 \r
55     virtual void                SetTimeZone(FX_TIMEZONE& tz) = 0;\r
56 \r
57     virtual void                GetTimeZone(FX_TIMEZONE& tz) = 0;\r
58 };\r
59 class CXFA_TimeZoneProvider : public IXFA_TimeZoneProvider, public CFX_Object\r
60 {\r
61 public:\r
62     CXFA_TimeZoneProvider();\r
63     ~CXFA_TimeZoneProvider();\r
64     virtual void                SetTimeZone(FX_TIMEZONE& tz);\r
65     virtual void                GetTimeZone(FX_TIMEZONE& tz);\r
66 private:\r
67     FX_TIMEZONE                 m_tz;\r
68 };\r
69 #endif\r