1/*
2 * Copyright 2006-2007, 2023, Haiku. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 *
5 * Authors:
6 *		Stephan A��mus <superstippi@gmx.de>
7 *		Zardshard
8 */
9#ifndef REFERENCE_IMAGE_H
10#define REFERENCE_IMAGE_H
11
12#ifdef ICON_O_MATIC
13
14#include "IconObject.h"
15#include "Observer.h"
16#include "IconBuild.h"
17#include "PathSource.h"
18#include "Shape.h"
19#include "Transformable.h"
20#include "VectorPath.h"
21
22#include <List.h>
23#include <Rect.h>
24
25
26_BEGIN_ICON_NAMESPACE
27
28
29class Style;
30
31class ReferenceImage : public _ICON_NAMESPACE Shape {
32 public:
33	enum {
34		archive_code = 'shri'
35	};
36
37								ReferenceImage(BBitmap* image);
38									// transfers ownership of image
39								ReferenceImage(const ReferenceImage& other);
40								ReferenceImage(BMessage* archive);
41	virtual						~ReferenceImage();
42
43	// IconObject interface
44	virtual	status_t			Unarchive(BMessage* archive);
45	virtual	status_t			Archive(BMessage* into,
46										bool deep = true) const;
47
48	virtual	PropertyObject*		MakePropertyObject() const;
49	virtual	bool				SetToPropertyObject(
50									const PropertyObject* object);
51	// Shape
52	virtual	status_t			InitCheck() const;
53	virtual Shape*				Clone() const
54									{ return new ReferenceImage(*this); }
55
56	virtual void				SetImage(BBitmap* image);
57									// transfers ownership of image
58
59	virtual bool				Visible(float scale) const
60									{ return true; }
61 private:
62			VectorPath*			fPath;
63};
64
65
66_END_ICON_NAMESPACE
67
68
69#endif  // ICON_O_MATIC
70#endif	// REFERENCE_IMAGE_H
71