diff --git a/src/apps/debuganalyzer/TableColumns.cpp b/src/apps/debuganalyzer/TableColumns.cpp index 0f0d9dbc91..092592f1c6 100644 --- a/src/apps/debuganalyzer/TableColumns.cpp +++ b/src/apps/debuganalyzer/TableColumns.cpp @@ -122,6 +122,39 @@ Int32TableColumn::CompareValues(const Variant& a, const Variant& b) } +// #pragma mark - Int64TableColumn + + +Int64TableColumn::Int64TableColumn(int32 modelIndex, const char* title, + float width, float minWidth, float maxWidth, uint32 truncate, + alignment align) + : + StringTableColumn(modelIndex, title, width, minWidth, maxWidth, truncate, + align) +{ +} + + +BField* +Int64TableColumn::PrepareField(const Variant& value) const +{ + char buffer[32]; + snprintf(buffer, sizeof(buffer), "%lld", value.ToInt64()); + return StringTableColumn::PrepareField( + Variant(buffer, VARIANT_DONT_COPY_DATA)); +} + + +int +Int64TableColumn::CompareValues(const Variant& a, const Variant& b) +{ + int64 diff = a.ToInt64() - b.ToInt64(); + if (diff == 0) + return 0; + return diff < 0 ? -1 : 1; +} + + // #pragma mark - BigtimeTableColumn diff --git a/src/apps/debuganalyzer/TableColumns.h b/src/apps/debuganalyzer/TableColumns.h index d41ca15f46..4af4de9ea3 100644 --- a/src/apps/debuganalyzer/TableColumns.h +++ b/src/apps/debuganalyzer/TableColumns.h @@ -72,6 +72,22 @@ protected: }; +class Int64TableColumn : public StringTableColumn { +public: + Int64TableColumn(int32 modelIndex, + const char* title, float width, + float minWidth, float maxWidth, + uint32 truncate = B_TRUNCATE_MIDDLE, + alignment align = B_ALIGN_RIGHT); + +protected: + virtual BField* PrepareField(const Variant& value) const; + + virtual int CompareValues(const Variant& a, + const Variant& b); +}; + + class BigtimeTableColumn : public StringTableColumn { public: BigtimeTableColumn(int32 modelIndex,