1/* 2 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef INTEGER_VALUE_HANDLER_H 6#define INTEGER_VALUE_HANDLER_H 7 8 9#include "IntegerFormatter.h" 10#include "TableCellIntegerRenderer.h" 11#include "ValueHandler.h" 12 13 14class IntegerValue; 15class OptionsSettingImpl; 16class SettingsDescription; 17 18 19class IntegerValueHandler : public ValueHandler { 20public: 21 IntegerValueHandler(); 22 ~IntegerValueHandler(); 23 24 status_t Init(); 25 26 virtual float SupportsValue(Value* value); 27 virtual status_t GetValueFormatter(Value* value, 28 ValueFormatter*& _formatter); 29 virtual status_t GetTableCellValueRenderer(Value* value, 30 TableCellValueRenderer*& _renderer); 31 virtual status_t CreateTableCellValueSettingsMenu(Value* value, 32 Settings* settings, SettingsMenu*& _menu); 33 34protected: 35 virtual integer_format DefaultIntegerFormat(IntegerValue* value); 36 virtual status_t AddIntegerFormatSettingOptions( 37 IntegerValue* value, 38 OptionsSettingImpl* setting); 39 virtual status_t CreateTableCellValueRenderer( 40 IntegerValue* value, 41 TableCellIntegerRenderer::Config* config, 42 TableCellValueRenderer*& _renderer); 43 44 status_t AddIntegerFormatOption( 45 OptionsSettingImpl* setting, const char* id, 46 const char* name, integer_format format); 47 48private: 49 class FormatOption; 50 class TableCellRendererConfig; 51 52private: 53 SettingsDescription* _CreateTableCellSettingsDescription( 54 IntegerValue* value); 55}; 56 57 58#endif // INTEGER_VALUE_HANDLER_H 59