diff --git a/src/apps/debugger/value/value_handlers/IntegerValueHandler.cpp b/src/apps/debugger/value/value_handlers/IntegerValueHandler.cpp index b95dc37ab3..5955aa950a 100644 --- a/src/apps/debugger/value/value_handlers/IntegerValueHandler.cpp +++ b/src/apps/debugger/value/value_handlers/IntegerValueHandler.cpp @@ -1,4 +1,5 @@ /* + * Copyright 2015, Rene Gollent, rene@gollent.com. * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de. * Distributed under the terms of the MIT License. */ @@ -17,6 +18,7 @@ #include "SettingsDescription.h" #include "SettingsMenu.h" #include "TableCellFormattedValueRenderer.h" +#include "TableCellIntegerEditor.h" static const char* const kFormatSettingID = "format"; @@ -181,6 +183,42 @@ IntegerValueHandler::GetTableCellValueRenderer(Value* _value, } +status_t +IntegerValueHandler::GetTableCellValueEditor(Value* _value, + Settings* settings, TableCellValueEditor*& _editor) +{ + IntegerValue* value = dynamic_cast(_value); + if (value == NULL) + return B_BAD_VALUE; + + IntegerValueFormatter::Config* config = NULL; + status_t error = CreateIntegerFormatterConfig(value, config); + if (error != B_OK) + return error; + BReference configReference(config, true); + + ValueFormatter* formatter; + error = CreateValueFormatter(config, formatter); + if (error != B_OK) + return error; + BReference formatterReference(formatter, true); + + TableCellIntegerEditor* editor = new(std::nothrow) TableCellIntegerEditor( + value, formatter); + if (editor == NULL) + return B_NO_MEMORY; + + BReference editorReference(editor, true); + error = editor->Init(); + if (error != B_OK) + return error; + + editorReference.Detach(); + _editor = editor; + return B_OK; +} + + status_t IntegerValueHandler::CreateTableCellValueSettingsMenu(Value* value, Settings* settings, SettingsMenu*& _menu) diff --git a/src/apps/debugger/value/value_handlers/IntegerValueHandler.h b/src/apps/debugger/value/value_handlers/IntegerValueHandler.h index 09dbcaafe9..e8c71437a5 100644 --- a/src/apps/debugger/value/value_handlers/IntegerValueHandler.h +++ b/src/apps/debugger/value/value_handlers/IntegerValueHandler.h @@ -1,4 +1,5 @@ /* + * Copyright 2015, Rene Gollent, rene@gollent.com. * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de. * Distributed under the terms of the MIT License. */ @@ -28,6 +29,9 @@ public: ValueFormatter*& _formatter); virtual status_t GetTableCellValueRenderer(Value* value, TableCellValueRenderer*& _renderer); + virtual status_t GetTableCellValueEditor(Value* value, + Settings* settings, + TableCellValueEditor*& _editor); virtual status_t CreateTableCellValueSettingsMenu(Value* value, Settings* settings, SettingsMenu*& _menu);