* Copyright 2014-2015, Rene Gollent, rene@gollent.com.
* Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
* Distributed under the terms of the MIT License.
*/
#include "TableCellFormattedValueRenderer.h"
#include <String.h>
#include "TableCellValueRendererUtils.h"
#include "ValueFormatter.h"
TableCellFormattedValueRenderer::TableCellFormattedValueRenderer(
ValueFormatter* formatter)
:
fValueFormatter(formatter)
{
fValueFormatter->AcquireReference();
}
TableCellFormattedValueRenderer::~TableCellFormattedValueRenderer()
{
fValueFormatter->ReleaseReference();
}
Settings*
TableCellFormattedValueRenderer::GetSettings() const
{
return fValueFormatter->GetSettings();
}
void
TableCellFormattedValueRenderer::RenderValue(Value* value, bool valueChanged,
BRect rect, BView* targetView)
{
BString output;
if (fValueFormatter->FormatValue(value, output) != B_OK)
return;
TableCellValueRendererUtils::DrawString(targetView, rect, output,
valueChanged, B_ALIGN_RIGHT, true);
}
float
TableCellFormattedValueRenderer::PreferredValueWidth(Value* value, BView* targetView)
{
BString output;
if (fValueFormatter->FormatValue(value, output) != B_OK)
return 0;
return TableCellValueRendererUtils::PreferredStringWidth(targetView,
output);
}