xref: /haiku/headers/os/locale/Country.h (revision b6b0567fbd186f8ce8a0c90bdc7a7b5b4c649678)
1 #ifndef _COUNTRY_H_
2 #define _COUNTRY_H_
3 
4 
5 #include <SupportDefs.h>
6 #include <LocaleStrings.h>
7 #include <String.h>
8 
9 enum {
10 	B_METRIC = 0,
11 	B_US
12 };
13 
14 
15 class BCountry {
16 	public:
17 		BCountry();
18 		virtual ~BCountry();
19 
20 		virtual const char *Name() const;
21 
22 		// see definitions below
23 		const char *GetString(uint32 id) const;
24 
25 		// date & time
26 
27 		virtual void	FormatDate(char *string,size_t maxSize,time_t time,bool longFormat);
28 		virtual void	FormatDate(BString *string,time_t time,bool longFormat);
29 		virtual void	FormatTime(char *string,size_t maxSize,time_t time,bool longFormat);
30 		virtual void	FormatTime(BString *string,time_t time,bool longFormat);
31 
32 		const char		*DateFormat(bool longFormat) const;
33 		const char		*TimeFormat(bool longFormat) const;
34 		const char		*DateSeparator() const;
35 		const char		*TimeSeparator() const;
36 
37 		// numbers
38 
39 		virtual void	FormatNumber(char *string,size_t maxSize,double value);
40 		virtual void	FormatNumber(BString *string,double value);
41 		virtual void	FormatNumber(char *string,size_t maxSize,int32 value);
42 		virtual void	FormatNumber(BString *string,int32 value);
43 
44 		const char		*DecimalPoint() const;
45 		const char		*ThousandsSeparator() const;
46 		const char		*Grouping() const;
47 
48 		const char		*PositiveSign() const;
49 		const char		*NegativeSign() const;
50 
51 		// measurements
52 
53 		virtual int8	Measurement() const;
54 
55 		// monetary
56 
57 		virtual ssize_t	FormatMonetary(char *string,size_t maxSize,char *format, ...);
58 		virtual ssize_t	FormatMonetary(BString *string,char *format, ...);
59 
60 		const char		*CurrencySymbol() const;
61 		const char		*InternationalCurrencySymbol() const;
62 		const char		*MonDecimalPoint() const;
63 		const char		*MonThousandsSeparator() const;
64 		const char		*MonGrouping() const;
65 		virtual int32	MonFracDigits() const;
66 
67 	protected:
68 		BCountry(const char **strings);
69 
70 	private:
71 		const char	**fStrings;
72 };
73 
74 #endif	/* _COUNTRY_H_ */
75