+
+ void Sort(int col, bool ascending)
+ {
+ // we hardcode all sorting orders for simplicity here
+ static int sortOrders[COL_MAX][2][ROW_MAX] =
+ {
+ // descending ascending
+ { { 2, 1, 0 }, { 0, 1, 2 } },
+ { { 2, 1, 0 }, { 0, 1, 2 } },
+ { { 2, 1, 0 }, { 0, 1, 2 } },
+ { { 1, 0, 2 }, { 2, 0, 1 } },
+ };
+
+ m_sortOrder = col == wxNOT_FOUND ? NULL : sortOrders[col][ascending];
+ }
+
+private:
+ wxString GetNameOrExt(int row, int col) const
+ {
+ static const char *
+ names[] = { "autoexec.bat", "boot.ini", "io.sys" };
+ wxCOMPILE_TIME_ASSERT( WXSIZEOF(names) == ROW_MAX, NamesMismatch );
+
+ const wxString s(names[row]);
+ return col == COL_NAME ? s.BeforeFirst('.') : s.AfterLast('.');
+ }
+
+ unsigned long GetSize(int row) const
+ {
+ static const unsigned long
+ sizes[] = { 412, 604, 40774 };
+ wxCOMPILE_TIME_ASSERT( WXSIZEOF(sizes) == ROW_MAX, SizesMismatch );
+
+ return sizes[row];
+ }
+
+ wxDateTime GetDate(int row) const
+ {
+ static const char *
+ dates[] = { "2004-04-17", "2006-05-27", "1994-05-31" };
+ wxCOMPILE_TIME_ASSERT( WXSIZEOF(dates) == ROW_MAX, DatesMismatch );
+
+ wxDateTime dt;
+ dt.ParseISODate(dates[row]);
+ return dt;
+ }
+
+ int *m_sortOrder;