diff --git a/headers/os/locale/Country.h b/headers/os/locale/Country.h index 597c72c1bb..ec34e4f667 100644 --- a/headers/os/locale/Country.h +++ b/headers/os/locale/Country.h @@ -6,6 +6,9 @@ #include #include + +class BBitmap; + namespace icu_4_2 { class DateFormat; class Locale; @@ -21,13 +24,13 @@ class BCountry { public: BCountry(const char* languageCode, const char* countryCode); BCountry(const char* languageAndCountryCode = "en_US"); - virtual ~BCountry(); + virtual ~BCountry(); - virtual bool Name(BString&) const; - const char* Code() const; + virtual bool Name(BString&) const; + const char* Code() const; + status_t GetIcon(BBitmap* result); - // see definitions below - const char *GetString(uint32 id) const; + const char* GetString(uint32 id) const; // date & time diff --git a/src/kits/locale/Country.cpp b/src/kits/locale/Country.cpp index 46f2dcca47..2a119eda7e 100644 --- a/src/kits/locale/Country.cpp +++ b/src/kits/locale/Country.cpp @@ -9,6 +9,7 @@ #include +#include #include #include @@ -86,6 +87,17 @@ BCountry::Code() const } +status_t +BCountry::GetIcon(BBitmap* result) +{ + // TODO: a proper way to locate the library being used ? + BNode storage("/boot/system/lib/liblocale.so"); + if (storage.InitCheck() != B_OK) + return B_ERROR; + return BIconUtils::GetVectorIcon(&storage, Code(), result); +} + + // TODO use ICU backend keywords instead const char* BCountry::GetString(uint32 id) const diff --git a/src/kits/locale/Jamfile b/src/kits/locale/Jamfile index 4cbf4933b0..c7c8b3a703 100644 --- a/src/kits/locale/Jamfile +++ b/src/kits/locale/Jamfile @@ -1,8 +1,8 @@ SubDir HAIKU_TOP src kits locale ; UsePrivateHeaders libbe locale shared ; -UsePublicHeaders locale storage ; -UseLibraryHeaders icu ; +UsePublicHeaders locale storage icon ; +UseLibraryHeaders icu icon ; SharedLibrary liblocale.so : cat.cpp