GNUstep CoreBase Library 0.2
CFNumberFormatter.h
1/* CFNumberFormatter.h
2
3 Copyright (C) 2011 Free Software Foundation, Inc.
4
5 Written by: Stefan Bidigaray
6 Date: March, 2011
7
8 This file is part of the GNUstep CoreBase Library.
9
10 This library is free software; you can redistribute it and/or
11 modify it under the terms of the GNU Lesser General Public
12 License as published by the Free Software Foundation; either
13 version 2.1 of the License, or (at your option) any later version.
14
15 This library is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 Lesser General Public License for more details.
19
20 You should have received a copy of the GNU Lesser General Public
21 License along with this library; see the file COPYING.LIB.
22 If not, see <http://www.gnu.org/licenses/> or write to the
23 Free Software Foundation, 51 Franklin Street, Fifth Floor,
24 Boston, MA 02110-1301, USA.
25*/
26
27#ifndef __COREFOUNDATION_CFNUMBERFORMATTER__
28#define __COREFOUNDATION_CFNUMBERFORMATTER__ 1
29
30#include <CoreFoundation/CFBase.h>
31
32#include <CoreFoundation/CFLocale.h>
33#include <CoreFoundation/CFNumber.h>
34
35#if OS_API_VERSION(MAC_OS_X_VERSION_10_3, GS_API_LATEST)
36
37CF_EXTERN_C_BEGIN
38
48typedef struct __CFNumberFormatter *CFNumberFormatterRef;
49
50typedef CFOptionFlags CFNumberFormatterOptionFlags;
51enum
52{
53 kCFNumberFormatterParseIntegersOnly = 1
54};
55
56typedef CFIndex CFNumberFormatterPadPosition;
57enum
58{
59 kCFNumberFormatterPadBeforePrefix = 0,
60 kCFNumberFormatterPadAfterPrefix = 1,
61 kCFNumberFormatterPadBeforeSuffix = 2,
62 kCFNumberFormatterPadAfterSuffix = 3
63};
64
65typedef enum
66{
67 kCFNumberFormatterRoundCeiling = 0,
68 kCFNumberFormatterRoundFloor = 1,
69 kCFNumberFormatterRoundDown = 2,
70 kCFNumberFormatterRoundUp = 3,
71 kCFNumberFormatterRoundHalfEven = 4,
72 kCFNumberFormatterRoundHalfDown = 5,
73 kCFNumberFormatterRoundHalfUp = 6
74} CFNumberFormatterRoundingMode;
75
76typedef enum
77{
78 kCFNumberFormatterNoStyle = 0,
79 kCFNumberFormatterDecimalStyle = 1,
80 kCFNumberFormatterCurrencyStyle = 2,
81 kCFNumberFormatterPercentStyle = 3,
82 kCFNumberFormatterScientificStyle = 4,
83 kCFNumberFormatterSpellOutStyle = 5
84} CFNumberFormatterStyle;
85
86CF_EXPORT const CFStringRef kCFNumberFormatterCurrencyCode; /* CFString */
87CF_EXPORT const CFStringRef kCFNumberFormatterDecimalSeparator; /* CFString */
88CF_EXPORT const CFStringRef
89 kCFNumberFormatterCurrencyDecimalSeparator; /* CFString */
90CF_EXPORT const CFStringRef
91 kCFNumberFormatterAlwaysShowDecimalSeparator; /* CFBoolean */
92CF_EXPORT const CFStringRef kCFNumberFormatterGroupingSeparator; /* CFString */
93CF_EXPORT const CFStringRef
94 kCFNumberFormatterUseGroupingSeparator; /* CFBoolean */
95CF_EXPORT const CFStringRef kCFNumberFormatterPercentSymbol; /* CFString */
96CF_EXPORT const CFStringRef kCFNumberFormatterZeroSymbol; /* CFString */
97CF_EXPORT const CFStringRef kCFNumberFormatterNaNSymbol; /* CFString */
98CF_EXPORT const CFStringRef kCFNumberFormatterInfinitySymbol; /* CFString */
99CF_EXPORT const CFStringRef kCFNumberFormatterMinusSign; /* CFString */
100CF_EXPORT const CFStringRef kCFNumberFormatterPlusSign; /* CFString */
101CF_EXPORT const CFStringRef kCFNumberFormatterCurrencySymbol; /* CFString */
102CF_EXPORT const CFStringRef kCFNumberFormatterExponentSymbol; /* CFString */
103CF_EXPORT const CFStringRef kCFNumberFormatterMinIntegerDigits; /* CFNumber */
104CF_EXPORT const CFStringRef kCFNumberFormatterMaxIntegerDigits; /* CFNumber */
105CF_EXPORT const CFStringRef kCFNumberFormatterMinFractionDigits; /* CFNumber */
106CF_EXPORT const CFStringRef kCFNumberFormatterMaxFractionDigits; /* CFNumber */
107CF_EXPORT const CFStringRef kCFNumberFormatterGroupingSize; /* CFNumber */
108CF_EXPORT const CFStringRef
109 kCFNumberFormatterSecondaryGroupingSize; /* CFNumber */
110CF_EXPORT const CFStringRef kCFNumberFormatterRoundingMode; /* CFNumber */
111CF_EXPORT const CFStringRef kCFNumberFormatterRoundingIncrement; /* CFNumber */
112CF_EXPORT const CFStringRef kCFNumberFormatterFormatWidth; /* CFNumber */
113CF_EXPORT const CFStringRef kCFNumberFormatterPaddingPosition; /* CFNumber */
114CF_EXPORT const CFStringRef kCFNumberFormatterPaddingCharacter; /* CFString */
115CF_EXPORT const CFStringRef kCFNumberFormatterDefaultFormat; /* CFString */
116#if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST)
117CF_EXPORT const CFStringRef kCFNumberFormatterMultiplier; /* CFNumber */
118CF_EXPORT const CFStringRef kCFNumberFormatterPositivePrefix; /* CFString */
119CF_EXPORT const CFStringRef kCFNumberFormatterPositiveSuffix; /* CFString */
120CF_EXPORT const CFStringRef kCFNumberFormatterNegativePrefix; /* CFString */
121CF_EXPORT const CFStringRef kCFNumberFormatterNegativeSuffix; /* CFString */
122CF_EXPORT const CFStringRef kCFNumberFormatterPerMillSymbol; /* CFString */
123CF_EXPORT const CFStringRef
124 kCFNumberFormatterInternationalCurrencySymbol; /* CFString */
125#endif
126#if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST)
127CF_EXPORT const CFStringRef
128 kCFNumberFormatterCurrencyGroupingSeparator; /* CFString */
129CF_EXPORT const CFStringRef kCFNumberFormatterIsLenient; /* CFBoolean */
130CF_EXPORT const CFStringRef
131 kCFNumberFormatterUseSignificantDigits; /* CFBoolean */
132CF_EXPORT const CFStringRef
133 kCFNumberFormatterMinSignificantDigits; /* CFNumber */
134CF_EXPORT const CFStringRef
135 kCFNumberFormatterMaxSignificantDigits; /* CFNumber */
136#endif
137
138
139
140/*
141 * Creating a Number Formatter
142 */
143CF_EXPORT CFNumberFormatterRef
144CFNumberFormatterCreate (CFAllocatorRef allocator, CFLocaleRef locale,
145 CFNumberFormatterStyle style);
146
147/*
148 * Configuring a Number Formatter
149 */
150CF_EXPORT void
151CFNumberFormatterSetFormat (CFNumberFormatterRef formatter,
152 CFStringRef formatString);
153
154CF_EXPORT void
155CFNumberFormatterSetProperty (CFNumberFormatterRef formatter,
156 CFStringRef key, CFTypeRef value);
157
158/*
159 * Formatting Values
160 */
161CF_EXPORT CFNumberRef
162CFNumberFormatterCreateNumberFromString (CFAllocatorRef allocator,
163 CFNumberFormatterRef formatter, CFStringRef string, CFRange *rangep,
164 CFOptionFlags options);
165
166CF_EXPORT CFStringRef
167CFNumberFormatterCreateStringWithNumber (CFAllocatorRef allocator,
168 CFNumberFormatterRef formatter, CFNumberRef number);
169
170CF_EXPORT CFStringRef
171CFNumberFormatterCreateStringWithValue (CFAllocatorRef allocator,
172 CFNumberFormatterRef formatter, CFNumberType numberType,
173 const void *valuePtr);
174
175CF_EXPORT Boolean
176CFNumberFormatterGetDecimalInfoForCurrencyCode (CFStringRef currencyCode,
177 SInt32 *defaultFractionDigits, double *roundingIncrement);
178
179CF_EXPORT Boolean
180CFNumberFormatterGetValueFromString (CFNumberFormatterRef formatter,
181 CFStringRef string, CFRange *rangep, CFNumberType numberType, void *valuePtr);
182
183/*
184 * Examining a Number Formatter
185 */
186CF_EXPORT CFTypeRef
187CFNumberFormatterCopyProperty (CFNumberFormatterRef formatter,
188 CFStringRef key);
189
190CF_EXPORT CFStringRef
191CFNumberFormatterGetFormat (CFNumberFormatterRef formatter);
192
193CF_EXPORT CFLocaleRef
194CFNumberFormatterGetLocale (CFNumberFormatterRef formatter);
195
196CF_EXPORT CFNumberFormatterStyle
197CFNumberFormatterGetStyle (CFNumberFormatterRef formatter);
198
199/*
200 * Getting the CFNumberFormatter Type ID
201 */
202CF_EXPORT CFTypeID
203CFNumberFormatterGetTypeID (void);
204
207CF_EXTERN_C_END
208
209#endif /* MAC_OS_X_VERSION_10_3 */
210
211#endif /* __COREFOUNDATION_CFNUMBERFORMATTER__ */
212
unsigned long CFOptionFlags
Definition CFBase.h:163
signed long CFIndex
Definition CFBase.h:165
Definition CFBase.h:172
const struct __CFAllocator * CFAllocatorRef
A reference to a CFAllocator object.
Definition CFBase.h:301