Index: source/i18n/decimalformatpattern.h |
diff --git a/source/i18n/decimalformatpattern.h b/source/i18n/decimalformatpattern.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4b04d47d6b021e64cf0b5c1a3ef462464b8d7ec3 |
--- /dev/null |
+++ b/source/i18n/decimalformatpattern.h |
@@ -0,0 +1,99 @@ |
+/* |
+******************************************************************************* |
+* Copyright (C) 1997-2014, International Business Machines Corporation and * |
+* others. All Rights Reserved. * |
+******************************************************************************* |
+*/ |
+#ifndef _DECIMAL_FORMAT_PATTERN |
+#define _DECIMAL_FORMAT_PATTERN |
+ |
+#include "unicode/utypes.h" |
+ |
+#if !UCONFIG_NO_FORMATTING |
+ |
+#include "unicode/uobject.h" |
+#include "unicode/unistr.h" |
+#include "digitlst.h" |
+ |
+U_NAMESPACE_BEGIN |
+ |
+// currency sign count |
+enum CurrencySignCount { |
+ fgCurrencySignCountZero, |
+ fgCurrencySignCountInSymbolFormat, |
+ fgCurrencySignCountInISOFormat, |
+ fgCurrencySignCountInPluralFormat |
+}; |
+ |
+class DecimalFormatSymbols; |
+ |
+struct DecimalFormatPattern : UMemory { |
+ enum EPadPosition { |
+ kPadBeforePrefix, |
+ kPadAfterPrefix, |
+ kPadBeforeSuffix, |
+ kPadAfterSuffix |
+ }; |
+ |
+ DecimalFormatPattern(); |
+ |
+ int32_t fMinimumIntegerDigits; |
+ int32_t fMaximumIntegerDigits; |
+ int32_t fMinimumFractionDigits; |
+ int32_t fMaximumFractionDigits; |
+ UBool fUseSignificantDigits; |
+ int32_t fMinimumSignificantDigits; |
+ int32_t fMaximumSignificantDigits; |
+ UBool fUseExponentialNotation; |
+ int32_t fMinExponentDigits; |
+ UBool fExponentSignAlwaysShown; |
+ int32_t fCurrencySignCount; |
+ UBool fGroupingUsed; |
+ int32_t fGroupingSize; |
+ int32_t fGroupingSize2; |
+ int32_t fMultiplier; |
+ UBool fDecimalSeparatorAlwaysShown; |
+ int32_t fFormatWidth; |
+ UBool fRoundingIncrementUsed; |
+ DigitList fRoundingIncrement; |
+ UChar32 fPad; |
+ UBool fNegPatternsBogus; |
+ UBool fPosPatternsBogus; |
+ UnicodeString fNegPrefixPattern; |
+ UnicodeString fNegSuffixPattern; |
+ UnicodeString fPosPrefixPattern; |
+ UnicodeString fPosSuffixPattern; |
+ EPadPosition fPadPosition; |
+}; |
+ |
+class DecimalFormatPatternParser : UMemory { |
+ public: |
+ DecimalFormatPatternParser(); |
+ void useSymbols(const DecimalFormatSymbols& symbols); |
+ |
+ void applyPatternWithoutExpandAffix( |
+ const UnicodeString& pattern, |
+ DecimalFormatPattern& out, |
+ UParseError& parseError, |
+ UErrorCode& status); |
+ private: |
+ DecimalFormatPatternParser(const DecimalFormatPatternParser&); |
+ DecimalFormatPatternParser& operator=(DecimalFormatPatternParser& rhs); |
+ UChar32 fZeroDigit; |
+ UChar32 fSigDigit; |
+ UnicodeString fGroupingSeparator; |
+ UnicodeString fDecimalSeparator; |
+ UnicodeString fPercent; |
+ UnicodeString fPerMill; |
+ UnicodeString fDigit; |
+ UnicodeString fSeparator; |
+ UnicodeString fExponent; |
+ UnicodeString fPlus; |
+ UnicodeString fMinus; |
+ UnicodeString fPadEscape; |
+}; |
+ |
+U_NAMESPACE_END |
+ |
+#endif /* !UCONFIG_NO_FORMATTING */ |
+#endif |