blob: a3e4285548094e8ee0a0e91a15794f10fa83db1e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
/* $Id$ */
/** @file sortlist_type.h Base types for having sorted lists in GUIs. */
#ifndef SORTLIST_TYPE_H
#define SORTLIST_TYPE_H
enum SortListFlags {
VL_NONE = 0, ///< no sort
VL_DESC = 1 << 0, ///< sort descending or ascending
VL_RESORT = 1 << 1, ///< instruct the code to resort the list in the next loop
VL_REBUILD = 1 << 2, ///< create sort-listing to use for qsort and friends
VL_END = 1 << 3,
};
DECLARE_ENUM_AS_BIT_SET(SortListFlags);
struct Listing {
bool order; ///< Ascending/descending
byte criteria; ///< Sorting criteria
};
template <typename T>
struct GUIList {
T* sort_list; ///< The items to sort.
SortListFlags flags; ///< used to control sorting/resorting/etc.
uint16 list_length; ///< length of the list being sorted
uint16 resort_timer; ///< resort list after a given amount of ticks if set
byte sort_type; ///< what criteria to sort on
};
#endif /* SORTLIST_TYPE_H */
|