1132718Skan/*
2169689Skan * Copyright 2002-2010 Haiku, Inc. All rights reserved.
3132718Skan * Distributed under the terms of the MIT License.
418334Speter */
590075Sobrien#ifndef _NODE_INFO_H
618334Speter#define _NODE_INFO_H
790075Sobrien
890075Sobrien
990075Sobrien#include <BeBuild.h>
1090075Sobrien#include <Entry.h>
1118334Speter#include <File.h>
1290075Sobrien#include <Message.h>
1390075Sobrien#include <Mime.h>
1490075Sobrien#include <SupportDefs.h>
1590075Sobrien
1618334Speter
1718334Speterclass BBitmap;
1890075Sobrienclass BResources;
19169689Skan
20169689Skan
2118334Speterclass BNodeInfo {
2252284Sobrienpublic:
2352284Sobrien								BNodeInfo();
24169689Skan								BNodeInfo(BNode* node);
25169689Skan	virtual						~BNodeInfo();
2690075Sobrien
2790075Sobrien			status_t			SetTo(BNode* node);
28132718Skan
2990075Sobrien			status_t			InitCheck() const;
30169689Skan
31132718Skan	virtual status_t			GetType(char* type) const;
3218334Speter	virtual status_t			SetType(const char* type);
3390075Sobrien	virtual status_t			GetIcon(BBitmap* icon,
3490075Sobrien									icon_size which = B_LARGE_ICON) const;
3590075Sobrien	virtual status_t			SetIcon(const BBitmap* icon,
36132718Skan									icon_size which = B_LARGE_ICON);
3790075Sobrien			status_t			GetIcon(uint8** data, size_t* size,
38									type_code* type) const;
39			status_t			SetIcon(const uint8* data, size_t size);
40
41			status_t			GetPreferredApp(char* signature,
42									app_verb verb = B_OPEN) const;
43			status_t			SetPreferredApp(const char* signature,
44									app_verb verb = B_OPEN);
45			status_t			GetAppHint(entry_ref* ref) const;
46			status_t			SetAppHint(const entry_ref* ref);
47
48			status_t			GetTrackerIcon(BBitmap* icon,
49									icon_size which = B_LARGE_ICON) const;
50	static	status_t			GetTrackerIcon(const entry_ref* ref,
51									BBitmap* icon,
52									icon_size which = B_LARGE_ICON);
53private:
54			friend class BAppFileInfo;
55
56	virtual void				_ReservedNodeInfo1();
57	virtual void				_ReservedNodeInfo2();
58	virtual void				_ReservedNodeInfo3();
59
60								BNodeInfo &operator=(const BNodeInfo& other);
61								BNodeInfo(const BNodeInfo& other);
62									// not implemented
63
64private:
65			BNode*				fNode;
66			uint32				_reserved[2];
67			status_t			fCStatus;
68};
69
70
71#endif // _NODE_INFO_H
72