xref: /haiku/src/apps/icon-o-matic/import_export/message/MessageExporter.h (revision 6427935280aaac0a1a4557bae55184708819560d)
1 /*
2  * Copyright 2006-2007, Haiku. All rights reserved.
3  * Distributed under the terms of the MIT License.
4  *
5  * Authors:
6  *		Stephan Aßmus <superstippi@gmx.de>
7  */
8 #ifndef MESSAGE_EXPORTER_H
9 #define MESSAGE_EXPORTER_H
10 
11 
12 #include "Exporter.h"
13 
14 class BMessage;
15 class BPositionIO;
16 
17 _BEGIN_ICON_NAMESPACE
18 	template <class Type> class Container;
19 	class Icon;
20 	class Shape;
21 	class Style;
22 	class Transformer;
23 	class VectorPath;
24 _END_ICON_NAMESPACE
25 
26 /** Exporter for the native Icon-O-Matic save format. */
27 class MessageExporter : public Exporter {
28  public:
29 								MessageExporter();
30 	virtual						~MessageExporter();
31 
32 	virtual	status_t			Export(const Icon* icon,
33 									   BPositionIO* stream);
34 
35 	virtual	const char*			MIMEType();
36 
37  private:
38 			status_t			_Export(const VectorPath* path,
39 										BMessage* into) const;
40 			status_t			_Export(const Style* style,
41 										BMessage* into) const;
42 			status_t			_Export(const Shape* shape,
43 										const Container<VectorPath>* globalPaths,
44 										const Container<Style>* globalStyles,
45 										BMessage* into) const;
46 };
47 
48 #endif // MESSAGE_EXPORTER_H
49