xref: /haiku/src/libs/icon/transformer/TransformerFactory.h (revision 25dc253d6ab28ce204fa4de2d3e7a27d167fc817)
1fb07ece0SStephan Aßmus /*
2325a6253SAxel Dörfler  * Copyright 2006-2007, Haiku.
3fb07ece0SStephan Aßmus  * Distributed under the terms of the MIT License.
4fb07ece0SStephan Aßmus  *
5fb07ece0SStephan Aßmus  * Authors:
6fb07ece0SStephan Aßmus  *		Stephan Aßmus <superstippi@gmx.de>
7fb07ece0SStephan Aßmus  */
8fb07ece0SStephan Aßmus #ifndef TRANSFORMER_FACTORY_H
9fb07ece0SStephan Aßmus #define TRANSFORMER_FACTORY_H
10fb07ece0SStephan Aßmus 
11325a6253SAxel Dörfler 
12fb07ece0SStephan Aßmus #include <String.h>
13fb07ece0SStephan Aßmus 
14*25dc253dSIngo Weinhold #include "IconBuild.h"
15*25dc253dSIngo Weinhold 
16*25dc253dSIngo Weinhold 
17fb07ece0SStephan Aßmus class BMessage;
18325a6253SAxel Dörfler 
19325a6253SAxel Dörfler 
20*25dc253dSIngo Weinhold _BEGIN_ICON_NAMESPACE
21*25dc253dSIngo Weinhold 
22325a6253SAxel Dörfler 
23fb07ece0SStephan Aßmus class Transformer;
24fb07ece0SStephan Aßmus class VertexSource;
25fb07ece0SStephan Aßmus 
26fb07ece0SStephan Aßmus class TransformerFactory {
27fb07ece0SStephan Aßmus  public:
28fb07ece0SStephan Aßmus 
29fb07ece0SStephan Aßmus 	static	Transformer*		TransformerFor(uint32 type,
30fb07ece0SStephan Aßmus 											   VertexSource& source);
31fb07ece0SStephan Aßmus 
32fb07ece0SStephan Aßmus 	static	Transformer*		TransformerFor(BMessage* archive,
33fb07ece0SStephan Aßmus 											   VertexSource& source);
34fb07ece0SStephan Aßmus 
358b8d44bfSMichael Lotz #ifdef ICON_O_MATIC
36fb07ece0SStephan Aßmus 	static	bool				NextType(int32* cookie,
37fb07ece0SStephan Aßmus 										 uint32* type,
38fb07ece0SStephan Aßmus 										 BString* name);
39fb07ece0SStephan Aßmus 
40fb07ece0SStephan Aßmus #endif // ICON_O_MATIC
41fb07ece0SStephan Aßmus };
42fb07ece0SStephan Aßmus 
43*25dc253dSIngo Weinhold 
44*25dc253dSIngo Weinhold _END_ICON_NAMESPACE
45*25dc253dSIngo Weinhold 
46325a6253SAxel Dörfler 
47fb07ece0SStephan Aßmus #endif	// TRANSFORMER_FACTORY_H
48