xref: /haiku/src/apps/icon-o-matic/generic/property/view/PropertyEditorFactory.cpp (revision 64d80db62142884fb9317a68986efab09a52c055)
1*64d80db6SStephan Aßmus /*
2*64d80db6SStephan Aßmus  * Copyright 2006, Haiku.
3*64d80db6SStephan Aßmus  * Distributed under the terms of the MIT License.
4*64d80db6SStephan Aßmus  *
5*64d80db6SStephan Aßmus  * Authors:
6*64d80db6SStephan Aßmus  *		Stephan Aßmus <superstippi@gmx.de>
7*64d80db6SStephan Aßmus  */
8*64d80db6SStephan Aßmus 
9*64d80db6SStephan Aßmus #include "PropertyEditorFactory.h"
10*64d80db6SStephan Aßmus 
11*64d80db6SStephan Aßmus #include "ColorProperty.h"
12*64d80db6SStephan Aßmus #include "Property.h"
13*64d80db6SStephan Aßmus #include "IconProperty.h"
14*64d80db6SStephan Aßmus #include "Int64Property.h"
15*64d80db6SStephan Aßmus #include "OptionProperty.h"
16*64d80db6SStephan Aßmus 
17*64d80db6SStephan Aßmus #include "BoolValueView.h"
18*64d80db6SStephan Aßmus #include "ColorValueView.h"
19*64d80db6SStephan Aßmus #include "FloatValueView.h"
20*64d80db6SStephan Aßmus #include "IconValueView.h"
21*64d80db6SStephan Aßmus #include "IntValueView.h"
22*64d80db6SStephan Aßmus #include "Int64ValueView.h"
23*64d80db6SStephan Aßmus #include "OptionValueView.h"
24*64d80db6SStephan Aßmus #include "StringValueView.h"
25*64d80db6SStephan Aßmus 
26*64d80db6SStephan Aßmus PropertyEditorView*
EditorFor(Property * p)27*64d80db6SStephan Aßmus EditorFor(Property* p)
28*64d80db6SStephan Aßmus {
29*64d80db6SStephan Aßmus 	if (!p)
30*64d80db6SStephan Aßmus 		return NULL;
31*64d80db6SStephan Aßmus 
32*64d80db6SStephan Aßmus 	if (IntProperty* i = dynamic_cast<IntProperty*>(p))
33*64d80db6SStephan Aßmus 		return new IntValueView(i);
34*64d80db6SStephan Aßmus 
35*64d80db6SStephan Aßmus 	if (FloatProperty* f = dynamic_cast<FloatProperty*>(p))
36*64d80db6SStephan Aßmus 		return new FloatValueView(f);
37*64d80db6SStephan Aßmus 
38*64d80db6SStephan Aßmus 	if (BoolProperty* b = dynamic_cast<BoolProperty*>(p))
39*64d80db6SStephan Aßmus 		return new BoolValueView(b);
40*64d80db6SStephan Aßmus 
41*64d80db6SStephan Aßmus 	if (StringProperty* s = dynamic_cast<StringProperty*>(p))
42*64d80db6SStephan Aßmus 		return new StringValueView(s);
43*64d80db6SStephan Aßmus 
44*64d80db6SStephan Aßmus 	if (Int64Property* i = dynamic_cast<Int64Property*>(p))
45*64d80db6SStephan Aßmus 		return new Int64ValueView(i);
46*64d80db6SStephan Aßmus 
47*64d80db6SStephan Aßmus 	if (OptionProperty* o = dynamic_cast<OptionProperty*>(p))
48*64d80db6SStephan Aßmus 		return new OptionValueView(o);
49*64d80db6SStephan Aßmus 
50*64d80db6SStephan Aßmus 	if (ColorProperty* c = dynamic_cast<ColorProperty*>(p))
51*64d80db6SStephan Aßmus 		return new ColorValueView(c);
52*64d80db6SStephan Aßmus 
53*64d80db6SStephan Aßmus 	if (IconProperty* i = dynamic_cast<IconProperty*>(p)) {
54*64d80db6SStephan Aßmus 		IconValueView* view = new IconValueView(i);
55*64d80db6SStephan Aßmus 		view->SetIcon(i->Icon(), i->Width(), i->Height(), i->Format());
56*64d80db6SStephan Aßmus 		return view;
57*64d80db6SStephan Aßmus 	}
58*64d80db6SStephan Aßmus 
59*64d80db6SStephan Aßmus 
60*64d80db6SStephan Aßmus 	return NULL;
61*64d80db6SStephan Aßmus }
62*64d80db6SStephan Aßmus 
63