1/*
2 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef VALUE_HANDLER_H
6#define VALUE_HANDLER_H
7
8
9#include <Referenceable.h>
10
11
12class Settings;
13class SettingsMenu;
14class TableCellValueRenderer;
15class Value;
16class ValueFormatter;
17
18
19class ValueHandler : public BReferenceable {
20public:
21	virtual						~ValueHandler();
22
23	virtual	float				SupportsValue(Value* value) = 0;
24	virtual	status_t			GetValueFormatter(Value* value,
25									ValueFormatter*& _formatter) = 0;
26									// returns a reference
27	virtual	status_t			GetTableCellValueRenderer(Value* value,
28									TableCellValueRenderer*& _renderer) = 0;
29									// returns a reference
30	virtual	status_t			CreateTableCellValueSettingsMenu(Value* value,
31									Settings* settings, SettingsMenu*& _menu);
32									// may return NULL, otherwise a reference
33};
34
35
36#endif	// VALUE_HANDLER_H
37