xref: /haiku/headers/os/interface/IconUtils.h (revision 4dbd474753bd0d7392dc9d6f350ff5b7ec9f43f2)
14153964aSStephan Aßmus /*
2*4dbd4747SPulkoMandy  * Copyright 2006-2023, Haiku. All rights reserved.
34153964aSStephan Aßmus  * Distributed under the terms of the MIT License.
44153964aSStephan Aßmus  */
54153964aSStephan Aßmus #ifndef _ICON_UTILS_H
64153964aSStephan Aßmus #define _ICON_UTILS_H
74153964aSStephan Aßmus 
84153964aSStephan Aßmus 
94153964aSStephan Aßmus #include <Mime.h>
104153964aSStephan Aßmus 
114153964aSStephan Aßmus class BBitmap;
124153964aSStephan Aßmus class BNode;
134153964aSStephan Aßmus 
144153964aSStephan Aßmus 
154153964aSStephan Aßmus class BIconUtils {
164153964aSStephan Aßmus 								BIconUtils();
174153964aSStephan Aßmus 								~BIconUtils();
184153964aSStephan Aßmus 								BIconUtils(const BIconUtils&);
194153964aSStephan Aßmus 			BIconUtils&			operator=(const BIconUtils&);
204153964aSStephan Aßmus 
214153964aSStephan Aßmus public:
224153964aSStephan Aßmus 	static	status_t			GetIcon(BNode* node,
234153964aSStephan Aßmus 									const char* vectorIconAttrName,
244153964aSStephan Aßmus 									const char* smallIconAttrName,
254153964aSStephan Aßmus 									const char* largeIconAttrName,
264153964aSStephan Aßmus 									icon_size size, BBitmap* result);
274153964aSStephan Aßmus 
284153964aSStephan Aßmus 	static	status_t			GetVectorIcon(BNode* node,
294153964aSStephan Aßmus 									const char* attrName, BBitmap* result);
304153964aSStephan Aßmus 
314153964aSStephan Aßmus 	static	status_t			GetVectorIcon(const uint8* buffer,
324153964aSStephan Aßmus 									size_t size, BBitmap* result);
334153964aSStephan Aßmus 
344153964aSStephan Aßmus 	static	status_t			GetCMAP8Icon(BNode* node,
354153964aSStephan Aßmus 									const char* smallIconAttrName,
364153964aSStephan Aßmus 									const char* largeIconAttrName,
374153964aSStephan Aßmus 									icon_size size, BBitmap* icon);
384153964aSStephan Aßmus 
39*4dbd4747SPulkoMandy 	static	status_t			GetSystemIcon(const char* iconName, BBitmap* result);
40*4dbd4747SPulkoMandy 
414153964aSStephan Aßmus 	static	status_t			ConvertFromCMAP8(BBitmap* source,
424153964aSStephan Aßmus 									BBitmap* result);
434153964aSStephan Aßmus 	static	status_t			ConvertToCMAP8(BBitmap* source,
444153964aSStephan Aßmus 									BBitmap* result);
454153964aSStephan Aßmus 
464153964aSStephan Aßmus 	static	status_t			ConvertFromCMAP8(const uint8* data,
474153964aSStephan Aßmus 									uint32 width, uint32 height,
484153964aSStephan Aßmus 									uint32 bytesPerRow, BBitmap* result);
494153964aSStephan Aßmus 
504153964aSStephan Aßmus 	static	status_t			ConvertToCMAP8(const uint8* data,
514153964aSStephan Aßmus 									uint32 width, uint32 height,
524153964aSStephan Aßmus 									uint32 bytesPerRow, BBitmap* result);
534153964aSStephan Aßmus };
544153964aSStephan Aßmus 
554153964aSStephan Aßmus #endif	// _ICON_UTILS_H
56