1*3ac0a46fSAndroid Build Coastguard Worker // Copyright 2014 The PDFium Authors 2*3ac0a46fSAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*3ac0a46fSAndroid Build Coastguard Worker // found in the LICENSE file. 4*3ac0a46fSAndroid Build Coastguard Worker 5*3ac0a46fSAndroid Build Coastguard Worker // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6*3ac0a46fSAndroid Build Coastguard Worker 7*3ac0a46fSAndroid Build Coastguard Worker #ifndef XFA_FXFA_PARSER_CXFA_NODELOCALE_H_ 8*3ac0a46fSAndroid Build Coastguard Worker #define XFA_FXFA_PARSER_CXFA_NODELOCALE_H_ 9*3ac0a46fSAndroid Build Coastguard Worker 10*3ac0a46fSAndroid Build Coastguard Worker #include "fxjs/gc/heap.h" 11*3ac0a46fSAndroid Build Coastguard Worker #include "v8/include/cppgc/garbage-collected.h" 12*3ac0a46fSAndroid Build Coastguard Worker #include "v8/include/cppgc/member.h" 13*3ac0a46fSAndroid Build Coastguard Worker #include "xfa/fxfa/fxfa_basic.h" 14*3ac0a46fSAndroid Build Coastguard Worker #include "xfa/fxfa/parser/gced_locale_iface.h" 15*3ac0a46fSAndroid Build Coastguard Worker 16*3ac0a46fSAndroid Build Coastguard Worker class CXFA_Node; 17*3ac0a46fSAndroid Build Coastguard Worker 18*3ac0a46fSAndroid Build Coastguard Worker WideString XFA_PatternToString(LocaleIface::NumSubcategory category); 19*3ac0a46fSAndroid Build Coastguard Worker 20*3ac0a46fSAndroid Build Coastguard Worker class CXFA_NodeLocale final : public GCedLocaleIface { 21*3ac0a46fSAndroid Build Coastguard Worker public: 22*3ac0a46fSAndroid Build Coastguard Worker CONSTRUCT_VIA_MAKE_GARBAGE_COLLECTED; 23*3ac0a46fSAndroid Build Coastguard Worker ~CXFA_NodeLocale() override; 24*3ac0a46fSAndroid Build Coastguard Worker 25*3ac0a46fSAndroid Build Coastguard Worker // GCedLocaleIface: 26*3ac0a46fSAndroid Build Coastguard Worker void Trace(cppgc::Visitor* visitor) const override; 27*3ac0a46fSAndroid Build Coastguard Worker WideString GetName() const override; 28*3ac0a46fSAndroid Build Coastguard Worker WideString GetDecimalSymbol() const override; 29*3ac0a46fSAndroid Build Coastguard Worker WideString GetGroupingSymbol() const override; 30*3ac0a46fSAndroid Build Coastguard Worker WideString GetPercentSymbol() const override; 31*3ac0a46fSAndroid Build Coastguard Worker WideString GetMinusSymbol() const override; 32*3ac0a46fSAndroid Build Coastguard Worker WideString GetCurrencySymbol() const override; 33*3ac0a46fSAndroid Build Coastguard Worker WideString GetDateTimeSymbols() const override; 34*3ac0a46fSAndroid Build Coastguard Worker WideString GetMonthName(int32_t nMonth, bool bAbbr) const override; 35*3ac0a46fSAndroid Build Coastguard Worker WideString GetDayName(int32_t nWeek, bool bAbbr) const override; 36*3ac0a46fSAndroid Build Coastguard Worker WideString GetMeridiemName(bool bAM) const override; 37*3ac0a46fSAndroid Build Coastguard Worker int GetTimeZoneInMinutes() const override; 38*3ac0a46fSAndroid Build Coastguard Worker WideString GetEraName(bool bAD) const override; 39*3ac0a46fSAndroid Build Coastguard Worker 40*3ac0a46fSAndroid Build Coastguard Worker WideString GetDatePattern(DateTimeSubcategory eType) const override; 41*3ac0a46fSAndroid Build Coastguard Worker WideString GetTimePattern(DateTimeSubcategory eType) const override; 42*3ac0a46fSAndroid Build Coastguard Worker WideString GetNumPattern(NumSubcategory eType) const override; 43*3ac0a46fSAndroid Build Coastguard Worker 44*3ac0a46fSAndroid Build Coastguard Worker private: 45*3ac0a46fSAndroid Build Coastguard Worker explicit CXFA_NodeLocale(CXFA_Node* pNode); 46*3ac0a46fSAndroid Build Coastguard Worker 47*3ac0a46fSAndroid Build Coastguard Worker CXFA_Node* GetNodeByName(CXFA_Node* pParent, WideStringView wsName) const; 48*3ac0a46fSAndroid Build Coastguard Worker WideString GetSymbol(XFA_Element eElement, WideStringView symbol_type) const; 49*3ac0a46fSAndroid Build Coastguard Worker WideString GetCalendarSymbol(XFA_Element eElement, 50*3ac0a46fSAndroid Build Coastguard Worker int index, 51*3ac0a46fSAndroid Build Coastguard Worker bool bAbbr) const; 52*3ac0a46fSAndroid Build Coastguard Worker 53*3ac0a46fSAndroid Build Coastguard Worker cppgc::Member<CXFA_Node> const m_pNode; 54*3ac0a46fSAndroid Build Coastguard Worker }; 55*3ac0a46fSAndroid Build Coastguard Worker 56*3ac0a46fSAndroid Build Coastguard Worker #endif // XFA_FXFA_PARSER_CXFA_NODELOCALE_H_ 57