xref: /haiku/src/libs/icon/transformer/Transformer.h (revision e1c4049fed1047bdb957b0529e1921e97ef94770)
1 /*
2  * Copyright 2006-2007, Haiku.
3  * Distributed under the terms of the MIT License.
4  *
5  * Authors:
6  *		Stephan Aßmus <superstippi@gmx.de>
7  */
8 #ifndef TRANSFORMER_H
9 #define TRANSFORMER_H
10 
11 
12 #ifdef ICON_O_MATIC
13 #	include "IconObject.h"
14 #else
15 #	include <Message.h>
16 #	include <SupportDefs.h>
17 #endif
18 
19 #include "IconBuild.h"
20 #include "VertexSource.h"
21 
22 
23 _BEGIN_ICON_NAMESPACE
24 
25 
26 /*! Base class for all transformers.
27 	All child classes should inherit either PathTransformer, StyleTransformer,
28 	or both.
29 */
30 #ifdef ICON_O_MATIC
31 class Transformer : public IconObject {
32 #else
33 	class Transformer {
34 #endif
35 public:
36 #ifdef ICON_O_MATIC
37 								Transformer(const char* name)
38 									: IconObject(name) {}
39 								Transformer(BMessage* archive)
40 									: IconObject(archive) {}
41 #else
42 								Transformer(const char* name) {}
43 								Transformer(BMessage* archive) {}
44 #endif
45 
46 	virtual						~Transformer() {}
47 
48 	virtual	Transformer*		Clone() const = 0;
49 };
50 
51 
52 _END_ICON_NAMESPACE
53 
54 
55 #endif	// TRANSFORMER_H
56