1/*
2 * Copyright 2006-2008, Haiku. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef _ICON_UTILS_H
6#define _ICON_UTILS_H
7
8
9#include <Mime.h>
10
11class BBitmap;
12class BNode;
13
14
15class BIconUtils {
16								BIconUtils();
17								~BIconUtils();
18								BIconUtils(const BIconUtils&);
19			BIconUtils&			operator=(const BIconUtils&);
20
21public:
22	static	status_t			GetIcon(BNode* node,
23									const char* vectorIconAttrName,
24									const char* smallIconAttrName,
25									const char* largeIconAttrName,
26									icon_size size, BBitmap* result);
27
28	static	status_t			GetVectorIcon(BNode* node,
29									const char* attrName, BBitmap* result);
30
31	static	status_t			GetVectorIcon(const uint8* buffer,
32									size_t size, BBitmap* result);
33
34	static	status_t			GetCMAP8Icon(BNode* node,
35									const char* smallIconAttrName,
36									const char* largeIconAttrName,
37									icon_size size, BBitmap* icon);
38
39	static	status_t			ConvertFromCMAP8(BBitmap* source,
40									BBitmap* result);
41	static	status_t			ConvertToCMAP8(BBitmap* source,
42									BBitmap* result);
43
44	static	status_t			ConvertFromCMAP8(const uint8* data,
45									uint32 width, uint32 height,
46									uint32 bytesPerRow, BBitmap* result);
47
48	static	status_t			ConvertToCMAP8(const uint8* data,
49									uint32 width, uint32 height,
50									uint32 bytesPerRow, BBitmap* result);
51};
52
53#endif	// _ICON_UTILS_H
54