xref: /haiku/headers/os/locale/Country.h (revision e5fb17f0ca5ed15bdf9f55021dc5f17f490ea46f)
138ac8defSOliver Tappe /*
270cdd7d4SAdrien Destugues  * Copyright 2003-2019, Haiku, Inc.
338ac8defSOliver Tappe  * Distributed under the terms of the MIT Licence.
438ac8defSOliver Tappe  */
5c3ac87e8SOliver Tappe #ifndef _COUNTRY_H_
6c3ac87e8SOliver Tappe #define _COUNTRY_H_
7c3ac87e8SOliver Tappe 
8c3ac87e8SOliver Tappe 
9282582c0SAdrien Destugues #include <List.h>
10c3ac87e8SOliver Tappe #include <LocaleStrings.h>
11c3ac87e8SOliver Tappe #include <String.h>
12282582c0SAdrien Destugues #include <SupportDefs.h>
13c3ac87e8SOliver Tappe 
1487158047SAdrien Destugues 
1587158047SAdrien Destugues class BBitmap;
16d1d8fda6SOliver Tappe class BLanguage;
17a03aca6eSAdrien Destugues class BMessage;
1887158047SAdrien Destugues 
1973de5837SJérôme Duval #ifndef U_ICU_NAMESPACE
2073de5837SJérôme Duval   #define U_ICU_NAMESPACE icu
2173de5837SJérôme Duval #endif
2273de5837SJérôme Duval namespace U_ICU_NAMESPACE {
2375f15221SOliver Tappe 	class DateFormat;
24b2543193SAdrien Destugues 	class Locale;
2575f15221SOliver Tappe }
2675f15221SOliver Tappe 
275098ba1bSAdrien Destugues 
28723383c0SOliver Tappe class BCountry {
29c3ac87e8SOliver Tappe public:
306fd2f4a0SOliver Tappe 								BCountry(const char* countryCode = NULL);
3182a115e8SAdrien Destugues 								BCountry(const BCountry& other);
3282a115e8SAdrien Destugues 								BCountry& operator=(const BCountry& other);
3338ac8defSOliver Tappe 								~BCountry();
34c3ac87e8SOliver Tappe 
3570cdd7d4SAdrien Destugues 			status_t			SetTo(const char* countryCode);
3670cdd7d4SAdrien Destugues 			status_t			InitCheck() const;
3770cdd7d4SAdrien Destugues 
38d1d8fda6SOliver Tappe 			status_t			GetNativeName(BString& name) const;
39d1d8fda6SOliver Tappe 			status_t			GetName(BString& name,
40d1d8fda6SOliver Tappe 									const BLanguage* displayLanguage = NULL
41d1d8fda6SOliver Tappe 									) const;
42*e5fb17f0SAdrien Destugues 			status_t			GetPreferredLanguage(BLanguage&) const;
43d1d8fda6SOliver Tappe 
4475f15221SOliver Tappe 			const char*			Code() const;
456fd2f4a0SOliver Tappe 									// ISO-3166
4638ac8defSOliver Tappe 			status_t			GetIcon(BBitmap* result) const;
47c3ac87e8SOliver Tappe 
4881fe5a92SOliver Tappe 			status_t			GetAvailableTimeZones(
4981fe5a92SOliver Tappe 									BMessage* timeZones) const;
50c3ac87e8SOliver Tappe 
51d1d8fda6SOliver Tappe 			class Private;
52c3ac87e8SOliver Tappe private:
53d1d8fda6SOliver Tappe 	friend	class Private;
54d1d8fda6SOliver Tappe 
5573de5837SJérôme Duval 			U_ICU_NAMESPACE::Locale*		fICULocale;
56c3ac87e8SOliver Tappe };
57c3ac87e8SOliver Tappe 
5838ac8defSOliver Tappe 
59c3ac87e8SOliver Tappe #endif	/* _COUNTRY_H_ */
60