From 3355e888b111435bda993ccc18049e92205d19e5 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Fri, 24 Apr 2009 22:45:39 +0000 Subject: [PATCH] Added Int64TableColumn. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30385 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/apps/debuganalyzer/TableColumns.cpp | 33 +++++++++++++++++++++++++ src/apps/debuganalyzer/TableColumns.h | 16 ++++++++++++ 2 files changed, 49 insertions(+) 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,