From 9ea0d9494e18293026686d7b0a6ed632a2fb5f3a Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Wed, 14 Oct 2009 05:04:36 +0000 Subject: [PATCH] Added BoolStringTableColumn for boolean values. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33579 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../debuganalyzer/gui/table/TableColumns.cpp | 33 +++++++++++++++++++ .../debuganalyzer/gui/table/TableColumns.h | 23 +++++++++++++ 2 files changed, 56 insertions(+) diff --git a/src/apps/debuganalyzer/gui/table/TableColumns.cpp b/src/apps/debuganalyzer/gui/table/TableColumns.cpp index e13b57307a..12a580672a 100644 --- a/src/apps/debuganalyzer/gui/table/TableColumns.cpp +++ b/src/apps/debuganalyzer/gui/table/TableColumns.cpp @@ -3,6 +3,7 @@ * Distributed under the terms of the MIT License. */ + #include "table/TableColumns.h" #include @@ -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 diff --git a/src/apps/debuganalyzer/gui/table/TableColumns.h b/src/apps/debuganalyzer/gui/table/TableColumns.h index 1ef12e7397..cede6ebfee 100644 --- a/src/apps/debuganalyzer/gui/table/TableColumns.h +++ b/src/apps/debuganalyzer/gui/table/TableColumns.h @@ -5,6 +5,7 @@ #ifndef TABLE_COLUMNS_H #define TABLE_COLUMNS_H + #include #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,