author | rubidium |
Fri, 18 Jul 2008 16:40:29 +0000 | |
changeset 9659 | 187142ff9b6c |
parent 9652 | 0405e98d8e96 |
child 9742 | fcbe9e9e2016 |
permissions | -rw-r--r-- |
2186 | 1 |
/* $Id$ */ |
2 |
||
9111
48ce04029fe4
(svn r12971) -Documentation: add @file in files that missed them and add something more than whitespace as description of files that don't have a description.
rubidium
parents:
9080
diff
changeset
|
3 |
/** @file airport_gui.cpp The GUI for airports. */ |
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:
6042
diff
changeset
|
4 |
|
0 | 5 |
#include "stdafx.h" |
1891
862800791170
(svn r2397) - CodeChange: rename all "ttd" files to "openttd" files.
Darkvater
parents:
1784
diff
changeset
|
6 |
#include "openttd.h" |
8107
bb7deea89175
(svn r11668) -Codechange: more refactoring aimed at reducing compile time and making it more logic where function definitions can be found.
rubidium
parents:
8106
diff
changeset
|
7 |
#include "window_gui.h" |
0 | 8 |
#include "gui.h" |
8107
bb7deea89175
(svn r11668) -Codechange: more refactoring aimed at reducing compile time and making it more logic where function definitions can be found.
rubidium
parents:
8106
diff
changeset
|
9 |
#include "station_gui.h" |
8205
2bde724f1b5d
(svn r11768) -Codechange: move some terraform related gui stuff from main_gui.cpp to terraform_gui.cpp (and introduce terraform_gui.h). Based on a patch by Roujin.
rubidium
parents:
8157
diff
changeset
|
10 |
#include "terraform_gui.h" |
8116
8da76dcb3287
(svn r11677) -Codechange: move price and command related types/functions to their respective places.
rubidium
parents:
8107
diff
changeset
|
11 |
#include "command_func.h" |
0 | 12 |
#include "airport.h" |
8157
1505def01945
(svn r11719) -Codechange: split sound.h in a header with types and one with functions.
rubidium
parents:
8144
diff
changeset
|
13 |
#include "sound_func.h" |
8131
160939e24ed3
(svn r11692) -Codechange: move some functions from 'functions.h' to a more logical place and remove about 50% of the includes of 'functions.h'
rubidium
parents:
8121
diff
changeset
|
14 |
#include "window_func.h" |
9334
28ac6c8e0795
(svn r13226) -Feature: Allow to have more than only two airports per town. The number of airports is now controlled by the noise each of them generates, the distance from town's center and how tolerant the town is.
belugas
parents:
9317
diff
changeset
|
15 |
#include "strings_func.h" |
8270
e7c342f6b14c
(svn r11834) -Codechange: only include settings_type.h if needed.
rubidium
parents:
8264
diff
changeset
|
16 |
#include "settings_type.h" |
8224
c5a64d87cc54
(svn r11787) -Codechange: more header rewrites. This time related to viewport.h.
rubidium
parents:
8211
diff
changeset
|
17 |
#include "viewport_func.h" |
c5a64d87cc54
(svn r11787) -Codechange: more header rewrites. This time related to viewport.h.
rubidium
parents:
8211
diff
changeset
|
18 |
#include "gfx_func.h" |
8254
1496654ca5e7
(svn r11818) -Codechange: split player.h into smaller pieces.
rubidium
parents:
8237
diff
changeset
|
19 |
#include "player_func.h" |
8784
c2e9d649a9ce
(svn r12488) -Codechange: split order.h into order_base.h and order_func.h.
rubidium
parents:
8574
diff
changeset
|
20 |
#include "order_func.h" |
8962
1b263c69799d
(svn r12754) -Codechange: split depot.h into depot_map.h, depot_func.h and depot_base.h and remove quite a lot of unneeded (before this) includes of depot.h.
rubidium
parents:
8910
diff
changeset
|
21 |
#include "station_type.h" |
9127
14f21c5954ee
(svn r12987) -Codechange: split viewport and tile selection.
rubidium
parents:
9123
diff
changeset
|
22 |
#include "tilehighlight_func.h" |
9659
187142ff9b6c
(svn r13731) -Codechange: make a pool of the array of players.
rubidium
parents:
9652
diff
changeset
|
23 |
#include "player_base.h" |
0 | 24 |
|
8264
b1e85998c7d3
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium
parents:
8254
diff
changeset
|
25 |
#include "table/sprites.h" |
b1e85998c7d3
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium
parents:
8254
diff
changeset
|
26 |
#include "table/strings.h" |
b1e85998c7d3
(svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h.
rubidium
parents:
8254
diff
changeset
|
27 |
|
0 | 28 |
static byte _selected_airport_type; |
29 |
||
9338
3d6f9ddd431d
(svn r13230) -Fix [FS#2030](r13171): When closing toolbars, also close their PickerWindows.
frosch
parents:
9334
diff
changeset
|
30 |
static void ShowBuildAirportPicker(Window *parent); |
0 | 31 |
|
32 |
||
1977
37bbebf94434
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1914
diff
changeset
|
33 |
void CcBuildAirport(bool success, TileIndex tile, uint32 p1, uint32 p2) |
0 | 34 |
{ |
35 |
if (success) { |
|
541 | 36 |
SndPlayTileFx(SND_1F_SPLAT, tile); |
0 | 37 |
ResetObjectToPlace(); |
38 |
} |
|
39 |
} |
|
40 |
||
1977
37bbebf94434
(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"
tron
parents:
1914
diff
changeset
|
41 |
static void PlaceAirport(TileIndex tile) |
0 | 42 |
{ |
7521
0da1e91510e4
(svn r11040) -Fix [FS#1179]: removing CMD_AUTO from some commands could remotely trigger an assertion.
rubidium
parents:
7341
diff
changeset
|
43 |
DoCommandP(tile, _selected_airport_type, _ctrl_pressed, CcBuildAirport, CMD_BUILD_AIRPORT | CMD_NO_WATER | CMD_MSG(STR_A001_CAN_T_BUILD_AIRPORT_HERE)); |
0 | 44 |
} |
45 |
||
46 |
||
5147
866030c20f0a
(svn r7239) Enumerate the widgets in the airport, dock, rail and road toolbars
tron
parents:
5072
diff
changeset
|
47 |
enum { |
866030c20f0a
(svn r7239) Enumerate the widgets in the airport, dock, rail and road toolbars
tron
parents:
5072
diff
changeset
|
48 |
ATW_AIRPORT = 3, |
866030c20f0a
(svn r7239) Enumerate the widgets in the airport, dock, rail and road toolbars
tron
parents:
5072
diff
changeset
|
49 |
ATW_DEMOLISH = 4 |
866030c20f0a
(svn r7239) Enumerate the widgets in the airport, dock, rail and road toolbars
tron
parents:
5072
diff
changeset
|
50 |
}; |
866030c20f0a
(svn r7239) Enumerate the widgets in the airport, dock, rail and road toolbars
tron
parents:
5072
diff
changeset
|
51 |
|
866030c20f0a
(svn r7239) Enumerate the widgets in the airport, dock, rail and road toolbars
tron
parents:
5072
diff
changeset
|
52 |
|
0 | 53 |
static void BuildAirClick_Airport(Window *w) |
54 |
{ |
|
9338
3d6f9ddd431d
(svn r13230) -Fix [FS#2030](r13171): When closing toolbars, also close their PickerWindows.
frosch
parents:
9334
diff
changeset
|
55 |
if (HandlePlacePushButton(w, ATW_AIRPORT, SPR_CURSOR_AIRPORT, VHM_RECT, PlaceAirport)) ShowBuildAirportPicker(w); |
0 | 56 |
} |
57 |
||
58 |
static void BuildAirClick_Demolish(Window *w) |
|
59 |
{ |
|
9123
d2a939cbdf1d
(svn r12983) -Codechange [FS#1987] : Unification of all dynamite tools calls to only one. Thanks to Roujin
belugas
parents:
9116
diff
changeset
|
60 |
HandlePlacePushButton(w, ATW_DEMOLISH, ANIMCURSOR_DEMOLISH, VHM_RECT, PlaceProc_DemolishArea); |
0 | 61 |
} |
62 |
||
63 |
||
64 |
typedef void OnButtonClick(Window *w); |
|
65 |
static OnButtonClick * const _build_air_button_proc[] = { |
|
66 |
BuildAirClick_Airport, |
|
67 |
BuildAirClick_Demolish, |
|
68 |
}; |
|
69 |
||
9303
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
70 |
struct BuildAirToolbarWindow : Window { |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
71 |
BuildAirToolbarWindow(const WindowDesc *desc, WindowNumber window_number) : Window(desc, window_number) |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
72 |
{ |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
73 |
this->FindWindowPlacementAndResize(desc); |
9413
7042a8ec3fa8
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium
parents:
9354
diff
changeset
|
74 |
if (_settings_client.gui.link_terraform_toolbar) ShowTerraformToolbar(this); |
9303
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
75 |
} |
4719
fc6e14219f72
(svn r6631) -Codechange: Use accessors for click_state.
belugas
parents:
4709
diff
changeset
|
76 |
|
9303
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
77 |
~BuildAirToolbarWindow() |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
78 |
{ |
9413
7042a8ec3fa8
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium
parents:
9354
diff
changeset
|
79 |
if (_settings_client.gui.link_terraform_toolbar) DeleteWindowById(WC_SCEN_LAND_GEN, 0); |
9303
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
80 |
} |
8879
976ce196dddf
(svn r12646) -Codechange: another run of code-style cleanup
belugas
parents:
8878
diff
changeset
|
81 |
|
9303
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
82 |
virtual void OnPaint() |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
83 |
{ |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
84 |
this->DrawWidgets(); |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
85 |
} |
8879
976ce196dddf
(svn r12646) -Codechange: another run of code-style cleanup
belugas
parents:
8878
diff
changeset
|
86 |
|
9303
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
87 |
virtual void OnClick(Point pt, int widget) |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
88 |
{ |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
89 |
if (widget - 3 >= 0) { |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
90 |
_build_air_button_proc[widget - 3](this); |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
91 |
} |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
92 |
} |
8879
976ce196dddf
(svn r12646) -Codechange: another run of code-style cleanup
belugas
parents:
8878
diff
changeset
|
93 |
|
976ce196dddf
(svn r12646) -Codechange: another run of code-style cleanup
belugas
parents:
8878
diff
changeset
|
94 |
|
9303
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
95 |
virtual EventState OnKeyPress(uint16 key, uint16 keycode) |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
96 |
{ |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
97 |
switch (keycode) { |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
98 |
case '1': BuildAirClick_Airport(this); break; |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
99 |
case '2': BuildAirClick_Demolish(this); break; |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
100 |
default: return ES_NOT_HANDLED; |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
101 |
} |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
102 |
return ES_HANDLED; |
0 | 103 |
} |
9303
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
104 |
|
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
105 |
virtual void OnPlaceObject(Point pt, TileIndex tile) |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
106 |
{ |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
107 |
_place_proc(tile); |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
108 |
} |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
109 |
|
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
110 |
virtual void OnPlaceDrag(ViewportPlaceMethod select_method, ViewportDragDropSelectionProcess select_proc, Point pt) |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
111 |
{ |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
112 |
VpSelectTilesWithMethod(pt.x, pt.y, select_method); |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
113 |
} |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
114 |
|
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
115 |
virtual void OnPlaceMouseUp(ViewportPlaceMethod select_method, ViewportDragDropSelectionProcess select_proc, Point pt, TileIndex start_tile, TileIndex end_tile) |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
116 |
{ |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
117 |
if (pt.x != -1 && select_proc == DDSP_DEMOLISH_AREA) { |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
118 |
GUIPlaceProcDragXY(select_proc, start_tile, end_tile); |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
119 |
} |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
120 |
} |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
121 |
|
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
122 |
virtual void OnPlaceObjectAbort() |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
123 |
{ |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
124 |
this->RaiseButtons(); |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
125 |
|
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
126 |
delete FindWindowById(WC_BUILD_STATION, 0); |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
127 |
} |
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
128 |
}; |
0 | 129 |
|
130 |
static const Widget _air_toolbar_widgets[] = { |
|
4344
7e123fec5b0b
(svn r6045) -Cleanup: align all table-like structures using spaces, i.e. whitespace fixes only except for a few comments to make them uniform for the whole enum/struct.
rubidium
parents:
4171
diff
changeset
|
131 |
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW }, |
5682
f109e2e62af8
(svn r8143) Remove the landscaping button from the build toolbars.
tron
parents:
5587
diff
changeset
|
132 |
{ WWT_CAPTION, RESIZE_NONE, 7, 11, 51, 0, 13, STR_A000_AIRPORTS, STR_018C_WINDOW_TITLE_DRAG_THIS }, |
f109e2e62af8
(svn r8143) Remove the landscaping button from the build toolbars.
tron
parents:
5587
diff
changeset
|
133 |
{ WWT_STICKYBOX, RESIZE_NONE, 7, 52, 63, 0, 13, 0x0, STR_STICKY_BUTTON }, |
4937
8cfdd86fd709
(svn r6924) -Codechange: Give the last (in the widget arrays at least) sprites meaningful names.
Darkvater
parents:
4848
diff
changeset
|
134 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 0, 41, 14, 35, SPR_IMG_AIRPORT, STR_A01E_BUILD_AIRPORT }, |
8cfdd86fd709
(svn r6924) -Codechange: Give the last (in the widget arrays at least) sprites meaningful names.
Darkvater
parents:
4848
diff
changeset
|
135 |
{ WWT_IMGBTN, RESIZE_NONE, 7, 42, 63, 14, 35, SPR_IMG_DYNAMITE, STR_018D_DEMOLISH_BUILDINGS_ETC }, |
176
84990c4b9212
(svn r177) -Fix: padded out Widget code to solve warnings on C99 compiler (Tron)
darkvater
parents:
0
diff
changeset
|
136 |
{ WIDGETS_END}, |
0 | 137 |
}; |
138 |
||
139 |
||
140 |
static const WindowDesc _air_toolbar_desc = { |
|
7341
02515d0d4ced
(svn r10704) -Codechange: provide an infrastructure to have resizable windows that are smaller than the default window size.
rubidium
parents:
7241
diff
changeset
|
141 |
WDP_ALIGN_TBR, 22, 64, 36, 64, 36, |
5893
7e431a4abebb
(svn r8511) -Codechange: make WindowClass an enumerated value.
rubidium
parents:
5860
diff
changeset
|
142 |
WC_BUILD_TOOLBAR, WC_NONE, |
756
b76998029c12
(svn r1212) -Feature: sticky windows all build-toolbars
darkvater
parents:
751
diff
changeset
|
143 |
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_STICKY_BUTTON, |
0 | 144 |
_air_toolbar_widgets, |
145 |
}; |
|
146 |
||
6247 | 147 |
void ShowBuildAirToolbar() |
0 | 148 |
{ |
9652
0405e98d8e96
(svn r13719) -Codechange: rename IsValidPlayer to IsValidPlayerID in line with all other structs/classes that are in a pool.
rubidium
parents:
9413
diff
changeset
|
149 |
if (!IsValidPlayerID(_current_player)) return; |
5005
f5086bd3945a
(svn r7022) -Fix [FS#292]: Properly guard against viewing company-sensitive information from
Darkvater
parents:
4968
diff
changeset
|
150 |
|
9080
34bc7cbbb79a
(svn r12939) -Codechange: do not use the window proc to determine whether a toolbar is a rail toolbar, but use the window number.
rubidium
parents:
9066
diff
changeset
|
151 |
DeleteWindowByClass(WC_BUILD_TOOLBAR); |
9303
6b6b52069079
(svn r13171) -Codechange: make a class of the Build[Air|Rail|Road|Dock]ToolbarWindows.
rubidium
parents:
9293
diff
changeset
|
152 |
AllocateWindowDescFront<BuildAirToolbarWindow>(&_air_toolbar_desc, TRANSPORT_AIR); |
0 | 153 |
} |
154 |
||
9268
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
155 |
class AirportPickerWindow : public PickerWindowBase { |
8879
976ce196dddf
(svn r12646) -Codechange: another run of code-style cleanup
belugas
parents:
8878
diff
changeset
|
156 |
|
9268
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
157 |
enum { |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
158 |
BAW_BOTTOMPANEL = 10, |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
159 |
BAW_SMALL_AIRPORT, |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
160 |
BAW_CITY_AIRPORT, |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
161 |
BAW_HELIPORT, |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
162 |
BAW_METRO_AIRPORT, |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
163 |
BAW_STR_INTERNATIONAL_AIRPORT, |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
164 |
BAW_COMMUTER_AIRPORT, |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
165 |
BAW_HELIDEPOT, |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
166 |
BAW_STR_INTERCONTINENTAL_AIRPORT, |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
167 |
BAW_HELISTATION, |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
168 |
BAW_LAST_AIRPORT = BAW_HELISTATION, |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
169 |
BAW_AIRPORT_COUNT = BAW_LAST_AIRPORT - BAW_SMALL_AIRPORT + 1, |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
170 |
BAW_BTN_DONTHILIGHT = BAW_LAST_AIRPORT + 1, |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
171 |
BAW_BTN_DOHILIGHT, |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
172 |
}; |
0 | 173 |
|
9268
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
174 |
public: |
0 | 175 |
|
9338
3d6f9ddd431d
(svn r13230) -Fix [FS#2030](r13171): When closing toolbars, also close their PickerWindows.
frosch
parents:
9334
diff
changeset
|
176 |
AirportPickerWindow(const WindowDesc *desc, Window *parent) : PickerWindowBase(desc, parent) |
9268
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
177 |
{ |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
178 |
this->SetWidgetLoweredState(BAW_BTN_DONTHILIGHT, !_station_show_coverage); |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
179 |
this->SetWidgetLoweredState(BAW_BTN_DOHILIGHT, _station_show_coverage); |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
180 |
this->LowerWidget(_selected_airport_type + BAW_SMALL_AIRPORT); |
1109
ecb98f43ba2c
(svn r1610) Remove trailing whitespace (last time ever, i hope)
tron
parents:
1093
diff
changeset
|
181 |
|
9413
7042a8ec3fa8
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium
parents:
9354
diff
changeset
|
182 |
if (_settings_game.economy.station_noise_level) { |
9334
28ac6c8e0795
(svn r13226) -Feature: Allow to have more than only two airports per town. The number of airports is now controlled by the noise each of them generates, the distance from town's center and how tolerant the town is.
belugas
parents:
9317
diff
changeset
|
183 |
ResizeWindowForWidget(this, BAW_BOTTOMPANEL, 0, 10); |
28ac6c8e0795
(svn r13226) -Feature: Allow to have more than only two airports per town. The number of airports is now controlled by the noise each of them generates, the distance from town's center and how tolerant the town is.
belugas
parents:
9317
diff
changeset
|
184 |
} |
28ac6c8e0795
(svn r13226) -Feature: Allow to have more than only two airports per town. The number of airports is now controlled by the noise each of them generates, the distance from town's center and how tolerant the town is.
belugas
parents:
9317
diff
changeset
|
185 |
|
9268
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
186 |
this->FindWindowPlacementAndResize(desc); |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
187 |
} |
8879
976ce196dddf
(svn r12646) -Codechange: another run of code-style cleanup
belugas
parents:
8878
diff
changeset
|
188 |
|
9268
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
189 |
virtual void OnPaint() |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
190 |
{ |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
191 |
int i; // airport enabling loop |
9334
28ac6c8e0795
(svn r13226) -Feature: Allow to have more than only two airports per town. The number of airports is now controlled by the noise each of them generates, the distance from town's center and how tolerant the town is.
belugas
parents:
9317
diff
changeset
|
192 |
uint16 y_noise_offset = 0; |
9268
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
193 |
uint32 avail_airports; |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
194 |
const AirportFTAClass *airport; |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
195 |
|
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
196 |
avail_airports = GetValidAirports(); |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
197 |
|
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
198 |
this->RaiseWidget(_selected_airport_type + BAW_SMALL_AIRPORT); |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
199 |
if (!HasBit(avail_airports, 0) && _selected_airport_type == AT_SMALL) _selected_airport_type = AT_LARGE; |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
200 |
if (!HasBit(avail_airports, 1) && _selected_airport_type == AT_LARGE) _selected_airport_type = AT_SMALL; |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
201 |
this->LowerWidget(_selected_airport_type + BAW_SMALL_AIRPORT); |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
202 |
|
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
203 |
/* 'Country Airport' starts at widget BAW_SMALL_AIRPORT, and if its bit is set, it is |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
204 |
* available, so take its opposite value to set the disabled state. |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
205 |
* There are 9 buildable airports |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
206 |
* XXX TODO : all airports should be held in arrays, with all relevant data. |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
207 |
* This should be part of newgrf-airports, i suppose |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
208 |
*/ |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
209 |
for (i = 0; i < BAW_AIRPORT_COUNT; i++) this->SetWidgetDisabledState(i + BAW_SMALL_AIRPORT, !HasBit(avail_airports, i)); |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
210 |
|
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
211 |
/* select default the coverage area to 'Off' (16) */ |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
212 |
airport = GetAirport(_selected_airport_type); |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
213 |
SetTileSelectSize(airport->size_x, airport->size_y); |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
214 |
|
9413
7042a8ec3fa8
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium
parents:
9354
diff
changeset
|
215 |
int rad = _settings_game.station.modified_catchment ? airport->catchment : (uint)CA_UNMODIFIED; |
9268
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
216 |
|
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
217 |
if (_station_show_coverage) SetTileSelectBigSize(-rad, -rad, 2 * rad, 2 * rad); |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
218 |
|
9273
35e0224ea8f1
(svn r13139) -Codechange: move DrawWindowWidgets and DrawWindowViewport to the Window class and remove Window from their naming.
rubidium
parents:
9268
diff
changeset
|
219 |
this->DrawWidgets(); |
9334
28ac6c8e0795
(svn r13226) -Feature: Allow to have more than only two airports per town. The number of airports is now controlled by the noise each of them generates, the distance from town's center and how tolerant the town is.
belugas
parents:
9317
diff
changeset
|
220 |
|
28ac6c8e0795
(svn r13226) -Feature: Allow to have more than only two airports per town. The number of airports is now controlled by the noise each of them generates, the distance from town's center and how tolerant the town is.
belugas
parents:
9317
diff
changeset
|
221 |
/* only show the station (airport) noise, if the noise option is activated */ |
9413
7042a8ec3fa8
(svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games.
rubidium
parents:
9354
diff
changeset
|
222 |
if (_settings_game.economy.station_noise_level) { |
9334
28ac6c8e0795
(svn r13226) -Feature: Allow to have more than only two airports per town. The number of airports is now controlled by the noise each of them generates, the distance from town's center and how tolerant the town is.
belugas
parents:
9317
diff
changeset
|
223 |
/* show the noise of the selected airport */ |
28ac6c8e0795
(svn r13226) -Feature: Allow to have more than only two airports per town. The number of airports is now controlled by the noise each of them generates, the distance from town's center and how tolerant the town is.
belugas
parents:
9317
diff
changeset
|
224 |
SetDParam(0, airport->noise_level); |
28ac6c8e0795
(svn r13226) -Feature: Allow to have more than only two airports per town. The number of airports is now controlled by the noise each of them generates, the distance from town's center and how tolerant the town is.
belugas
parents:
9317
diff
changeset
|
225 |
DrawString(2, 206, STR_STATION_NOISE, 0); |
28ac6c8e0795
(svn r13226) -Feature: Allow to have more than only two airports per town. The number of airports is now controlled by the noise each of them generates, the distance from town's center and how tolerant the town is.
belugas
parents:
9317
diff
changeset
|
226 |
y_noise_offset = 10; |
28ac6c8e0795
(svn r13226) -Feature: Allow to have more than only two airports per town. The number of airports is now controlled by the noise each of them generates, the distance from town's center and how tolerant the town is.
belugas
parents:
9317
diff
changeset
|
227 |
} |
28ac6c8e0795
(svn r13226) -Feature: Allow to have more than only two airports per town. The number of airports is now controlled by the noise each of them generates, the distance from town's center and how tolerant the town is.
belugas
parents:
9317
diff
changeset
|
228 |
|
9268
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
229 |
/* strings such as 'Size' and 'Coverage Area' */ |
9334
28ac6c8e0795
(svn r13226) -Feature: Allow to have more than only two airports per town. The number of airports is now controlled by the noise each of them generates, the distance from town's center and how tolerant the town is.
belugas
parents:
9317
diff
changeset
|
230 |
int text_end = DrawStationCoverageAreaText(2, this->widget[BAW_BTN_DOHILIGHT].bottom + 4 + y_noise_offset, SCT_ALL, rad, false); |
9268
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
231 |
text_end = DrawStationCoverageAreaText(2, text_end + 4, SCT_ALL, rad, true) + 4; |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
232 |
if (text_end != this->widget[BAW_BOTTOMPANEL].bottom) { |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
233 |
this->SetDirty(); |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
234 |
ResizeWindowForWidget(this, BAW_BOTTOMPANEL, 0, text_end - this->widget[BAW_BOTTOMPANEL].bottom); |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
235 |
this->SetDirty(); |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
236 |
} |
0 | 237 |
} |
9268
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
238 |
|
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
239 |
virtual void OnClick(Point pt, int widget) |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
240 |
{ |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
241 |
switch (widget) { |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
242 |
case BAW_SMALL_AIRPORT: case BAW_CITY_AIRPORT: case BAW_HELIPORT: case BAW_METRO_AIRPORT: |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
243 |
case BAW_STR_INTERNATIONAL_AIRPORT: case BAW_COMMUTER_AIRPORT: case BAW_HELIDEPOT: |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
244 |
case BAW_STR_INTERCONTINENTAL_AIRPORT: case BAW_HELISTATION: |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
245 |
this->RaiseWidget(_selected_airport_type + BAW_SMALL_AIRPORT); |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
246 |
_selected_airport_type = widget - BAW_SMALL_AIRPORT; |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
247 |
this->LowerWidget(_selected_airport_type + BAW_SMALL_AIRPORT); |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
248 |
SndPlayFx(SND_15_BEEP); |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
249 |
this->SetDirty(); |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
250 |
break; |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
251 |
|
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
252 |
case BAW_BTN_DONTHILIGHT: case BAW_BTN_DOHILIGHT: |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
253 |
_station_show_coverage = (widget != BAW_BTN_DONTHILIGHT); |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
254 |
this->SetWidgetLoweredState(BAW_BTN_DONTHILIGHT, !_station_show_coverage); |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
255 |
this->SetWidgetLoweredState(BAW_BTN_DOHILIGHT, _station_show_coverage); |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
256 |
SndPlayFx(SND_15_BEEP); |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
257 |
this->SetDirty(); |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
258 |
break; |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
259 |
} |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
260 |
} |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
261 |
|
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
262 |
virtual void OnTick() |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
263 |
{ |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
264 |
CheckRedrawStationCoverage(this); |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
265 |
} |
fa447d3b408d
(svn r13134) -Codechange: make a class of the Airport Picker Window.
belugas
parents:
9238
diff
changeset
|
266 |
}; |
0 | 267 |
|
268 |
static const Widget _build_airport_picker_widgets[] = { |
|
4345
1da147230c79
(svn r6046) CodeChange : Rename WWT_5 Widget type to WWT_LABEL : a centered label
belugas
parents:
4344
diff
changeset
|
269 |
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, |
1da147230c79
(svn r6046) CodeChange : Rename WWT_5 Widget type to WWT_LABEL : a centered label
belugas
parents:
4344
diff
changeset
|
270 |
{ WWT_CAPTION, RESIZE_NONE, 7, 11, 147, 0, 13, STR_3001_AIRPORT_SELECTION, STR_018C_WINDOW_TITLE_DRAG_THIS}, |
1da147230c79
(svn r6046) CodeChange : Rename WWT_5 Widget type to WWT_LABEL : a centered label
belugas
parents:
4344
diff
changeset
|
271 |
{ WWT_PANEL, RESIZE_NONE, 7, 0, 147, 14, 52, 0x0, STR_NULL}, |
8910
d7e2e6246a52
(svn r12679) -Codechange : a little bit of widget enumification
belugas
parents:
8880
diff
changeset
|
272 |
{ WWT_LABEL, RESIZE_NONE, 7, 0, 147, 14, 27, STR_SMALL_AIRPORTS, STR_NULL}, |
4345
1da147230c79
(svn r6046) CodeChange : Rename WWT_5 Widget type to WWT_LABEL : a centered label
belugas
parents:
4344
diff
changeset
|
273 |
{ WWT_PANEL, RESIZE_NONE, 7, 0, 147, 53, 89, 0x0, STR_NULL}, |
8910
d7e2e6246a52
(svn r12679) -Codechange : a little bit of widget enumification
belugas
parents:
8880
diff
changeset
|
274 |
{ WWT_LABEL, RESIZE_NONE, 7, 0, 147, 52, 65, STR_LARGE_AIRPORTS, STR_NULL}, |
4345
1da147230c79
(svn r6046) CodeChange : Rename WWT_5 Widget type to WWT_LABEL : a centered label
belugas
parents:
4344
diff
changeset
|
275 |
{ WWT_PANEL, RESIZE_NONE, 7, 0, 147, 90, 127, 0x0, STR_NULL}, |
8910
d7e2e6246a52
(svn r12679) -Codechange : a little bit of widget enumification
belugas
parents:
8880
diff
changeset
|
276 |
{ WWT_LABEL, RESIZE_NONE, 7, 0, 147, 90, 103, STR_HUB_AIRPORTS, STR_NULL}, |
4345
1da147230c79
(svn r6046) CodeChange : Rename WWT_5 Widget type to WWT_LABEL : a centered label
belugas
parents:
4344
diff
changeset
|
277 |
{ WWT_PANEL, RESIZE_NONE, 7, 0, 147, 128, 177, 0x0, STR_NULL}, |
8910
d7e2e6246a52
(svn r12679) -Codechange : a little bit of widget enumification
belugas
parents:
8880
diff
changeset
|
278 |
{ WWT_LABEL, RESIZE_NONE, 7, 0, 147, 128, 141, STR_HELIPORTS, STR_NULL}, |
d7e2e6246a52
(svn r12679) -Codechange : a little bit of widget enumification
belugas
parents:
8880
diff
changeset
|
279 |
{ WWT_PANEL, RESIZE_NONE, 7, 0, 147, 178, 239, 0x0, STR_NULL}, // bottom general box |
4968
59dcd41ce2d0
(svn r6971) -Fix r6961: WWT_NODISTXTBTN buttons were normal buttons not push buttons
glx
parents:
4963
diff
changeset
|
280 |
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 145, 27, 38, STR_SMALL_AIRPORT, STR_3058_SELECT_SIZE_TYPE_OF_AIRPORT}, |
59dcd41ce2d0
(svn r6971) -Fix r6961: WWT_NODISTXTBTN buttons were normal buttons not push buttons
glx
parents:
4963
diff
changeset
|
281 |
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 145, 65, 76, STR_CITY_AIRPORT, STR_3058_SELECT_SIZE_TYPE_OF_AIRPORT}, |
59dcd41ce2d0
(svn r6971) -Fix r6961: WWT_NODISTXTBTN buttons were normal buttons not push buttons
glx
parents:
4963
diff
changeset
|
282 |
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 145, 141, 152, STR_HELIPORT, STR_3058_SELECT_SIZE_TYPE_OF_AIRPORT}, |
59dcd41ce2d0
(svn r6971) -Fix r6961: WWT_NODISTXTBTN buttons were normal buttons not push buttons
glx
parents:
4963
diff
changeset
|
283 |
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 145, 77, 88, STR_METRO_AIRPORT , STR_3058_SELECT_SIZE_TYPE_OF_AIRPORT}, |
59dcd41ce2d0
(svn r6971) -Fix r6961: WWT_NODISTXTBTN buttons were normal buttons not push buttons
glx
parents:
4963
diff
changeset
|
284 |
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 145, 103, 114, STR_INTERNATIONAL_AIRPORT, STR_3058_SELECT_SIZE_TYPE_OF_AIRPORT}, |
59dcd41ce2d0
(svn r6971) -Fix r6961: WWT_NODISTXTBTN buttons were normal buttons not push buttons
glx
parents:
4963
diff
changeset
|
285 |
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 145, 39, 50, STR_COMMUTER_AIRPORT, STR_3058_SELECT_SIZE_TYPE_OF_AIRPORT}, |
59dcd41ce2d0
(svn r6971) -Fix r6961: WWT_NODISTXTBTN buttons were normal buttons not push buttons
glx
parents:
4963
diff
changeset
|
286 |
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 145, 165, 176, STR_HELIDEPOT, STR_3058_SELECT_SIZE_TYPE_OF_AIRPORT}, |
59dcd41ce2d0
(svn r6971) -Fix r6961: WWT_NODISTXTBTN buttons were normal buttons not push buttons
glx
parents:
4963
diff
changeset
|
287 |
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 145, 115, 126, STR_INTERCONTINENTAL_AIRPORT, STR_3058_SELECT_SIZE_TYPE_OF_AIRPORT}, |
59dcd41ce2d0
(svn r6971) -Fix r6961: WWT_NODISTXTBTN buttons were normal buttons not push buttons
glx
parents:
4963
diff
changeset
|
288 |
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 145, 153, 164, STR_HELISTATION, STR_3058_SELECT_SIZE_TYPE_OF_AIRPORT}, |
4345
1da147230c79
(svn r6046) CodeChange : Rename WWT_5 Widget type to WWT_LABEL : a centered label
belugas
parents:
4344
diff
changeset
|
289 |
{ WWT_TEXTBTN, RESIZE_NONE, 14, 14, 73, 191, 202, STR_02DB_OFF, STR_3065_DON_T_HIGHLIGHT_COVERAGE}, |
1da147230c79
(svn r6046) CodeChange : Rename WWT_5 Widget type to WWT_LABEL : a centered label
belugas
parents:
4344
diff
changeset
|
290 |
{ WWT_TEXTBTN, RESIZE_NONE, 14, 74, 133, 191, 202, STR_02DA_ON, STR_3064_HIGHLIGHT_COVERAGE_AREA}, |
1da147230c79
(svn r6046) CodeChange : Rename WWT_5 Widget type to WWT_LABEL : a centered label
belugas
parents:
4344
diff
changeset
|
291 |
{ WWT_LABEL, RESIZE_NONE, 7, 0, 147, 178, 191, STR_3066_COVERAGE_AREA_HIGHLIGHT, STR_NULL}, |
176
84990c4b9212
(svn r177) -Fix: padded out Widget code to solve warnings on C99 compiler (Tron)
darkvater
parents:
0
diff
changeset
|
292 |
{ WIDGETS_END}, |
0 | 293 |
}; |
294 |
||
295 |
static const WindowDesc _build_airport_desc = { |
|
7341
02515d0d4ced
(svn r10704) -Codechange: provide an infrastructure to have resizable windows that are smaller than the default window size.
rubidium
parents:
7241
diff
changeset
|
296 |
WDP_AUTO, WDP_AUTO, 148, 240, 148, 240, |
5070
7f5b13b7e728
(svn r7128) -Codechange: Replace magic numbers by magic enums (windowdesc positioning WDP_AUTO = -1)
Darkvater
parents:
5005
diff
changeset
|
297 |
WC_BUILD_STATION, WC_BUILD_TOOLBAR, |
0 | 298 |
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET, |
299 |
_build_airport_picker_widgets, |
|
300 |
}; |
|
301 |
||
9338
3d6f9ddd431d
(svn r13230) -Fix [FS#2030](r13171): When closing toolbars, also close their PickerWindows.
frosch
parents:
9334
diff
changeset
|
302 |
static void ShowBuildAirportPicker(Window *parent) |
0 | 303 |
{ |
9338
3d6f9ddd431d
(svn r13230) -Fix [FS#2030](r13171): When closing toolbars, also close their PickerWindows.
frosch
parents:
9334
diff
changeset
|
304 |
new AirportPickerWindow(&_build_airport_desc, parent); |
0 | 305 |
} |
306 |
||
6247 | 307 |
void InitializeAirportGui() |
0 | 308 |
{ |
309 |
_selected_airport_type = AT_SMALL; |
|
310 |
} |