Main Page | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

unum.h

Go to the documentation of this file.
00001 /*
00002 *******************************************************************************
00003 * Copyright (C) 1997-2003, International Business Machines Corporation and others. All Rights Reserved.
00004 * Modification History:
00005 *
00006 *   Date        Name        Description
00007 *   06/24/99    helena      Integrated Alan's NF enhancements and Java2 bug fixes
00008 *******************************************************************************
00009 */
00010 
00011 #ifndef _UNUM
00012 #define _UNUM
00013 
00014 #include "unicode/utypes.h"
00015 
00016 #if !UCONFIG_NO_FORMATTING
00017 
00018 #include "unicode/uloc.h"
00019 #include "unicode/umisc.h"
00020 #include "unicode/parseerr.h"
00124 typedef void* UNumberFormat;
00125 
00129 typedef enum UNumberFormatStyle {
00131     UNUM_IGNORE=0,
00133     UNUM_DECIMAL=1,
00135     UNUM_CURRENCY,
00137     UNUM_PERCENT,
00139     UNUM_SCIENTIFIC,
00141     UNUM_SPELLOUT,
00143     UNUM_DEFAULT = UNUM_DECIMAL
00144 } UNumberFormatStyle;
00145 
00149 typedef enum UNumberFormatRoundingMode {
00150     UNUM_ROUND_CEILING,
00151     UNUM_ROUND_FLOOR,
00152     UNUM_ROUND_DOWN,
00153     UNUM_ROUND_UP,
00154     UNUM_FOUND_HALFEVEN,
00155     UNUM_ROUND_HALFDOWN,
00156     UNUM_ROUND_HALFUP
00157 } UNumberFormatRoundingMode;
00158 
00162 typedef enum UNumberFormatPadPosition {
00163     UNUM_PAD_BEFORE_PREFIX,
00164     UNUM_PAD_AFTER_PREFIX,
00165     UNUM_PAD_BEFORE_SUFFIX,
00166     UNUM_PAD_AFTER_SUFFIX
00167 } UNumberFormatPadPosition;
00168 
00188 U_CAPI UNumberFormat* U_EXPORT2 
00189 unum_open(  UNumberFormatStyle    style,
00190             const    UChar*    pattern,
00191             int32_t            patternLength,
00192             const    char*     locale,
00193             UParseError*       parseErr,
00194             UErrorCode*        status);
00195 
00196 
00203 U_CAPI void U_EXPORT2 
00204 unum_close(UNumberFormat* fmt);
00205 
00214 U_CAPI UNumberFormat* U_EXPORT2 
00215 unum_clone(const UNumberFormat *fmt,
00216        UErrorCode *status);
00217 
00239 U_CAPI int32_t U_EXPORT2 
00240 unum_format(    const    UNumberFormat*    fmt,
00241         int32_t            number,
00242         UChar*            result,
00243         int32_t            resultLength,
00244         UFieldPosition    *pos,
00245         UErrorCode*        status);
00246 
00268 U_CAPI int32_t U_EXPORT2 
00269 unum_formatInt64(const UNumberFormat *fmt,
00270         int64_t         number,
00271         UChar*          result,
00272         int32_t         resultLength,
00273         UFieldPosition *pos,
00274         UErrorCode*     status);
00275 
00297 U_CAPI int32_t U_EXPORT2 
00298 unum_formatDouble(    const    UNumberFormat*  fmt,
00299             double          number,
00300             UChar*          result,
00301             int32_t         resultLength,
00302             UFieldPosition  *pos, /* 0 if ignore */
00303             UErrorCode*     status);
00304 
00322 U_CAPI int32_t U_EXPORT2 
00323 unum_parse(    const   UNumberFormat*  fmt,
00324         const   UChar*          text,
00325         int32_t         textLength,
00326         int32_t         *parsePos /* 0 = start */,
00327         UErrorCode      *status);
00328 
00346 U_CAPI int64_t U_EXPORT2 
00347 unum_parseInt64(const UNumberFormat*  fmt,
00348         const UChar*  text,
00349         int32_t       textLength,
00350         int32_t       *parsePos /* 0 = start */,
00351         UErrorCode    *status);
00352 
00370 U_CAPI double U_EXPORT2 
00371 unum_parseDouble(    const   UNumberFormat*  fmt,
00372             const   UChar*          text,
00373             int32_t         textLength,
00374             int32_t         *parsePos /* 0 = start */,
00375             UErrorCode      *status);
00376 
00390 U_CAPI void U_EXPORT2 
00391 unum_applyPattern(          UNumberFormat  *format,
00392                             UBool          localized,
00393                     const   UChar          *pattern,
00394                             int32_t         patternLength,
00395                             UParseError    *parseError,
00396                             UErrorCode     *status
00397                                     );
00398 
00408 U_CAPI const char* U_EXPORT2 
00409 unum_getAvailable(int32_t index);
00410 
00419 U_CAPI int32_t U_EXPORT2 
00420 unum_countAvailable(void);
00421 
00423 typedef enum UNumberFormatAttribute {
00425   UNUM_PARSE_INT_ONLY,
00427   UNUM_GROUPING_USED,
00429   UNUM_DECIMAL_ALWAYS_SHOWN,
00431   UNUM_MAX_INTEGER_DIGITS,
00433   UNUM_MIN_INTEGER_DIGITS,
00435   UNUM_INTEGER_DIGITS,
00437   UNUM_MAX_FRACTION_DIGITS,
00439   UNUM_MIN_FRACTION_DIGITS,
00441   UNUM_FRACTION_DIGITS,
00443   UNUM_MULTIPLIER,
00445   UNUM_GROUPING_SIZE,
00447   UNUM_ROUNDING_MODE,
00449   UNUM_ROUNDING_INCREMENT,
00451   UNUM_FORMAT_WIDTH,
00453   UNUM_PADDING_POSITION,
00455   UNUM_SECONDARY_GROUPING_SIZE
00456 } UNumberFormatAttribute;
00457 
00474 U_CAPI int32_t U_EXPORT2 
00475 unum_getAttribute(const UNumberFormat*          fmt,
00476           UNumberFormatAttribute  attr);
00477 
00494 U_CAPI void U_EXPORT2 
00495 unum_setAttribute(    UNumberFormat*          fmt,
00496             UNumberFormatAttribute  attr,
00497             int32_t                 newValue);
00498 
00499 
00513 U_CAPI double U_EXPORT2 
00514 unum_getDoubleAttribute(const UNumberFormat*          fmt,
00515           UNumberFormatAttribute  attr);
00516 
00530 U_CAPI void U_EXPORT2 
00531 unum_setDoubleAttribute(    UNumberFormat*          fmt,
00532             UNumberFormatAttribute  attr,
00533             double                 newValue);
00534 
00536 typedef enum UNumberFormatTextAttribute {
00538   UNUM_POSITIVE_PREFIX,
00540   UNUM_POSITIVE_SUFFIX,
00542   UNUM_NEGATIVE_PREFIX,
00544   UNUM_NEGATIVE_SUFFIX,
00546   UNUM_PADDING_CHARACTER,
00548   UNUM_CURRENCY_CODE
00549 } UNumberFormatTextAttribute;
00550 
00566 U_CAPI int32_t U_EXPORT2 
00567 unum_getTextAttribute(    const    UNumberFormat*                    fmt,
00568             UNumberFormatTextAttribute      tag,
00569             UChar*                            result,
00570             int32_t                            resultLength,
00571             UErrorCode*                        status);
00572 
00587 U_CAPI void U_EXPORT2 
00588 unum_setTextAttribute(    UNumberFormat*                    fmt,
00589             UNumberFormatTextAttribute      tag,
00590             const    UChar*                            newValue,
00591             int32_t                            newValueLength,
00592             UErrorCode                        *status);
00593 
00605 U_CAPI int32_t U_EXPORT2 
00606 unum_toPattern(    const    UNumberFormat*          fmt,
00607         UBool                  isPatternLocalized,
00608         UChar*                  result,
00609         int32_t                 resultLength,
00610         UErrorCode*             status);
00611 
00613 #define UNFSYMBOLSMAXSIZE 10
00614 
00619 typedef enum UNumberFormatSymbol {
00621   UNUM_DECIMAL_SEPARATOR_SYMBOL,
00623   UNUM_GROUPING_SEPARATOR_SYMBOL,
00625   UNUM_PATTERN_SEPARATOR_SYMBOL,
00627   UNUM_PERCENT_SYMBOL,
00629   UNUM_ZERO_DIGIT_SYMBOL,
00631   UNUM_DIGIT_SYMBOL,
00633   UNUM_MINUS_SIGN_SYMBOL,
00635   UNUM_PLUS_SIGN_SYMBOL,
00637   UNUM_CURRENCY_SYMBOL,
00639   UNUM_INTL_CURRENCY_SYMBOL,
00641   UNUM_MONETARY_SEPARATOR_SYMBOL,
00643   UNUM_EXPONENTIAL_SYMBOL,
00645   UNUM_PERMILL_SYMBOL,
00647   UNUM_PAD_ESCAPE_SYMBOL,
00649   UNUM_INFINITY_SYMBOL,
00651   UNUM_NAN_SYMBOL,
00653   UNUM_FORMAT_SYMBOL_COUNT
00654 } UNumberFormatSymbol;
00655 
00671 U_CAPI int32_t U_EXPORT2
00672 unum_getSymbol(UNumberFormat *fmt,
00673                UNumberFormatSymbol symbol,
00674                UChar *buffer,
00675                int32_t size,
00676                UErrorCode *status);
00677 
00690 U_CAPI void U_EXPORT2
00691 unum_setSymbol(UNumberFormat *fmt,
00692                UNumberFormatSymbol symbol,
00693                const UChar *value,
00694                int32_t length,
00695                UErrorCode *status);
00696 
00697 
00707 U_CAPI const char* U_EXPORT2
00708 unum_getLocaleByType(const UNumberFormat *fmt,
00709                      ULocDataLocaleType type,
00710                      UErrorCode* status); 
00711 
00712 #endif /* #if !UCONFIG_NO_FORMATTING */
00713 
00714 #endif

Generated on Tue Oct 26 18:11:09 2004 for ICU 2.8 by  doxygen 1.3.9.1