xref: /haiku/headers/os/locale/LocaleRoster.h (revision b6b0567fbd186f8ce8a0c90bdc7a7b5b4c649678)
1 #ifndef _LOCALE_ROSTER_H_
2 #define _LOCALE_ROSTER_H_
3 
4 #include <String.h>
5 
6 class BLanguage;
7 class BLocale;
8 class BCollator;
9 class BCountry;
10 class BCatalog;
11 class BCatalogAddOn;
12 
13 namespace BPrivate {
14 	class EditableCatalog;
15 };
16 
17 enum {
18 	B_LOCALE_CHANGED	= '_LCC',
19 };
20 
21 class BLocaleRoster {
22 
23 	public:
24 		BLocaleRoster();
25 		~BLocaleRoster();
26 
27 //		status_t GetCatalog(BLocale *,const char *mimeType, BCatalog *catalog);
28 //		status_t GetCatalog(const char *mimeType, BCatalog *catalog);
29 //		status_t SetCatalog(BLocale *,const char *mimeType, BCatalog *catalog);
30 
31 //		status_t GetLocaleFor(const char *langCode,const char *countryCode);
32 
33 		status_t GetDefaultCollator(BCollator **) const;
34 		status_t GetDefaultLanguage(BLanguage **) const;
35 		status_t GetDefaultCountry(BCountry **) const;
36 
37 		status_t GetPreferredLanguages(BMessage *) const;
38 		status_t SetPreferredLanguages(BMessage *);
39 			// the message contains one or more 'language'-string-fields
40 			// which contain the language-name(s)
41 
42 		status_t GetInstalledLanguages(BMessage *) const;
43 			// the message contains one or more 'language'-string-fields
44 			// which contain the language-name(s)
45 
46 		status_t GetInstalledCatalogs(BMessage *,
47 					const char* sigPattern = NULL,
48 					const char* langPattern = NULL,
49 					int32 fingerprint = 0) const;
50 			// the message contains...
51 
52 //		status_t GetDefaultLanguage(BLanguage *);
53 //		status_t SetDefaultLanguage(BLanguage *);
54 
55 		static const char *kCatLangAttr;
56 		static const char *kCatSigAttr;
57 		static const char *kCatFingerprintAttr;
58 		//
59 		static const char *kCatManagerMimeType;
60 		static const char *kCatEditorMimeType;
61 		//
62 		static const char *kEmbeddedCatAttr;
63 		static int32 kEmbeddedCatResId;
64 
65 	private:
66 
67 		BCatalogAddOn* LoadCatalog(const char *signature,
68 							const char *language = NULL,
69 							int32 fingerprint = 0);
70 		BCatalogAddOn* LoadEmbeddedCatalog(entry_ref *appOrAddOnRef);
71 		status_t UnloadCatalog(BCatalogAddOn *addOn);
72 		//
73 		BCatalogAddOn* CreateCatalog(const char *type,
74 							const char *signature,
75 							const char *language);
76 
77 		friend class BCatalog;
78 		friend class BPrivate::EditableCatalog;
79 		friend status_t get_add_on_catalog(BCatalog*, const char *);
80 };
81 
82 #endif	/* _LOCALE_ROSTER_H_ */
83