Added BoolStringTableColumn for boolean values.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33579 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2009-10-14 05:04:36 +00:00
parent 0fc8a75c02
commit 9ea0d9494e
2 changed files with 56 additions and 0 deletions
@@ -3,6 +3,7 @@
* Distributed under the terms of the MIT License.
*/
#include "table/TableColumns.h"
#include <stdio.h>
@@ -92,6 +93,38 @@ StringTableColumn::CompareValues(const BVariant& a, const BVariant& b)
}
// #pragma mark - BoolStringTableColumn
BoolStringTableColumn::BoolStringTableColumn(int32 modelIndex, const char* title,
float width, float minWidth, float maxWidth, const BString& trueString,
const BString& falseString, uint32 truncate, alignment align)
:
StringTableColumn(modelIndex, title, width, minWidth, maxWidth, truncate,
align),
fTrueString(trueString),
fFalseString(falseString)
{
}
BField*
BoolStringTableColumn::PrepareField(const BVariant& value) const
{
return StringTableColumn::PrepareField(
BVariant(value.ToBool() ? fTrueString : fFalseString,
B_VARIANT_DONT_COPY_DATA));
}
int
BoolStringTableColumn::CompareValues(const BVariant& a, const BVariant& b)
{
bool aValue = a.ToBool();
return aValue == b.ToBool() ? 0 : (aValue ? 1 : -1);
}
// #pragma mark - Int32TableColumn
@@ -5,6 +5,7 @@
#ifndef TABLE_COLUMNS_H
#define TABLE_COLUMNS_H
#include <ColumnTypes.h>
#include "table/TableColumn.h"
@@ -56,6 +57,28 @@ private:
};
class BoolStringTableColumn : public StringTableColumn {
public:
BoolStringTableColumn(int32 modelIndex,
const char* title, float width,
float minWidth, float maxWidth,
const BString& trueString = "true",
const BString& falseString = "false",
uint32 truncate = B_TRUNCATE_MIDDLE,
alignment align = B_ALIGN_LEFT);
protected:
virtual BField* PrepareField(const BVariant& value) const;
virtual int CompareValues(const BVariant& a,
const BVariant& b);
private:
BString fTrueString;
BString fFalseString;
};
class Int32TableColumn : public StringTableColumn {
public:
Int32TableColumn(int32 modelIndex,