xref: /haiku/headers/private/locale/MutableLocaleRoster.h (revision 41853a8bbf90c34c7a219e95c4e2d1ccd0c17baf)
138ac8defSOliver Tappe /*
2541ff51aSOliver Tappe  * Copyright 2010-2012, Haiku. All rights reserved.
338ac8defSOliver Tappe  * Distributed under the terms of the MIT license.
438ac8defSOliver Tappe  */
538ac8defSOliver Tappe #ifndef _MUTABLE_LOCALE_ROSTER_H_
638ac8defSOliver Tappe #define _MUTABLE_LOCALE_ROSTER_H_
738ac8defSOliver Tappe 
838ac8defSOliver Tappe 
938ac8defSOliver Tappe #include <Collator.h>
106fd2f4a0SOliver Tappe #include <FormattingConventions.h>
1138ac8defSOliver Tappe #include <image.h>
1238ac8defSOliver Tappe #include <Language.h>
1338ac8defSOliver Tappe #include <List.h>
145c3a3034SAdrien Destugues #include <Locale.h>
1538ac8defSOliver Tappe #include <Locker.h>
1638ac8defSOliver Tappe #include <LocaleRoster.h>
1738ac8defSOliver Tappe #include <Message.h>
18d1d8fda6SOliver Tappe #include <Resources.h>
1938ac8defSOliver Tappe #include <TimeZone.h>
2038ac8defSOliver Tappe 
2138ac8defSOliver Tappe 
2238ac8defSOliver Tappe class BLocale;
2338ac8defSOliver Tappe class BCatalog;
24541ff51aSOliver Tappe class BCatalogData;
2538ac8defSOliver Tappe 
2638ac8defSOliver Tappe struct entry_ref;
2738ac8defSOliver Tappe 
2838ac8defSOliver Tappe 
2938ac8defSOliver Tappe namespace BPrivate {
3038ac8defSOliver Tappe 
3138ac8defSOliver Tappe 
3238ac8defSOliver Tappe class MutableLocaleRoster : public BLocaleRoster {
3338ac8defSOliver Tappe public:
3438ac8defSOliver Tappe 								MutableLocaleRoster();
3538ac8defSOliver Tappe 								~MutableLocaleRoster();
3638ac8defSOliver Tappe 
3725dc253dSIngo Weinhold 	static	MutableLocaleRoster* Default();
3825dc253dSIngo Weinhold 
396fd2f4a0SOliver Tappe 			status_t			SetDefaultFormattingConventions(
406fd2f4a0SOliver Tappe 									const BFormattingConventions& conventions);
4138ac8defSOliver Tappe 			status_t			SetDefaultTimeZone(const BTimeZone& zone);
4238ac8defSOliver Tappe 
4338ac8defSOliver Tappe 			status_t			SetPreferredLanguages(const BMessage* message);
4438ac8defSOliver Tappe 									// the message contains one or more
4538ac8defSOliver Tappe 									// 'language'-string-fields which
4638ac8defSOliver Tappe 									// contain the language-name(s)
47541ff51aSOliver Tappe 			status_t			SetFilesystemTranslationPreferred(
48541ff51aSOliver Tappe 									bool preferred);
4938ac8defSOliver Tappe 
50eaa5e093SOliver Tappe 			status_t			LoadSystemCatalog(BCatalog* catalog) const;
5138ac8defSOliver Tappe 
52541ff51aSOliver Tappe 			BCatalogData*		LoadCatalog(const entry_ref& catalogOwner,
5338ac8defSOliver Tappe 									const char* language = NULL,
5438ac8defSOliver Tappe 									int32 fingerprint = 0) const;
55*41853a8bSAdrien Destugues 			BCatalogData*		LoadCatalog(const char* signature,
56*41853a8bSAdrien Destugues 									const char* language = NULL) const;
57541ff51aSOliver Tappe 			status_t			UnloadCatalog(BCatalogData* catalogData);
5838ac8defSOliver Tappe 
59541ff51aSOliver Tappe 			BCatalogData*		CreateCatalog(const char* type,
6038ac8defSOliver Tappe 									const char* signature,
6138ac8defSOliver Tappe 									const char* language);
6238ac8defSOliver Tappe };
6338ac8defSOliver Tappe 
6438ac8defSOliver Tappe 
6538ac8defSOliver Tappe }	// namespace BPrivate
6638ac8defSOliver Tappe 
6738ac8defSOliver Tappe 
6838ac8defSOliver Tappe #endif	// _MUTABLE_LOCALE_ROSTER_H_
69