Home | History | Annotate | Download | only in fxcrt
      1 // Copyright 2014 PDFium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
      6 
      7 #ifndef CORE_FXCRT_IFX_LOCALE_H_
      8 #define CORE_FXCRT_IFX_LOCALE_H_
      9 
     10 #include "core/fxcrt/cfx_datetime.h"
     11 #include "core/fxcrt/fx_string.h"
     12 
     13 enum FX_LOCALENUMSYMBOL {
     14   FX_LOCALENUMSYMBOL_Decimal,
     15   FX_LOCALENUMSYMBOL_Grouping,
     16   FX_LOCALENUMSYMBOL_Percent,
     17   FX_LOCALENUMSYMBOL_Minus,
     18   FX_LOCALENUMSYMBOL_Zero,
     19   FX_LOCALENUMSYMBOL_CurrencySymbol,
     20   FX_LOCALENUMSYMBOL_CurrencyName,
     21 };
     22 
     23 enum FX_LOCALEDATETIMESUBCATEGORY {
     24   FX_LOCALEDATETIMESUBCATEGORY_Default,
     25   FX_LOCALEDATETIMESUBCATEGORY_Short,
     26   FX_LOCALEDATETIMESUBCATEGORY_Medium,
     27   FX_LOCALEDATETIMESUBCATEGORY_Full,
     28   FX_LOCALEDATETIMESUBCATEGORY_Long,
     29 };
     30 
     31 enum FX_LOCALENUMSUBCATEGORY {
     32   FX_LOCALENUMPATTERN_Percent,
     33   FX_LOCALENUMPATTERN_Currency,
     34   FX_LOCALENUMPATTERN_Decimal,
     35   FX_LOCALENUMPATTERN_Integer,
     36 };
     37 
     38 enum FX_LOCALECATEGORY {
     39   FX_LOCALECATEGORY_Unknown,
     40   FX_LOCALECATEGORY_Date,
     41   FX_LOCALECATEGORY_Time,
     42   FX_LOCALECATEGORY_DateTime,
     43   FX_LOCALECATEGORY_Num,
     44   FX_LOCALECATEGORY_Text,
     45   FX_LOCALECATEGORY_Zero,
     46   FX_LOCALECATEGORY_Null,
     47 };
     48 
     49 enum FX_DATETIMETYPE {
     50   FX_DATETIMETYPE_Unknown,
     51   FX_DATETIMETYPE_Date,
     52   FX_DATETIMETYPE_Time,
     53   FX_DATETIMETYPE_DateTime,
     54   FX_DATETIMETYPE_TimeDate,
     55 };
     56 
     57 class IFX_Locale {
     58  public:
     59   virtual ~IFX_Locale() {}
     60 
     61   virtual WideString GetName() const = 0;
     62   virtual WideString GetNumbericSymbol(FX_LOCALENUMSYMBOL eType) const = 0;
     63   virtual WideString GetDateTimeSymbols() const = 0;
     64   virtual WideString GetMonthName(int32_t nMonth, bool bAbbr) const = 0;
     65   virtual WideString GetDayName(int32_t nWeek, bool bAbbr) const = 0;
     66   virtual WideString GetMeridiemName(bool bAM) const = 0;
     67   virtual FX_TIMEZONE GetTimeZone() const = 0;
     68   virtual WideString GetEraName(bool bAD) const = 0;
     69   virtual WideString GetDatePattern(
     70       FX_LOCALEDATETIMESUBCATEGORY eType) const = 0;
     71   virtual WideString GetTimePattern(
     72       FX_LOCALEDATETIMESUBCATEGORY eType) const = 0;
     73   virtual WideString GetNumPattern(FX_LOCALENUMSUBCATEGORY eType) const = 0;
     74 };
     75 
     76 #endif  // CORE_FXCRT_IFX_LOCALE_H_
     77