Static Public Member Functions | List of all members
BIconUtils Class Reference

The BIconUtils class provide utility methods for managing and drawing vector icons. More...

Static Public Member Functions

static status_t ConvertFromCMAP8 (BBitmap *source, BBitmap *result)
 Converts an old-style icon to another colorspace. More...
 
static status_t ConvertFromCMAP8 (const uint8 *data, uint32 width, uint32 height, uint32 bytesPerRow, BBitmap *result)
 Convert raw data in B_CMAP8 colorspace to a B_RGBA32 BBitmap. More...
 
static status_t ConvertToCMAP8 (BBitmap *source, BBitmap *result)
 Converts a true-color icon to CMAP8 colorspace. More...
 
static status_t ConvertToCMAP8 (const uint8 *data, uint32 width, uint32 height, uint32 bytesPerRow, BBitmap *result)
 Convert B_RGBA32 raw data into a B_CMAP8 BBitmap. More...
 
static status_t GetCMAP8Icon (BNode *node, const char *smallIconAttrName, const char *largeIconAttrName, icon_size size, BBitmap *icon)
 Utility function to import an "old" BeOS icon in B_CMAP8 colorspace. More...
 
static status_t GetIcon (BNode *node, const char *vectorIconAttrName, const char *smallIconAttrName, const char *largeIconAttrName, icon_size size, BBitmap *result)
 Utility function to import an icon from a node. More...
 
static status_t GetVectorIcon (BNode *node, const char *attrName, BBitmap *result)
 Utility function to import a vector icon in "flat icon" format. More...
 
static status_t GetVectorIcon (const uint8 *buffer, size_t size, BBitmap *result)
 Utility function to import a vector icon in "flat icon" format. More...
 

Detailed Description

The BIconUtils class provide utility methods for managing and drawing vector icons.

Haiku icons are stored in the HVIF (Haiku Vector Icon Format). This format was designed specifically for this purpose, and allows the icon data to be small enough to fit in file's inodes. This way, the icon can be displayed like any other file attribute, without extra disk access.

This class provide only static methods to allow access to the icon data and rendering to BBitmaps for later use in an application. It also supports older icons in bitmap format. These may still be useful at very small sizes. Note you can't create an instance of BIconUtils, just call the static methods.

Since
Haiku R1

Member Function Documentation

◆ ConvertFromCMAP8() [1/2]

static status_t BIconUtils::ConvertFromCMAP8 ( BBitmap source,
BBitmap result 
)
static

Converts an old-style icon to another colorspace.

Utility function to convert from old icon colorspace into colorspace of BBitmap result

Note
result should be in B_RGBA32 colorspace, and source in B_CMAP8.
Since
Haiku R1

◆ ConvertFromCMAP8() [2/2]

static status_t BIconUtils::ConvertFromCMAP8 ( const uint8 *  data,
uint32  width,
uint32  height,
uint32  bytesPerRow,
BBitmap result 
)
static

Convert raw data in B_CMAP8 colorspace to a B_RGBA32 BBitmap.

Since
Haiku R1

◆ ConvertToCMAP8() [1/2]

static status_t BIconUtils::ConvertToCMAP8 ( BBitmap source,
BBitmap result 
)
static

Converts a true-color icon to CMAP8 colorspace.

Utility function to convert data from source into result colorspace. Call this to convert a picture to a format suitable for storage as an old-style icon.

Note
result should be in B_CMAP8 colorspace, and source in B_RGBA32.
Since
Haiku R1

◆ ConvertToCMAP8() [2/2]

static status_t BIconUtils::ConvertToCMAP8 ( const uint8 *  data,
uint32  width,
uint32  height,
uint32  bytesPerRow,
BBitmap result 
)
static

Convert B_RGBA32 raw data into a B_CMAP8 BBitmap.

Since
Haiku R1

◆ GetCMAP8Icon()

static status_t BIconUtils::GetCMAP8Icon ( BNode node,
const char *  smallIconAttrName,
const char *  largeIconAttrName,
icon_size  size,
BBitmap icon 
)
static

Utility function to import an "old" BeOS icon in B_CMAP8 colorspace.

Utility function to import an "old" BeOS icon in B_CMAP8 colorspace from either the small icon attribute or the large icon attribute as given in smallIconAttrName and largeIconAttrName. Which icon is loaded depends on the given size.

Since
Haiku R1

◆ GetIcon()

static status_t BIconUtils::GetIcon ( BNode node,
const char *  vectorIconAttrName,
const char *  smallIconAttrName,
const char *  largeIconAttrName,
icon_size  size,
BBitmap result 
)
static

Utility function to import an icon from a node.

Utility function to import an icon from the node that has either of the provided attribute names. Which icon type is preferred (vector, small or large B_CMAP8 icon) depends on the colorspace of the provided bitmap.

Note
If the colorspace is B_CMAP8, B_CMAP8 icons are preferred. In that case, the bitmap size must also match the provided icon_size "size"!
Since
Haiku R1

◆ GetVectorIcon() [1/2]

static status_t BIconUtils::GetVectorIcon ( BNode node,
const char *  attrName,
BBitmap result 
)
static

Utility function to import a vector icon in "flat icon" format.

Utility function to import a vector icon in "flat icon" format from a BNode attribute into the preallocated BBitmap result. The colorspace of result needs to be B_RGBA32 or at least B_RGB32 (though that makes less sense). The icon will be scaled from its "native" size of 64x64 to the size of the bitmap.

Note
The scale is derived from the bitmap width, the bitmap should have square dimension, or the icon will be cut off at the bottom (or have room left).
Since
Haiku R1

◆ GetVectorIcon() [2/2]

static status_t BIconUtils::GetVectorIcon ( const uint8 *  buffer,
size_t  size,
BBitmap result 
)
static

Utility function to import a vector icon in "flat icon" format.

Utility function to import a vector icon in "flat icon" format from the given buffer into the preallocated BBitmap result. The colorspace of result needs to be B_RGBA32 or at least B_RGB32 (though that makes less sense). The icon will be scaled from its "native" size of 64x64 to the size of the bitmap.

Note
The scale is derived from the bitmap width, the bitmap should have square dimension, or the icon will be cut off at the bottom (or have room left).
Since
Haiku R1