diff options
author | Peter Breitenlohner <peb@mppmu.mpg.de> | 2012-10-26 07:13:09 +0000 |
---|---|---|
committer | Peter Breitenlohner <peb@mppmu.mpg.de> | 2012-10-26 07:13:09 +0000 |
commit | 74cc05c672add53f566ac385f117008e8c4b3eda (patch) | |
tree | ce973a7d2e4814a20d52a55b1a2131d1515e9911 /Build/source/libs/icu/icu-50.1/i18n/winnmfmt.h | |
parent | 6439fb8917718c4d620170e1459a1d9e7ab3c441 (diff) |
icu 50.1 (50_rc)
git-svn-id: svn://tug.org/texlive/trunk@28087 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/icu/icu-50.1/i18n/winnmfmt.h')
-rw-r--r-- | Build/source/libs/icu/icu-50.1/i18n/winnmfmt.h | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/Build/source/libs/icu/icu-50.1/i18n/winnmfmt.h b/Build/source/libs/icu/icu-50.1/i18n/winnmfmt.h new file mode 100644 index 00000000000..e75adf9e7e3 --- /dev/null +++ b/Build/source/libs/icu/icu-50.1/i18n/winnmfmt.h @@ -0,0 +1,161 @@ +/* +******************************************************************************** +* Copyright (C) 2005-2011, International Business Machines +* Corporation and others. All Rights Reserved. +******************************************************************************** +* +* File WINNMFMT.H +* +******************************************************************************** +*/ + +#ifndef __WINNMFMT +#define __WINNMFMT + +#include "unicode/utypes.h" + +#if U_PLATFORM_USES_ONLY_WIN32_API + +#include "unicode/format.h" +#include "unicode/datefmt.h" +#include "unicode/calendar.h" +#include "unicode/ustring.h" +#include "unicode/locid.h" + +#if !UCONFIG_NO_FORMATTING + +/** + * \file + * \brief C++ API: Format numbers using Windows API. + */ + +U_NAMESPACE_BEGIN + +union FormatInfo; + +class Win32NumberFormat : public NumberFormat +{ +public: + Win32NumberFormat(const Locale &locale, UBool currency, UErrorCode &status); + + Win32NumberFormat(const Win32NumberFormat &other); + + virtual ~Win32NumberFormat(); + + virtual Format *clone(void) const; + + Win32NumberFormat &operator=(const Win32NumberFormat &other); + + /** + * Format a double number. Concrete subclasses must implement + * these pure virtual methods. + * + * @param number The value to be formatted. + * @param appendTo Output parameter to receive result. + * Result is appended to existing contents. + * @param pos On input: an alignment field, if desired. + * On output: the offsets of the alignment field. + * @return Reference to 'appendTo' parameter. + */ + virtual UnicodeString& format(double number, + UnicodeString& appendTo, + FieldPosition& pos) const; + /** + * Format a long number. Concrete subclasses must implement + * these pure virtual methods. + * + * @param number The value to be formatted. + * @param appendTo Output parameter to receive result. + * Result is appended to existing contents. + * @param pos On input: an alignment field, if desired. + * On output: the offsets of the alignment field. + * @return Reference to 'appendTo' parameter. + */ + virtual UnicodeString& format(int32_t number, + UnicodeString& appendTo, + FieldPosition& pos) const; + + /** + * Format an int64 number. + * + * @param number The value to be formatted. + * @param appendTo Output parameter to receive result. + * Result is appended to existing contents. + * @param pos On input: an alignment field, if desired. + * On output: the offsets of the alignment field. + * @return Reference to 'appendTo' parameter. + */ + virtual UnicodeString& format(int64_t number, + UnicodeString& appendTo, + FieldPosition& pos) const; + +// Use the default behavior for the following. +// virtual UnicodeString &format(double number, UnicodeString &appendTo) const; +// virtual UnicodeString &format(int32_t number, UnicodeString &appendTo) const; +// virtual UnicodeString &format(int64_t number, UnicodeString &appendTo) const; + + virtual void parse(const UnicodeString& text, Formattable& result, ParsePosition& parsePosition) const; + + /** + * Sets the maximum number of digits allowed in the fraction portion of a + * number. maximumFractionDigits must be >= minimumFractionDigits. If the + * new value for maximumFractionDigits is less than the current value + * of minimumFractionDigits, then minimumFractionDigits will also be set to + * the new value. + * @param newValue the new value to be set. + * @see getMaximumFractionDigits + */ + virtual void setMaximumFractionDigits(int32_t newValue); + + /** + * Sets the minimum number of digits allowed in the fraction portion of a + * number. minimumFractionDigits must be <= maximumFractionDigits. If the + * new value for minimumFractionDigits exceeds the current value + * of maximumFractionDigits, then maximumIntegerDigits will also be set to + * the new value + * @param newValue the new value to be set. + * @see getMinimumFractionDigits + */ + virtual void setMinimumFractionDigits(int32_t newValue); + + /** + * Return the class ID for this class. This is useful only for comparing to + * a return value from getDynamicClassID(). For example: + * <pre> + * . Base* polymorphic_pointer = createPolymorphicObject(); + * . if (polymorphic_pointer->getDynamicClassID() == + * . erived::getStaticClassID()) ... + * </pre> + * @return The class ID for all objects of this class. + */ + U_I18N_API static UClassID U_EXPORT2 getStaticClassID(void); + + /** + * Returns a unique class ID POLYMORPHICALLY. Pure virtual override. This + * method is to implement a simple version of RTTI, since not all C++ + * compilers support genuine RTTI. Polymorphic operator==() and clone() + * methods call this method. + * + * @return The class ID for this object. All objects of a + * given class have the same class ID. Objects of + * other classes have different class IDs. + */ + virtual UClassID getDynamicClassID(void) const; + +private: + UnicodeString &format(int32_t numDigits, UnicodeString &appendTo, wchar_t *format, ...) const; + + UBool fCurrency; + int32_t fLCID; + FormatInfo *fFormatInfo; + UBool fFractionDigitsSet; + +}; + +U_NAMESPACE_END + +#endif /* #if !UCONFIG_NO_FORMATTING */ + +#endif // U_PLATFORM_USES_ONLY_WIN32_API + +#endif // __WINNMFMT |