** Distributed under the terms of the MIT License.
** Copyright 2003-2004,2012. All rights reserved.
**
** Authors: Axel DΓΆrfler, axeld@pinc-software.de
** Oliver Tappe, zooey@hirschkaefer.de
*/
#include <Catalog.h>
#include <CatalogData.h>
BCatalog::BCatalog()
:
fCatalogData(NULL)
{
}
BCatalog::BCatalog(const entry_ref& catalogOwner, const char *language,
uint32 fingerprint)
:
fCatalogData(NULL)
{
}
BCatalog::~BCatalog()
{
}
const char *
BCatalog::GetString(const char *string, const char *context, const char *comment)
{
if (fCatalogData == 0)
return string;
const char *translated;
for (BCatalogData* cat = fCatalogData; cat != NULL; cat = cat->fNext) {
translated = cat->GetString(string, context, comment);
if (translated)
return translated;
}
return string;
}
const char *
BCatalog::GetString(uint32 id)
{
if (fCatalogData == 0)
return "";
const char *translated;
for (BCatalogData* cat = fCatalogData; cat != NULL; cat = cat->fNext) {
translated = cat->GetString(id);
if (translated)
return translated;
}
return "";
}
status_t
BCatalog::GetData(const char *name, BMessage *msg)
{
if (fCatalogData == 0)
return B_NO_INIT;
status_t res;
for (BCatalogData* cat = fCatalogData; cat != NULL; cat = cat->fNext) {
res = cat->GetData(name, msg);
if (res != B_NAME_NOT_FOUND && res != EOPNOTSUPP)
return res;
}
return B_NAME_NOT_FOUND;
}
status_t
BCatalog::GetData(uint32 id, BMessage *msg)
{
if (fCatalogData == 0)
return B_NO_INIT;
status_t res;
for (BCatalogData* cat = fCatalogData; cat != NULL; cat = cat->fNext) {
res = cat->GetData(id, msg);
if (res != B_NAME_NOT_FOUND && res != EOPNOTSUPP)
return res;
}
return B_NAME_NOT_FOUND;
}