// --------------------------------------------------------------- // GetBitmap // // Returns a BBitmap object for the bitmap resource identified by // the type type with the resource id, id. // The user has to delete this object. // // Preconditions: // // Parameters: type, the type of resource to be loaded // id, the id for the resource to be loaded // roster, BTranslatorRoster used to do the translation // // Postconditions: // // Returns: NULL, if the resource couldn't be loaded or couldn't // be translated to a BBitmap // BBitmap * to the bitmap identified by type and id // --------------------------------------------------------------- BBitmap * BTranslationUtils::GetBitmap(uint32 type, int32 id, BTranslatorRoster *roster) { BResources *pResources = BApplication::AppResources(); // Remember: pResources must not be freed because // it belongs to the application if (pResources == NULL || pResources->HasResource(type, id) == false) return NULL; // Load the bitmap resource from the application file // pRawData should be NULL if the resource is an // unknown type or not available size_t bitmapSize = 0; const void *kpRawData = pResources->LoadResource(type, id, &bitmapSize); if (kpRawData == NULL || bitmapSize == 0) return NULL; BMemoryIO memio(kpRawData, bitmapSize); // Put the pointer to the raw image data into a BMemoryIO object // so that it can be used with BTranslatorRoster->Translate() in // the GetBitmap(BPositionIO *, BTranslatorRoster *) function return GetBitmap(&memio, roster); // Translate the data in memio using the BTranslatorRoster roster }
BBitmap *getIconFromResources(const char *icon_resname) { BBitmap *bmp = NULL; BResources *res = be_app->AppResources(); if (res->HasResource('BBMP',icon_resname)) { printf("has resource bitmap [%s]\n",icon_resname); BMessage msg; size_t len; char *buf; buf = (char *)res->LoadResource('BBMP', icon_resname, &len); // printf("loaded,len=%i\n",len); msg.Unflatten(buf); bmp = new BBitmap(&msg); } return bmp; }
// --------------------------------------------------------------- // GetBitmap // // Returns a BBitmap object for the bitmap resource identified by // the type type with the resource name, kName. // The user has to delete this object. Note that a resource type // and name does not uniquely identify a resource in a file. // // Preconditions: // // Parameters: type, the type of resource to be loaded // kName, the name of the resource to be loaded // roster, BTranslatorRoster used to do the translation // // Postconditions: // // Returns: NULL, if the resource couldn't be loaded or couldn't // be translated to a BBitmap // BBitmap * to the bitmap identified by type and kName // --------------------------------------------------------------- BBitmap * BTranslationUtils::GetBitmap(uint32 type, const char *kName, BTranslatorRoster *roster) { BResources *pResources = BApplication::AppResources(); // Remember: pResources must not be freed because // it belongs to the application if (pResources == NULL || pResources->HasResource(type, kName) == false) return NULL; // Load the bitmap resource from the application file size_t bitmapSize = 0; const void *kpRawData = pResources->LoadResource(type, kName, &bitmapSize); if (kpRawData == NULL || bitmapSize == 0) return NULL; BMemoryIO memio(kpRawData, bitmapSize); // Put the pointer to the raw image data into a BMemoryIO object so // that it can be used with BTranslatorRoster->Translate() return GetBitmap(&memio, roster); // Translate the data in memio using the BTranslatorRoster roster }