Author: pulkomandy Date: 2011-08-09 21:31:46 +0200 (Tue, 09 Aug 2011) New Revision: 42606 Changeset: https://dev.haiku-os.org/changeset/42606 Added: haiku/trunk/docs/user/interface/IconUtils.dox Modified: haiku/trunk/headers/os/interface/IconUtils.h Log: * Add BIconUtils documentation to the Haiku Book * Remove comments from the header itself. Added: haiku/trunk/docs/user/interface/IconUtils.dox =================================================================== --- haiku/trunk/docs/user/interface/IconUtils.dox (rev 0) +++ haiku/trunk/docs/user/interface/IconUtils.dox 2011-08-09 19:31:46 UTC (rev 42606) @@ -0,0 +1,127 @@ +/* + * Copyright 2011, Haiku, Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + * + * Documentation by: + * Adrien Destugues <pulkomandy@xxxxxxxxxxxxxxxxx> + * Corresponds to: + * /trunk/headers/os/interface/IconUtils.h rev 42600 + * /trunk/src/kits/interface/IconUtils.cpp rev 42600 + */ + + +/*! +\file IconUtils.h +\brief Vector icon handling utility class +*/ + + +/*! \class BIconUtils + \ingroup interface + \ingroup libbe + \brief 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. +*/ + + +/*! \fn static status_t BIconUtils::GetIcon(BNode* node, + const char* vectorIconAttrName, const char* smallIconAttrName, + const char* largeIconAttrName, icon_size size, BBitmap* result) + \brief 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"! +*/ + + +/*! \fn static status_t BIconUtils::GetVectorIcon(BNode* node, + const char* attrName, BBitmap* result) + \brief 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 \a 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 it's "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). +*/ + + +/*! \fn static status_t BIconUtils::GetVectorIcon(const uint8* buffer, + const char* attrName, BBitmap* result) + \brief 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 \a buffer into the preallocated BBitmap \a 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 it's "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). +*/ + + +/*! \fn static status_t BIconUtils::GetCMAP8Icon(BNode* node, + const char* smallIconAttrName, const char* largeIconAttrName, + icon_size size, BBitmap* icon) + \brief 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 + \a smallIconAttrName and \a largeIconAttrName. Which icon is loaded depends + on the given \a size. +*/ + + +/*! \fn static status_t BIconUtils::ConvertFromCMAP8(BBitmap* source, BBitmap* result) + \brief Converts an old-style icon to another colorspace. + + Utility function to convert from old icon colorspace into colorspace of + BBitmap \a result + + \note result should be in B_RGBA32 colorspace, and source in B_CMAP8. +*/ + + +/*! \fn static status_t BIconUtils::ConvertToCMAP8(BBitmap* source, BBitmap* result) + \brief Converts a true-color icon to CMAP8 colorspace. + + Utility function to convert data from source into \a 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. +*/ + +/*! \fn static status_t BIconUtil::ConvertFromCMAP8(const uint8* data, uint32 width, + uint32 height, uint32 bytesPerRow, BBitmap* result); + \brief Convert raw data in B_CMAP8 colorspace to a B_RGBA32 BBitmap. +*/ + +/*! \fn static status_t BIconUtils::ConvertToCMAP8(const uint8* data, uint32 width, + uint32 height, uint32 bytesPerRow, BBitmap* result); + \brief Convert B_RGBA32 raw data into a B_CMAP8 BBitmap. +*/ Modified: haiku/trunk/headers/os/interface/IconUtils.h =================================================================== --- haiku/trunk/headers/os/interface/IconUtils.h 2011-08-09 17:12:05 UTC (rev 42605) +++ haiku/trunk/headers/os/interface/IconUtils.h 2011-08-09 19:31:46 UTC (rev 42606) @@ -12,9 +12,6 @@ class BNode; -// This class is a little different from many other classes. -// You don't create an instance of it; you just call its various -// static member functions for utility-like operations. class BIconUtils { BIconUtils(); ~BIconUtils(); @@ -22,47 +19,23 @@ BIconUtils& operator=(const BIconUtils&); public: - - // 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. 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"! static status_t GetIcon(BNode* node, const char* vectorIconAttrName, const char* smallIconAttrName, const char* largeIconAttrName, icon_size size, BBitmap* result); - // Utility functions to import a vector icon in "flat icon" - // format from a BNode attribute or from a flat buffer in - // memory 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 it's "native" size of 64x64 to the - // size of the bitmap, 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). static status_t GetVectorIcon(BNode* node, const char* attrName, BBitmap* result); static status_t GetVectorIcon(const uint8* buffer, size_t size, BBitmap* result); - // 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". static status_t GetCMAP8Icon(BNode* node, const char* smallIconAttrName, const char* largeIconAttrName, icon_size size, BBitmap* icon); - // Utility functions to convert from old icon colorspace - // into colorspace of BBitmap "result" (should be B_RGBA32 - // to make any sense). static status_t ConvertFromCMAP8(BBitmap* source, BBitmap* result); static status_t ConvertToCMAP8(BBitmap* source,