author | peter1138 |
Mon, 26 May 2008 16:23:23 +0000 | |
changeset 9365 | 95e9cbc0257e |
parent 9274 | 42b67e65f1c2 |
child 9366 | 2d029154291f |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
2 |
||
9274
42b67e65f1c2
(svn r13140) -Codechange: move the gui-list-sorting out of window_gui.h so window_gui.h only needs to be included in *_gui.cpp.
rubidium
parents:
9273
diff
changeset
|
3 |
/** @file sortlist_type.h Base types for having sorted lists in GUIs. */ |
9273
35e0224ea8f1
(svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium
parents:
9272
diff
changeset
|
4 |
|
9274
42b67e65f1c2
(svn r13140) -Codechange: move the gui-list-sorting out of window_gui.h so window_gui.h only needs to be included in *_gui.cpp.
rubidium
parents:
9273
diff
changeset
|
5 |
#ifndef SORTLIST_TYPE_H |
42b67e65f1c2
(svn r13140) -Codechange: move the gui-list-sorting out of window_gui.h so window_gui.h only needs to be included in *_gui.cpp.
rubidium
parents:
9273
diff
changeset
|
6 |
#define SORTLIST_TYPE_H |
9267
22095cc802dd
(svn r13133) -Codechange: Add a base class (descending from Window) for all new windows that are going to require a ResetObjectToPlace to be performed on closing.
belugas
parents:
9264
diff
changeset
|
7 |
|
9365
95e9cbc0257e
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138
parents:
9274
diff
changeset
|
8 |
#include "misc/smallvec.h" |
95e9cbc0257e
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138
parents:
9274
diff
changeset
|
9 |
|
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
10 |
enum SortListFlags { |
8008
4cc180fe96ab
(svn r11568) -Codechange: Use bit shifts instead of values for flags. It helps readability a little bit.
belugas
parents:
7996
diff
changeset
|
11 |
VL_NONE = 0, ///< no sort |
4cc180fe96ab
(svn r11568) -Codechange: Use bit shifts instead of values for flags. It helps readability a little bit.
belugas
parents:
7996
diff
changeset
|
12 |
VL_DESC = 1 << 0, ///< sort descending or ascending |
4cc180fe96ab
(svn r11568) -Codechange: Use bit shifts instead of values for flags. It helps readability a little bit.
belugas
parents:
7996
diff
changeset
|
13 |
VL_RESORT = 1 << 1, ///< instruct the code to resort the list in the next loop |
4cc180fe96ab
(svn r11568) -Codechange: Use bit shifts instead of values for flags. It helps readability a little bit.
belugas
parents:
7996
diff
changeset
|
14 |
VL_REBUILD = 1 << 2, ///< create sort-listing to use for qsort and friends |
4cc180fe96ab
(svn r11568) -Codechange: Use bit shifts instead of values for flags. It helps readability a little bit.
belugas
parents:
7996
diff
changeset
|
15 |
VL_END = 1 << 3, |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
16 |
}; |
5587
167d9a91ef02
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5475
diff
changeset
|
17 |
DECLARE_ENUM_AS_BIT_SET(SortListFlags); |
167d9a91ef02
(svn r8038) -Merge: the cpp branch. Effort of KUDr, Celestar, glx, Smoovius, stillunknown and pv2b.
rubidium
parents:
5475
diff
changeset
|
18 |
|
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
19 |
struct Listing { |
6117
6507b2a7e71d
(svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas
parents:
6024
diff
changeset
|
20 |
bool order; ///< Ascending/descending |
6507b2a7e71d
(svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas
parents:
6024
diff
changeset
|
21 |
byte criteria; ///< Sorting criteria |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
22 |
}; |
588 | 23 |
|
9182
412cb6c0caf1
(svn r13045) -Codechange: make list_d (now GUIList) more generic and uniform.
rubidium
parents:
9178
diff
changeset
|
24 |
template <typename T> |
9365
95e9cbc0257e
(svn r13266) -Codechange: Use SmallVector in GUIList
peter1138
parents:
9274
diff
changeset
|
25 |
struct GUIList : public SmallVector<T, 32> { |
9182
412cb6c0caf1
(svn r13045) -Codechange: make list_d (now GUIList) more generic and uniform.
rubidium
parents:
9178
diff
changeset
|
26 |
SortListFlags flags; ///< used to control sorting/resorting/etc. |
412cb6c0caf1
(svn r13045) -Codechange: make list_d (now GUIList) more generic and uniform.
rubidium
parents:
9178
diff
changeset
|
27 |
uint16 resort_timer; ///< resort list after a given amount of ticks if set |
6117
6507b2a7e71d
(svn r8853) -Cleanup: doxygen changes. Correct forgotten c files to cpp files with the @file tag as well as a few general comments style
belugas
parents:
6024
diff
changeset
|
28 |
byte sort_type; ///< what criteria to sort on |
6248
e4a2ed7e5613
(svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {};
rubidium
parents:
6247
diff
changeset
|
29 |
}; |
6643
f81bee57bc09
(svn r9874) -Feature: advanced vehicle lists a.k.a. group interface. Now you can make groups of vehicles and perform all kinds of tasks on that given group. Original code by nycom and graphics by skidd13.
rubidium
parents:
6638
diff
changeset
|
30 |
|
9274
42b67e65f1c2
(svn r13140) -Codechange: move the gui-list-sorting out of window_gui.h so window_gui.h only needs to be included in *_gui.cpp.
rubidium
parents:
9273
diff
changeset
|
31 |
#endif /* SORTLIST_TYPE_H */ |