mirror of https://github.com/OpenTTD/OpenTTD.git
(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.
This commit is contained in:
parent
8b54212900
commit
87015f5b63
|
@ -1407,6 +1407,10 @@
|
||||||
RelativePath=".\..\src\slope_type.h"
|
RelativePath=".\..\src\slope_type.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\..\src\sortlist_type.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\..\src\sound_func.h"
|
RelativePath=".\..\src\sound_func.h"
|
||||||
>
|
>
|
||||||
|
|
|
@ -1404,6 +1404,10 @@
|
||||||
RelativePath=".\..\src\slope_type.h"
|
RelativePath=".\..\src\slope_type.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\..\src\sortlist_type.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\..\src\sound_func.h"
|
RelativePath=".\..\src\sound_func.h"
|
||||||
>
|
>
|
||||||
|
|
|
@ -277,6 +277,7 @@ signs_func.h
|
||||||
signs_type.h
|
signs_type.h
|
||||||
slope_func.h
|
slope_func.h
|
||||||
slope_type.h
|
slope_type.h
|
||||||
|
sortlist_type.h
|
||||||
sound_func.h
|
sound_func.h
|
||||||
sound_type.h
|
sound_type.h
|
||||||
sprite.h
|
sprite.h
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
#include "vehicle_func.h"
|
#include "vehicle_func.h"
|
||||||
#include "gfx_func.h"
|
#include "gfx_func.h"
|
||||||
#include "order_func.h"
|
#include "order_func.h"
|
||||||
|
#include "window_gui.h"
|
||||||
|
|
||||||
#include "table/sprites.h"
|
#include "table/sprites.h"
|
||||||
#include "table/strings.h"
|
#include "table/strings.h"
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
#include "widgets/dropdown_func.h"
|
#include "widgets/dropdown_func.h"
|
||||||
#include "engine_func.h"
|
#include "engine_func.h"
|
||||||
#include "engine_base.h"
|
#include "engine_base.h"
|
||||||
|
#include "window_gui.h"
|
||||||
|
|
||||||
#include "table/sprites.h"
|
#include "table/sprites.h"
|
||||||
#include "table/strings.h"
|
#include "table/strings.h"
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
#include "gfx_func.h"
|
#include "gfx_func.h"
|
||||||
#include "widgets/dropdown_func.h"
|
#include "widgets/dropdown_func.h"
|
||||||
#include "string_func.h"
|
#include "string_func.h"
|
||||||
|
#include "window_gui.h"
|
||||||
|
|
||||||
#include "table/sprites.h"
|
#include "table/sprites.h"
|
||||||
#include "table/strings.h"
|
#include "table/strings.h"
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
#include "order_func.h"
|
#include "order_func.h"
|
||||||
#include "depot_base.h"
|
#include "depot_base.h"
|
||||||
#include "tilehighlight_func.h"
|
#include "tilehighlight_func.h"
|
||||||
|
#include "window_gui.h"
|
||||||
|
|
||||||
#include "table/strings.h"
|
#include "table/strings.h"
|
||||||
#include "table/sprites.h"
|
#include "table/sprites.h"
|
||||||
|
|
|
@ -46,6 +46,7 @@
|
||||||
#include "gfx_func.h"
|
#include "gfx_func.h"
|
||||||
#include "autoreplace_func.h"
|
#include "autoreplace_func.h"
|
||||||
#include "player_gui.h"
|
#include "player_gui.h"
|
||||||
|
#include "window_gui.h"
|
||||||
|
|
||||||
#include "table/strings.h"
|
#include "table/strings.h"
|
||||||
#include "table/sprites.h"
|
#include "table/sprites.h"
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
#include "../settings_type.h"
|
#include "../settings_type.h"
|
||||||
#include "../widgets/dropdown_func.h"
|
#include "../widgets/dropdown_func.h"
|
||||||
#include "../querystring_gui.h"
|
#include "../querystring_gui.h"
|
||||||
|
#include "../sortlist_type.h"
|
||||||
|
|
||||||
#include "table/strings.h"
|
#include "table/strings.h"
|
||||||
#include "../table/sprites.h"
|
#include "../table/sprites.h"
|
||||||
|
|
|
@ -0,0 +1,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 */
|
|
@ -1350,7 +1350,7 @@ CommandCost CmdSellRailWagon(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
|
||||||
|
|
||||||
if (flags & DC_EXEC) {
|
if (flags & DC_EXEC) {
|
||||||
if (v == first && IsFrontEngine(first)) {
|
if (v == first && IsFrontEngine(first)) {
|
||||||
delete FindWindowById(WC_VEHICLE_VIEW, first->index);
|
DeleteWindowById(WC_VEHICLE_VIEW, first->index);
|
||||||
}
|
}
|
||||||
InvalidateWindow(WC_VEHICLE_DEPOT, first->tile);
|
InvalidateWindow(WC_VEHICLE_DEPOT, first->tile);
|
||||||
RebuildVehicleLists();
|
RebuildVehicleLists();
|
||||||
|
|
|
@ -590,11 +590,8 @@ void Vehicle::PreDestructor()
|
||||||
delete this->Next();
|
delete this->Next();
|
||||||
}
|
}
|
||||||
|
|
||||||
Window *w = FindWindowById(WC_MAIN_WINDOW, 0);
|
extern void StopGlobalFollowVehicle(const Vehicle *v);
|
||||||
if (w != NULL && w->viewport->follow_vehicle == this->index) {
|
StopGlobalFollowVehicle(this);
|
||||||
ScrollMainWindowTo(this->x_pos, this->y_pos, true); // lock the main view on the vehicle's last position
|
|
||||||
w->viewport->follow_vehicle = INVALID_VEHICLE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Vehicle::~Vehicle()
|
Vehicle::~Vehicle()
|
||||||
|
|
|
@ -2171,3 +2171,12 @@ void DrawVehicleImage(const Vehicle *v, int x, int y, VehicleID selection, int c
|
||||||
default: NOT_REACHED();
|
default: NOT_REACHED();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void StopGlobalFollowVehicle(const Vehicle *v)
|
||||||
|
{
|
||||||
|
Window *w = FindWindowById(WC_MAIN_WINDOW, 0);
|
||||||
|
if (w != NULL && w->viewport->follow_vehicle == v->index) {
|
||||||
|
ScrollMainWindowTo(v->x_pos, v->y_pos, true); // lock the main view on the vehicle's last position
|
||||||
|
w->viewport->follow_vehicle = INVALID_VEHICLE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -5,7 +5,8 @@
|
||||||
#ifndef VEHICLE_GUI_H
|
#ifndef VEHICLE_GUI_H
|
||||||
#define VEHICLE_GUI_H
|
#define VEHICLE_GUI_H
|
||||||
|
|
||||||
#include "window_gui.h"
|
#include "sortlist_type.h"
|
||||||
|
#include "window_type.h"
|
||||||
#include "vehicle_type.h"
|
#include "vehicle_type.h"
|
||||||
#include "order_type.h"
|
#include "order_type.h"
|
||||||
#include "station_type.h"
|
#include "station_type.h"
|
||||||
|
|
|
@ -47,6 +47,7 @@
|
||||||
#include "misc/smallvec.h"
|
#include "misc/smallvec.h"
|
||||||
#include "window_func.h"
|
#include "window_func.h"
|
||||||
#include "tilehighlight_func.h"
|
#include "tilehighlight_func.h"
|
||||||
|
#include "window_gui.h"
|
||||||
|
|
||||||
#include "table/sprites.h"
|
#include "table/sprites.h"
|
||||||
#include "table/strings.h"
|
#include "table/strings.h"
|
||||||
|
|
|
@ -514,29 +514,6 @@ public:
|
||||||
virtual ~PickerWindowBase();
|
virtual ~PickerWindowBase();
|
||||||
};
|
};
|
||||||
|
|
||||||
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
|
|
||||||
};
|
|
||||||
|
|
||||||
/****************** THESE ARE NOT WIDGET TYPES!!!!! *******************/
|
/****************** THESE ARE NOT WIDGET TYPES!!!!! *******************/
|
||||||
enum WindowWidgetBehaviours {
|
enum WindowWidgetBehaviours {
|
||||||
WWB_PUSHBUTTON = 1 << 5,
|
WWB_PUSHBUTTON = 1 << 5,
|
||||||
|
|
Loading…
Reference in New Issue