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