summaryrefslogtreecommitdiff
path: root/src/vehicle_gui_base.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/vehicle_gui_base.h')
-rw-r--r--src/vehicle_gui_base.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/vehicle_gui_base.h b/src/vehicle_gui_base.h
new file mode 100644
index 000000000..be2b5897b
--- /dev/null
+++ b/src/vehicle_gui_base.h
@@ -0,0 +1,47 @@
+/* $Id$ */
+
+/** @file vehicle_gui_base.h Functions/classes shared between the different vehicle list GUIs. */
+
+#ifndef VEHICLE_GUI_BASE_H
+#define VEHICLE_GUI_BASE_H
+
+#include "sortlist_type.h"
+
+/** Start of functions regarding vehicle list windows */
+enum {
+ PLY_WND_PRC__OFFSET_TOP_WIDGET = 26,
+ PLY_WND_PRC__SIZE_OF_ROW_TINY = 13,
+ PLY_WND_PRC__SIZE_OF_ROW_SMALL = 26,
+ PLY_WND_PRC__SIZE_OF_ROW_BIG = 39,
+};
+
+typedef GUIList<const Vehicle*> GUIVehicleList;
+
+struct BaseVehicleListWindow: public Window {
+ GUIVehicleList vehicles; ///< The list of vehicles
+ Listing *sorting; ///< Pointer to the vehicle type related sorting.
+ VehicleType vehicle_type; ///< The vehicle type that is sorted
+
+ static const StringID vehicle_sorter_names[];
+ static GUIVehicleList::SortFunction *const vehicle_sorter_funcs[];
+
+ BaseVehicleListWindow(const WindowDesc *desc, WindowNumber window_number) : Window(desc, window_number)
+ {
+ this->vehicles.SetSortFuncs(this->vehicle_sorter_funcs);
+ }
+
+ void DrawVehicleListItems(int x);
+ void SortVehicleList();
+ void BuildVehicleList(PlayerID owner, uint16 index, uint16 window_type);
+};
+
+struct Sorting {
+ Listing aircraft;
+ Listing roadveh;
+ Listing ship;
+ Listing train;
+};
+
+extern Sorting _sorting;
+
+#endif /* VEHICLE_GUI_BASE_H */