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 Wed Jul 28 09:15:54 2004 for ICU 2.8 by doxygen 1.3.7