1
0
Fork 0

(svn r12939) -Codechange: do not use the window proc to determine whether a toolbar is a rail toolbar, but use the window number.

release/0.7
rubidium 2008-05-04 09:39:16 +00:00
parent a26b25aecc
commit 8ca1035316
5 changed files with 17 additions and 16 deletions

View File

@ -139,8 +139,8 @@ void ShowBuildAirToolbar()
{ {
if (!IsValidPlayer(_current_player)) return; if (!IsValidPlayer(_current_player)) return;
DeleteWindowById(WC_BUILD_TOOLBAR, 0); DeleteWindowByClass(WC_BUILD_TOOLBAR);
Window *w = AllocateWindowDescFront(&_air_toolbar_desc, 0); Window *w = AllocateWindowDescFront(&_air_toolbar_desc, TRANSPORT_AIR);
if (_patches.link_terraform_toolbar) ShowTerraformToolbar(w); if (_patches.link_terraform_toolbar) ShowTerraformToolbar(w);
} }

View File

@ -232,8 +232,8 @@ void ShowBuildDocksToolbar()
{ {
if (!IsValidPlayer(_current_player)) return; if (!IsValidPlayer(_current_player)) return;
DeleteWindowById(WC_BUILD_TOOLBAR, 0); DeleteWindowByClass(WC_BUILD_TOOLBAR);
Window *w = AllocateWindowDesc(&_build_docks_toolbar_desc); Window *w = AllocateWindowDescFront(&_build_docks_toolbar_desc, TRANSPORT_WATER);
if (_patches.link_terraform_toolbar) ShowTerraformToolbar(w); if (_patches.link_terraform_toolbar) ShowTerraformToolbar(w);
} }

View File

@ -56,9 +56,10 @@ enum TransportType {
* the values for road and rail. * the values for road and rail.
*/ */
TRANSPORT_BEGIN = 0, TRANSPORT_BEGIN = 0,
TRANSPORT_RAIL = 0, TRANSPORT_RAIL = TRANSPORT_BEGIN,
TRANSPORT_ROAD = 1, TRANSPORT_ROAD,
TRANSPORT_WATER, // = 2 TRANSPORT_WATER,
TRANSPORT_AIR,
TRANSPORT_END, TRANSPORT_END,
INVALID_TRANSPORT = 0xff, INVALID_TRANSPORT = 0xff,
}; };

View File

@ -748,10 +748,10 @@ void ShowBuildRailToolbar(RailType railtype, int button)
if (!ValParamRailtype(railtype)) return; if (!ValParamRailtype(railtype)) return;
// don't recreate the window if we're clicking on a button and the window exists. // don't recreate the window if we're clicking on a button and the window exists.
if (button < 0 || !(w = FindWindowById(WC_BUILD_TOOLBAR, 0)) || w->wndproc != BuildRailToolbWndProc) { if (button < 0 || !(w = FindWindowById(WC_BUILD_TOOLBAR, TRANSPORT_RAIL))) {
DeleteWindowById(WC_BUILD_TOOLBAR, 0); DeleteWindowByClass(WC_BUILD_TOOLBAR);
_cur_railtype = railtype; _cur_railtype = railtype;
w = AllocateWindowDesc(&_build_rail_desc); w = AllocateWindowDescFront(&_build_rail_desc, TRANSPORT_RAIL);
SetupRailToolbar(railtype, w); SetupRailToolbar(railtype, w);
} }
@ -1597,8 +1597,8 @@ void ReinitGuiAfterToggleElrail(bool disable)
if (disable && _last_built_railtype == RAILTYPE_ELECTRIC) { if (disable && _last_built_railtype == RAILTYPE_ELECTRIC) {
Window *w; Window *w;
_last_built_railtype = _cur_railtype = RAILTYPE_RAIL; _last_built_railtype = _cur_railtype = RAILTYPE_RAIL;
w = FindWindowById(WC_BUILD_TOOLBAR, 0); w = FindWindowById(WC_BUILD_TOOLBAR, TRANSPORT_RAIL);
if (w != NULL && w->wndproc == BuildRailToolbWndProc) { if (w != NULL) {
SetupRailToolbar(_cur_railtype, w); SetupRailToolbar(_cur_railtype, w);
SetWindowDirty(w); SetWindowDirty(w);
} }
@ -1648,8 +1648,8 @@ static void SetDefaultRailGui()
} }
_last_built_railtype = _cur_railtype = rt; _last_built_railtype = _cur_railtype = rt;
Window *w = FindWindowById(WC_BUILD_TOOLBAR, 0); Window *w = FindWindowById(WC_BUILD_TOOLBAR, TRANSPORT_RAIL);
if (w != NULL && w->wndproc == BuildRailToolbWndProc) { if (w != NULL) {
SetupRailToolbar(_cur_railtype, w); SetupRailToolbar(_cur_railtype, w);
SetWindowDirty(w); SetWindowDirty(w);
} }

View File

@ -682,8 +682,8 @@ void ShowBuildRoadToolbar(RoadType roadtype)
if (!IsValidPlayer(_current_player)) return; if (!IsValidPlayer(_current_player)) return;
_cur_roadtype = roadtype; _cur_roadtype = roadtype;
DeleteWindowById(WC_BUILD_TOOLBAR, 0); DeleteWindowByClass(WC_BUILD_TOOLBAR);
Window *w = AllocateWindowDesc(roadtype == ROADTYPE_ROAD ? &_build_road_desc : &_build_tramway_desc); Window *w = AllocateWindowDescFront(roadtype == ROADTYPE_ROAD ? &_build_road_desc : &_build_tramway_desc, TRANSPORT_ROAD);
if (_patches.link_terraform_toolbar) ShowTerraformToolbar(w); if (_patches.link_terraform_toolbar) ShowTerraformToolbar(w);
} }