Merge XFA to PDFium master at 4dc95e7 on 10/28/2014
[pdfium.git] / xfa / src / fxfa / src / parser / xfa_locale.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_LOCALE_H\r
8 #define _FXFA_LOCALE_H\r
9 class CXFA_XMLLocale : public IFX_Locale, public CFX_Object\r
10 {\r
11 public:\r
12     CXFA_XMLLocale(CXML_Element* pLocaleData);\r
13     virtual void        Release();\r
14     virtual CFX_WideString GetName();\r
15     virtual void        GetNumbericSymbol(FX_LOCALENUMSYMBOL eType, CFX_WideString& wsNumSymbol) const;\r
16 \r
17     virtual void        GetDateTimeSymbols(CFX_WideString& wsDtSymbol) const;\r
18     virtual void        GetMonthName(FX_INT32 nMonth, CFX_WideString& wsMonthName, FX_BOOL bAbbr = TRUE) const;\r
19     virtual void        GetDayName(FX_INT32 nWeek, CFX_WideString& wsDayName, FX_BOOL bAbbr = TRUE) const;\r
20     virtual void        GetMeridiemName(CFX_WideString& wsMeridiemName, FX_BOOL bAM = TRUE) const;\r
21     virtual void        GetTimeZone(FX_TIMEZONE& tz) const;\r
22     virtual void        GetEraName(CFX_WideString& wsEraName, FX_BOOL bAD = TRUE) const;\r
23 \r
24     virtual void        GetDatePattern(FX_LOCALEDATETIMESUBCATEGORY eType, CFX_WideString& wsPattern) const;\r
25     virtual void        GetTimePattern(FX_LOCALEDATETIMESUBCATEGORY eType, CFX_WideString& wsPattern) const;\r
26     virtual void        GetNumPattern(FX_LOCALENUMSUBCATEGORY eType, CFX_WideString& wsPattern) const;\r
27 \r
28 protected:\r
29     ~CXFA_XMLLocale();\r
30     void                        GetPattern(CXML_Element* pElement, FX_BSTR bsTag, FX_WSTR wsName, CFX_WideString& wsPattern) const;\r
31     CFX_WideString      GetCalendarSymbol(FX_BSTR symbol, int index, FX_BOOL bAbbr) const;\r
32 private:\r
33     CXML_Element*       m_pLocaleData;\r
34 };\r
35 class CXFA_NodeLocale : public IFX_Locale, public CFX_Object\r
36 {\r
37 public:\r
38     CXFA_NodeLocale(CXFA_Node* pLocale);\r
39     virtual void        Release();\r
40     virtual CFX_WideString GetName();\r
41     virtual void        GetNumbericSymbol(FX_LOCALENUMSYMBOL eType, CFX_WideString& wsNumSymbol) const;\r
42 \r
43     virtual void        GetDateTimeSymbols(CFX_WideString& wsDtSymbol) const;\r
44     virtual void        GetMonthName(FX_INT32 nMonth, CFX_WideString& wsMonthName, FX_BOOL bAbbr = TRUE) const;\r
45     virtual void        GetDayName(FX_INT32 nWeek, CFX_WideString& wsDayName, FX_BOOL bAbbr = TRUE) const;\r
46     virtual void        GetMeridiemName(CFX_WideString& wsMeridiemName, FX_BOOL bAM = TRUE) const;\r
47     virtual void        GetTimeZone(FX_TIMEZONE& tz) const;\r
48     virtual void        GetEraName(CFX_WideString& wsEraName, FX_BOOL bAD = TRUE) const;\r
49 \r
50     virtual void        GetDatePattern(FX_LOCALEDATETIMESUBCATEGORY eType, CFX_WideString& wsPattern) const;\r
51     virtual void        GetTimePattern(FX_LOCALEDATETIMESUBCATEGORY eType, CFX_WideString& wsPattern) const;\r
52     virtual void        GetNumPattern(FX_LOCALENUMSUBCATEGORY eType, CFX_WideString& wsPattern) const;\r
53 protected:\r
54     ~CXFA_NodeLocale();\r
55     CXFA_Node*          GetNodeByName(CXFA_Node *pParent, FX_WSTR wsName) const;\r
56     CFX_WideString      GetSymbol(XFA_ELEMENT eElement, FX_WSTR symbol_type) const;\r
57     CFX_WideString      GetCalendarSymbol(XFA_ELEMENT eElement, int index, FX_BOOL bAbbr) const;\r
58 \r
59     CXFA_Node*          m_pLocale;\r
60 };\r
61 #endif\r