xref: /haiku/src/libs/icon/transformer/TransformerFactory.h (revision 325a6253ceb7c4162df2805f7aabc2a119c93534)
1fb07ece0SStephan Aßmus /*
2*325a6253SAxel 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 
11*325a6253SAxel Dörfler 
12fb07ece0SStephan Aßmus #include <String.h>
13fb07ece0SStephan Aßmus 
14fb07ece0SStephan Aßmus class BMessage;
15*325a6253SAxel Dörfler 
16*325a6253SAxel Dörfler 
17*325a6253SAxel Dörfler namespace BPrivate {
18*325a6253SAxel Dörfler namespace Icon {
19*325a6253SAxel Dörfler 
20fb07ece0SStephan Aßmus class Transformer;
21fb07ece0SStephan Aßmus class VertexSource;
22fb07ece0SStephan Aßmus 
23fb07ece0SStephan Aßmus class TransformerFactory {
24fb07ece0SStephan Aßmus  public:
25fb07ece0SStephan Aßmus 
26fb07ece0SStephan Aßmus 	static	Transformer*		TransformerFor(uint32 type,
27fb07ece0SStephan Aßmus 											   VertexSource& source);
28fb07ece0SStephan Aßmus 
29fb07ece0SStephan Aßmus #ifdef ICON_O_MATIC
30fb07ece0SStephan Aßmus 	static	Transformer*		TransformerFor(BMessage* archive,
31fb07ece0SStephan Aßmus 											   VertexSource& source);
32fb07ece0SStephan Aßmus 
33fb07ece0SStephan Aßmus 	static	bool				NextType(int32* cookie,
34fb07ece0SStephan Aßmus 										 uint32* type,
35fb07ece0SStephan Aßmus 										 BString* name);
36fb07ece0SStephan Aßmus 
37fb07ece0SStephan Aßmus #endif // ICON_O_MATIC
38fb07ece0SStephan Aßmus };
39fb07ece0SStephan Aßmus 
40*325a6253SAxel Dörfler }	// namespace Icon
41*325a6253SAxel Dörfler }	// namespace BPrivate
42*325a6253SAxel Dörfler 
43fb07ece0SStephan Aßmus #endif	// TRANSFORMER_FACTORY_H
44