Author: bonefish Date: 2009-10-14 07:04:36 +0200 (Wed, 14 Oct 2009) New Revision: 33579 Changeset: http://dev.haiku-os.org/changeset/33579/haiku Modified: haiku/trunk/src/apps/debuganalyzer/gui/table/TableColumns.cpp haiku/trunk/src/apps/debuganalyzer/gui/table/TableColumns.h Log: Added BoolStringTableColumn for boolean values. Modified: haiku/trunk/src/apps/debuganalyzer/gui/table/TableColumns.cpp =================================================================== --- haiku/trunk/src/apps/debuganalyzer/gui/table/TableColumns.cpp 2009-10-14 05:03:00 UTC (rev 33578) +++ haiku/trunk/src/apps/debuganalyzer/gui/table/TableColumns.cpp 2009-10-14 05:04:36 UTC (rev 33579) @@ -3,6 +3,7 @@ * Distributed under the terms of the MIT License. */ + #include "table/TableColumns.h" #include <stdio.h> @@ -92,6 +93,38 @@ } +// #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 Modified: haiku/trunk/src/apps/debuganalyzer/gui/table/TableColumns.h =================================================================== --- haiku/trunk/src/apps/debuganalyzer/gui/table/TableColumns.h 2009-10-14 05:03:00 UTC (rev 33578) +++ haiku/trunk/src/apps/debuganalyzer/gui/table/TableColumns.h 2009-10-14 05:04:36 UTC (rev 33579) @@ -5,6 +5,7 @@ #ifndef TABLE_COLUMNS_H #define TABLE_COLUMNS_H + #include <ColumnTypes.h> #include "table/TableColumn.h" @@ -56,6 +57,28 @@ }; +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,