1/*
2 * Copyright 2010-2012, Haiku. All rights reserved.
3 * Distributed under the terms of the MIT license.
4 */
5#ifndef _MUTABLE_LOCALE_ROSTER_H_
6#define _MUTABLE_LOCALE_ROSTER_H_
7
8
9#include <Collator.h>
10#include <FormattingConventions.h>
11#include <image.h>
12#include <Language.h>
13#include <List.h>
14#include <Locale.h>
15#include <Locker.h>
16#include <LocaleRoster.h>
17#include <Message.h>
18#include <Resources.h>
19#include <TimeZone.h>
20
21
22class BLocale;
23class BCatalog;
24class BCatalogData;
25
26struct entry_ref;
27
28
29namespace BPrivate {
30
31
32class MutableLocaleRoster : public BLocaleRoster {
33public:
34								MutableLocaleRoster();
35								~MutableLocaleRoster();
36
37	static	MutableLocaleRoster* Default();
38
39			status_t			SetDefaultFormattingConventions(
40									const BFormattingConventions& conventions);
41			status_t			SetDefaultTimeZone(const BTimeZone& zone);
42
43			status_t			SetPreferredLanguages(const BMessage* message);
44									// the message contains one or more
45									// 'language'-string-fields which
46									// contain the language-name(s)
47			status_t			SetFilesystemTranslationPreferred(
48									bool preferred);
49
50			status_t			LoadSystemCatalog(BCatalog* catalog) const;
51
52			BCatalogData*		LoadCatalog(const entry_ref& catalogOwner,
53									const char* language = NULL,
54									int32 fingerprint = 0) const;
55			BCatalogData*		LoadCatalog(const char* signature,
56									const char* language = NULL) const;
57			status_t			UnloadCatalog(BCatalogData* catalogData);
58
59			BCatalogData*		CreateCatalog(const char* type,
60									const char* signature,
61									const char* language);
62};
63
64
65}	// namespace BPrivate
66
67
68#endif	// _MUTABLE_LOCALE_ROSTER_H_
69